Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[W000914] - PROGRAMMAZIONE AD OGGETTIOBJECT - ORIENTED PROGRAMMING [Cognomi M-Z]
MARINA PAOLANTI
Lingua di erogazione: ITALIANOLessons taught in: ITALIAN
Laurea - [IT04] INGEGNERIA INFORMATICA E DELL'AUTOMAZIONE First Cycle Degree (3 years) - [IT04] COMPUTER AND AUTOMATION ENGINEERING
Dipartimento: [040040] Dipartimento Ingegneria dell'InformazioneDepartment: [040040] Dipartimento Ingegneria dell'Informazione
Anno di corsoDegree programme year : 2 - Primo Semestre
Anno offertaAcademic year: 2020-2021
Anno regolamentoAnno regolamento: 2019-2020
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 (48h) ed esercitazioni (24h).

Lectures on topics scheduled, Computer Vision exercises carried out in class.
Lectures will be divided in frontal lectures (48h) and workshops (24h).


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 nel corso di Fondamenti di Informatica, costituiranno degli approfondimenti che dovranno potenziare la comprensione della teoria dei linguaggi e dei vantaggi dei diversi paradigmi di programmazione. Il corso si completerà con una trattazione di alcune tecniche di programmazione e di alcune strutture dati avanzate utilizzati nella 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 course of Fundamentals of Computer Science will form the insights that will enrich the understanding of the theory of languages and of the advantages of different programming paradigms. The course will be completed with a discussion of some programming techniques and some advanced data structures used in programming.


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 autonomous 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)
Unit Test e JUnit. (L+E)
JSON e Spring. (L+E)
Introduzione a JNI. (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 Exercises (E).

The software development process: organizational and methodological aspects; software product and process; the life cycle of software systems. Analysis and specification of requirements: specification models and languages; UML and its use. (L)
Evolution of programming languages: abstraction on control; abstraction on data Abstraction on data and control: Object Programming. (L)
The Java language
Definition of classes: visibility rules, instance and class variables; object creation; constructors, method definition; overloading. (L+E)
Interface definition: implementation of interfaces, subtypes, static and dynamic type. (L+E)
Type Soundness; polymorphism induced by subtyping. (L+E)
Definition of subclasses, constructors, method overriding, dynamic method lookup, IS-A and IS-LIKE relations, methods, variables, final classes. (L+E)
Exceptions and Packages. (L+E)
Generic types. (L+E)
Threads and concurrent programming in Java. (L+E)
Unit Test and JUnit. (L+E)
JSON and Spring. (L+E)
Introduction to JNI. (L+E)
The exercises will be carried out for the various topics through application examples in JAVA language, also carried out in groups.


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.
Il livello di apprendimento degli studenti viene valutato attraverso due prove, da sostenere nello stesso appello:
- una prova pratica, consistente nell’analisi e implementazione, secondo i paradigmi della Programmazione ad Oggetti e utilizzando il linguaggio JAVA, di un progetto assegnato dal docente; la prova è effettuata in gruppi da due;
- una prova orale, consistente nella esposizione di argomenti riguardanti la Programmazione ad Oggetti, oltre ai commenti relativi alle scelte implementative della prova pratica.


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.
Per superare con esito positivo l’esame, lo studente deve dimostrare, attraverso le prove prima descritte, di aver ben compreso i concetti fondamentali dell’insegnamento ed in particolare di aver acquisito le competenze di base sulla programmazione ad oggetti.
La valutazione dell’apprendimento tiene conto delle conoscenze acquisite su tutti gli argomenti dell’insegnamento. La valutazione della prova orale sarà effettuata sulla base dei seguenti indicatori: completezza, esposizione, pertinenza.
La prova nel suo insieme consente di accertare sia la capacità di conoscenza e comprensione, sia la capacità di applicare le competenze acquisite, sia la capacità di esposizione, sia la capacità di apprendere e di elaborare soluzioni in autonomia di giudizio, sia capacità di lavorare in gruppo.
La valutazione massima è attribuita agli studenti che dimostrano ottima capacità di analisi e di implementazione nella prova di programmazione e che in quella orale dimostrano una conoscenza approfondita dei contenuti dell’insegnamento, rigore metodologico ed appropriatezza di vocabolario tecnico.


Criteri di misurazione dell'apprendimento.

Viene attribuito un voto in trentesimi, con eventuale lode.”
Il voto minimo per il superamento dell’esame è 18/30.


Criteri di attribuzione del voto finale.

Perché l'esito complessivo della valutazione sia positivo, lo studente deve conseguire almeno 18 punti (su 30) sia nella prova pratica, sia in quella orale ed almeno 18 punti (su 30) nella valutazione complessiva.
Il voto complessivo è dato dalla media pesata dei voti ottenuti nelle due prove; il peso attribuito alla prova orale è doppio di quello della prova scritta.
La lode potrà essere attribuita agli studenti che raggiungano il voto massimo di 30/30 e dimostrino di essere in grado di applicare autonomamente conoscenze e competenze acquisite, anche a contesti diversi da quelli proposti a lezione. A tal fine si terrà conto della qualità dell'esposizione (utilizzo linguaggio appropriato), della capacità di correlare tra loro sia i diversi argomenti del corso, sia questi con altre discipline, della complessiva autonomia di giudizio dimostrata.




Learning Evaluation Methods.

The evaluation of the students' level of learning is based on the correspondence to the assigned specifications and the quality of the project developed and the answers to two/three questions on topics covered in the course carried out in the oral test.
The students' learning level is assessed through two tests, to be taken in the same call:
- a practical test, consisting in the analysis and implementation, according to the paradigms of Object Programming and using the JAVA language, of a project assigned by the Professor; the test is carried out in groups of two;
- an oral examination, consisting in the presentation of topics concerning Object Programming, as well as comments on the implementation choices of the practical test.


Learning Evaluation Criteria.

In order to pass the oral test successfully, the student have to demonstrate an overall knowledge of the contents of the teaching, exposed in a sufficiently correctly manner with the use of appropriate technical terminology.
In order to pass the exam successfully, the student must demonstrate, through the tests described above, to have a good understanding of the fundamental concepts of course and in particular that has acquired the basic skills in object-oriented programming.
The assessment of learning takes into account the knowledge acquired on all teaching subjects. The assessment of the oral test will be carried out on the basis of the following indicators: completeness, exposure, relevance.
The test as a whole assesses both the capacity for knowledge and understanding, the ability to apply the skills acquired, the ability to be exposed, the ability to learn and development of solutions independently as well as the ability to work in a team.
The maximum assessment is given to students who demonstrate excellent analytical and implementation skills in the programming test and who demonstrate a thorough knowledge of teaching content, methodological rigor and appropriateness of technical language in the oral test.


Learning Measurement Criteria.

A mark in thirtieth is awarded, with possible praise."
The minimum mark for passing the exam is 18/30.


Final Mark Allocation Criteria.

The overall result of the assessment will be positive, if the student must achieve at least 18 points (out of 30) in both the practical and oral tests and at least 18 points (out of 30) in the overall assessment.
The overall grade is given by the weighted average of the marks obtained in the two tests; the weight given to the oral test is double that of the written test.
Praise may be given to students who reach a maximum grade of 30/30 and demonstrate that they are able to apply the knowledge and skills acquired autonomously, even in contexts other than those proposed in class. To this end, the quality of the presentation (use of appropriate language), the ability to correlate both the different topics of the course, and these with other disciplines, and the overall autonomy of judgment demonstrated will be taken into account.



TESTI CONSIGLIATI RECOMMENDED READING

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

Materiale didattico elettronico disponibile su piattaforma Moodle di Ateneo: https://learn.univpm.it

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

Electronic materials available on the University's Moodle platform:
https://learn.univpm.it


E-LEARNING E-LEARNING






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

 


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