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


PROGRAMMAZIONE E MODELLAZIONE A OGGETTI
OBJECT-ORIENTED PROGRAMMING AND MODELING

A.A. CFU
2021/2022 9
Docente Email 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

Informatica Applicata (L-31)
Curriculum: PERCORSO COMUNE
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 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 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


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