Lecture slides are available as either the original PowerPoint slides
(download the PPT link) or PDF for printing (6 slides per page).

Class 1: Introduction [PPT, PDF] (Notes)

What is Computer Science?

Computer Science and the Liberal Arts

The Apollo Guidance Computer

Course Expectations, Drinking from the Firehose

Class 2: Language [PPTX, PDF] (Notes)

Recursive Definitions and hippopotomonstrosesquipedaliophobia

What are languages made of?

History of Computer Programming

Admiral Grace Hopper, John Backus

Describing Languages

Backus-Naur Form

Scheme

Class 3: Rules of Evaluation [PPTX, PDF] (Notes)

Questions

Rules of Evaluation

Class 4: Evaluation and Procedure Practice (Notes)

Using the Evaluation Rules

Defining Procedures

Class 5: Constructing Procedures [PPTX, PDF]

Problem Set 1

Constructing Procedures

Class 6: Programming with Data [PPTX, PDF] (Notes)

Pairs

Lists

Class 7: List Procedures [PPTX, PDF]

Defining recursive list procedures

list-trues,list-sum

Class 8: Recursing on Lists [PPTX, PDF] (Notes)

Quiz comments

List procedures:is-list?,deep-list-sum

Generalizing list procedures

Class 9: Recursing Recursively [PPTX, PDF] (Notes)

find-closest

GEB Chapter 5:

Fibonacci

Recursive Transition Networks

Stacks in Music

Class 10: Fracturing Fractals [PPTX, PDF] (Notes)

Problem Set 2

list-map

Class 11: Generalizing List Procedures [PPTX, PDF] (Notes)

Using list-map

PS3

Generalizing list procedures:list-cruncher

Class 12: Costs and Sneezewort (Westley Weimer) [PDF full size, PDF for printing]

Sneezewort and Fibonacci

Cost of Fibonacci

Cost of Sorting

Class 13: Asymptotic Growth (Westley Weimer) [PDF full size, PDF for printing]

Analyzing Sorting

Asymptotic Notation: O, Ω, Θ

Class 14: Sort Procedures and Quicker Sorting (Westley Weimer) [PDF full size, PDF for printing]

Asymptotic Operator Review

Logic Machines

Insertion Sort

Class 15: Running Practice [PPTX, PDF] (Notes)

Analyzing Recursive Procedures

Class 16: Power Analysis [PPTX, PDF]

Finishingflatten-lcommands

power

Class 17: Breaking Lorenz (not available for downloading, please request by email)

Class 18: Changing State [PPTX, PDF]

Nobel Prize: CCD

Story so Far

Mutation

Class 19: Stateful Evaluation [PPTX, PDF]

Stateful Evaluation Rules

Exam 1

Class 20: Programming with State [PPTX, PDF]

Class 21: Imperative Programming [PPTX, PDF]

append vs. append!

Aliasing

Class 22: No Slides

Class 23: Objectifying Objects [PPTX, PDF]

PS6, PS7, Project

Objects

Real Databases

Class 24: Programming with Objects [PPTX, PDF]

Python

Programming with Objects

Inheritance

Class 25: Python, Objects, Bombs, and Inheritance [PPTX, PDF]

Class 26: Sex, Religion, and Politics [PPTX, PDF]

Class 27: Taming the Plagarist [PPTX, PDF]

Python Dictionaries

History of Object-Oriented Programming

Class 28: Interpreters [PPTX, PDF]

"Trick or Treat" Protocols

Interpreters

Class 29: Charme School [PPTX, PDF]

Class 30: Language Construction [PPTX, PDF]

Completing the Charme Interpreter

History of Object-Oriented Programming

Class 31: Laziness [PPTX, PDF]

Class 32: Web Applications (Kinga Dobolyi) [PPTX, PDF]

Class 33: Networking [PPTX, PDF]

Class 34: Djustifying Django [PPTX, PDF]

Class 35: No Slides

Class 36: Proofs about Unprovability [PPTX, PDF]

Class 37: Uncomputability [PPTX, PDF]

Class 38: Modeling Computing [PPTX, PDF]

Non-Computability of Virus Detection

Turing's Model

Class 39: Universality [PPTX, PDF]

Universal Turing Machines

Church-Turing Thesis

Class 40: Alternate Computing Models [PPTX, PDF]

Class 41: Project Presentations [PPTX]