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).
Il metodo di insegnamento principale è la didattica frontale e le attività di laboratorio.
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.
la frequenza (70%) è richiesta solo agli studenti che intendano sostenere le prove in itinere
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.
"Java. La guida completa" di Herbert Schildt
"Programmazione di base ed avanzata con Java " di Walter Savitch
reperibile su Studiun
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 |
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