Il corso intende fornire concetti avanzati per la programmazione orientata agli oggetti. Esso è suddiviso in due parti principali:
# Programmazione orientata agli oggetti
- Object-Oriented Programming (OOP)
- Esercitazioni pratiche in Linguaggio Java
# Metodologie di analisi e progettazione orientate agli
oggetti
- Object Oriented Analysis (OOA)
- Object Oriented Design (OOD)
Conoscenza e capacità di comprensione
Lo studente deve dimostrare di conoscere e saper comprendere i fondamenti dei linguaggi di programmazione procedurali e Orientati agli Oggetti (OO). In particolare, deve conoscere le metodologie di sviluppo e di analisi degli algoritmi dei linguaggi C e C++. Lo studente deve avere la capacità di comprensione di nuove metodologie e tecniche di sviluppo di software basate sul linguaggio Java.
Capacità applicative
Lo studente deve dimostrare di saper utilizzare la propria conoscenza acquisita per la risoluzione di un problema reale mediante il linguaggio Java. Deve inoltre dimostrare capacità di sviluppo e analisi di complessità di algoritmi e validazione del software facendo uso di Design Pattern e Principi di Programmazione "Agile". Capacità devono essere dimostrare, inoltre, per l'uso e la scelta consapevole di librerie e sistemi software per i principali ambiti applicativi e in particolare per il progetto e l'analisi di applicazioni Web.
Autonomia di giudizio
Lo studente deve essere in grado di sapere valutare in maniera autonoma l’efficacia e l’efficienza di una applicazione software nei casi reali.
Abilità nella comunicazione
Lo studente deve essere in grado di redigere una relazione e una presentazione su un'applicazione software realizzata usando Design Pattern, principi di programmazione OO e linguaggio Java. Siccome l'applicazione viene svolta su temi di attualità in informatica e presenta momenti di lavoro in gruppo, lo studente deve dimostrare capacità su questi aspetti.
Capacità di apprendere
Lo studente deve essere in grado di aggiornarsi e approfondire in modo autonomo argomenti e applicazioni software basate sul linguaggio Java, anche accedendo a banche dati, repository on-line di software applicativo e altre modalità messe a disposizione dalla rete. Lo studente deve essere in grado di partecipare a forum per l’aggiornamento continuo delle conoscenze in informatica.