PROGRAMMAZIONE ORIENTATA AGLI OGGETTI A - L
Anno accademico 2020/2021 - 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
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.
Modalità di svolgimento dell'insegnamento
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.
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
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.
Testi di riferimento
"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
Programmazione del corso
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 |
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
Esempi di domande e/o esercizi frequenti
es. domande orali:
discutere polimorfismo, encapsulation, concorrenza nei thread, tipi parametrici, mappe, exception
es. di prove pratiche reperibili su studium