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.
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.
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.
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
Vengono applicati anche alcuni package fondamentali quali quelli per la gestione dei flussi di IO, Collection, Map
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
(*) 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.
"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
reperibile su Studiun
Argomenti | Riferimenti 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. | |
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, Collection e Map | |
15 | (*)Multithreading | |
16 | cenni 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 |
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
es. domande orali:
discutere polimorfismo, encapsulation, concorrenza nei thread, tipi parametrici, mappe, exception
es. di prove pratiche reperibili su studium