PROGRAMMAZIONE ORIENTATA AGLI OGGETTI A - L

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

Docente titolare dell'insegnamento

ANTONELLA DI STEFANO


Obiettivi formativi

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.

obiettivo del corso è fornire allo studente

1) i concetti base di classe e oggetto e i principi fondamentali di encapsulation, polimorfismo, ereditarietà e i meccanismi di gestione delle eccezioni nonché concetti di programmazione parametrica e multithread e di programmazione ad eventi (cenni).

2) le tecniche e gli strumenti per lo sviluppo di programmi applicativi mediante l'utilizzo del linguaggio di programmazione Java, utilizzando anche alcuni package universalmente utilizzati relativi alla gestione dei flussi di I/O e alle Collection e Map.


Modalità di svolgimento dell'insegnamento

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


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, socket, GUI

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

 

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. 16 Programmazione ad eventi

  17. 17 Interfacce grafiche

  18. 18 Le classi e le interfacce di rete: i socket

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

  20. 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

"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.cap 1,2 
2(*)Principi di base della programmazione ad oggetti: incapsulamento, ereditatietà e polimorfismo.cap 2 
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: Javacap 3,4,5 
6(*)Incapsulamento e modificatori di accessocap 6,7 
7(*)Ereditarietà e polimorfismocap 8 
8(*)Classi astratte ed interfacce e Packagecap 9 
9(*)Gestione delle eccezionicap 10 
10Gestione delle stringheCapitolo 15 (fino a 15.9) 
11I/O packageCapitolo 13 (fino a 13.10) e capitolo 19 
12(*)Programmazione parametrica, cap 14 
13Enumerazioni autoboxingCapitolo 12 (fino a 12.3) 
14(*)CollectionsCapitolo 17 (fino a 17.5) 
15(*)Multithreading cap 11 
16Programmazione ad eventicap 23 
17Interfacce grafichecap 24, 25 
18cenni sulle classi e le interfacce di rete: i socket 
19(*) 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 





Apri in formato Pdf English version