CS51: Abstraction and Design in Computer Programming

CS51 Course Syllabus

Homework Assigments are due Friday 5pm.
When design documents are required, they are due by Monday 5pm.

Week
Date
Topic
Assignment
0 Jan 31 Introduction to CS51
1 Feb 5,7 Introduction to Scheme, Part I
Introduction to Scheme, Part II (Lists)
SICP 1.1, 2.1
Pset 0 due
2 Feb 12,14 Functions as Abstractions
Recursive vs Iterative Strategies
Map, Reduce and Filter
SICP 1.2-3, 2.2
Pset 1 due
3 Feb 19,21 Higher-order Functions
Data as Abstractions
Interfaces, Recursive data structures
SICP 2.3
Pset 2 due
4 Feb 26,28 Streams and delayed data SICP 3.5
Pset 3 due
5 Mar 4,6 Design: A CS Concentration Advisor
SICP 3.1, 3.2
Pset 4 due
6 Mar 11,13 From Scheme to C++
MIDTERM (tues in class)
C++ 1,2
MIDTERM
7 Mar 18,20 Object-oriented Design
C++ 3,4
Pset 5 due
(No late days)
-- Mar 25,27 SPRING BREAK Have Fun!
8 Apr 1,3 Inheritance and Designing Type Heirarchies C++ 5
(no Pset due)
9 Apr 8,10 Iterators, Exceptions and the Standard Template Library C++ 6,7
Pset 6 due
10 Apr 15,17 Design: A Cellular Automata Simulator
--
Pset 7 due
11 Apr 22,24 Languages as Abstractions
(programs are data, and interpreters are programs)
SICP 4.1
Pset 8 due
12 Apr 29,
May 1
Special Topics
INCLASS FINAL(thurs in class)
FINAL
13 May 5 Reading Period Pset 9 due
  • SICP: Abelson and Sussman, Structure and Interpretation of Computer Programs
  • C++: Lippman, Essential C++