G54FOP Mathematical Foundations of Programming

Autumn 2009

Overview


Literature

There is no main reference, except for your own notes from the lectures along with any electronic lecture slides [ELS08] or other supplementary material. However, you will likely find it useful to have a book to give you an additional perspective on and more depth to the material covered, as well as a help to understand some of the harder topics. Some suggestions below.

The book Types and Programming Languages [Pie02] by Benjamin Pierce covers many of the topics of the module in depth. It is recommended though not essential reading. The book itself is very good for further studies, both as a textbook and as a reference book. The library has copies.

The G52MAL lecture notes [AN07] (PDF) provides additional background on formal language theory for those who need that. Alternatively, pretty much book on formal languages and automata theory will also do, e.g. Introduction to Automata Theory, Languages, and Computation, 2nd edition [HMU01] by John E. Hopcroft, Rajeev Motwani & Jeffrey D. Ullman.


Lectures

Somewhat tentative overview; in particular towards the end.

OLN = Own Lecture Notes. For other references, see list at end of page.

Lecture#DateContentReading
1 24 Sep Administrative Details and Introduction [ELS08, Le 1]
2 29 Sep Alphabets, Words, Languages; Introduction to Context-Free Grammars [ELS08, Le 2; AN07, pp. 6, pp. 21--33; HMU01, ch. 1, pp. 169--177, 191--205]
3 1 Oct Context-Free Grammars, Derivation Trees, and Ambiguity [ELS08, Le 3; AN07, pp. 32--37; HMU01, pp. 177--191, 205--207, 211--214]
4 6 Oct Abstract Syntax [OLN; Pie02, ch. 3, p. 53]
5 8 Oct Induction on Terms [OLN; Pie02, ch. 2]
6 13 Oct Introduction to Programming Language Semantics [OLN; Pie02, ch. 3]
7 15 Oct Operational Semantics I: Basics [OLN; Pie02, ch. 3]
8 20 Oct Operational Semantics II: Induction on Derivations [OLN; Pie02, ch. 3]
9 22 Oct Operational Semantics III: State [OLN; Pie02, ch. 13
10 27 Oct The Untyped Lambda-Calculus I: Introduction [OLN; Pie02, ch. 5]
11 29 Oct The Untyped Lambda-Calculus II: Programming in the Lambda Calculus [OLN; Pie02, ch. 5]
12 3 Nov The Untyped Lambda-Calculus III: Recursion [OLN; Pie02, ch. 5]
13 5 Nov The Untyped Lambda-Calculus IV: Operational Semantics and Reduction Orders [OLN; Pie02, ch. 5]
14 10 Nov Types and Type Systems I [ELS08, Le 14; Pie02, ch. 1, ch. 8]
15 12 Nov Types and Type Systems II [ELS08, Le 15; Pie02, ch. 8, ch. 14]
16 17 Nov Types and Type Systems III [ELS08, Le 16; Pie02, ch. 9]
17 19 Nov The Polymorphic Lambda.Calculus (System F)
18 24 Nov Denotational Semantics and Domain Theory I
19 26 Nov Denotational Semantics and Domain Theory II
20 1 Dec Denotational Semantics and Domain Theory III
21 3 Dec Denotational Semantics and Domain Theory IV
22 8 Dec Presentations
23 10 Dec Presentations

Copies of lecture notes, slides, any major pieces of program code, or other electronic material used during the lectures can be found here.


Assessment

The assessment is broken down as follows:

See below for further details on the examination and coursework.

However, in the case of a resit:


Coursework

The coursework consists of choosing a topic form the list below and, based on this,

The list of topics is available here.

The report should be targeted to your fellow students, i.e. you can assume the reader will know the basics of operational semantics, lambda-calculus, etc. The expected length is around 10 pages, which is about 3000 to 4000 words excluding diagrams, code, references.

Deadline for the report: Thursday 3 December

The presentation should be an introduction to your topic, targeted so that it is understandable to your peers given what we have covered in this module. The presentations will take place during the last week week of term, on the 8 and 10 December. Exact schedule TBA.

In order to encourage active participation and stimulate discussion after each presentation, the reports will be made available electronically to you all as soon as possible after the report deadline. Prior to the presentations, you are expected to familiarise yourselves with the report(s) that are being presented by your fellow students, and prepare a couple of technical questions to ask after the presentations. Active participation in the presentation sessions will count for a significant part of the overall active participation mark.

The front cover of the report should state clearly:

Submission: Electronically, by e-mail directly to the module convener, PDF format only. Make sure you get an acknowledgement that the report has been received successfully within a reasonable amount of time. Otherwise, resubmit.


Examination

Some basic information about the exam:

Past examination papers can be found via the Intranet Portal under the Library Tab. Search for Exam Papers. Or see here for further info.

Answers to the January 2009 exam can be found here.


References


Last updated 5 November 2009.