• Course code:63220
  • Credits:6
  • Semester: summer
  • Contents

Usually, we write programs as descriptions of algorithms. But is it necessary that a program is always stated as an algorithm?

     In this course we learn that programming can be done in other ways -- other than algorithmically. For example, we may just describe what the problem is. The computer then on its own automatically finds a procedure that leads to a solution. This style of programming is done with declarative programming languages based on logic or constraints. It is even possible to program just by examples. For instance, we give the computer examples of sorted lists, and the computer automatically puts together a general program for sorting lists. There are yet other programming paradigms that lead to radically different thinking about programs than we are used to.

     In this course we also learn how the syntax and semantics, that is the meaning, of a programming language can be defined. We show how an interpreter or a compiler for a simple programming language can be written with DCG grammars in less than 50 lines. And further, how we can mathematically prove the correctness of a program.


  • Study programmes
  • Distribution of hours per semester
laboratory work
  • Professor
Teaching Assistant
Teaching Assistant