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]
Finishing flatten-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]