Conoscenza e comprensione
Il corso introduce alla conoscenza della programmazione orientata agli oggetti.
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.
Capacità di applicare conoscenza e comprensione
Il corso, inoltre, fornisce allo studente le tecniche e gli strumenti per lo sviluppo di programmi applicativi mediante l'utilizzo del linguaggio di programmazione Java, utilizzando anche i concetti di programmazione parametrica e multithread.
Autonomia di giudizio (Ability of making judgements)
Lo studente sarà in grado di valutare il funzionamento di un programma scritto utilzzando un linguaggio per la programmazione orientata agli oggetti, di comprendere eventuali problemi e possibili soluzioni canoniche.
Abilità comunicative (Communication skills)
Il corso fornisce la conoscenza della programmazione orientata agli oggetti e del vocabolario tecnico ad essa associato.
Capacità di apprendimento (Learning skills)
Il corso fornisce la capacità di apprendere i concetti propri del paradigma di programmazione orientato agli oggetti, necessari per intraprendere futuri studi di diversi linguaggi OOP in autonomia.
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 strutture dati statiche e dinamiche. File, liste, pile, code, hash table, 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 di eccezione, di processi e multithreading, di concorrenza, compresi semafori e monitor.
Lo studente è tenuto a frequentare almeno il 70% delle lezioni del corso per poter sostenere le prove in itinere.
La frequenza non è richiesta, seppure fortemente consigliata, per sostenere la prova di esame.
Il corso presenta la programmazione ad oggetti, mostrandone le principali caratteristiche ed utilizzando Java come principale linguaggio di riferimento.
Vengono trattati i concetti base di classe e oggetto, i principi fondamentali di encapsulation, polimorfismo, ereditarietà, exception handling. Questi aspetti vengono applicati alla programmazione in Java.
Vengono approfonditi i concetti di programmazione parametrica e generics, multithreading, socket.
Vengono analizzati anche alcuni package fondamentali, quali quelli per la gestione dei flussi di IO, Collections.
Herbert Schildt, “Java. La guida completa” McGraw-Hill Education; 8. edizione (1 marzo 2012) ISBN-10:8838667667
Argomenti | Riferimenti testi | |
1 | (*) Concetto di ''oggetto''. Relazione tra oggetti. Concetto di ''classe'' e di ''interfaccia''. Contratto di una classe. | Capitolo 2 |
2 | (*) Principi di base della programmazione ad oggetti: incapsulamento, ereditatietà e polimorfismo. | Capitolo 2 |
3 | Uso di un IDE per la programmazione Java: es. NetBeans | Manuale dell'IDE |
4 | (*) Il linguaggio di programmazione ad oggetti di riferimento: Java | Capitoli 3, 4 e 5 |
5 | (*) Incapsulamento e modificatori di accesso | Capitoli 6 e 7 |
6 | (*) Ereditarietà e polimorfismo | Capitolo 8 |
7 | (*) Classi astratte ed interfacce e Package | Capitolo 9 |
8 | (*) Gestione delle eccezioni | Captiolo 10 |
9 | Gestione delle stringhe | Capitolo 15 (fino a 15.9) |
10 | I/O package | Capitolo 13 (fino a 13.10) e capitolo 19 |
11 | (*) Programmazione parametrica | Capitolo 14 |
12 | Enumerazioni autoboxing | Capitolo 12 (fino a 12.3) |
13 | Collections | Capitolo 17 (fino a 17.5) |
14 | (*) Multithreading | Capitolo 11 |
15 | Le classi e le interfacce di rete: i socket | Capitolo 21 |
16 | (*) 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. |
La prova d'esame è composta da una prova scritta e da una prova orale.
La prova scritta è rappresentata da un elaborato al calcolatore che prevede la conoscenza di tutti gli argomenti in programma.
Sono previste 2 prove in itinere durante il corso: 1a parte fino ad eccezioni incluse (primi 9 item del programma); 2a parte sul resto del programma.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza e pertanto l'esame potrebbe essere svolto a distanza son modalità differenti.
Gli esercizi, esempi di prove in itinere o compiti d'esame sono disponibili su studium (studium.unict.it)