Teaching material

The course lectures are given in the Slovenian language, recorded and published in YouTube. Similarly, the exercise classes are conducted in Slovenian, as we lack sufficient human resources to establish a separate English track.

Nevertheless, you are welcome to take the course, provided that you are willing to put in some extra effort and self-study. You are always welcome to contact the lecturer and the teaching assistant regarding any questions you have.

Here are some pointers to material that will help you understand the course material.

General resources


  1. LICS – M. Huth and M. Ryan: Logic in Computer Science
  2. TAPL – Benjamin Pierce: Types and Programming Languages
  3. TPL – John Reynolds, Theories of Programming Languages
  4. PFPL – Robert Harper, Practical Foundations of Programming Languages (2nd ed).
  5. PAI – Ivan Bratko: Prolog Programming for Artificial Intelligence.

Most of these are available through the university library system COBISS, but it might be easier to just go to the library at the Faculty of mathematics and physics or the Faculty of computer science and informatics.

Old exams

Examples of old exams are available on the course web page (at the bottom, sorry no English versions yet).

Resources for learning programming languages

  1. OCaml, the tutorial, and Real World OCaml (2nd ed.).
  2. Haskell and Learn You a Haskell for the Great Good!.
  3. Prolog (still looking for the best source, but the PROLOG book above is very good).

Resources for specific lectures

Week 1: Artithmetical expressions and syntax

Reading material (it's a bit tricky to get it precisely the way we did it, so please combine sources):

  • TPL, Section 1.1
  • PFPL, Section 1.1
  • TAPL, Section 5.1 (discussion about concrete and abstract syntax)

Week 2: Simple imperative langauge

Reading material:

  • TPL, Section 2.1

Week 3: Correctness of programs

Reading material:

  • LICS, Chapter 4
  • TPL, Chatpter 3

Week 4: Untyped lambda calculus

  • TAPL, Chapter 5 (try to read 5.4 but if it gets too strange, do not worry too much)

(to be continued)

Last modified: Friday, 17 February 2023, 6:41 PM