Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[W000914] - PROGRAMMAZIONE AD OGGETTIPROGRAMMAZIONE AD OGGETTI
Emanuele FRONTONI
Lingua di erogazione: ITALIANOLessons taught in: ITALIAN
Laurea - [IT04] INGEGNERIA INFORMATICA E DELL'AUTOMAZIONE First Cycle Degree (3 years) - [IT04] COMPUTER AND AUTOMATION ENGINEERING
Anno di corsoDegree programme year : 2 - Secondo Semestre
Anno offertaAcademic year: 2018-2019
Anno regolamentoAnno regolamento: 2017-2018
Obbligatorio
Crediti: 9
Ore di lezioneTeaching hours: 72
TipologiaType: B - Caratterizzante
Settore disciplinareAcademic discipline: ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

LINGUA INSEGNAMENTO LANGUAGE

Italiano

Italian


PREREQUISITI PREREQUISITES

Conoscenze informatiche di base come ad esempio quelle acquisite in un corso di Fondamenti di Informatica.

Basic computer science concepts typical of a first computer science course.


MODALITÀ DI SVOLGIMENTO DEL CORSO DEVELOPMENT OF THE COURSE

Lezioni frontali sugli argomenti in programma, esercitazioni di Programmazione ad Oggetti svolte in classe.
Il corso sarà suddiviso in lezioni (60%) ed esercitazioni (40%).

Lectures on topics scheduled, Computer Vision exercises carried out in class.
Lectures will be divided in frontal lectures (60%) and workshops (40%).


RISULTATI DI APPRENDIMENTO ATTESI LEARNING OUTCOMES
Conoscenze e comprensione.

L’insegnamento permette agli studenti di acquisire le nozioni fondamentali e le conoscenze avanzate della Programmazione ad Oggetti, anche tramite lo studio di un linguaggio di programmazione di riferimento.
Tali conoscenze, integrando le nozioni acquisite nei precedenti corsi di programmazione, costituiranno degli approfondimenti che dovranno potenziare la comprensione della teoria dei linguaggi e dei vantaggi dei diversi paradigmi di programmazione.


Capacità di applicare conoscenze e comprensione.

Al termine del corso lo studente sarà in grado di utilizzare in maniera appropriata i principi della programmazione ad oggetti e la sintassi del linguaggio adottato nel corso per sviluppare programmi di media complessità e con caratteristiche di flessibilità, rispondenza ai requisiti ed efficienza, scegliendo gli algoritmi e le strutture dati più adeguati per il particolare problema.


Competenze trasversali.

L’esecuzione di un progetto, che verrà svolto in gruppi o in autonomia e che porterà alla stesura di una relazione, contribuirà a migliorare sia la capacità comunicativa che deriva anche dal lavoro in gruppo, sia la capacità di apprendimento e di problem solving in autonomia.


Knowledge and Understanding.

The course enables students to acquire the fundamental notions and advanced knowledge of Object-Oriented Programming, also through the study of a reference programming languages. This knowledge, by integrating the knowledge gained during the previous programming courses will form the insights that will enrich the understangin of the theory of languages and of the advantages of different programming paradigms.


Capacity to apply Knowledge and Understanding.

At the end of the course students will be able to use properly the principles of object-oriented programming and the syntax of the language used in the course to develop software of medium complexity, characterized by flexibility, compliance with the requirements and efficiency, choosing the most appropriate data structures and algorithms for the particular problem at hand.


Transversal Skills.

The execution of a project, which will be played in groups or independently and that will lead to the drafting of a report, will help improve both the communication skills that also stems from teamwork, and autnonomous learning and problem solving skills.



PROGRAMMA PROGRAM

I seguenti argomenti saranno trattati attraverso lezioni teoriche (L) ed esercitazioni (E):

Il processo di sviluppo del software:aspetti organizzativi e metodologici; prodotto software e processo; il ciclo di vita dei sistemi software. Analisi e specifica dei requisiti: modelli e linguaggi di specifica; UML ed il suo uso. (L)

Evoluzione dei linguaggi di Programmazione: astrazione sul controllo; astrazione sui dati
Astrazione sui dati e sul controllo: la Programmazione a Oggetti. (L)

Il linguaggio Java
Definizione di classi: regole di visibilità, variabili di istanza e di classe; creazione degli oggetti; costruttori, definizione di metodi; overloading. (L+E)
Definizione di interfacce: implementazione di interfacce, Sottotipi, tipo statico e dinamico. (L+E)
Type Soundness; polimorfismo indotto dal sottotipaggio. (L+E)
Definizione di sottoclassi, costruttori, overriding di metodi, lookup dinamico dei metodi, relazioni IS-A e IS-LIKE, metodi, variabili, classi final. (L+E)
Eccezioni e Packages. (L+E)
Tipi Generici. (L+E)
Cenni ai thread e alla programmazione concorrente in Java. (L+E)
Cenni alla progettazione di applet e interfacce grafiche. (L+E)

Le esercitazioni saranno svolte per i vari argomenti attraverso esempi applicativi in linguaggio JAVA, svolte anche in gruppo.

The following contents will be provided by frontal lectures (L) and workshops (W).

History and characteristics of JAVA. (L)
Some references to computer science fundamentals. (L)
Object oriented design with UML. (L+W)
Description of suggested development environments. I/O, operators, control structures, functions, pointers. (L+W)
Classes, objects, member functions and strings. (L+W)
Template and custom classes, exception handling. Overloading, inheritance and polymorphism. (L+W)

Workshops are based on the practical use of the JEVA programming language, even working in groups of students.


MODALITÀ DI SVOLGIMENTO DELL'ESAME DEVELOPMENT OF THE EXAMINATION
Modalità di valutazione dell'apprendimento.

La valutazione del livello di apprendimento degli studenti avviene sulla base della corrispondenza alle specifiche assegnate e la qualità del progetto sviluppato e delle risposte a due/tre domande su temi trattati nel corso effettuate nella prova orale.


Criteri di valutazione dell'apprendimento.

Per superare con esito positivo la prova orale lo studente dovrà dimostrare di possedere una complessiva conoscenza dei contenuti dell’insegnamento, esposti in maniera sufficientemente corretta con utilizzo di adeguata terminologia tecnica.


Criteri di misurazione dell'apprendimento.

Attribuzione del voto finale in trentesimi.


Criteri di attribuzione del voto finale.

La valutazione finale sarà in relazione al grado di conoscenza dei contenuti del corso evidenziato nell'ambito della prova orale.


Learning Evaluation Methods.

Evaluation of students' learning level is performed on the basis of the correpsndence to given specifications and the quality of the projected developed as well as on the answers, given during the oral examnation, to the two/three questions on the course topics.


Learning Evaluation Criteria.

To pass the oral examination the student must show a comprehensive knowledge of the course contents, expounded in a sufficiently correct way by using an adequate tecnical terminology.


Learning Measurement Criteria.

Marks in thirtieths.


Final Mark Allocation Criteria.

The final evaluation will be in relation to the grade of knowledge of the course contents, as comes out from oral examination.



TESTI CONSIGLIATI RECOMMENDED READING

Frontoni, Mancini
PROGRAMMAZIONE A OGGETTI PER L'INGEGNERIA INFORMATICA
McGraw Create, 2019

https://learn.univpm.it/course/view.php?id=8103

Frontoni, Mancini
PROGRAMMAZIONE A OGGETTI PER L'INGEGNERIA INFORMATICA
McGraw Create, 2019

https://learn.univpm.it/course/view.php?id=8103


E-LEARNING E-LEARNING

No

No


Scheda insegnamento erogato nell’A.A. 2018-2019
Le informazioni contenute nella presente scheda assumono carattere definitivo solo a partire dall'A.A. di effettiva erogazione dell'insegnamento.
Academic year 2018-2019

 


Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427