PROGRAMMAZIONE DICHIARATIVA
cod. 1009066

Anno accademico 2022/23
2° anno di corso - Primo semestre
Docente
- Alessandro DAL PALU'
Settore scientifico disciplinare
Informatica (INF/01)
Field
Discipline informatiche
Tipologia attività formativa
Caratterizzante
48 ore
di attività frontali
6 crediti
sede:
insegnamento
in ITALIANO

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

- - -