Programma dei Moduli del Corso:

Modulo A | Docente:
Armando Stellato

Introduzione al Paradigma OO, e a Java come linguaggio “puramente ad oggetti”, Gli Oggetti , Classi ed oggetti, Operatori, Controllo del flusso di esecuzione di un programma, Inizializzazione e eliminazione di oggetti, Controllo dell’accesso, Riuso di classi, Polimorfismo, Interfacce, Classi interne, Strutture dati, Gestione degli Errori: le Eccezioni, MetaInformazioni, Generics (..e cosa li differenzia dai Template del C++), I/O, Tipi enumerati, Meta-programmazione: le Annotazioni

Cenni su: Programmazione Concorrente e gestione della grafica

Argomenti avanzati e/o a corredo: novità di Java 7 e Java 8, Gestione OO di progetti e gestione avanzata delle dipendenze, Gestione avanzata di dipendenze a compile time: Maven, Gestione avanzata dipendenze a run-time: OSGi




Modulo B | Docente:
Fabio Massimo Zanzotto Paradigma Dichiarativo (Modulo B  4CFU)   In questa parte del corso, si vuole introdurre lo studente alla programmazione dichiarativa basata sulla logica. Dopo una prima analisi delle differenze dei paradigmi di programmazione procedurali e dichiarativi, viene introdotto il Prolog come un linguaggio dichiarativo. Il linguaggio verrà descritto dal punto di vista sintattico e verranno introdotti i principali tipi di dati e gli operatori. Verranno descritte delle applicazioni nell'ambito dell'intelligenza artificiale e dell'elaborazione del linguaggio naturale. Verrà infine introdotta il legame con la logica dei predicati e con la logica del prim'ordine.   Paradigma Funzionale (Modulo B  2CFU)   In questa parte del corso, lo studente verrà introdotto ai principi di programmazione funzionale. Il linguaggio utilizzato è il Python che è un linguaggio ibrido che contiene alcuni di questi principi.   Libri di testo:   I. Bratko, Prolog Programming for Artificial Intelligence, Addison Wesley