Stampa del 9/07/2025 21:28
[A000863] OBJECT ORIENTED PROGRAMMING
Informazioni generali
Corso di studi INFORMATICA
Percorso DATA ANALYSIS
Tipo di corso Corso di Laurea
Anno di offerta 2025/2026
Anno di corso 2
Tipo Attività Formativa Caratterizzante
Ambito Discipline Informatiche
Lingua di erogazione INGLESE
Crediti 9 CFU
Tipo attività didattica Lezione, Esercitazione
Tipo esame Orale
Valutazione Voto Finale
Periodo didattico Secondo Semestre (dal 01/03/2026 al 12/05/2026)
Titolari DISTEFANO SALVATORE
Durata 72 ore (36 ore Lezione, 36 ore Esercitazione)
Frequenza Non obbligatoria
Settore scientifico disciplinare INF/01
Sede MESSINA
Obiettivi formativi
l corso mira a fornire solide basi in merito alla programmazione dei calcolatori elettronici per risoluzione di
problemi con il paradigma ad oggetti. L’obiettivo è dunque la programmazione ad oggetti, i cui concetti
verranno prevalentemente spiegati attraverso l’approfondimento del linguaggio Java.
Prerequisiti
Conoscenza dei concetti base della programmazione, la programmazione strutturata ed i costrutti e le
strutture dati principali.
Università degli Studi di Messina Pag. 1 / 2
Contenuti
Introduzione al corso: contenuti, testi di riferimento e modalità esami. Linguaggi di programmazione. Tipi di
linguaggi: imperativi, dichiarativi, funzionali, logici, orientati agli oggetti. Linguaggi macchina. Limiti della
programmazione in linguaggio macchina. Dal linguaggio macchina ai linguaggi ad alto livello. Compilatori
e interpreti. Richiami sulla programmazione strutturata: condizioni, loop, array, files, thread. Dalla
programmazione strutturata alla programmazione a oggetti: tipi astratti di dato, encapsulation, stato e
comportamento, information hiding, interfaccia ed implementazione. Concetti base ed introduzione alla
programmazione ad oggetti: riuso, ereditarietà, astrazione e specializzazione. Classi e oggetti. Vista interna
(developer) ed esterna (user-client). Tipi e sottotipi, interfacce, subtyping e polimorfismo (universale,
parametrizzato, per inclusione, ad-hoc, overloading, casting). Linguaggi ad oggetti e loro proprietà OOP:
principi SOLID, caratteristiche OOP, caratterizzazione principali linguaggi OOP. Il linguaggio Java: storia di
Java e principali caratteristiche. Il compilatore Java ed il bytecode. La Java Virtual Machine: interprete Java,
Class loader, Bytecode Verifier, Memoria, Execution Engine, JIT compiler Programmazione ad oggetti in
Java: struttura del programma java, variabili, condizioni e cicli. Attributi e metodi di classe e d’istanza, il
metodo main e le classi driver, primo programma java. Java API. Classi ed oggetti, modificatori d’accesso,
interfacce, ereditarietà, subtyping e polimorfismo. Gestione delle Eccezioni: eccezioni in Java, try-catch-
finally, checked e unchecked, politiche catch or declare. Files, Streams, Channels e Sockets: gestione di
files, streams via java.io e java.nio Threads: programmazione multithreading, modelli di programmazione
multithreading, generazione e gestione di thread, inter thread communication, thread pooling
Metodi didattici
Lezioni frontali in aula e laboratorio: il corso si svolge prevalentemente attraverso lezioni frontali e seminari
su specifici aspetti disciplinari. Parte delle lezioni verteranno su aspetti pratici/di laboratorio, espletato
prevalentemente in aula attraverso sessioni “hands on” su propri dispositivi (BYOD – Bring Your Own
Device)
Verifica dell'apprendimento
L’esame finale si focalizzerà sul progetto pratico sviluppato dallo studente e su un esame orale.
L’elaborazione del progetto dovrà incentrarsi su OOP, sviluppando un programma utilizzando strettamente la
programmazione ad oggetti documentata da relazione scritta e discussione dei risultati e degli argomenti
teorici relativi al progetto. L'idea progettuale, sulla quale lo studente dispone di massima libertà, deve
tuttavia superare un processo di validazione da parte del docente. Alcuni tra gli elementi utili in un progetto
OOP (JAVA) sono: - Forte connotazione e strutturazione OOP - Modularità, gerarchia, incapsulamento,
subtyping, information hiding, astrazione, specializzazione, ereditarietà (is-a), composizione (has-a),
polimorfismo, gestione delle eccezioni - Sviluppato in java - IL PROGETTO DEVE IMPLEMENTARE IN
PRATICA TUTTI I CONCETTI OOP - LA RELAZIONE DEVE CONTENERE 1 SEZIONE PER
CIASCUNO DEI CONCETTI SOPRA CHE DESCRIVA TRAMITE ESEMPI TRATTI DAL CODICE
IMPLEMENTATO NEL PROGETTO LA SPECIFICA PROPRIETÀ Il progetto dovrà essere consegnato 1
settimana prima della data d’esame e sarà discusso durante l’esame orale, nel quale verra' fatta analisi del
codice e verranno approfonditi gli aspetti teorici a partire dagli spunti dal progetto. L’esame sarà valutato in
trentesimi complessivamente, pesando il progetto per un 70% e l’orale per il 30%
Testi
Java How To Program (Early Objects) by Paul Deitel (Author), Harvey Deitel (Author) - Pearson
Altro
Università degli Studi di Messina Pag. 2 / 2