DECLARATIVE PROGRAMMING
cod. 1009066

Academic year 2024/25
1° year of course - First semester
Professor
Alessandro DAL PALU'
Academic discipline
Informatica (INF/01)
Field
Discipline informatiche
Type of training activity
Characterising
48 hours
of face-to-face activities
6 credits
hub:
course unit
in ITALIAN

Learning objectives

The course provides a mix of theoretical and hands-on practice about logic programming for solving complex programs.

Taking Dublin Indicators into account:
Knowledge and understanding

The course focusses on logic programming and declarative programming and provides the student a means to comprehend such aspects.
The reference text is in Italian/English. Consultation of the international scientific literature gives the chance to deepen technical English knowlege.

Applying knowledge and understanding

Knowledge presented is always applied to the implementation of logic programs for the resolution of specific problems.
The exercises, which are proposed in relation to the theoretical part presented in class, can be solved individually or in small groups. The comparison with classmates, work at home or in classroom, favors the development of specific skills in students to enable the explanation of arguments to fellows and teachers. Often the exercises can be solved in many different ways and listening to the solutions proposed by other allows students to develop the ability to identify common structures, beyond the apparent superficial differences.
Communication skills
The numerous discussions on the different methods to solve problems allow students to improve communication skills. Specific communication of computer technology is also used during classes and exercises.

Prerequisites

Course unit content

This class presents the basics of logic programming in the context of declarative programming. It offers both theoretical foundations as well as practical implementation examples in the Answer Set Programming language

Full programme

Logic Programming Introduction

FOL, syntax and semantics, stable model semantics (gelfond lifschitz)

Modeling with ASP
The language
Grounding
Advanced modeling

ASP Programming
Tecniche di codifica avanzate

Programmazione in Answer Set Programming

advanced modeling

Bibliography

Hand outs

Teaching methods

classes and coding lab

Assessment methods and criteria

Learning outcomes and methods of verification

Modelling a program by means of its formal specifications.
Computational logics basics.
Encoding non CS problems
Basics of logic programming solvers

Other information

2030 agenda goals for sustainable development