Course Code : | 2001WETPPA |

Study domain: | Computer Science |

Bi-anuall course: | Taught in academic years starting in an even year |

Academic year: | 2019-2020 |

Semester: | 2nd semester |

Contact hours: | 45 |

Credits: | 6 |

Study load (hours): | 168 |

Contract restrictions: | No contract restriction |

Language of instruction: | English |

Exam period: | exam in the 2nd semester |

Lecturer(s) | Guillermo Alberto Perez |

At the start of this course the student should have acquired the following competences:

an active knowledge of

general notion of the basic concepts of

an active knowledge of

- English

general notion of the basic concepts of

programming languages, such as: syntax and semantics, recursion, data structures

- You have to understand the principles of the lambda-calculus and to be able to apply them in small examples: reduction, combinators, lists, etc.
- You have to be able to explain how one gets from the lambda-calculus to an implementation, and what is the role therein of such concepts as evaluation strategies, combinators, etc.
- You have to be able to explain, based on concrete examples, how a prolog system solves queries, and what is the use of unification, proof trees, etc.
- You have to solve simple programming exercises in a functional as well as a logical language.

The course covers several programming paradigms that play an important role in computer science and in particular in artificial intelligence. The emphasis is on functional and logical programming languages.

First the theoretical foundation of the functional paradigm is treated in the form of a brief introduction into the lambda-calculus, then an introduction is given into the language Haskell. In the treatment of the logical paradigm the emphasis is on the language Prolog, its advantages and limitations.

The course has an international dimension.

Class contact teachingLectures Practice sessions

Personal workAssignments Individually

Personal work

ExaminationWritten examination without oral presentation Closed book

Continuous assessmentAssignments

Continuous assessment

Syllabus (via Blackboard)

- Foundations of Functional Programming. Lawrence C. Paulson. 2000. https://www.cl.cam.ac.uk/~lp15/papers/Notes/Founds-FP.pdf
- Lambda Calculus. Tobias Nipkow. 2018. https: //www21.in.tum.de/teaching/lambda/WS1718/lambda.pdf
- From Logic Programming to Prolog. Krzysztof R. Apt. 1997. London: Prentice Hall.
- Modern Programming Languages: A Practical Introduction. Adam Brooks Webber. 2010. Franklin, Beedle & Associates, Incorporated.
- http://learnyouahaskell.com/

docent: guillermoalberto.perez@uantwerpen.be

teaching assistant: brent.vanbladel@uantwerpen.be