PROGRAMMAZIONE ORIENTATA AGLI OGGETTI A - L

ING-INF/05 - 6 CFU - 2° semestre

Docente titolare dell'insegnamento

ANTONELLA DI STEFANO


Obiettivi formativi

Conoscenza e comprensione

Il corso introduce alla programmazione ad oggetti, mostrandone le principali caratteristiche e prendendo come principale linguaggio di riferimento Java.
lo scopo è che l'allievo acquisisca le competenze per poter programmare ad oggetti, applicando coerentemente ed efficacemente gli strumenti messi a disposizione dal linguaggio.

Il corso ha l'obiettivo primario di fornire allo studente i concetti base di classe e oggetto e i principi fondamentali di encapsulation, polimorfismo, ereditarietà e i meccanismi di gestione delle ecccezioni.

obiettivo del corso è fornire allo studente i concetti base di classe e oggetto e i principi fondamentali di encapsulation, polimorfismo, ereditarietà e i meccanismi di gestione delle eccezioni, ma anche i concetti di programmazione parametrica e multithread e di programmazione ad eventi (cenni).

Capacità di applicare conoscenza e comprensione

l'approccio by example mira a sviluppare nello studente la capacita di organizzare un software ad oggetti. Il corso, fornisce allo studente le tecniche e gli strumenti per lo sviluppo di programmi applicativi adottando Java come linguaggio di programmazione ad oggetti di riferimento. Utilizzando alcuni package universalmente noti per la gestione dei flussi di I/O e alle Collection e Map, e analizzando e applicando concetti di programmazione parametrica e multithread l'allievo avrà modo di cominciare ad apprendere le best practice di strutturazione codice ad oggetti. L'uso di un IDE sin dai primi passi del corso mira a sollecitare nello studente la capacità di definire e organizzare gli oggetti, le loro resposabilità e relazioni.


Modalità di svolgimento dell'insegnamento

Il metodo di insegnamento principale è la didattica frontale e le attività di laboratorio.

Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.


Prerequisiti richiesti

Concetti di programmazione strutturata, il linguaggio C per istruzioni e tipi di dati,

Conoscenze delle principali struttura dati statiche e dinamiche. File, liste, pile, code hash table e alberi e i relativi algoritmi classici di manipolazione

Concetti di base di sistema operativo e sw di base (es. variabili ambiente) e comandi di sistema, i concetti di interrupt e ed eccezioni, processi e multithreading, concorrenza, semafori e monitor.



Frequenza lezioni

la frequenza (70%) è richiesta solo agli studenti che intendano sostenere le prove in itinere



Contenuti del corso

Il corso presenta la programmazione ad oggetti, mostrandone le principali caratteristiche e prendendo come principale linguaggio di riferimento Java.


Vengono trattati i concetti base di classe e oggetto e i principi fondamentali di encapsulation, polimorphism, inheritance, exception handling. questi aspetti vengono applicati alla programmazione java.

Vengono approfonditi i concetti di programmazione parametrica e generics, multithreading

Vengono applicati anche alcuni package fondamentali quali quelli per la gestione dei flussi di IO, Collection, Map

 

argomenti di programma

  1. 1 (*) Concetto di ''oggetto''. Relazione tra oggetti. Concetto di ''classe'' e di ''interfaccia''. Contratto di una classe.

  2. 2 (*) Principi di base della programmazione ad oggetti: incapsulamento, ereditatietà e polimorfismo.

  3. 3 Cenni di UML e regole di progettazione del software

  4. 4 Uso di un IDE per la programmazione Java: es. NetBeans

  5. 5 (*) Il linguaggio di programmazione ad oggetti di riferimento: Java

  6. 6 (*) Incapsulamento e modificatori di accesso

  7. 7 (*) Ereditarietà e polimorfismo

  8. 8 (*) Classi astratte ed interfacce e Package

  9. 9 (*) Gestione delle eccezioni

  10. 10 Gestione delle stringhe

  11. 11 I/O package

  12. 12 (*) Programmazione parametrica

  13. 13 Enumerazioni autoboxing

  14. 14 Collections

  15. 15 (*) Multithreading

  16. (*) indica conoscenze minime irrinunciabili per il superamento dell'esame.

  17. La conoscenza degli argomenti contrassegnati con l'asterisco è condizione necessaria ma non sufficiente per il superamento dell'esame. Rispondere in maniera sufficiente o anche più che sufficiente alle domande su tali argomenti non assicura, pertanto, il superamento dell'esame.



Testi di riferimento

"Concetti di informatica e fondamenti di Java" di Cay S. Horstmann

"Java. La guida completa" di Herbert Schildt

"Programmazione di base ed avanzata con Java " di Walter Savitch


Altro materiale didattico

reperibile su Studiun



Programmazione del corso

 ArgomentiRiferimenti testi
1(*)Concetto di ''oggetto''. Relazione tra oggetti. Concetto di ''classe'' e di ''interfaccia''. Contratto di una classe. 
2(*)Principi di base della programmazione ad oggetti: incapsulamento, ereditatietà e polimorfismo. 
3Cenni di UML e regole di progettazione del software 
4Uso di un IDE per la programmazione Java: es. NetBeans 
5(*)il linguaggio di programmazione ad oggetti di riferimento: Java 
6(*)Incapsulamento e modificatori di accesso 
7(*)Ereditarietà e polimorfismo 
8(*)Classi astratte ed interfacce e Package 
9(*)Gestione delle eccezioni 
10Gestione delle stringhe 
11I/O package 
12(*)Programmazione parametrica,  
13Enumerazioni autoboxing 
14(*)Collections, Collection e Map 
15(*)Multithreading  
16cenni sulle classi e le interfacce di rete: i socket 
17(*) indica conoscenze minime irrinunciabili per il superamento dell'esame: la loro conoscenza è condizione necessaria ma non sufficiente per il superamento dell'esame 


Verifica dell'apprendimento


MODALITÀ DI VERIFICA DELL'APPRENDIMENTO

1) una prova pratica al calcolatore:
programma in linguaggio Java)

2) una successiva prova orale, in caso di superamento della prova precedente in base ad una soglia minima di ammissione 



ESEMPI DI DOMANDE E/O ESERCIZI FREQUENTI

es. domande orali:

discutere polimorfismo, encapsulation, concorrenza nei thread, tipi parametrici, mappe, exception

es. di prove pratiche reperibili su studium




Apri in formato Pdf English version