Syllabus
W
Topics
Dates
Readings
1
The Basics
01/12, 01/14, 01/15
2
Atomic Data, Intervals
____, 01/21, 01/22
3
Structures and Unions
01/26, 01/28, 01/29
4
Large Data 1
02/02, 02/04, 02/05
5
Large Data 2
02/09, 02/11, 02/12
6
Program Design & Abstraction
____, 02/18
7
Abstraction
02/23, 02/25, 02/26
8
Using Abstractions
03/02, 03/04, 03/05
9
Intertwined Data: S-expr
03/16, 03/18, 03/19
10
Intertwined Data
03/23, 03/25
11
Generative Recursion 1
03/30, 04/01, 04/02
12
Generative Recursion 2, Accumulators
04/06, 04/08, 04/09
13
BSL interpreter
04/13, 04/15, 04/16
14
Exam
____
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/12 | why cs; arithmetic of numbers, strings; administrivia |
01/14 | arithmetic of images, functions, simple animations |
01/15 | arithmetic of booleans, conditionals in functions |
| |
WEEK 2 | |
____ | MLK Day |
01/21 | intervals and conditionals |
Hw. Set 1 | functions, simple data -- due 1/20 by 7pm |
01/22 | enumerations and conditionals |
Lab 1 | drracket, define, interactions, errors, conditional functions, stepper |
| |
WEEK 3 | |
01/26 | Posn, distance0 for Posn, structure type definitions |
Hw. Set 2 | due 1/27 by 7pm |
01/28 | designing programs: six steps, tests |
01/29 | the Universe of Data, structures, functions on structures |
Lab 2 | Posn, functions on Posn, practice structure type definitions |
| |
WEEK 4 | |
02/02 | Itemizations/Unions |
Hw. Set 3 | due 2/03 by 7pm |
02/04 | recursion: russian dolls and functions on russian dolls; design |
02/05 | lists and functions on lists |
Lab 3 | design, unions, structures |
| |
WEEK 5 | |
02/09 | lists and functions on lists |
Hw. Set 4 | due 02/10 by 7pm |
02/11 | structures in list, lists in structures |
02/12 | design of a list-based world program, 1 |
Lab 4 | lists in structures |
| |
WEEK 6 | |
____ | Presidents’ Day |
Hw. Set 5 | due 02/17 by 7pm |
02/18 | design of a list-based world program, 2 |
02/19 | EXAM: Location: in class |
NO LAB NO LAB NO LAB NO LAB NO LAB | |
| |
WEEK 7 | |
02/23 | similarities in functions |
Hw. Set 6 | due 02/24 by 7pm |
02/25 | abstraction over similar functions: design |
02/26 | similarities in DDs, abstracting over DDs, signatures for functions |
Lab 5 | quote, quasiquote, comma | design of finite-state world program |
| |
WEEK 8 | |
03/02 | similarities in DDs, abstracting over DDs, signatures for functions |
Hw. Set 7 | due 03/03 by 7pm |
03/04 | existing abstractions and using them |
03/05 | more on using loops |
Lab 6 | abstraction |
| |
WEEK 9 | |
03/16 | lambda and scope |
Hw. Set 8 | due 03/17 by 7pm |
03/18 | S-expressions, functions over S-expressions |
03/19 | trees and forests: functions, design |
Lab 7 | using local and loops, |
| |
WEEK 10 | |
03/23 | processing two complex inputs |
Hw. Set 9 | due 03/24, 7pm |
03/25 | merge sort |
03/26 | EXAM: In class |
Lab 8 | S-expressions, with loops |
| |
WEEK 11 | |
03/30 | generative recursion |
Hw. Set 10 | due 04/01, 7pm |
04/01 | generative recursion |
04/02 | graphs |
Lab 9 | X-expr, diving into X-expr -- DSLs |
| |
WEEK 12 | |
04/06 | graph traversal |
Hw. Set 11 | due 04/08, 7pm |
04/08 | accumulators |
04/09 | speed from accumulators |
Lab 10 | Generative Recursion |
| |
WEEK 13 | |
04/13 | BSL interpreter |
Hw. Set 12 | due 04/14, 7pm |
04/15 | BSL interpreter |
04/16 | review, wrap-up |
Lab 11 | |
| |
WEEK 14 | |
____ | Patriots’ Day |
04/22 | EXAM: In class |
A semester can unfold in unpredictable ways. Therefore the detailed syllabus is subject to changes