The University of Birmingham - School of Computer Science

Principles of Programming Languages

Spring Semester 2012

Staff

Professor Achim Jung
Room 213
Tel: (+44) 121 414 4776
Email: A.Jung @ cs.bham.ac.uk
Office hours: see online timetable
    Dr Hayo Thielecke
Room 208
Tel: (+44) 121 414 2986
Email: H.Thielecke @ cs.bham.ac.uk
Office hours: see online timetable
Hayo's module page

Lectures

Mondays, 11:00-11:50am, LG34, Learning Centre
Tuesdays,14:00-14:50am, WG05, Aston Webb
Fridays, 12:00-12:50am, G28, Mech Eng

Exercise sessions

One of the slots listed above will be used for exercises, usually the session on Friday.
Asiri Rathnayake will help with the exercises.

Class tests

We are planning to have two class tests in this module, tentatively scheduled for weeks 3 and 8. Feedback will given a week later. Together, the class tests will count for 10% of the module mark.

PeerWise

Please see Hayo's module page for information on PeerWise

Examination

The (1.5 hour) exam in the summer will count for 80% of the module mark. If you are an undergraduate student then there will be no resit opportunity for this module.
If you are an MSc student, then a resit is possible in August. The class test component will not be carried forward, in other words, you will need to pass the (1.5 hour) resit exam in order to pass the module.
Important! Note that the exam will be different from those of 2010 or earlier, as our take on the subject is somewhat different from that of Prof Reddy.
The May 2011 exam paper and its model solution, on the other hand, gives you a good idea what the module is about.

Official module description

...is available here.

Additional reading

Principles of Programming Languages by Uday S. Reddy. Module homepage, 2010.

Concepts in Programming Languages by John C. Mitchell. Cambridge University Press 2007.

Essentials of Programming Languages (3rd ed) by Daniel P. Friedman and Mitchell Wand. MIT Press 2008.

A correspondence between ALGOL 60 and Church's Lambda-notation by Peter J. Landin. Communications of the ACM, 1965, vol 8, p 89-101 (part 1) and p 158-165 (part 2).

Notes

Exercises

Exercise sheet 1: Lambda notation, bound and free variables, reduction (solutions)
Exercise sheet 2: De Bruijn notation, evaluation order (solutions)
Exercise sheet 3: Simply typed lambda calculus (solutions)
Exercise sheet 4: Type inference (solutions)

Class tests

2011 Test 1 (solutions)
2012 Test 1 (solutions)