CS 152
& CS 154
Abstractions and Paradigms
for Programming
Spring 2022
Course starts March 21, 2022.
Time & Space
CS 152 Lectures
Slot: 4
Timings: Mon 11:35, Tue 8:30, Thu 9:30
Venue: Online (see moodle course page for instructions)
CS 154 Lab
Slot: L1
Timing: Monday 2 pm - 5 pm
Venue: Online (see moodle course page for instructions)
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
old
link to 2014 course plan (for illustrative purpose)
you can
download some of my earlier lecture material from here