Course Syllabus for

Programming Languages and Concepts
Programmeringsspråk och -koncept

FRT130F, 7.5 credits

Valid from: Spring 2016
Decided by: Rektor Viktor Öwall
Date of establishment: 2016-06-21

General Information

Division: Automatic Control
Course type: Third-cycle course
Teaching language: English


The purpose of the course is to give an understanding of the various programming concepts that underpin both old and modern programming languages. Special attention is given to functional programming and object-oriented programming.


Knowledge and Understanding

For a passing grade the doctoral student must

Competences and Skills

For a passing grade the doctoral student must

Course Contents

The course is based on Prof. Dan Grossman's on-line course "Programming Languages" and is given in the form of a study circle. The most important concepts in the course are: functional programming (avoiding mutation, exploiting recursion and higher-order functions, closures, anonymous functions); algebraic datatypes and pattern-matching; essential object-oriented programming (late-binding / dynamic dispatch, subtyping vs. subclassing); language support for abstraction, such as modules, abstract types, and dynamic type-creation; syntax vs. semantics; static vs. dynamic typing and type safety; parametric polymorphism / generics; object-oriented extensibility vs. functional extensibility.

Course Literature

Video lectures and course material is available on the webpage

Instruction Details

Types of instruction: Lectures, self-study literature review. The course is given in the form of a study circle with eight meetings. Before each meeting, the participants are expected to solve a number of programming problems. The PhD students should also prepare a brief lecture on the most important programming concepts in the material of the week. The reponsibility to produce reference solutions and to grade the handins also rotate among the participants.

Examination Details

Examination formats: Written assignments, seminars given by participants
Grading scale: Failed, pass

Admission Details

Assumed prior knowledge: Basic knowledge in a few different programming languages, e.g. Java, C, Python

Course Occasion Information

Contact and Other Information

Course coordinator: Anton Cervin <>
Web page:

Complete view