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

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
Programmazione ad Eventi
Un modello concorrente per le applicazioni grafiche
Introduzione a JavaFX

Testi Adottati

Ken Arnold, James Gosling, David Holmes "Il linguaggio Java: Manuale Ufficiale" - Addison Wesley
E' il manuale "ufficiale" del linguaggio.
Cay Horstmann "Concetti di informatica e fondamenti di Java" - APOGEO
Un testo con una forte caratterizzazione didattica
Cay Horstmann, Gary Cornell "Core Java2 Vol I: Fondamenti" - Prentice Hall
Cay Horstmann, Gary Cornell "Core Java2 Vol II: Tecniche avanzate" - Prentice Hall
Testi molto tecnici e approfonditi (coprono anche molti concetti non affrontati nel corso; gli argomenti del corso sono distribuiti su entrambi i volumi)

Bibliografia Di Riferimento

https://sites.google.com/site/roma3poo/

Modalità Erogazione

Il corso mira ad esporre principi, tecniche e metodologie per la programmazione secondo il paradigma orientato agli oggetti, anche da parte di più esecutori concorrenti. Superato il corso, lo studente sarà in grado di: apprezzare e valutare la qualità del codice, realizzare applicazioni OO e partecipare al progetto e alla realizzazione di applicazioni OO di media complessità, apprezzare le prime problematiche e le più importanti opportunità offerte dalla programmazione concorrente. Nel periodo di emergenza COVID-19 l’esame di profitto sarà svolto secondo quanto previsto all’art.1 del Decreto Rettorale n°. 703 del 5 maggio 2020.

Modalità Valutazione

Esame orale da svolgersi davanti ad un calcolatore. Nel periodo di emergenza COVID-19 l’esame di profitto sarà svolto secondo quanto previsto all’art.1 del Decreto Rettorale n°. 703 del 5 maggio 2020

scheda docente | materiale didattico

Mutuazione: 20810075 PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in Ingegneria informatica L-8 CRESCENZI VALTER, CETORELLI VALERIO

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
Programmazione ad Eventi
Un modello concorrente per le applicazioni grafiche
Introduzione a JavaFX

Testi Adottati

Ken Arnold, James Gosling, David Holmes "Il linguaggio Java: Manuale Ufficiale" - Addison Wesley
E' il manuale "ufficiale" del linguaggio.
Cay Horstmann "Concetti di informatica e fondamenti di Java" - APOGEO
Un testo con una forte caratterizzazione didattica
Cay Horstmann, Gary Cornell "Core Java2 Vol I: Fondamenti" - Prentice Hall
Cay Horstmann, Gary Cornell "Core Java2 Vol II: Tecniche avanzate" - Prentice Hall
Testi molto tecnici e approfonditi (coprono anche molti concetti non affrontati nel corso; gli argomenti del corso sono distribuiti su entrambi i volumi)

Bibliografia Di Riferimento

https://sites.google.com/site/roma3poo/

Modalità Erogazione

Il corso mira ad esporre principi, tecniche e metodologie per la programmazione secondo il paradigma orientato agli oggetti, anche da parte di più esecutori concorrenti. Superato il corso, lo studente sarà in grado di: apprezzare e valutare la qualità del codice, realizzare applicazioni OO e partecipare al progetto e alla realizzazione di applicazioni OO di media complessità, apprezzare le prime problematiche e le più importanti opportunità offerte dalla programmazione concorrente. Nel periodo di emergenza COVID-19 l’esame di profitto sarà svolto secondo quanto previsto all’art.1 del Decreto Rettorale n°. 703 del 5 maggio 2020.

Modalità Valutazione

Esame orale da svolgersi davanti ad un calcolatore. Nel periodo di emergenza COVID-19 l’esame di profitto sarà svolto secondo quanto previsto all’art.1 del Decreto Rettorale n°. 703 del 5 maggio 2020

Mutuazione: 20810075 PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in Ingegneria informatica L-8 CRESCENZI VALTER, CETORELLI VALERIO