Titolo insegnamento in inglese: Programming Languages II
Lingua: italiano
Insegnamento: Linguaggi di Programmazione II
Anno di corso: III
CFU: 6
Semestre: 2
Docenti:
- Canale unico: Marco Faella
Insegnamenti propedeutici previsti
Linguaggi di Programmazione I, Object Orientation, Algebra
Obiettivi Formativi
Il corso intende esporre gli studenti ad un'ampia gamma di funzionalità dei moderni linguaggi di programmazione, approfondendo ed espandendo le tematiche affrontate dal corso di Linguaggi di Programmazione I, con particolare riferimento ai linguaggi orientati agli oggetti. Alla fine del corso, gli studenti saranno in grado di utilizzare i costrutti linguistici più appropriati per raggiungere gli obiettivi di chiarezza, manutenibilità, robustezza ed efficienza dei manufatti software.
Contenuti
- Richiami di linguaggi Java e C++.
- Classi interne, locali e anonime.
- Tipi enumerati.
- Algoritmi di risoluzione del binding dinamico.
- Operazioni di base su oggetti: confronto ordinale e di uguaglianza, copia.
- Polimorfismo parametrico e sue implementazioni: i generics e i template.
- Programmare con collezioni ed iteratori.
- Programmazione multi-thread: comunicazione e sincronizzazione tra thread.
- Riflessione.
Modalità didattiche
Lezioni frontali. Esercitazioni.
Modalità di esame
L'esame si articola in prova scritta e orale.
La prova scritta è a risposta multipla e libera.