Course Material

Course Material

In the following, we list all material you need to participate in this course.


In this course, we follow (for the most part) the excellent textbook Programming Languages: Application and Interpretation by Shriram Krishnamurthi. This book is free-of-cost.


For most of your programming assignments, you will use DrRacket, an interactive environment for Lisp- and Scheme-like languages.

In this course, we will use the PLAI (Programming Languages: Application and Interpretation) dialect of Scheme. It already comes pre-installed with the latest Racket distribution, so simply download that first. (We tested v5.2.1)

Then, start DrRacket, select Determine Language from Source in its statusbar Choose Language menu, and enter the following into the Definitions subwindow:

#lang plai
(test 42 42)

Clicking Run should now result in output like the following, indicating that PLAI Scheme works correctly:

Welcome to DrRacket, version 5.2.1 [3m].
Language: plai; memory limit: 128 MB.
(good 42 42 42 “at line 2”)


This course excessively uses SVN repositories for file management. For this purpose several SVN repositories exist. Please note, that you need to authenticate with your RBG login and that both repositories are only accessible via HTTPS.

Public Repository for Course Material

All material of this course (slides, example interpreters) and especially the exercises are published in a public SVN repository . If you just want to browse the repository you can point your browser at the address. Otherwise you have to update your local working copy to get access to new material.

Private Group Repository for Student Submissions

Every group has a private SVN repository. The repository address is of the form<team-id>/. The team-id is assigned after the registration phase has finished.

This repository is intended to be used by the groups to collaborate, but especially to submit their exercise solutions. We will check-out your repository by the time you are supposed to finish your exercise so please commit your solutions in time.