CS 420: Program Derivation (Autumn 2012)

Given a [programming] problem to be solved, how should one go about finding a solution [/program]. Is there some discipline that one can follow to arrive at a solution that one can be sure of being correct. In many cases, a solution can be arrived at if one is careful enough about formally specifying what one wants to achieve and then working backwards from that specification. In this context, the course will try to teach how to calculate a program from a given specification of the problem to be solved.

Schedule: Lecture Slot 6 in SIC 305 Kresit
Instructor: Om Damani Office hours: Fri 5-6
TA: Nikhil Hooda
Moodle: Slides, Assignments, Solution, Newsgroup etc.

Pre-requisites Background in Propositional Logic and Quantifiers
Audit Requirements: You have to do all the assignments. There will be at least one assignment per week.

Text Books

Unfortunately the following book is not available in Indian edition. The instructor will make the required material available.

1. [Kal] Anne Kaldewaij, Programming: The Derivation of Algorithms, Prentice Hall International, 1990.

Reference Books

1. [Dij] Edsger W. Dijkstra, A Method of Programming, Addidon-Wesley, 1988.