Syllabus
W
Topics
Dates
Readings
1
The Basics
____, 09/09, 09/10
2
Atomic Data, Intervals
09/14, 09/16, 09/17
3
Structures and Unions
09/21, 09/23, 09/24
4
Large Data 1
09/28, 09/30, 10/1
5
Large Data 2
10/05, 10/07, 10/08
6
Program Design & Abstraction
10/12, 10/14, 10/15
7
Using Abstractions
10/19, 10/21, 10/22
8
Intertwined Data: S-expr
10/26, 10/28, 10/29
9
Intertwined Data: XML
11/2, 11/4, 11/5
10
Generative Recursion 1
11/9, 11/11, 11/12
11
Generative Recursion 2
11/16, 11/18, 11/19
12
Accumulators
11/23, 11/25, 11/26
13
Universe Programming 1
11/30, 12/2, 12/3
14
Universe Programming 2
12/07, 12/09
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 (Profs. Lerner, Razzaq, Shivers).
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/09 | why cs; arithmetic of numbers, strings; administrivia |
09/10 | arithmetic of images, functions, simple big-bang |
| |
WEEK 2 | |
09/14 | arithmetic of booleans, conditionals in functions |
Lab 1 | drracket, define, interactions, errors, conditional functions, stepper |
09/16 | intervals and conditionals |
09/17 | enumerations and conditionals |
Hw. Set 1 | functions, simple data |
| |
WEEK 3 | |
09/21 | Posn, distance0 for Posn, structure type definitions |
Lab 2 | Posn, functions on Posn, practice structure type definitions |
09/23 | designing programs: six steps, tests |
09/24 | the Universe of Data, structures, functions on structures |
Hw. Set 2 | programs, structures, unions |
| |
WEEK 4 | |
09/28 | Itemisations/Unions |
Lab 3 | design, unions, structures |
09/30 | recursion: russian dolls and functions on russian dolls; design |
10/1 | lists and functions on lists |
Hw. Set 3 | world program on finite data, lists |
| |
WEEK 5 | |
10/05 | structures in lists |
Lab 4 | lists, lists |
10/07 | lists, lists |
10/08 | design of a list-based world program, 1 |
Hw. Set 4 | lists, game version 1 |
| |
WEEK 6 | |
10/12 | columbus day |
Lab 5 | quote, quasiquote, comma | design of finite-state world program |
10/14 | design of a list-based world program, 2 |
10/15 | design of a list-based world program, 3 |
Hw. Set 5 | abstraction |
| |
WEEK 7 | |
10/19 | similarities in DDs, abstracting over DDs, signatures for functions |
10/19 | EXAM: Location: TBA (see blog) |
NO LAB NO LAB NO LAB NO LAB NO LAB | |
10/21 | existing abstractions and using them |
10/22 | more on using loops |
Hw. Set 6 | game version 1/corrected, using loops |
| |
WEEK 8 | |
10/26 | lambda and scope |
Lab 6 | using local and loops, |
10/28 | S-expressions, functions over S-expressions |
10/29 | trees and forests: functions, design |
Hw. Set 7 | game version 2: abstraction, loops |
| |
WEEK 9 | |
11/2 | refinememt: interpreter: cut BSL to nothing, add variables, add functions |
Lab 7 | S-expressions, with loops |
11/4 | finish refinement; introduce X-expressions |
11/5 | refinement: on X-expression enumeration rendering |
Hw. Set 8 | simple intertwined data, game version 3: multi-player |
| |
WEEK 10 | |
11/9 | processing two complex arguments at once |
Lab 8 | JSON |
11/11 | veteran’s day |
11/12 | sorting |
Hw. Set 9 | Trees |
| |
WEEK 11 | |
11/16 | adaptive integration |
Lab 9 | generative recursion |
11/18 | Gauss |
11/19 | graphs |
Hw. Set 10 | simple generative recursion |
| |
WEEK 12 | |
11/23 | graph traversals |
11/23 | EXAM: Location: TBA (see blog) |
NO LAB NO LAB NO LAB NO LAB NO LAB | |
11/25 | Thanksgiving recess |
11/26 | Thanksgiving day |
Hw. Set 11 | generative recursion, vectors |
| |
WEEK 13 | |
11/30 | speed from accumulators |
Lab 10 | distributed universe programming: ping pong |
12/2 | accumulator in data structures: simple version of missionary and cannibals |
12/3 | distributed programming, problems |
| |
WEEK 14 | |
12/07 | design universe |
NO LAB NO LAB NO LAB NO LAB NO LAB | |
12/09 | 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