Università degli Studi di Urbino Carlo Bo / Portale Web di Ateneo


PROGRAMMAZIONE E MODELLAZIONE A OGGETTI
OBJECT-ORIENTED PROGRAMMING AND MODELING

A.A. CFU
2024/2025 9
Docente Email 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

Informatica – Scienza e Tecnologia (L-31)
Curriculum: PERCORSO COMUNE
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 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
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


Il tuo feedback è importante

Raccontaci la tua esperienza e aiutaci a migliorare questa pagina.

Posta elettronica certificata

amministrazione@uniurb.legalmail.it

Social

Università degli Studi di Urbino Carlo Bo
Via Aurelio Saffi, 2 – 61029 Urbino PU – IT
Partita IVA 00448830414 – Codice Fiscale 82002850418
2024 © Tutti i diritti sono riservati

Top