Programmazione orientata agli oggetti



Scaricare 21.46 Kb.
26.01.2018
Dimensione del file21.46 Kb.




Dipartimento: DIMES

Corso di Laurea: INGEGNERIA INFORMATICA

Indirizzo Internet Corso di Laurea: www.dimes.unical.it

Nome insegnamento: PROGRAMMAZIONE ORIENTATA AGLI OGGETTI

Condivisione:

Articolazione in moduli: si

Settore Scientifico Disciplinare: ING-INF/05

Docente responsabile:

PUPO FRANCESCO / NIGRO LIBERO

Posizione docente responsabile:

PROFESSORE ASSOCIATO - PROFESSORE ORDINARIO UNIVERSITA’ DELLA CALABRIA

Crediti formativi universitari: 12

Numero ore riservate attività didattiche assistite: 114

Numero ore lezioni: 72

Numero ore esercitazioni: 42

Numero ore riservate studio individuale: 188

Tipologia: ATTIVITA’ DI BASE

Lingua di insegnamento: ITALIANO

Collocazione: I ANNO, II SEMESTRE

Prerequisiti: Fondamenti di Informatica

Il corso approfondisce la programmazione in Java in accordo alla tecnologia degli oggetti. Attraverso lo sviluppo e la messa a punto di esempi/progetti didattici sperimentali, si studiano i concetti della programmazione orientata agli oggetti e la realizzazione di classi di libreria estendibili e riutilizzabili. Si illustrano quindi gli aspetti di sviluppo di software robusto alle eccezioni, dotato di interfaccia utente grafica e capace di essere elaborato in ambiente Internet (es. applet). Il corso illustra, infine, la gestione di strutture dati dinamiche (liste ed alberi binari) e la programmazione ricorsiva.
Competenze da acquisire:


  • comprensione della tecnologia degli oggetti nello sviluppo modulare del software

  • abilità ad impostare la risoluzione di problemi mediante gerarchie di classi riusabili

  • abilità ad implementare una soluzione ad oggetti e a validarne il funzionamento mediante testing

  • abilità ad avvalersi delle classi e metodi della libreria di Java, es. relativamente a liste, insiemi e tabelle

  • abilità a sviluppare classi robuste alle eccezioni, che si interfacciano con il file system e sono dotate di GUI

  • abilità a sviluppare in proprio classi per la gestione di strutture dati dinamiche (liste ed alberi)

  • abilità a sviluppare software mediante la programmazione ricorsiva

  • capacità di saper sfruttare le conoscenze acquisite anche in altri linguaggi di programmazione, es. C++




Argomenti delle lezioni:

Introduzione alla tecnologia degli oggetti.

Il paradigma degli oggetti. Classi, oggetti e messaggi. Struttura e comportamento: campi, metodi e parametri. Modificatori di accesso. Regole di visibilità dei nomi. Approfondimento delle classi array e stringhe di caratteri. Classi e invarianti.


Gerarchie di oggetti e sviluppo di programmi.

Dal generale al particolare. Progetto di classi per specializzazione di classi esistenti. Definizione di pacchetti di classi riutilizzabili. Operazione di assegnazione tra oggetti e casting sui riferimenti. Polimorfismo e collegamento dinamico ai metodi. La classe Object e i metodi toString(), equals(). hashCode(), clone(). Linee guida al progetto generale di una classe riusabile. Classi astratte e interfacce. Relazioni d’ordine tra gli oggetti di una classe. Risoluzione di problemi mediante il progetto e la messa a punto di gerarchie di classi. Organizzazione delle fasi di testing.


Gestione delle eccezioni e classi della libreria di Java.

Il meccanismo delle eccezioni di Java. Regole di progetto di classi di eccezioni. Panoramica sulle classi della libreria di Java. Classi wrapper e tipi primitivi. Classi e interfacce di utilità. Liste, insiemi e mappe di java.util e loro utilizzo pratico. Cenni ai tipi generici. Introduzione ai flussi di ingresso/uscita e file.


Elementi di programmazione dell’interfaccia utente grafica (GUI)

Principali classi per il progetto di semplici applicazioni provviste di GUI.


Elementi di C++

Analogie e differenze tra Java e C++. Breve guida alla programmazione in C++.


Approfondimento gestione di flussi e file.

Altre classi per la gestione di flussi e file. File ad accesso diretto. Serializzazione degli oggetti.


Strutture dati dinamiche e programmazione ricorsiva.

Gestione di una lista concatenata. Classi per la gestione di liste lineari: pila, coda, doppia coda etc. Implementazione sequenziale e concatenata. La lista doppia. Classi parametriche e meccanismo dei tipi generici. Approfondimento del framework delle collection di Java. Tecniche di programmazione ricorsiva. Esempi di problemi risolti ricorsivamente. Trasformazione ricorsione-iterazione. Alberi binari di ricerca. Sviluppo di classi per la gestione di strutture ad albero binario. Ricorsione e strutture dati dinamiche. Stack e heap di un programma Java.


Interfaccia utente e applet.

Programmazione pilotata dagli eventi. Il modello di delegazione degli eventi di Java AWT e swing. Sorgenti di eventi ed ascoltatori. Contenitori e componenti di una GUI. Ridisegno di oggetti grafici. Gestione eventi del mouse e della tastiera. Applicazioni ed applet. Aggancio di applet a pagine HTML. Scaricamento remoto di applet da Internet e problemi di sicurezza. Sviluppo di applicazioni dotate di GUI. Cenni alla struttura multi-thread.


Sviluppo di qualche case study significativo.


Argomenti delle esercitazioni:

• Progetto e realizzazione di classi basate sui concetti presentati a lezione. Sviluppo e verifica di progetti didattici sperimentali.



Modalità di frequenza: OBBLIGATORIA

Modalità di svolgimento delle lezioni:

In aula, con metodologie tradizionali e con l’uso di trasparenze e proiettore collegato al PC.



Modalità di svolgimento delle esercitazioni:

In aula, con metodologie tradizionali e proiettore collegato al PC.




Metodi di valutazione:

Sviluppo di un progetto, prova scritta e prova orale obbligatoria.



Testi di riferimento:

L. Nigro, Appunti dalle lezioni di Programmazione orientata agli oggetti, 2008.

Cay S. Horstmann, Concetti di informatica e fondamenti di Java, Nuova edizione per le versioni 5 e 6 del linguaggio, Apogeo 2007.

Cay S. Horstmann, Gary Cornell, Core Java, Vol. 1-Fundamentals, 8 Edizione (in inglese), Pearson Education, 2008.



S. Mazzanti, V. Milanese, Programmazione di applicazioni grafiche in Java. Apogeo, 2006.


Orario e aule lezioni:

www.dimes.unical.it

Calendario prove valutazione:




©astratto.info 2017
invia messaggio

    Pagina principale