University of Oxford Logo University of OxfordDepartment of Computer Science - Home

Formal Program Design:  2008-2009

Information

Lecturer

Degrees

Part A OptionsHonour School of Computer Science

Schedule B1Honour School of Computer Science

Schedule B1Honour School of Mathematics and Computer Science

Schedule AMSc in Computer Science

MSc by Research

Term

Overview

The aim is to show how procedural programs can be developed rigorously from their mathematical specifications. In the first part, the emphasis is primarily on how to derive loops from invariants; this activity is called algorithm refinement.

The second part of the course deals with specification and data refinement. It shows how modules and systems can be specified abstractly, how algorithms can be developed using abstract datatypes, and how such abstract datatypes can be implemented using concrete datatypes, and that implementation formally justified.

Students may not take this course if they have previously taken either Formal Program Design I and Formal Program Design II.

Learning outcomes

At the end of the course students are expected to:

Synopsis

Syllabus

Reading list