Programmazione ad oggetti 2019/2020

pagine
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.

contenuti
  • Elementi base di programmazione e progettazione object-oriented
  • Il caso del linguaggio Java: panoramica e tool di sviluppo
  • Funzionalità base: Classi, oggetti, metodi, 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
  • Cenno a pattern di progettazione e tecniche di programmazione efficace
  • Strumenti di sviluppo: JDK, Eclipse, Mercurial
  • Panoramica su programmazione e IDE C#
testi / bibliografia
  • Testo di riferimento per il corso:
    • Bruce Eckel. Thinking in Java -- Fourth Edition
  • Testi aggiuntivi:
    • Joshua Bloch. Effective Java -- Second Edition
    • Erich Gamma, Richard Helm, 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 e valutazione dell'apprendimento

La verifica avviene in due fasi, non necessariamente 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 progetto di sviluppo software in Java, producendo una relazione che evidenzia requisiti, progettazione e implementazione. La valutazione di tale relazione include il controllo di qualità della soluzione, e la discussione delle scelte progettuali. In aggiunta, ogni studente presenta anche un mini-elaborato C# che propone una traduzione del proprio codice prodotto nel progetto.
Ogni prova porta ad un punteggio compreso fra 0 e 33, e il voto finale è una media ponderata 60% (migliore dei due voti) - 40% (peggiore dei due voti).

strumenti a supporto della didattica

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

serie di corsi