PROGRAMMAZIONE ORIENTATA AGLI OGGETTI - canale 1
Anno accademico 2018/2019 - 2° annoCrediti: 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: 2°
APRI IN FORMATO PDF 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 (*) 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.
-
3 Cenni di UML e regole di progettazione del software
-
4 Uso 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
-
10 Gestione delle stringhe
-
11 I/O package
-
12 (*) Programmazione parametrica
-
13 Enumerazioni autoboxing
-
14 Collections
-
15 (*) Multithreading
-
16 Programmazione ad eventi
-
17 Interfacce grafiche
-
18 Le classi e le interfacce di rete: i socket
-
(*) indica conoscenze minime irrinunciabili per il superamento dell'esame.
-
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
Argomenti | Riferimenti 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 |
3 | Cenni di UML e regole di progettazione del software | |
4 | Uso di un IDE per la programmazione Java: es. NetBeans | |
5 | (*)il linguaggio di programmazione ad oggetti di riferimento: Java | cap 3,4,5 |
6 | (*)Incapsulamento e modificatori di accesso | cap 6,7 |
7 | (*)Ereditarietà e polimorfismo | cap 8 |
8 | (*)Classi astratte ed interfacce e Package | cap 9 |
9 | (*)Gestione delle eccezioni | cap 10 |
10 | Gestione delle stringhe | Capitolo 15 (fino a 15.9) |
11 | I/O package | Capitolo 13 (fino a 13.10) e capitolo 19 |
12 | (*)Programmazione parametrica, | cap 14 |
13 | Enumerazioni autoboxing | Capitolo 12 (fino a 12.3) |
14 | (*)Collections | Capitolo 17 (fino a 17.5) |
15 | (*)Multithreading | cap 11 |
16 | Programmazione ad eventi | cap 23 |
17 | Interfacce grafiche | cap 24, 25 |
18 | cenni 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