CODICE | 61799 |
---|---|
ANNO ACCADEMICO | 2021/2022 |
CFU |
|
SETTORE SCIENTIFICO DISCIPLINARE | INF/01 |
LINGUA | Italiano |
SEDE |
|
PERIODO | Annuale |
MATERIALE DIDATTICO | AULAWEB |
Elementi di un linguaggio di programmazione: sintassi, sematica statica e dinamica, interpreti.
Programmazione funzionale: OCaml.
Programmazione object-oriented: Java.
Acquisire le nozioni fondamentali relative ai linguaggi di programmazione ad alto livello e una conoscenza approfondita di diversi paradigmi di programmazione (in particolare object-oriented e funzionale), dal punto di vista concettuale e operativo. Essere in grado, inoltre, di sviluppare programmi a partire da specifiche informali nell'ambito della programmazione in piccolo mediante l'utilizzo di un ambiente di sviluppo integrato.
Al termine dell'insegnamento, lo studente sarà in grado di
Nozioni fondamentali di programmazione imperativa e di algoritmi e strutture dati
Tradizionale
Elementi di un linguaggio di programmazione: generalità, diversi paradigmi; sintassi, semantica statica e dinamica, sviluppo di un interprete guidato dalla semantica formale.
Paradigma object oriented (linguaggio Java): oggetti, classi, interfacce, ereditarietà e binding dinamico, casting, overloading, eccezioni. Caratteristiche avanzate: classi e metodi generici. Esempi d'uso dell'API standard, design pattern iterator e visitor.
Paradigma funzionale (linguaggio Objective Caml): funzioni di ordine superiore e polimorfe, inferenza di tipi polimorfi, currying, funzioni su liste, ricorsione di coda e parametri di accumulazione, tipi user-defined.
-Davide Ancona, Giovanni Lagorio, Elena Zucca. Linguaggi di Programmazione. Città Studi Edizioni.
-Ken Arnold, James Gosling, and David Holmes. The Java Programming Language, Fourth Edition, Prentice Hall.
-Emmanuel Chailloux, Pascal Manoury, and Bruno Pagano. Developing Applications With Objective Caml.
-Josh Bloch. Effective Java (second edition). Prentice Hall. (approfondimento)
-Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. (approfondimento)
Ricevimento: Su appuntamento, via email
DAVIDE ANCONA (Presidente)
ELENA ZUCCA
PIETRO BARBIERI (Supplente)
GIOVANNI LAGORIO (Supplente)
PAOLA MAGILLO (Supplente)
L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.
Esame scritto, progetto software finale e sua discussione individuale.
Applicazione dei concetti base della programmazione object-oriented in piccolo: sviluppo di un progetto software, esercizi di comprensione e programmazione in Java da svolgere durante l'esame scritto e, se necessario, anche orale.
Comprensione, uso e implementazione dei design pattern iterator e visitor: sviluppo di un progetto software, esercizi di programmazione in Java da svolgere durante l'esame scritto.
Applicazione dei concetti base della programmazione funzionale e generica in piccolo: esercizi di programmazione in OCaml da svolgere durante l'esame scritto.
Comprensione della specifica di un linguaggio di programmazione e delle problematiche alla base dell'implementazione dei liguaggi di programmazione: sviluppo di un progetto, esercizi su espressioni regolari e grammatiche context free da svolgere durante l'esame scritto.
Comprensione della specifica formale di un linguaggio di programmazione e tecniche di implementazione object-oriented di un interprete: progetto finale in Java.
Data | Ora | Luogo | Tipologia | Note |
---|---|---|---|---|
20/06/2022 | 09:00 | GENOVA | Scritto | 8 settembre aule 506 e 505 |
11/07/2022 | 09:00 | GENOVA | Scritto | 8 settembre aule 506 e 505 |
07/09/2022 | 09:00 | GENOVA | Scritto | 8 settembre aule 506 e 505 |
19/01/2023 | 09:00 | GENOVA | Scritto | 8 settembre aule 506 e 505 |
13/02/2023 | 09:00 | GENOVA | Scritto | 8 settembre aule 506 e 505 |