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. Extra-credit problem sets, if any, will be based on this material.
Assignments are due at 8:59 pm on the day they are listed.
Why CS; Arithmetic of numbers, strings; Administrivia
Arithmetic of images, functions, simple animations
Booleans, conditionals, and big-bang
Lab 1 (partner assignment)
Intervals & conditionals
Posns and structure type definitions
The Universe of Data, structures, functions on structures
Self-referential data definition
Lists and designing functions on lists (part 1)
Lists and designing functions on lists (part 2)
Structures in lists, lists in structures
Practice with recursive templates
Practice with recursive functions
Midterm coming up: 02/15 @ 6:00-9:00pm
Similarities in functions
Designing abstractions: functions
Designing abstractions: data definitions, signatures
Introducing local scope
Designing with existing abstractions and local
Lab 7 (partner swap)
Practice with local
Trees and JSON (part 1)
JSON and symbols (part 2)
Representation choices and JSON (part 3)
Rendering HTML: trees and forests (part 1)
Processing two complex inputs
Lab 10 (partner swap)
Graphs (part 1)
Graphs (part 2 - traversal)
Midterm coming up: 04/05 @ 6:00-9:00pm
BSL Interpreter (part 1)
BSL Interpreter (part 2)
Everything is lambda (part 1)
Everything is lambda (part 2)
Everything is lambda (part 3)
Here are HTML and iCal versions of the above. It includes all-day events for days when homeworks are due and events for the exams and exam reviews. Feel free to add them to your favorite calendar app.