This is an old revision of the document!
Programmazione Avanzata
News
- 27 Settembre 2019: Il corso si terrà nel secondo semestre. Le informazioni per chi ha frequentato nell'a.a. 2018/10 sono quelle disponibili al seguente link.
- 10 Marzo 2020: A seguito dell'emergenza Covid-19, fino al 3 Aprile, le lezioni verranno svolte in streaming all'interno dell'aula virtuale https://unicam.webex.com/meet/michele.loreti.
Informazioni Generali
Docente: Michele Loreti
Link ESSE3
Orario delle Lezioni:
- Martedì, dalle 11.00 ale 13.00 (Aula AA1)
- Mercoledì, dalle 11.00 alle 13.00 (Aula AA1)
- Giovedì, dalle 11.00 alle 13.00 (Aula AA1)
Canale Telegram: https://t.me/UniCamPA
Ricevimento studenti:
- Mercoledì, dalle 16.00 alle 17.00
- Giovedì, dalle 10.00 alle 11.00
Classroom: Il materiale del corso verrà reso disponibile all'interno di Classroom. Il codice del corso è ch72rlk.
Obiettivi del Corso
Conoscenze:
- concetti basilari della metodologia orientata agli oggetti nella progettazione del software;
- caratteristiche principali dei linguaggi orientati agli oggetti, quali Java, e tecniche di programmazione;
- elementi base della programmazione funzionale;
- schemi di soluzioni avanzate a problemi ricorrenti nel design del software.
Competenze acquisite (al termine del corso) Gli studenti dovranno dimostrare di saper usare la metodologia orientata agli oggetti nella progettazione e implementazione di componenti software, che siano facilmente estendibili e riusabili.
Capacità acquisite (al termine del corso) Capacità di sviluppare software flessibile, utilizzando tecniche avanzate orientate agli oggetti.
Testi di riferimento
Core Java SE 9 for the Impatient, Cay Horstmann, Second Edition, Addison-Wesley 2017
Contenuti del Corso
Nel corso verrà introdotta, attraverso l'uso del linguaggio Java, la metodologia orientata agli oggetti per la costruzione del software:
- Paradigmi di programmazione: imperativo, funzionale e orientato agli oggetti.
- Principi di Programmazione funzionale.
- Principi di Programmazione Orientata agli Oggetti: Classe, Interfaccia e implementazione nascosta. Il linguaggio Java.
- UML (Unified Modeling Language): il “diagramma di classi” per l'analisi, la progettazione e la documentazione.
- Ereditarietà. Composizione di oggetti e delega di messaggi. Le classi astratte.
- Classi come Tipi. Polimorfismo per sottotipo e polimorfismo parametrico.
- Programmazione test-driven.
- Argomenti avanzati: Le lambda-expressions, La dependency-injection.
- Applicazioni.
Modalità d'esame
L'esame consiste in:
- Un progetto (da svolgere singolarmente) per valutare la capacità di applicare le metodologie presentate nel corso;
- Una prova scritta per verificare le conoscenze base introdotte nel corso, possono partecipare allo scritto solo coloro che hanno consegnato il progetto;
- Un colloquio orale (opzionale) per discutere il progetto e per valutare le competenze acquisite.
Progetti
- Giugno/Luglio 2020 (FAQ)
Esami
Date Prove Scritte A.A. 2019/2020 (Esempio Compito)
- 11/06/2020, Ore 10:00, Aula AA1 Polo Lodovici;
- 30/06/2020, Ore 10:00, Aula AA1 Polo Lodovici;
- 16/07/2020, Ore 10:00, Aula AA1 Polo Lodovici;
- 08/09/2020, Ore 10:00, Aula AB1 Polo Lodovici;
- 24/09/2020, Ore 10:00, Aula AB1 Polo Lodovici;
- 04/02/2021, Ore 10:00, Aula AB1 Polo Lodovici;
- 25/02/2021, Ore 10:00, Aula AB1 Polo Lodovici.