BIE-PPA

The goal of the course is to familiarize with the basics and advantages of functional and declarative programming styles and their programming languages (as opposed to the *imperative* programming style of the C/Java family languages you already know). We will start with a gentle introduction to the λ-calculus, the basic abstraction for functional languages, followed by introduction to Common Lisp, actual programming language that is very close to the simple lambda calculus. Finally we will learn the basics of declarative programming using the Prolog language.

Classification

During the term, you can get at most 45 points from two tests. The first one from λ-calculus and LISP is for 25pts max and you need at least 12 points to pass. The second test towards the end of the term is on computers, from LISP and Prolog and for 20pts max and you need at least 15 points to pass.

Class project is optional and will give you from 0 to 15 points extra which will count towards the exam.

The exam has written part for 30pts max (15 points to pass) and oral part, which is for 10 points max (this part of the exam has the veto right, i.e. you may be denied the mark at the end if you perform really poor in the oral part regardless of any other points you may have).

At the end of exam, your points are counted and a final mark is awarded:

Exercises

Translated materials for the exercises will appear here:

First Test Solution

The solution can be found here

Prolog Exercises

here

Coursework

Detailed information about the coursework can be viewed here.

Note

I realize this page is very spartan. With time and luck, it will updated and made nicer ∧ better, so be patient. Technically, this is the first proper run of the course in English. The materials will definitely not be perfect, if you spot an error, please let us know!