PROGRAMMAZIONE E MODELLAZIONE A OGGETTI
OBJECT-ORIENTED PROGRAMMING AND MODELING
A.A. | CFU |
---|---|
2021/2022 | 9 |
Docente | Ricevimento studentesse e studenti | |
---|---|---|
Sara Montagna | Giovedì h 14-16 preferibilmente su appuntamento |
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
Il corso presenta una panoramica dei concetti alla base dello sviluppo di sistemi software arbitrariamente complessi. Vengono dettagliate le tecniche e le metodologie utilizzate per paradigmi di sviluppo software orientati agli oggetti.
Programma
01. Paradigmi di programmazione
01.01 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. Il 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
03.06 Polimorfismo parametrico: generici e wildcards
03.07 Java Collections Framework
03.08 Gestione delle eccezioni
03.09 Graphical User Interface
03.10 Meccanismi avanzati: classi innestate, classi innestate statiche, classi anonime, enum, lambda expressions
04. Design pattern
04.01 Introduzione ai design pattern
04.02 Pattern creazionali
04.03 Pattern strutturali
04.04 Pattern comportamentali
06 Attività di Laboratorio
06.01 L’ambiente di sviluppo integrato Eclipse
06.02 Sviluppo guidato di una semplice classe
06.03 Sviluppo di una gerarchia di classi e uso del polimorfismo
06.04 Sviluppo di una collezione generica e gestione delle eccezioni
06.05 Implementazione di un design pattern
06.06 Meccanismi avanzati: nesting, classi anonime, lambda
06.07 Decentralised Version Control System (introduzione a git)
06.08 Principi di Junit
Eventuali Propedeuticità
Non vi sono propedeuticità obbligatorie, tuttavia si suggerisce di seguire il corso 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 sviluppare individualmente e prova orale.
La prova scritta, è superata se il voto è almeno di 18/32; il voto rimane valido per l'a.a. in cui la prova viene ritenuta sufficiente. La prova verterà sui primi 4 moduli del programma (paradigmi di programmazione Object-Oriented, UML, Java e OOP) e consiste in una prova in laboratorio di sviluppo e un insieme di domande di teoria.
Qualora si sostenga di nuovo lo scritto in un appello d'esame successivo il voto precedente viene annullato anche in caso di mancata consegna.Il progetto è costituito da: una relazione sul lavoro svolto, il codice sorgente pubblicato su GitHub e una demo in presenza. 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. Nel caso di impossibilità a effettuare il progetto in gruppo si prega di discuterne in anticipo con il docente per concordarne le specifiche.
La prova orale consiste in una discussione del progetto e della prova scritta. Attraverso la prova orale verrà valutato il progetto e il risultato della prova orale verrà messo a media aritmetica con il risultato dello scritto, ottenendo così il voto finale.
La consegna e discussione del progetto è possibile solo a valle del superamento dello scritto (si fanno eccezioni nel caso di gruppi in cui solo una piccola parte dei componenti non ha superato lo scritto). Un risultato positivo ottenuto alla prova scritta ha validità per tutta la durata dell'a.a. : 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 sostenuta la prova orale entro l'a.a. in cui si è superata la prova scritta, il voto positivo ottenuto allo scritto viene annullato.
Durante le lezioni verranno comunicati i dettagli riguardo la 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.
« torna indietro | Ultimo aggiornamento: 18/02/2022 |