PROGRAMMAZIONE ORIENTATA AGLI OGGETTI M - Z

Anno accademico 2019/2020 - 2° anno
Docente: Giuseppe MANGIONI
Crediti: 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:
ENGLISH VERSION

Obiettivi formativi

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.

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 e introduce il modello di programmazione ad eventi.


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 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.


Frequenza lezioni

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.


Contenuti del corso

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.


Testi di riferimento

Herbert Schildt, “Java. La guida completa” McGraw-Hill Education; 8. edizione (1 marzo 2012) ISBN-10:8838667667



Programmazione del corso

 ArgomentiRiferimenti 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  
3Cenni di UML e regole di progettazione del softwareDispensa del docente 
4Uso di un IDE per la programmazione Java: es. NetBeansDispensa del docente 
5(*) Il linguaggio di programmazione ad oggetti di riferimento: JavaCapitoli 3, 4 e 5 
6(*) Incapsulamento e modificatori di accessoCapitoli 6 e 7 
7(*) Ereditarietà e polimorfismoCapitolo 8 
8(*) Classi astratte ed interfacce e PackageCapitolo 9 
9(*) Gestione delle eccezioniCaptiolo 10 
10Gestione delle stringheCapitolo 15 (fino a 15.9) 
11I/O packageCapitolo 13 (fino a 13.10) e capitolo 19 
12(*) Programmazione parametricaCapitolo 14 
13Enumerazioni autoboxingCapitolo 12 (fino a 12.3) 
14CollectionsCapitolo 17 (fino a 17.5) 
15(*) MultithreadingCapitolo 11 
16 Le classi e le interfacce di rete: i socketCapitolo 21 
17(*) 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. 

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

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.

  • Il superamento delle due prove, valutate di pari peso, può essere sostitutivo dell’esame.
  • Le prove in itinere sono elaborati al calcolatore che dimostrano la capacità di sviluppo di semplici programmi in Java.
  • Il superamento delle due prove può essere sostitutivo dell’esame per lo studente che abbia superato entrambe le prove in itinere ottenendo una valutazione complessiva di almeno 18/30.
  • La valutazione delle prove verrà fornita a conclusione del corso

Esempi di domande e/o esercizi frequenti

Gli esercizi, esempi di prove in itinere o compiti d'esame sono disponibili su studium (studium.unict.it)