CS 152 & CS 154
Abstractions and Paradigms for Programming
Spring 2020




Time & Space

CS 152 Lectures 
Slot: 4  
Timings: Mon 11:35, Tue 8:30, Thu 9:30  
Venue: CC 103 

CS 154 Lab 
Slot: L1 
Timing:  Monday 2 pm - 4:55 pm
Venue: SW Lab SL2 + SL1 


Course Content

Review of the program development process,
Issues in program design,
Structured programming,
Data and control abstractions,
Programming with assertions.
Reasoning about programs and proving correctness of programs.
Ideas behind imperative,
                     applicative,
                     object oriented and
                     logic programming paradigms such as
        typing,
        expressions,
        pure functions,
        recursion,
        higher order functions,
        encapsulation,
        inheritance,
        goal satisfaction,
        backtracking,
        unification.
Some of the ideas behind the implementation of the paradigms.

Course to be centered around problems and applications that demonstrate the main themes.


Books

Harold Abelson, Gerald Jay Sussman and July Sussman,
Structure and Interpretation of Computer Programs, 2nd edition, The MIT Press, 1996.

David A. Watt, Programming Language Concepts and Paradigms, Prentice-Hall, 1990.

Rajeev Sangal, Programming Paradigms in Lisp, McGraw Hill, 1991.



Useful Links


link to 2014 page     link to 2014 course plan

you can download some of my earlier lecture material from here


Use internal moodle links for course material that will be given freshly for the 2020 batch