PROGRAMMAZIONE A OGGETTI - MOD.1

Anno accademico
2019/2020 Programmi anni precedenti
Titolo corso in inglese
OBJECT-ORIENTED PROGRAMMING - 1
Codice insegnamento
CT0372 (AF:274899 AR:166180)
Modalità
In presenza
Crediti formativi universitari
6 su 12 di PROGRAMMAZIONE A OGGETTI
Livello laurea
Laurea
Settore scientifico disciplinare
INF/01
Periodo
I Semestre
Anno corso
2
Sede
VENEZIA
Spazio Moodle
Link allo spazio del corso
L’insegnamento è una delle attività formative di base del corso di laurea in Informatica che consentono allo studente di acquisire la conoscenza e la comprensione
dei principali paradigmi di programmazione e di acquisire la capacità di progettare e implementare software.
L'obiettivo dell’insegnamento è fornire conoscenze relative al paradigma di programmazione ad oggetti nonché la conoscenza specifica del linguaggio Java.
Il corso mira a sviluppare nello studente la necessaria familiarità con il paradigma della Programmazione ad Oggetti e nel contempo consolidare le basi di programmazione acquisite durante il primo anno.

Come per ogni corso di programmazione è fondamentale che il percorso formativo coniughi elementi metodologici a continui stimoli sperimentali, attraverso l'invito alla risoluzione autonoma di esercizi e problemi applicativi.

Lo studente che avrà frequentato con profitto il corso avrà acquisito una conoscenza approfondita del linguaggio Java e delle sue librerie più importanti. Allo stesso tempo potrà contare su una competenza generale per quanto riguarda la progrmmazione ad oggetti e le regole che sottendono alla progettazione e sviluppo di software secondo tale paradigma. Competenze che potranno essere facilmente trasferite a diversi linguaggi e contesti.
Per affrontare il corso è indispensabile avere una consolidata competenza di programmazione imperativa. Infatti la programmazione ad oggetti non prescinde dala paradigma imperativo, ma piuttosto lo estende arricchendolo di meccanismi che permettono di ottenere proprietà desiderabili in termini di strutturazione, integrazione e compartimentazione del codice realizzato.

Lo studente che abbia incertezze nella programmazione imperativa avrà invitabilmente difficoltà nel seguire il corso, pertanto è invitato a colmarle in anticipo.
Overview dei concetti base che sottendono alla programmazione ad oggetti, principi generali ed analogie con il mondo fisico.

Caratteristiche generali di Java. Organizzazione dei sorgenti e compilazione.

Creazione ed utilizzo di oggetti. Variabili. Tipi riferimento e tipi valore. Accesso alla documentazione.

Introduzione alla programmazione di applicazioni grafiche.

Utilizzo di oggetti di libreria per lo sviluppo di piccole applicazioni.

Progettare e realizzare semplici classi. Migliori pratiche per la progettazione di classi, approfondimenti su valore e riferimento, meccanismo di overload.

Array, vettori e programmazione generica.

Ereditarietà e polimorfismo, override dei metodi di Object, esempi pratici di dispatch di override (runtime) e overload (compile time). Classi astratte.

Overview delle interfacce, interfaccia Comparable, Classi interne, Lambda Expressions, Gestione degli eventi. Utilizzo di Comparable e Comparator negli ordinamenti come ulteriore esempio di interfaccia.

Approfondimento sul sistema di layout e sulla gestione degli eventi nelle applicazioni grafiche.

Eccezioni. Gestire le eccezioni prodotte da altre classi e lanciare le proprie eccezioni. Cenni alla gestione dell'I/O da file e rete.

Il Java Framework Collection. Interfacce, Classi e esempi di utilizzo e progettazione.
Horstmann, Cay S., Concetti di informatica e fondamenti di Java per Java 7 e Java 8, edizione italiana a cura di Marcello Dalpasso. Santarcangelo di Romagna: Maggioli, 2016. ISBN 978-88-916-1737-8
La parte di esame relativa al Modulo 1 consiste in una prova scritta da svolgere al termine del corso o in qualsiasi degli appelli successivi. Per la registrazione del voto è necessario superare anche la parte inerente al Modulo 2, per la quale si rimanda al relativo Syllabus.

Nel dettaglio sono previste:

Tre domande teoriche la cui risposta deve essere scritta nello stesso foglio del testo, da consegnare entro 30 minuti dall'inizio della prova. Ad ogni domanda sono attribuiti fino a 4 punti, per un totale di 12 punti.

Uno o due esercizi di programmazione (eventualmente collegati) che lo studente deve risolvere tramite la scrittura delle opportune classi, usando lo stesso foglio del testo, da consegnare entro 60 minuti dalla consegna della prima parte (o 90 minuti dall'inizio della prova). Questa parte permette di ottenere fino a 20 punti.

Per lo svolgimento della prima parte lo studente non può utilizzare alcun materiale. Per lo svolgimento della seconda parte è possibile utilizzare qualsiasi tipo di materiale purchè in forma cartacea.
Lezioni frontali alla lavagna.

Esercizi di programmazione, anche svolti in classe.
Italiano
scritto
Programma definitivo.
Data ultima modifica programma: 27/08/2019