Iterative versus recursive style - Correctness and efficiency issues in programming, time and space measures - Basics of imperative style programming - Assertions and loop invariants - Top down design and examples of step-wise refinement - Programming using structures, introduction to encapsulation and object oriented programming.
laboratory activities : Simple exercises and examples to introduce to student to the computing environment and usage of computers - Simple exercises and examples of functional programming - Examples of program correctness and experimental verification of efficiency and scaling - Simple imperative programming - A moderate size example of top down design, step-wise refinement and rapid prototyping to develop an imprative style modular program with structures.