Paradigms of Programming

The goal of the lecture is to familiarize students with programming paradigms and styles which provide alternatives and extensions to procedural/imperative programming, which was covered in module "Introduction to Computer Science".

The lecture introduces programming concepts by teaching and practice of suitable languages for functional (Haskell) and logical-relational (Prolog, CHR) programming.