To introduce students to the foundations of computing, programming
Also to develop basic programming skills necessary for engineering
No pre-requisites required, suitable also for those with school
level programming skills.
Design of algorithms; Iterative versus recursive style; problem
a functional style; correctness issues in programming; efficiency
programming; time and space measures; Imperative style of programming;
assertions and loop invariants; programming in an imperative language
advanced features: procedures, functions, list handling using
file handling; objects and classes.
Lecture outline with topics (and no. of hours)
model of computation, Notion of Algorithms, Principle of
Mathematical Induction (4)
of functional programming, notion of types (3)
versus recursive style (4)
and efficiency issues in programming, time and space
of imperative style programming (3)
and loop invariants (5)
7. Top down
design and examples of step-wise refinement (5)
8. Programming using structures, introduction to encapsulation
object oriented programming (10)
Brief description of laboratory activities
exercises and examples to introduce to student to the
computing environment and usage of computers
exercises and examples of functional programming
of program correctness and experimental verification of
efficiency and scaling.
5. A moderate
size example of top down design, step-wise refinement
and rapid prototyping to develop an imprative
style modular program with
texts and reference materials
Banerjee, S. Arun-Kumar, D. Dubhashi: Introduction to Computer
2. Structure and Interpretation of Computer Programs by Harold
Abelson and Gerald
Sussman with Julie Sussman, MIT Press, 1985.
3. How to solve it by Computer by R. J. Dromey, Prentice-Hall
India EEE Series.
Download Syllabus (PDF)