CS - 152 Abstractions and Paradigms
in
Programming
Instructor:
Amitabha Sanyal
Last updated: 7th January 2007.
The
grades for CS 152 and CS 154 are up.
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 ideas behind implementation of the paradigms.
Course to be centered around problems
and applications that demonstrate the main themes.
- Monday
9:30 -- 10.30
- Tuesday 11:30 -- 12:30
- Wednesday 8:30 -- 9:30
- Lectures
in classroom A2 Maths
department ground floor.
- Lab
Schedule
- Wednesday 4:00 --
5:30
- Lab
sessions in Old Software lab
- Maths department ground floor.
- List
of references.
- Harold
Abelson, Gerald Jay Sussman and Julie Sussman, Structure and Interpretation of
Computer Programs, 2nd
edition, The MIT Press,
1996.
This will be our main text. There are
four copies of the above
book in the study section of the Central Library. Here is an online
version of the book. Here are some other online books.
- R. Kent Dybvig, The Scheme Programming Language.
Prentice Hall Inc. 1996. Here is an online version.
- Matthias Felleisen, Robert Bruce
Findler, Matthew Flatt, Shriram Krishnamurthi, How to design Programs, MIT Press, 2002. Online version.
- One of the skills that
you will pick up in the course is programming in Scheme. Here are some
references for Scheme
- Quizzes
- 25%
- Midsemester - 25%
- Endsemester -
50%
- CS 152 Quiz 1
- February 7th, Wednesday.
- Project proposal - February 12th, Monday.
- CS154 Lab
Quiz 1 - February 14, Wednesday.
- Midsemester from 17th February to 25th February.
-
- CS152 Quiz 2 - March 14th, Wednesday.
- CS154 Lab Quiz 2 - March 21st, Wednesday.
- CS 152 Quiz 3 - April 5th, Wednesday.
- Project Report - April 12th, Wednesday .
- Project
demonstration -
List
of problems I
am trying to collect problems related to coding in functional
programming
languages. If you know of any interesting problems, please let me know.