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 1-13 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
Backus-Naur 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)
Θ(n2)
Insertion Sort
PS4: CryptologyInsertsort in halves
Trees
QuicksortClasses 14-25 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)
Object-Oriented 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
NP-complete 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 26-37 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 Mini-SchemeBrief 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
Church-Turing 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 Semi-Secure Websites (Notes)
AuthenticationClass 36: Public-Key Cryptography (Notes)
Passwords
CookiesAsymmetric CryptosystemsClass 37: Secret of Life (Notes)
RSA
Certificates
SSL50th Anniversary
DNA and Computing
Computing with DNA
|
cs200-staff@cs.virginia.edu Using these Materials |