Syllabus
W
Topics
Dates
Readings
1
The Basics
01/11, 01/13, 01/14
2
Atomic Data, Intervals
01/18, 01/20, 01/21
3
Structures and Unions
01/25, 01/27, 01/28
4
Large Data 1
02/01, 02/03, 02/04
5
Large Data 2
02/08, 02/10, 02/11
6
Program Design & Abstraction
02/15, 02/17, 02/18
7
Abstraction
02/22, 02/24, 02/25
8
Using Abstractions
02/29, 03/02, 03/03
9
Spring Break
10
Intertwined Data: S-expr
03/14, 03/16, 03/17
11
Generative Recursion 1
03/21, 03/23, 03/24
12
Generative Recursion 2
03/28, 03/30, 03/31
13
Accumulators
04/04, 04/06, 04/07
14
Universe Programming 1
04/11, 04/13, 04/14
15
The End
04/18, 04/20, 04/21
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