On this page:
Detailed Syllabus
DrRacket

Syllabus

syllabus

W

   

Topics

   

Dates

   

Readings

1

   

The Basics

   

____, 09/04, 09/05

   

2e: Prologue

2

   

Atomic Data, Intervals

   

09/09, 09/11, 09/12

   

2e: I:1-3

3

   

Structures and Unions

   

09/16, 09/18, 09/19

   

2e: I:4-7

4

   

Large Data 1

   

09/23, 09/25, 09/26

   

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

5

   

Large Data 2

   

09/30, 10/02, 10/03

   

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

6

   

Abstraction

   

10/07, 10/09, 10/10

   

2e: III:16-18

7

   

Using Abstractions

   

____, 10/16, 10/17

   

2e: III:19-20

8

   

Intertwined Data: S-expr

   

10/21, 10/23, 10/24

   

2e: IV:22-24

9

   

Intertwined Data: XML

   

10/28, 10/30, 10/31

   

2e: IV:25

10

   

Generative Recursion 1

   

11/04, 11/06, 11/07

   

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

11

   

Generative Recursion 2

   

11/10, 11/13, 11/14

   

1e: V:28, VI:30

12

   

Accumulators

   

11/18, 11/20, 11/21

   

1e: VI:31-33

13

   

Universe Programming 1

   

11/25, 11/27, ____

   

Realm: ch. 13 [optional]

14

   

Universe Programming 2

   

12/02, 12/04

   

Realm: ch. 14

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 (Felleisen, Van Horn).

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

____

labor day

09/04

why cs; arithmetic of numbers, strings; administrivia

09/05

arithmetic of images, functions, simple big-bang

 

WEEK 2

09/09

arithmetic of booleans, stop-when, conditionals in functions

Lab 1

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

09/11

intervals and conditionals, enumerations and conditionals

09/12

designing programs: six steps, tests

Hw. Set 1

functions, simple data

 

WEEK 3

09/16

Posn, distance0 for Posn, structure type definitions

Lab 2

Posn, functions on Posn, practice structure type definitions

09/18

the Universe of Data, structures, functions on structures

09/19

unions of strings, numbers, structures, functions on these

Hw. Set 2

programs, structures, unions

 

WEEK 4

09/23

russian dolls and functions on russian dolls; design

Lab 3

design, unions, structures

09/25

lists and functions on lists

09/26

non-empty lists and functions

Hw. Set 3

world program on finite data, lists

 

WEEK 5

09/30

structures in lists, lists in structures

Lab 4

lists, lists | design of finite-state world program

10/02

design of a list-based world program, 1

10/03

design of a list-based world program, 2

Hw. Set 4

lists, game version 1

 

WEEK 6

10/07

similarities in functions: first-order, higher-order

Lab 5

quote, quasiquote, comma | design of finite-state world program

10/09

abstraction over similar functions: design

10/10

similarities in DDs, abstracting over DDs, signatures for functions

Hw. Set 5

abstraction

 

WEEK 7

____

columbus day

NO LAB NO LAB NO LAB NO LAB NO LAB

10/16

existing abstractions and using them

10/17

more on using loops

Hw. Set 6

game version 1/corrected, using loops

10/17

EXAM: 168SN and 108SN

 

WEEK 8

10/21

lambda and scope

Lab 6

using local and loops,

10/23

S-expressions, functions over S-expressions

10/24

trees and forests: functions, design

Hw. Set 7

game version 2: abstraction, loops

 

WEEK 9

10/28

refinememt: interpreter: cut BSL to nothing, add variables, add functions

Lab 7

S-expressions, with loops

10/30

finish refinement; introduce X-expressions

10/31

refinement: on X-expression enumeration rendering

Hw. Set 8

simple intertwined data, game version 3: multi-player

 

WEEK 10

11/04

processing two complex arguments at once

Lab 8

X-expr, diving into X-expr -- DSLs

11/06

merge sort

11/07

graphs

Hw. Set 9

XML and X-expressions

 

WEEK 11

11/10

veteran’s day

NO LAB NO LAB NO LAB NO LAB NO LAB

11/13

adaptive integration

11/14

Gauss

11/14

EXAM: 108 SN and 200 RI

Hw. Set 10

simple generative recursion

 

WEEK 12

11/18

graph traversals

Lab 9

generative recursion

11/20

speed from accumulators

11/21

accumulator in data structures: simple version of missionary and cannibals

Hw. Set 11

generative recursion, vectors

 

WEEK 13

11/25

distributed programming, problems

Lab 10

distributed universe programming: ping pong

11/27

thanksgiving recess

____

thanksgiving day

 

WEEK 14

12/02

design universe

NO LAB NO LAB NO LAB NO LAB NO LAB

12/04

pre-design of hungry henry

Hw. Set 12

a flavor of Hungry Henry

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