cs150  Spring 2007

cs150: Computer Science
from Ada and Euclid to Quantum Computing and the World Wide Web

David Evans

Assistant Coaches
Kinga Dobolyi
Richard Hsu
Dan Marcus

Class Meetings
Mondays, Wednesdays, and Fridays, noon-12:50 in Olsson 005
Office Hours (OLS 236A)
Wednesdays: 1-2pm
Thursdays: 3:30-4:30pm


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

Classes 1-18

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

What is Computer Science?
   Euclid, Ada and Bill
Computer Science and the Liberal Arts
   The Apollo Guidance Computer
Course Expectations, Drinking from the Firehose
Recursive Definitions and antifloccipoccinihilipilification
Class 2: Formal Systems and Languages [PPT, PDF] (Notes)
Formal Systems
What are languages made of?
History of Computer Programming
   Admiral Grace Hopper, John Backus
Describing Languages
   Backus-Naur Form
Class 3: Rules of Evaluation [PPT, PDF] (Notes)
Learning Languages
Rules of Evaluation
Class 4: The Value of Everything [PPT, PDF] (Notes)
Problem Set 1
Rules of Evaluation
Class 5: Procedures Practice (Notes)

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

Making data
cons, car, cdr
Making lists
Class 7: List Recursion Practice (Notes)
list?, sumlist, map
Class 8: Recursing Lists (Notes)
More list recursion examples: list-cruncher, find-closest-number

Class 9: Recursing Recursivey [PPT, PDF] (Notes)

Recursive Procedures
RTNs and BNFs
Music and Recursion

Class 10: Puzzling Pegboards [PPT, PDF] (Notes)

PS2 and PS3
Pegboard Puzzle
Class 11: One Percent Luck [PPT, PDF] (Notes)
Finishing the Pegboard Puzzle
Class 12: Something About Sneezewort [PPT, PDF] (Notes)
Measuring Cost
Cost of Fibonacci Procedures
Best-First Sorting
Class 13: Cost of Sorts [PPT, PDF] (Notes)
Measuring Cost
O, Ω, and Θ
Class 14: Asymptotic Growth [PPT, PDF] (Notes)
O, Ω, and Θ
Sort Procedures
Class 15: Quicker Sorting [PPT, PDF] (Notes)
Analyzing Sorts

Class 16: Quickest Sorting [PPT, PDF] (Notes)

Sorting with trees

Class 17: Double Deltas and Banburismus [PPT, PDF] (Notes)

Cryptography at Bletchley Park

Class 18: The Story So Far [PPT, PDF] (Notes)

Finishing Tree Sorting
Roadmap: the story so far
Classes 19-

Class 19: Programming with State [PPT, PDF] (Notes)

Set expressions
Name, places, frames, and environments
How mutation changes evaluation rules

Class 20: Sex, Religion, and Politics [PPT, PDF] (Notes)

Endless Golden Ages
Golden Catastrophes, Malthus
Class 21: Think Locally, Mutate Globally [PDF] (Notes)
Procedure Application Rule with state
Class 22: Objectifying Objects [PPT, PDF] (Notes)
Building an object system
Databases (PS5)
Class 23: Programming with Objects [PPT, PDF] (Notes)
Object-Oriented Programming
Class 24: Gödel's Proof [PPT, PDF]

Class 25: Gödel and Computability [PPT, PDF] (Notes)

Finishing Gödel's Proof
Quiz Answers
John Backus
Alan Turing
The Halting Problem
Class 26: Proving Uncomputability [PPT, PDF] (Notes)
The Halting Problem
Proving Uncomputability
Other Uncomputable Problems
Class 27: Viruses and Object-Oriented Programming [PPT, PDF] (Notes)
Uncomputability of Virus Detection Problem
History of Object-Oriented Programming
Class 28: Implementing Interpreters [PPT, PDF]
Why learn Python?
Computability in Theory and Practice (Ali G Problem)
Implementing Interpreters
Class 29: Charme School (Notes)
Disecting the Charme Interpreter
Class 30: Lazy Evaluation [PPT, PDF] (Notes)

Class 31: Types of Types [PPT, PDF] (Notes)

Finishing LazyCharme
Quiz 2 results
Static Type Checking
Class 32: Truthiness [PPT, PDF] (Notes)
Static Type Checking
Class 33: Networking [PPT, PDF] (Notes)

Class 34: Guest Lecture by Gary McGraw

Class 35: Semi-Secure Websites

Buffer overflows
Cross-site scripting
Class 36: Modeling Computing [PPT, PDF]
Turing's Model
Finite State Machines
Class 37: Universal Computers [PPT, PDF] (Notes)
Universal Turing Machine
Church-Turing Thesis
Class 38: "Career Day"
Kinga Dobolyi: Discovering the Need for Software Engineering [PPT]
Richard Hsu: Getting Lost in CS [PPT]
Adrienne Felt: Disk Level Virus Detection [PDF]
Class 39: Lambda Calculus [PPT, PDF] (Notes)

Class 40: Computing with Glue and Photons [PPT, PDF]

Class 41: P = NP? [PPT, PDF] (Notes)

cs1120: Computer Science
University of Virginia
Using these Materials