CS 200

Computer Science from Ada and Euclid to Quantum Computing and the World Wide Web 
Spring 2003  
Schedule  Problem Sets  Exams  Lectures  Syllabus  Links 
Lectures
Classes 113 What is Computer Science?Class 2: Formal Systems and Languages (Notes)
Euclid, Ada and Bill
Why Computer Science is Not Engineering
The Apollo Guidance Computer
Recursive Definitions and antifloccipoccinihilipilification
Drinking from the FirehoseSurvey ResultsClass 3: Rules of Evaluation (Notes)
Formal Systems
What are languages made of?
History of Computer Programming
Admiral Grace Hopper, John Backus
Describing Languages
BackusNaur Form
SchemeLanguage ElementsClass 4: Recursive Definitions (Notes)
Why don't we program computers using English?
Rules of Evaluation
Defining Recursive ProceduresClass 5: Recursing Recursively (GEB Chapter V) (Notes)
Fibonacci
Problem Set 1 Answers
Problem Set 2
Fibonacci ContinuedClass 6 and 7: Cracking the Cracker Barrel (Notes only)
RTNs and BNFs
Music and RecursionClass 8: Cons car cdr sdr wdr (Notes)
History of Scheme (Lots of Insipid Silly Parentheses)Class 9: The Great Lambda Tree of Knowledge and Power (Notes)
From Pairs to Lists
Recursive Procedures on Lists
Programming with ListsClass 10: Barista Assista (Notes only)
Lindenmayer Systems and PS 3Programing with Lists PracticeClass 11: Sorting Grounds and Bubbles (Notes)Find MostClass 12: Decrypting Work, Working on Decrypting (Notes)
Sorting
How do computer scientists measure work?Class 13: Quickersorting (Notes)
Θ(n^{2})
Insertion Sort
PS4: CryptologyInsertsort in halves
Trees
QuicksortClasses 1425 Class 14: Tim Koogle's visit (no slides or notes)
Class 15: Goalden Ages and Astrophysics (Notes)
Simulating the UniverseClass 16: Mutation (Notes)
Problems that are more work than simulating the Universe
Goalden Ages and Grade Inflation
Liberal Arts ReturnsMutation PrimitivesClass 17: Environments (Notes)
Differences between Functional and Imperative Programming
Advantages and Disadvantages of Mutation
Problem Set 5EnvironmentsClass 18: Gödel's Theorem (Notes)
Evaluation Rules
Exam 1Mechanizing ReasoningClass 19: Computability (Notes)
Gödel's TheoremProofs in Axiomatic SystemsClass 20: Objects (Notes)
Undecidable Problems
The Halting Problem
Packaging State and ProceduresClass 21: Inheritance (Notes)
ObjectOriented Programming
Programming with ObjectsClass 22: P = NP? (Notes)
Inheritance
Problem Set 5
Problem Set 6Permute SortClass 23: NP Completeness (Notes)
O, Θ, and Ω
Problems and Procedures
Complexity Classes P and NPSmileys PuzzleClass 24: Metalinguistics (Notes)
3SAT
NPcomplete ProblemsProblem Classification SummaryClass 25: The Metacircular Evaluator (Notes)
Computability in Theory and Practice (Ali G)
Quantum Mechanics for Dummies
Metalinguistic Abstraction
Slides available, but not used.Classes 2637 Class 26: In Praise of Idleness (Notes)
Implementing EnvironmentsClass 27: Types of Types (Notes)
Lazy Evaluation
TypesClass 28: Networks, The Internet and the World Wide Web (Notes)
Type Checking MiniSchemeBrief History of NetworkingClass 29: How to Build a Dynamic Web Site (Notes)
Latency and BandwidthDynamic Web SitesClass 30: Modeling Computation (Notes)
HTML, PHP and SQL
Modeling ComputationClass 31: Universal Turing Machines and Lambda Calculus (Notes)
Finite State Machines
Turing MachinesUniversal Turing MachineClass 32: The Meaning of Truth (Notes)
Lambda Calculus
Substitution and Reduction
ChurchTuring ThesisLambda Calculus ReviewClass 33: Making Recursion (Notes)
Proving Lambda Calculus is equivalent to a Turing Machine
Making Primitives out of Nothing but Glue
The Meaning of Truth
Making Numbers and Lists
Lambda Calculus Review
Fixed Points
Y OperatorClass 34: Exam Review (no slides or notes)
Class 35: Cookie Monsters and SemiSecure Websites (Notes)
AuthenticationClass 36: PublicKey Cryptography (Notes)
Passwords
CookiesAsymmetric CryptosystemsClass 37: Secret of Life (Notes)
RSA
Certificates
SSL50th Anniversary
DNA and Computing
Computing with DNA

cs200staff@cs.virginia.edu Using these Materials 