--[ Course description | Schedule | Course documents | Announcements ]--



Principles of Programming Languages (2007)

Vrije Universiteit, Dept. of Computer Science, Amsterdam


Course description

The course teaches the underlying principles and the anatomy of programming languages by studying 4 very different languages: ML, Java, Prolog and Python. Prerequisites: a previous course in Data Structures. Programming proficiency in at least one high-level programming languages.
The course is taught in English.

Tentative Schedule

Week 1
Sep 7: Introduction. History of programming languages
Readings: Weber Ch. 1, 24, Sebesta Ch.2 [opt]
Programming languages diagram [bmp] A nice coloured poster from O'Reilly can be found in bookshops (Computer Collectief Amsterdam for example)
The history of Programming Languages Lecture 1 slides [pdf]

Week 2
Sep 14: Syntax and semantics
Readings: Weber Ch. 2, 3
Lecture 2 slides [pdf]

On Sep 21 no lecture

Week 3
Sep 28: Language systems. Functional programming: ML 1
Readings:Weber Ch. 4, 5
Lecture 3 slides [pdf]

Week 4
Oct 5: Types. Functional programming: ML 2
Readings:Weber Ch. 6,7
Studied articles:

Lecture 4 slides [pdf]

Week 5
Oct 12: Polymorphism. Functional programming: ML 3
Readings: Weber Ch. 8,9
Articles:

Lecture 5 slides [pdf]

Week 6
Oct 19: Scope. Memory management
Readings: Weber Ch. 10, 12, 14 Lecture 6 slides: [pdf]

Week 7
Nov. 2: Control abstraction. Parameters. Exceptions.
Reading: Weber Ch. 17,18
Lecture 7 slides : [pdf]

Week 8
Nov. 9: Logic programming: Prolog
Reading: Weber Ch. 19,20
Lecture 8 slides : [pdf]
Some Prolog examples
More Prolog examples

Week 9 Nov. 16: Object orientation. Scripting languages: Python 1
Readings: Weber Ch. 15,16. Scott Ch.13 [opt]
11:00-11:45 in C121
12:00-13:00 in S345 computer lab
Lecture 9 slides : [pdf]
Python tutorials:

Week 10 Nov. 23: Scripting languages: Python 2. Exam guidelines.
Readings: slides
Lecture 10 slides : [pdf]
Articles:

Week 11 Nov. 30: Student presentations

Week 12 Dec. 7: Student presentations

Week 13 Dec 14: Guest lectures. Haskell: Russell O'Connor, Radboud University Nijmegen, Python: Dick Kniep, Lindix BV, C#: Wouter Mooij, Basket Builders


Course documents