Università degli Studi di Napoli "Parthenope"

Scheda dell'insegnamento

Anno accademico: 
2016/2017
Tipologia di insegnamento: 
Caratterizzante
Tipo di attività: 
Obbligatorio
Corso di afferenza: 
Corso di Laurea triennale (DM 270) in INFORMATICA
Settore disciplinare: 
INFORMATICA (INF/01)
Lingua: 
Italiano
Crediti: 
6
Anno di corso: 
3
Docenti: 
Ciclo: 
Primo Semestre
Ore di attivita' frontale: 
48

Obiettivi

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.

Prerequisiti

Conoscenza dei fondamentali paradigmi di programmazione e dei linguaggi C e C++

Contenuti

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)

Sommario dei contenuti
# Introduzione alla programmazione Object Oriented (OO) (2 ore)
# Primo approccio alla programmazione OO (2 ore)
# Le basi della programmazione OO (2 ore)
# Tipi di dati fondamentali (2 ore)
# Decisioni e iterazioni (2 ore)
# Paradigmi della programmazione OO (2 ore)
# Ereditarietà (2 ore)
# Classi astratte ed interfacce (2 ore)
# Polimorfismo (2 ore)
# Tipi generici (2 ore)
# Gestione delle eccezioni (2 ore)
# Enumerazione e tipi innestati (2 ore)
# Annotazioni (2 ore)
# Gestione dei thread (2 ore)
# Principi di ingegneria del software (2 ore)
# UML e Java (2 ore)
# Principi di OO Design (4 ore)
# Principi di Design Pattern (4 ore)
# I/O (2 ore)
# Interfacce grafiche (2 ore)
# Java Database Connectivity (2 ore)
# Web Applications (2 ore)

Metodi didattici

Lezioni frontali del docente, lezioni in laboratorio del docente con il supporto di tutor; esercitazioni in gruppo in aula e in laboratorio sotto la direzione del docente mirate al problem solving

Verifica dell'apprendimento

L’obiettivo della procedura di verifica consiste nel quantificare, per ogni studente, il livello di raggiungimento degli obiettivi formativi precedentemente indicati.
La procedura di verifica è indicata precisamente nella piattaforma di e-learning del Dipartimento di Scienze e Tecnologie. In sintesi, la procedura di verifica consiste in un progetto individuale (60% del voto) e una prova orale (40% del voto). Il progetto deve essere realizzato in linguaggio Java con particolare attenzione agli aspetti dei principi della programmazione OO (i.e., Agile) e i Design Pattern.

Per l’esito positivo della valutazione sono necessari gli esiti positivi di tutte e due le verifiche (progetto, prova orale).

Testi

# materiale sulla piattaforma e-learning
# Manuale di Java 8: Programmazione orientata agli oggetti con Java standard, 8a edizione, C. De Sio Cesari, Hoepli, 2014
# Concetti di informatica e fondamenti di Java 2, edition 5a edizionze, C. S.
Horstmann, Apogeo, 2010
# Design Patterns: Elements of Reusable Object-Oriented Software, E. Gamma, R. Helm, R. Johnson, J. Vlissides (the GangOfFour), AddisonWesley Professional, 1994
# Design Pattern in Java (manuale pratico), S. J. Metsker, Pearson Addison
Wesley, 2003
# Clean Code, R. C. Martin, Prentice Hall, 2009

Altre informazioni