PROGRAMMAZIONE ORIENTATA AGLI OGGETTI - canale 1

Anno accademico 2018/2019 - 2° anno
Docente: Antonella DI STEFANO
Crediti: 6
SSD: ING-INF/05 - Sistemi di elaborazione delle informazioni
Organizzazione didattica: 150 ore d'impegno totale, 100 di studio individuale, 35 di lezione frontale, 15 di esercitazione
Semestre:
ENGLISH VERSION

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, alle Collection e Map, e alle GUI (Swing e AWT).


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


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, AWT, Swing

 

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



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