70219 - PROGRAMMAZIONE AD OGGETTI

Scheda insegnamento

Anno Accademico 2017/2018

Conoscenze e abilità da conseguire

Al termine del corso, lo studente possiede le conoscenze di base del paradigma object-oriented per la costruzione del software, dei suoi principali pattern di progettazione, della sua incarnazione nel linguaggio di programmazione Java e relativo framework, includendo aspetti avanzati quali la gestione delle interfacce grafiche, del multi-threading, e degli eventi.

Programma/Contenuti

- Elementi base di programmazione e progettazione object-oriented - Il caso del linguaggio Java: panoramica e tool di sviluppo. - Funzionalità base: Classi, oggetti, mettodi, campi, istanziazione - Polimorfismo, ereditarietà e riuso: interfacce e classi astratte - Aspetti avanzati: genericità, annotazioni, eccezioni, classi innestate, lambda expressions.  - Librerie base per la costruzione di programmi - La gestione dell'I/O e della grafica - Elementi di programmazione concorrente in Java - Pattern di progettazione e tecniche di programmazione efficace  - Strumenti di sviluppo: JDK, Eclipse, Mercurial

Testi/Bibliografia

Testo di riferimento per il corso:
Bruce Eckel. Thinking in Java -- Fourth Edition
Testi aggiuntivi:
Joshua Block. Effective Java -- Second Edition   Erich Gamma, Richard Elm, Ralph Johnson, John Vlissides. Design Patterns
Il corso si avvarrà anche di tutorial e documentazione tecnica disponibile in rete

Metodi didattici

9 ore di lezione alla settimana, di norma 6 in aula e 3 in laboratorio.

In aula vengono illustrate le tecniche di programmazione ad oggetti, i dettagli del linguaggio di programmazione Java, e vengono svolti esercizi stimolando la discussione critica con gli studenti.

In laboratorio, vengono illustrati i vari tool di sviluppo, e vengono assegnati task di sviluppo per esercitare le capacità pratiche degli studenti.

Modalità di verifica dell'apprendimento

La verifica avviene in due fasi, non necesariamente ordinate:

1) Prova pratica su programmazione Java in laboratorio. Attraverso 2 esercizi di programmazione Java, che includono test automatizzati o riguardano la produzione di semplici interfacce grafiche, si verifica la capacità dello studente di concludere in tempi brevi e con competenza un semplice task di programmazione/progettazione in Java.     

2) Colloquio orale con presentazione di un progetto. A gruppi di 3 persone circa, gli studenti realizzano un progretto di sviluppo software, producendo una relazione che evidenzia requisiti,progrettazione e implementazione. La valutazione di tale relazione include il controllo di qualità della soluzione, e la discussione delle scelte progettuali.

Strumenti a supporto della didattica

Slide proiettate a lezione e pubblicate sul sito del docente in anticipo   Software: Java Development Kit, Eclipse

Link ad altre eventuali informazioni

http://apice.unibo.it/xwiki/bin/view/MirkoViroli/

Orario di ricevimento

Consulta il sito web di Mirko Viroli

Consulta il sito web di Danilo Pianini