Concetti di Linguaggi di Programmazione (parte 1)
People
Course director
Course director
Description
Obiettivi
Esiste una grande varietà di linguaggi di programmazione. Questi linguaggi si basano su alcuni concetti fondamentali la cui comprensione è importante sia per la programmazione sia per le lezioni di programmazione.
I moduli "Programmazione 1" e "Programmazione 2" si occupano di due paradigmi fondamentali quali la programmazione funzionale e imperativa (orientata agli oggetti): in questo corso vogliamo analizzarne in particolare le differenze e le affinità.
Contenuto
- Implementazione di semplici programmi in stile funzionale e orientato agli oggetti;
- Refactoring tra programmi imperativi, funzionali e orientati agli oggetti
- Distinzione tra tipizzazione statica e dinamica;
- Individuazione di e programmazione con tipi di dati algebrici; Programmazione con polimorfismo parametrico ed ereditario
- Interpretazione dei concetti linguistici fondamentali con sintassi e regole semantiche;
- Uso di “notional machine” per spiegare concetti linguistici
Impostazione pedagogico-didattica
Lezioni, esercizi e compiti
Modalità d'esame
Esame finale scritto (se la situazione COVID-19 lo permetterà)
In alternativa: esame orale online
Riferimenti bibliografici
- Facoltativo (il libro esiste solo nella versione inglese, ne discuteremo le parti più rilevanti in italiano)
“Exercises in Programming Style” by Cristina Lopez
https://www.crcpress.com/Exercises-in-Programming-Style/Lopes/p/book/9781482227376