Programming languages and paradigms

Learning a new programming language is in many ways more about learning new ways of thinking and new problem-solving strategies than about learning a new syntax.

At least if the new language is considerably different from the languages you are already familiar with.

One of the goals of this course is to give you an understanding for how programming languages can be constructed and implemented and also experience of using different languages, mainly from other groups than the imperative and object-oriented ones that you already know. This is important knowledge, e.g., because it prepares you for later learning new languages quicker and more easily.

Basic: History, design principles, syntax, semantics, control flow, type systems, names, scoping, binding, abstractions, etc.

Object-oriented languages: Class-based languages, prototype-based languages, encapsulation, information hiding, inheritance, delegation, polymorphism, dynamic binding, etc.

Functional languages: Polymorphism, recursion, functions as first-class program constructions, higher order functions, lazy vs. eager evaluation, currying, etc.

Logic based languages: Facts and rules, resolution and unification, searching and backtracking, recursion, functions and arithmetic, lists and other structures, etc.

Concluding summary and extras.


Teaching Format

The teaching consists of lectures and seminars.


Assessment

The course is examined as follows: 

  • take-home examination
  • written assignments

Examiner


The schedule will be available no later than one month before the start of the course. We do not recommend print-outs as changes can occur. At the start of the course, your department will advise where you can find your schedule during the course.
Note that the course literature can be changed up to two months before the start of the course.


Course reports are displayed for the three most recent course instances.








Study counsellors

Margrét Håkansson and Mitra Wijkman

Visiting hoursPlease contact us via email if you want to book a meeting. We are available on Campus in Kista and via Zoom.

Phone hoursThursday 12.30–2 pm

Irregular office hoursFirst phone hours for spring 2026: Thursday 15 January