8.1
Syllabus
Week | | Topic | | Readings |
1 | | Class Motivation; Basic Programming | | Prologue, Chapter 1.1 to 1.4, Chapter 2 |
2 | | More Basic Programming; Introduction to Design | | Chapter 1.5 to 1.7, Chapter 3, Chapter 4.1-4.4 |
3 | | Design with Fixed-Size Data | | Chapter 5 |
4 | | From Fixed Size to Arbitrary Size | | Chapter 4.5-4.7, Chapter 6, Chapter 9.3-9.4 |
5 | | Design with Arbitrary-Size Data | | Chapter 8, Chapter 9, Chapter 10, Chapter 11 |
6 | | Function Abstractions | | Chapter 12, Chapter 14, Chapter 15 |
7 | | Practice: Function Abstractions | | Chapter 16.1 |
8 | | Scope; Design Recipe for Abstractions | | Chapter 16.2-16.7, Intermezzo: Scope |
9 | | Lambda; Multiple Complex Inputs | | Chapter 17, Chapter 23 |
10 | | Trees and Mutually Recursive Data | | Chapter 19 |
11 | | Graphs | | Chapter 29.1 |
12 | | Accumulators | | Chapter 31, Chapter 32, Chapter 33 |
13 | | Generative Recursion | | Chapter 25, Chapter 26, Chapter 28, Chapter 29 |
14 | | Wrapping Things Up | | |
The topics are linked to the detailed weekly lecture schedule listed below.
The readings are linked to the on-line version of the textbook.
You are responsible for the readings. The lectures will help you
understand the readings and may add pragmatic tips. But both the weekly
homeworks and the exams will cover the assigned reading.
As the semester may unfold in unpredictable ways, the syllabus is
subject to change.
Detailed Lecture Schedule
Homeworks are due at 9:00pm on the day they are listed in the schedule.
Week 1 | | Class Motivation; Basic Programming |
01/06 | | 1. Why CS; Basic arithmetic; Course administrivia | | |
01/08 | | 2. Defining constants and functions; Simple animations | | |
01/09 | | 3. Booleans, conditionals, tests | | |
01/10 | | Lab 1 | | |
|
Week 2 | | More Basic Programming; Introduction to Design |
01/13 | | 4. The Design Recipe | | |
01/15 | | 5. World Programs | | HW 01 |
01/16 | | 6. Structure type definitions | | |
01/17 | | Lab 2 | | |
|