OXFORD UNIVERSITY COMPUTING LABORATORY

Imperative Programming I


Moderations in Computer Science, Paper CS2
Moderations in Mathematics & Computer Science, Paper CS2
MEng in Engineering & Computing Science

16 lectures HT
Dr J M Spivey
3-hour exam

Overview

This course applies lessons that have been learnt in Functional Programming to the design of programs written in a procedural style. By studying a sequence of programming examples, each a useful software tool in its own right, students learn to construct programs in a systematic way, structuring them as a collection of modules with well-defined interfaces. The course also deals with the translation of functional programs into procedural ones, and introduces the idea of loop invariants for understanding and reasoning about loops. The course concludes with the study of a larger programming example, such as a graphical program for finding the best route for driving between specified towns in the UK. Through lab exercises, students learn to create, debug and maintain programs of a non-trivial but moderate size.

Learning Outcomes

After studying this course, undergraduates will be able to:
  1. Translate basic functional idioms into procedural ones.
  2. Design simple loops, using invariants to explain why they work correctly
  3. Use subroutines and modules to structure more complex programs.
  4. Design data structures using arrays, records and pointers.
  5. Understand the procedural implementation of some common algorithms.


[Oxford Spires]



Oxford University Computing Laboratory Courses Research People About us News