On this page:
Detailed Syllabus
DrRacket

Syllabus

syllabus

W

   

Topics

   

Dates

   

Readings

1

   

The Basics

   

01/11, 01/13, 01/14

   

2e: Prologue

2

   

Atomic Data, Intervals

   

01/18, 01/20, 01/21

   

2e: I:1-3

3

   

Structures and Unions

   

01/25, 01/27, 01/28

   

2e: I:4-7

4

   

Large Data 1

   

02/01, 02/03, 02/04

   

2e: int.: BSL, II:9-10

5

   

Large Data 2

   

02/08, 02/10, 02/11

   

2e: int.: quote, II:11-14, I:3.6

6

   

Program Design & Abstraction

   

02/15, 02/17, 02/18

   

2e: III:16-18

7

   

Abstraction

   

02/22, 02/24, 02/25

   

2e: III:16-18

8

   

Using Abstractions

   

02/29, 03/02, 03/03

   

2e: III:19-20

9

   

Spring Break

   

   

– No Reading —

10

   

Intertwined Data: S-expr

   

03/14, 03/16, 03/17

   

2e: IV:22-24

11

   

Generative Recursion 1

   

03/21, 03/23, 03/24

   

2e: V:25-27, 2e: IV:26-27

12

   

Generative Recursion 2

   

03/28, 03/30, 03/31

   

2e: V:28, VI:30

13

   

Accumulators

   

04/04, 04/06, 04/07

   

2e: VI:31-33

14

   

Universe Programming 1

   

04/11, 04/13, 04/14

   

Realm: ch. 13 [optional]

15

   

The End

   

04/18, 04/20, 04/21

   

SICP

The above table is your guide to the entire semester. It lists topics and reading assignments on a week-by-week basis. In the third column you find the primary lecture dates.

The readings column is linked to the relevant book’s web site. You can find the required readings there.

You are primarily responsible for the readings not the content of the lectures though the latter will help you understand the former. The weekly problem sets, the quizzes, and the exams will cover the reading material.

Detailed Syllabus

WEEK 1

01/11

why cs; arithmetic of numbers, strings; administrivia

01/13

arithmetic of images, functions, simple big-bang

01/14

arithmetic of booleans, conditionals in functions

Hw. Set 1

functions, simple data

 

WEEK 2

01/18

MLK Jr’s birthday; no class

Lab 1

drracket, define, interactions, errors, conditional functions, stepper

01/20

intervals and conditionals

01/21

enumerations and conditionals

Hw. Set 2

programs, structures, unions

 

WEEK 3

01/25

Posn, distance0 for Posn, structure type definitions

Lab 2

Posn, functions on Posn, practice structure type definitions

01/27

designing programs: six steps, tests

01/28

the Universe of Data, structures, functions on structures

Hw. Set 3

function design

 

WEEK 4

02/01

Itemisations/Unions

Lab 3

design, unions, structures

02/03

recursion: russian dolls and functions on russian dolls; design

02/04

lists and functions on lists

Hw. Set 4

world program on finite data

 

WEEK 5

02/08

structures in lists

Lab 4

lists, lists

02/10

lists, lists

02/11

design of a list-based world program, 1

Hw. Set 5

lists, lists

 

WEEK 6

02/15

presidents’ day; no class

Lab 5

more lists

02/17

design of a list-based world program, 2

02/18

design of a list-based world program, 3

Hw. Set 6

game version 1

 

WEEK 7

02/22

Exam 1

Lab 6

Lab 5: Abstraction

02/24

similarities in functions: first-order, higher-order

02/25

abstraction over similar functions: design

Hw. Set 7

abstraction

 

WEEK 8

02/29

similarities in DDs, abstracting over DDs, signatures for functions

Lab 7

TODO: Add a Lab

03/02

existing abstractions and using them

03/03

more on loops

Hw. Set 8

game version 1/corrected, using loops

 

WEEK 9

 

WEEK 10

03/14

lambda and scope

Lab 8

using local and loops,

03/16

S-expressions, functions over S-expressions

03/17

trees and forests: functions, design

Hw. Set 9

game version 2: abstraction, loops

 

WEEK 11

03/21

processing two complex arguments at once

Lab 9

S-expressions, with loops

03/23

sorting

03/24

generative recursion

Hw. Set 10

Trees

 

WEEK 12

03/28

Exam 2

NO LAB NO LAB NO LAB NO LAB NO LAB

03/30

graphs

03/31

more on graphs

Hw. Set 11

simple generative recursion

 

WEEK 13

04/04

accumulators

Lab 10

JSON

04/06

speed from accumulators

04/07

accumulators in data structures

Hw. Set 12

generative recursion

 

WEEK 14

04/11

Distributed universe programming: ping pong

Lab 11

Haxxoring

04/13

Distributed programming, problems

04/14

Continuing ping-pong

Hw. Set 13

something hard

 

WEEK 15

04/18

patriots’ day; no class

Lab 12

distributed universe programming

04/20

Bonus topic

04/21

reading day; no class

A semester can unfold in unpredictable ways. Therefore the detailed syllabus is subject to changes