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