PROGRAMMAZIONE A OGGETTI - MOD.2
- Anno accademico
- 2020/2021 Programmi anni precedenti
- Titolo corso in inglese
- OBJECT-ORIENTED PROGRAMMING - 2
- Codice insegnamento
- CT0372 (AF:320634 AR:172526)
- Lingua di insegnamento
- Italiano
- Modalità
- In presenza
- Crediti formativi universitari
- 6 su 12 di PROGRAMMAZIONE A OGGETTI
- Livello laurea
- Laurea
- Settore scientifico disciplinare
- INF/01
- Periodo
- II Semestre
- Anno corso
- 2
- Sede
- VENEZIA
- Spazio Moodle
- Link allo spazio del corso
Inquadramento dell'insegnamento nel percorso del corso di studio
L'obiettivo dell’insegnamento è fornire conoscenze relative alla programmazione ad oggetti in generale ed al linguaggio Java in particolare.
Il syllabus verra' aggiornato prima dell'inizio del corso.
Risultati di apprendimento attesi
Come per ogni corso di programmazione è fondamentale che il percorso formativo coniughi elementi metodologici a continui stimoli sperimentali, attraverso l'invito alla risoluzione autonoma di esercizi e problemi applicativi.
Lo studente che avrà frequentato con profitto il corso avrà acquisito una conoscenza approfondita del linguaggio Java e dei principali design pattern e tecniche di programmazione avanzate. Allo stesso tempo potrà contare su una competenza generale per quanto riguarda la programmazione ad oggetti e le regole che sottendono alla progettazione e sviluppo di software secondo tale paradigma. Competenze che potranno essere facilmente trasferite a diversi linguaggi e contesti.
Prerequisiti
Algoritmi imperativi su strutture dati elementari: array, liste, collection, alberi.
Contenuti
. Programmazione ad eventi, callback, anonymous classes
. Eccezioni, error reporting, resource tracking
. Polimorfismo parametrico: generics, constraints, polimorfismo first-class
. Programmazione funzionale pura/impura codificata ad oggetti: lambda espressioni, function objects, closures
. Design pattern: factory, singleton, command, listener-observer, consumer-producer
. Tecniche di programmazione avanzata: type-driven programming ad oggetti
Testi di riferimento
"Effective Java Third Edition"
Addison-Wesley Professional, 2017
Kamalmeet Singh, Adrian Ianculescu, Lucian-Paul Torje
"Design Patterns and Best Practices in Java"
Packt Publishing Ltd, 2018
Modalità di verifica dell'apprendimento
La verifica dell'apprendimento avviene attraverso una prova scritta e una prova orale opzionale.
La prova scritta consiste di esercizi con lo scopo di accertare le abilità acquisite nel risolvere problemi di design e nel rappresentare dati con operazioni complesse tramite un uso avanzato dei tipi. Durante la prova scritta non è ammesso l'uso di libri, appunti, supporti elettronici.
Durante la prova orale (opzionale) lo studente deve dimostrare di conoscere gli argomenti svolti durante il corso e di saperli esporre in modo formale.
La prova orale sarà necessaria o meno a discrezione del docente e dell'esito della prova scritta.
Modalità di esame
Metodi didattici
Altre informazioni
The Java Language Specification (Java SE 11 Edition)
https://docs.oracle.com/javase/specs/jls/se11/html/index.html
The Java Developer Kit (JDK 11)
https://docs.oracle.com/en/java/javase/11/