PROGRAMMAZIONE E MODELLAZIONE A OGGETTI
OBJECT-ORIENTED PROGRAMMING AND MODELING
A.A. | CFU |
---|---|
2024/2025 | 9 |
Docente | Ricevimento studentesse e studenti | |
---|---|---|
Sara Montagna | Giovedì h 11-13 |
Didattica in lingue straniere |
---|
Insegnamento con materiali opzionali in lingua straniera
Inglese
La didattica è svolta interamente in lingua italiana. I materiali di studio e l'esame possono essere in lingua straniera. |
Assegnato al Corso di Studio
Giorno | Orario | Aula |
---|
Giorno | Orario | Aula |
---|
Obiettivi Formativi
Al termine dell'insegnamento, 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 alcuni aspetti avanzati quali la gestione delle interfacce grafiche e degli eventi.
Programma
01. Paradigmi di programmazione
01.01 Sistemi Software, Linguaggi e Paradigmi di Programmazione
01.02 Elementi base dei principi della programmazione Object-Oriented
02. Unified modeling language (UML)
02.01 Introduzione a UML
02.02 Diagrammi di struttura: classi, oggetti, package
02.03 Diagrammi di comportamento: casi d’uso
03. Le basi della programmazione object oriented in linguaggio Java
03.01 Introduzione al linguaggio. Classi ed oggetti in Java
03.02 Tipi di dato in Java, Java imperativo e strutturato
03.03 Associazione, aggregazione, composizione di oggetti in Java
03.04 Interfacce, subtyping e polimorfismo inclusivo
03.05 Ereditarietà e classi astratte
04. Il linguaggio Java: aspetti avanzati
04.01 Polimorfismo parametrico: generici e wildcards
04.02 Java Collections Framework
04.03 Gestione delle eccezioni
04.05 Meccanismi avanzati: classi innestate, classi innestate statiche, classi anonime, enum, lambda expressions, Optional e stream
05. Graphical User Interface
05.01 Swing e Pattern Observer
06. Design pattern
06.01 Introduzione ai design pattern
06.02 Pattern creazionali
06.03 Pattern strutturali
06.04 Pattern comportamentali
07 Attività di Laboratorio Java base
07.01 L’ambiente di sviluppo integrato Visual Studio e/0 Eclipse
07.02 Sviluppo guidato di una semplice classe
07.03 Programmazione strutturata in java e Package
07.04 Implementazione di interfacce in java
07.05 Sviluppo di una gerarchia di classi e uso del polimorfismo
08 Attività di Laboratorio Java avanzato
08.01 Sviluppo di una collezione generica e gestione delle eccezioni
08.02 Sviluppo di GUI reattive
08.03 Implementazione di un design pattern
08.04 Esercizi su meccanismi avanzat in Javai: nesting, classi anonime, lambda, stream
09 Sviluppo di sistemi software
09.01 Decentralised Version Control System (introduzione a git)
09.02 Principi di JUnit 5
Eventuali Propedeuticità
Non vi sono propedeuticità obbligatorie, tuttavia si suggerisce di seguire l'insegnamento dopo aver sostenuto gli esami di Programmazione Procedurale e Algoritmi e Strutture Dati.
Risultati di Apprendimento (Descrittori di Dublino)
Conoscenza e comprensione
Lo studente acquisirà le competenze necessarie per riconoscere ed utilizzare il paradigma di programmazione Object-Oriented e la programmazione software. Lo studente acquisirà padronanza nell’utilizzo della notazione visuale UML per la modellazione del software. Lo studente sarà in grado di capire il funzionamento e l’utilità dei principali "design pattern" come modelli logici di soluzione a problemi frequentemente ricorrenti nelle fasi di progettazione e sviluppo del software.
Capacità di applicare conoscenza e comprensione
Lo studente sarà in grado di applicare le pratiche più diffuse nella modellazione visuale tramite UML. Sarà inoltre in grado di applicare soluzioni standard a problemi ricorrenti nello sviluppo software e di sviluppare software utilizzando il linguaggio di programmazione Java.
Autonomia di giudizio
Lo studente sarà in grado di valutare una architettura software in termini di modularità, manutenibilità, validità delle astrazioni implementate, struttura e livello di riuso del codice.
Abilità communicative
Lo studente sarà in grado di usare in modo appropriato la terminologia dei linguaggi di programmazione ad oggetti e dei design pattern.
Capacità di apprendimento
Lo studente acquisirà la capacità di apprendere le peculiarità sintattiche e semantiche di qualsiasi linguaggio di programmazione ad oggetti.
Materiale Didattico
Il materiale didattico predisposto dalla/dal docente in aggiunta ai testi consigliati (come ad esempio diapositive, dispense, esercizi, bibliografia) e le comunicazioni della/del docente specifiche per l'insegnamento sono reperibili all'interno della piattaforma Moodle › blended.uniurb.it
Modalità Didattiche, Obblighi, Testi di Studio e Modalità di Accertamento
- Modalità didattiche
Lezioni teoriche ed esercitazioni guidate in laboratorio.
- Obblighi
Sebbene fortemente consigliata, la frequenza non è obbligatoria.
- Testi di studio
- Bruce Eckel. Thinking in Java -- Fourth Edition, Prentice Hall, 2006
(Solo in lingua inglese) - Fowler, "UML Distilled", Addison-Wesley, 2003.
(Fowler, "UML Distilled", Pearson Italia (Addison-Wesley), 2018). - Gamma, Helm, Johnson, Vlissides, "Design Patterns: Elements of Reusable Object-Oriented Software", Addison-Wesley, 1995.
(Gamma, Helm, Johnson, Vlissides, "Design Patterns: Elementi per il riuso di software ad oggetti", Pearson Italia (Addison-Wesley), 2002). - Cay Horstmann, "Concetti di Informatica e Fondamenti di Java" Maggioli Editore Ed. 7 anno 2020
- Bruce Eckel. Thinking in Java -- Fourth Edition, Prentice Hall, 2006
- Modalità di
accertamento Prova scritta, progetto da svilupparee prova orale.
La prova scritta, è superata se il voto è almeno di 18/32; il voto rimane valido per l'anno solare in cui la prova viene ritenuta sufficiente. La prova verterà su tutti i moduli del programma (paradigmi di programmazione Object-Oriented, UML, Java, OOP e Design Pattern) e consiste in una prova in laboratorio di sviluppo e un insieme di domande di teoria. La prova scritta va svolta in 2 ore. Durante la prova scritta non è possibile consultare alcun materiale ad eccezione della javadoc. Qualora si sostenga di nuovo lo scritto in un appello d'esame successivo il voto precedente viene annullato anche in caso di mancata consegna. La prova scritta è erogata su blended.uniurb.it: per accedere alla prova è necessario essere in possesso di username e passward per accedere alla piattaforma moodle d'Ateneo.
Il progetto è costituito da: una relazione sul lavoro svolto e codice sorgente pubblicato su GitHub. Relazione e codice sorgente vanno consegnati una settimana prima della demo in presenza e della discussione attraverso prova orale. La specifica del progetto è a tema libero ma va concordata col docente. Il progetto deve essere svolto in gruppi, con un numero di componenti variabile tra 2 e 4. Il progetto è ritenuto sufficiente se ottiene una valutazione di almeno 18/30.
La prova orale, che può essere sostenuta solo dopo aver ottenuto un voto positivo allo scritto, e aver consegnato il progetto, consiste in una discussione del progetto ed eventualmente qualche domanda relativa a perplessità emerse sulla prova scritta. Attraverso la prova orale verrà valutato il progetto, che peserà per il 40% del voto finale, mentre lo scritto inciderà per il 60%. La combinazione di questi punteggi determinerà il voto finale.
La consegna e discussione del progetto è possibile solo a valle del superamento dello scritto. Nel caso di gruppi in cui non tutti i componenti hanno superato lo scritto, discutono il progetto solo coloro che hanno un voto positivo allo scritto: gli altri faranno la discussione successivamente. Un risultato positivo ottenuto alla prova scritta ha validità per tutta la durata dell'anno solare: questo significa che non vi sono vincoli nel presentare e discutere il progetto nella stessa sessione in cui si supera l'esame scritto, ma se non viene presentato il progetto e sostenuta la prova orale entro l'anno solare in cui si è superata la prova scritta, il voto positivo ottenuto allo scritto viene annullato.
Durante le lezioni verranno comunicati i dettagli riguardo alla struttura delle prove.
- Disabilità e DSA
Le studentesse e gli studenti che hanno registrato la certificazione di disabilità o la certificazione di DSA presso l'Ufficio Inclusione e diritto allo studio, possono chiedere di utilizzare le mappe concettuali (per parole chiave) durante la prova di esame.
A tal fine, è necessario inviare le mappe, due settimane prima dell’appello di esame, alla o al docente del corso, che ne verificherà la coerenza con le indicazioni delle linee guida di ateneo e potrà chiederne la modifica.
Informazioni aggiuntive per studentesse e studenti non Frequentanti
- Modalità didattiche
Come per frequentanti.
- Obblighi
Come per frequentanti.
- Testi di studio
Come per frequentanti.
- Modalità di
accertamento Come per frequentanti.
- Disabilità e DSA
Le studentesse e gli studenti che hanno registrato la certificazione di disabilità o la certificazione di DSA presso l'Ufficio Inclusione e diritto allo studio, possono chiedere di utilizzare le mappe concettuali (per parole chiave) durante la prova di esame.
A tal fine, è necessario inviare le mappe, due settimane prima dell’appello di esame, alla o al docente del corso, che ne verificherà la coerenza con le indicazioni delle linee guida di ateneo e potrà chiederne la modifica.
« torna indietro | Ultimo aggiornamento: 25/09/2024 |