Obiettivi formativi
Il corso presenta il modello di programmazione dichiarativa, aspetti teorici di logica computazionale e esperienze pratiche di programmazione dichiarativa per la risoluzione di problemi complessi.
Con riferimento agli Indicatori di Dublino:
Conoscenza e capacità di comprensione
Il corso richiama le conoscenze acquisite e pone lo studente di fronte alla comprensione delle stesse, nel momento della progettazione e implementazione pratica di programmi dichiarativi.
Le dispense sono fornite in italiano e in inglese. Durante le lezioni sono previste la consultazione di letteratura scientifica internazionale.
Capacità di applicare conoscenza e comprensione
Le conoscenze teoriche acquisite sono subito utilizzate per realizzare in modo assistito e autonomo implementazioni di casi pratici di uso. Le esercitazioni, parte fondamentale del corso, sono incentrate sulla risoluzione di esercizi e problemi. Viene sviluppata la capacita' di modellazione e specifica di programmi e di adattamento a contesti generali
Prerequisiti
Contenuti dell'insegnamento
Il corso intende fornire le nozioni di base sulla programmazione dichiarativa, illustrandone sia gli aspetti teorici di base, che le potenzialita' applicative. Vengono presentati Prolog e Answer set programming come linguaggi dichiarativi. Gli aspetti teorici sono corredati da esempi ed esercizi di modellazione di programmi logici per modellare problemi reali.
Programma esteso
Introduzione Logic Programming
Introduzione basi teoriche
First Order Logics, semantica, stable model semantics (gelfond lifschitz)
Modeling ASP
Linguaggio
Grounding
Basi
Tecniche di codifica avanzate
Programmazione in Answer Set Programming
Bibliografia
Dispense fornite nel materiale didattico
Metodi didattici
Lezioni frontali e esperienze di laboratorio.
Modalità verifica apprendimento
Risultati dell'apprendimento e modalità di verifica
Modellazione di un problema in termine di specifiche formali.
Saper implementare un codice di logica computazionale discendente dal modello.
Conoscere le basi della logica computazionale.
Saper modellare un problema di un dominio diverso dall'informatica.
Conoscere i rudimenti della risoluzione di programi logici
Modalità di verifica/esame
L'esame consiste in una prova orale (su tematiche teoriche e/o revisione di letteratura scientifica) e la discussione di una prova di progetto (anche in gruppo max 2 studenti)
E' possibile sostenere più volte la prova orale. La prova orale approfondisce i programmi consegnati e valuta i risultati di apprendimento tramite domande critiche sui programmi e risultati ottenuti.
Altre informazioni
Obiettivi agenda 2030 per lo sviluppo sostenibile