cs150  Spring 2007

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

Coach
David Evans
evans@cs.virginia.edu

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

# Classes

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 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 Scheme 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) 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 Recursive Procedures Fibonacci RTNs and BNFs Music and Recursion 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) insert-sort Analyzing Sorts Sorting with trees Cryptography at Bletchley Park Finishing Tree Sorting Roadmap: the story so far Classes 19- Set expressions Name, places, frames, and environments How mutation changes evaluation rules Endless Golden Ages Golden Catastrophes, Malthus Class 21: Think Locally, Mutate Globally [PDF] (Notes) Environments Procedure Application Rule with state Class 22: Objectifying Objects [PPT, PDF] (Notes) Objects Building an object system Databases (PS5) Class 23: Programming with Objects [PPT, PDF] (Notes) Object-Oriented Programming Inheritance Class 24: Gödel's Proof [PPT, PDF] 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) Finishing LazyCharme Quiz 2 results Static Type Checking Class 32: Truthiness [PPT, PDF] (Notes) Static Type Checking StaticCharme Class 33: Networking [PPT, PDF] (Notes) Class 34: Guest Lecture by Gary McGraw Buffer overflows Cross-site scripting Authentication Hashing 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)