## 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.