Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

DM552: Programming Languages

This repository contains the public material and information related to the Programming Languages offered by the IMADA Department at SDU.

The course is a mandatory course in the bachelor program giving an introduction to the main concepts and the structure of programming languages, paying particular attention to the functional paradigm. It fosters a coherent understanding of advantages and disadvantages of different levels of abstraction and programming language constructs, giving to the participants the experience with programming in languages other than the mainstream object-oriented languages.

The course is divided into two main modules that will be thought in parallel:

  • programming language: principles and paradigms
  • functional programming: Haskell

The first module will introduce the general concepts of programming languages either using linguistic mechanism or the implementation structures corresponding to them in a manner that is independent of any specific language. The second module instead focus on one concrete language, Haskell, to allow students to get familiar with the functional programming paradigm.


Jacopo Mauro

Contact email:

Office Ø13-604a-2

Teaching Assistant

Course Material

The course will rely on the following two books:

  • Programming Languages: Principles and Paradigms (Gabbrielli Maurizio, Martini Simone)
  • Learn You a Haskell for Great Good!: A Beginner's Guide (Miran Lipovaca)

The additional course material is available on this git repository. Material that can not be made public will be available on the Blackboard platform.

Additional interesting books to know a bit more on Haskell (optional):

  • Bird, Richard and Wadler, Philip (1988). Introduction to Functional Programming (1st ed.). Prentice Hall Press. ISBN 0-13-484189-1.
  • Bird, Richard (1998). Introduction to Functional Programming using Haskell (2nd ed.). Prentice Hall Press. ISBN 0-13-484346-0.
  • Hutton, Graham (2007). Programming in Haskell. Cambridge University Press. ISBN 978-0-52169-269-4.
  • Thompson, Simon (1999). Haskell - The Craft of Functional Programming (2nd ed.). Addison-Wesley. ISBN 0-201-34275-8.
  • Marlow, Simon (2013). Parallel and Concurrent Programming in Haskell. O’Reilly. ISBN 1-4493-3594-2.

Online Haskell Resources


To access the exam, students will have to submit and pass as a pre-requisite a project assignment, i.e., and Haskell program.

Finally, to complete the course the student has to pass a written exam having questions covering all the topics presented in class. The written exam will be evaluated using a 7 grades scale. No external auxiliary material (e.g., books, personal notes) will be allowed to be used during the exam.


Programming Languages course repository






No releases published


No packages published