The topics are linked to detailed weekly lecture plans below. The readings point into the on-line version of the text book.
You are primarily responsible for the readings. The lectures will help you understand those and will occasionally add highly pragmatic tips. But, the weekly problem sets and the exams will cover the reading material.
A semester tends to unfold in unpredictable ways, meaning the syllabus is subject to change. The most likely change concerns the last two weeks, which cover material that varies from semester to semester.
Assignments are due at 9:00 pm on the day they are listed (either Monday or Wednesday).
We will not accept late submissions.
Why CS; Arithmetic of numbers, strings; Administrivia
Arithmetic of images, functions, simple animations, Lab 1
Arithmetic of booleans, conditionals in functions, Intervals
Enumerations, Structures, Lab 2
Posns, structure type definitions, Steps of function design
Functions on structures, Lab 3
Itemizations, functions on itemizations
Self-referential data definitions, Lab 4
Self-referential unions, Lists
Lists, Functions on Lists, Lab 5
Design of a list-based world program, 1
Design of a list-based world program, 2; Processing two complex inputs
Midterm coming up: 05/31 @ in class
Memorial Day, No class
Similarities in functions
Abstractions over similar functions
Abstracting over DDs, Existing abstractions
Lambda and Scope
Sets, Mutual Recursion, S-expressions
Trees and Forests
Midterm coming up: 06/20 @ in class