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

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

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)


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)

GEB Chapter 5:
    Recursive Transition Networks
    Stacks in Music

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

Problem Set 2

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

Using list-map
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]

Finishing flatten-lcommands

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

Class 18: Changing State [PPTX, PDF]

Nobel Prize: CCD
Story so Far

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!

Class 22: No Slides

Class 23: Objectifying Objects [PPTX, PDF]

PS6, PS7, Project
Real Databases

Class 24: Programming with Objects [PPTX, PDF]

Programming with Objects

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

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]