PROGRAMMAZIONE A OGGETTI - MOD.1

Anno accademico
2020/2021 Programmi anni precedenti
Titolo corso in inglese
OBJECT-ORIENTED PROGRAMMING - 1
Codice insegnamento
CT0372 (AF:320633 AR:172525)
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 utilizzando e consolidando le basi di programmazione acquisite durante il primo anno.

Risulta fondamentale che il percorso formativo coniughi elementi metodologici e teorici a continui stimoli sperimentali, attraverso la risoluzione autonoma di esercizi e problemi applicativi.

Lo studente che frequenti con profitto il corso avrà acquisito una conoscenza approfondita del linguaggio Java e dei concetti fondamentali dei linguaggi di programmazione ad oggetti.
Per affrontare il corso è indispensabile avere una consolidata e profonda competenza di programmazione imperativa. Infatti la programmazione ad oggetti estende tale paradigma arricchendolo di meccanismi che permettono di ottenere proprietà desiderabili in termini di strutturazione, integrazione e compartimentazione del codice realizzato. Di conseguenza, e' essenziale che lo studente abbia compreso, acquisito, elaborato ed applicato i fondamenti della programmazione imperativa prima di poter affrontare questo corso con successo.
1) Encapsulation e abstraction
a. Classi e oggetti, campi e metodi
b. Static e final
c. Aliasing
d. Information hiding, attributi di visibilita'
e. Documentazione del codice, Javadoc e file jar
2) Ereditarieta'
a. Estensione di classi, overriding e overloading
b. Abstract e final
c. Polimorfismo, subtyping, principio di sostituzione
d. Tipi statici e dinamici
e. Ereditarieta' singola e multipla
f. Classi astratte, interfacce
g. Dispatching statico e dinamico
3) Java in action
a. Gerarchia delle classi Java, classe Object
b. Tipi native types, autoboxing, stringhe
c. Eccezioni
d. Annotazione
e. Gestione delle librerie, Gradle
f. Il pattern MVC (Model-View-Controller)
g. Spring
h. Version Control Systems e Git
Ken Arnold, James Gosling, David Holmes: The Java Programming Language, 4th Edition
La parte di esame relativa al Modulo 1 consiste in alcune esercitazioni durante il corso, ed 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.
Lezioni frontali alla lavagna.

Esercizi di programmazione, anche svolti in classe.
Italiano
scritto
Programma definitivo.
Data ultima modifica programma: 19/10/2020