Stockholm university logo, link to start page
Gå till denna sida på svenska webben

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.

  • Course structure

    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.


    The course is examined as follows: 

    • take-home examination
    • written assignments


  • Schedule

    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.
  • Course literature

    Note that the course literature can be changed up to two months before the start of the course.

  • Contact

    This course is part of a programme, course package or incoming exchange studies and is not available for application as a stand-alone course.

    Information about our Master's programmes

    Student counsellor - master