20810075 - PROGRAMMAZIONE ORIENTATA AGLI OGGETTI

Presentare gli aspetti fondamentali della programmazione orientata agli oggetti, con una enfasi sui concetti di modularizzazione e di riuso del codice e gli aspetti avanzati del paradigma di programmazione orientato agli oggetti. Lo studente che abbia superato il corso dovrà essere in grado di scrivere autonomamente componenti (classi e moduli) per lo sviluppo di applicazioni software di media complessità, nonché partecipare al progetto e alla realizzazione di applicazioni software di grande complessità.

Curriculum

scheda docente | materiale didattico

Programma

Programma
Parte 1: Il Paradigma Orientato agli Oggetti

Il linguaggio di programmazione Java

Classi e Oggetti

Costruttori

Information Hiding

Parte 2: Qualità del codice

Coesione e accoppiamento

Testing

Parte 3: Polimorfismo

Interfacce

Principio di sostituzione, polimorfismo

Ereditarietà

Parte 4: Collezioni

Generics

Mappe, insiemi, liste

Iteratori

Parte 5: Riuso del codice

Ereditarietà: approfondimenti

Classi astratte

Tipi enumerati

Classi nidificate

Parte 6: stream, eccezioni, riflessione, annotazioni

Gestione delle Eccezioni

Stream

Riflessione

Annotazioni

Parte 7: Introduzione alla programmazione concorrente

Java Thread, definizione, creazione, terminazione

Interferenza

Speed-up e problemi di decomposizione parallela

Un modello multi-thread per le applicazioni grafiche

Testi Adottati

Claudio De Sio Cesari , Programmazione Java, Hoepli

Bibliografia Di Riferimento

Non Applicabile

Modalità Frequenza

In presenza, 3 lezioni frontali settimanali

Modalità Valutazione

Prova orale, prova scritta e orale e/o laboratorio

scheda docente | materiale didattico

Programma

Programma
Parte 1: Il Paradigma Orientato agli Oggetti

Il linguaggio di programmazione Java

Classi e Oggetti

Costruttori

Information Hiding

Parte 2: Qualità del codice

Coesione e accoppiamento

Testing

Parte 3: Polimorfismo

Interfacce

Principio di sostituzione, polimorfismo

Ereditarietà

Parte 4: Collezioni

Generics

Mappe, insiemi, liste

Iteratori

Parte 5: Riuso del codice

Ereditarietà: approfondimenti

Classi astratte

Tipi enumerati

Classi nidificate

Parte 6: stream, eccezioni, riflessione, annotazioni

Gestione delle Eccezioni

Stream

Riflessione

Annotazioni

Parte 7: Introduzione alla programmazione concorrente

Java Thread, definizione, creazione, terminazione

Interferenza

Speed-up e problemi di decomposizione parallela

Un modello multi-thread per le applicazioni grafiche

Testi Adottati

Claudio De Sio Cesari , Programmazione Java, Hoepli

Bibliografia Di Riferimento

Non Applicabile

Modalità Frequenza

In presenza, 3 lezioni frontali settimanali

Modalità Valutazione

Prova orale, prova scritta e orale e/o laboratorio

scheda docente | materiale didattico

Programma

Programma
Parte 1: Il Paradigma Orientato agli Oggetti

Il linguaggio di programmazione Java

Classi e Oggetti

Costruttori

Information Hiding

Parte 2: Qualità del codice

Coesione e accoppiamento

Testing

Parte 3: Polimorfismo

Interfacce

Principio di sostituzione, polimorfismo

Ereditarietà

Parte 4: Collezioni

Generics

Mappe, insiemi, liste

Iteratori

Parte 5: Riuso del codice

Ereditarietà: approfondimenti

Classi astratte

Tipi enumerati

Classi nidificate

Parte 6: stream, eccezioni, riflessione, annotazioni

Gestione delle Eccezioni

Stream

Riflessione

Annotazioni

Parte 7: Introduzione alla programmazione concorrente

Java Thread, definizione, creazione, terminazione

Interferenza

Speed-up e problemi di decomposizione parallela

Un modello multi-thread per le applicazioni grafiche

Testi Adottati

Claudio De Sio Cesari , Programmazione Java, Hoepli

Bibliografia Di Riferimento

Non Applicabile

Modalità Frequenza

In presenza, 3 lezioni frontali settimanali

Modalità Valutazione

Prova orale, prova scritta e orale e/o laboratorio