News
-
ATTENZIONE: l'appello di Gennaio 2020 è riservato agli studenti dell'anno accademico 2018/2019 e precedenti .
Gli studenti dell'anno accademico 2019/2020 facciano riferimento al Prof. Cazzola per contenuto del corso e modalità di valutazione.
Informazioni generali
Docente: | A. Ceselli |
---|---|
Orario delle lezioni: | martedì dalle 11.00 alle 13.00, Aula 3 Nord |
martedì delle 14.00 alle 16.00, Aula 3 Nord | |
Ricevimento: | martedì dalle 16.00 alle 19.00 (durante il corso), oppure su appuntamento |
Obiettivi e contenuti del corso
Linsegnamento intende fornire la capacità di
- analizzare in modo critico ogni linguaggio di programmazione,
- valutare le implicazioni che ha la scelta di un particolare linguaggio nei costi e nei tempi di sviluppo di un'applicazione,
- scegliere il linguaggio giusto in contesti differenti,
- sviluppare strategie per apprendere rapidamente nuovi linguaggi di programmazione.
A tal fine, nella prima metà dellinsegnamento è presentata una panoramica storica dell'evoluzione dei linguaggi di programmazione, delle loro caratteristiche comuni e della loro classificazione. Vengono brevemente presentati anche i fondamenti teorici alla base dell'equivalenza tra linguaggi di programmazione, del problema del rilevamento automatico di errori nei programmi e dell'indecidibilità algoritmica.
Poi, insieme a richiami di programmazione con stile imperativo, vengono approfondite le tecniche di programmazione secondo paradigma funzionale, dichiarativo e logico.
La seconda metà dellinsegnamento, invece, analizza i cardini comuni a qualsiasi linguaggio di programmazione:
- descrizione formale della sintassi e della semantica di un linguaggio di programmazione,
- il sistema dei tipi, scope e binding,
- programmazione strutturata, sottoprogrammi ed encapsulation,
- abstract data types, tipi parametrici, overloading, polimorfismo,
- supporto alla programmazione ad oggetti e generic programming,
- supporto alla programmazione concorrente ed alla gestione delle eccezioni.
Durante tutto il corso vengono presentati esempi e proposti piccoli esercizi di programmazione utilizzando diversi linguaggi di programmazione reali.
Prerequisiti
Capacità di programmazione in un linguaggio qualsiasi (ad esempio C, Java o C#), capacità di comprendere un testo in inglese.