CS 200
|
Computer Science from Ada and Euclid to Quantum Computing and the World Wide Web |
cs200@cs.virginia.edu | |
Schedule - Problem Sets - Exams - Notes - Lectures - Links |
Lectures
Flat List (without descriptions)
Lectures by Topic
Course Summary (with links to lectures)
Through Exam 1 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 Elements - which are hardest to learn?Class 4: Evaluation and Recursion (Notes)
Rules of Evaluation
Guest visitor: Radhika Nagpal
Origami ProgrammingRules of Evaluation (example continued from Class 3Class 5: Beware the Bunnies! (Notes)
Problem Sets 1 and 2
Defining Recursive ProceduresProblem Set 1 (making procedures)Class 6: Recursing Recursively (GEB Chapter V) (Notes)
Fibonacci ExampleWhy begin is a Special FormClass 7: Do be do be (no slides) (Notes)
RTNs and BNFs
Music and RecursionDefining a procedure for what for loops are for and do loops doClass 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
Defining Sum using Lists
Defining insertlClass 10: Barista Assista (Notes only)
Programming with Lists
Lindenmayer Systems and PS 3Programing with Lists PracticeClass 11: All Sorts (Notes)SortingClass 12: Quicksorting (Notes)
Orders of Growth
Θ
BubblesortClass 13: Astrophysics and Cryptology (Notes)
Insertsort
Quicksort
How much work is Quicksort?Class 14: P = NP? (Notes)
DeGrasse Tyson's Science's Endless Golden Age
Cryptology
Goal-den AgeClass 15: Intractable Problems (Smiley Puzzles and Curing Cancer) (Notes)
Permute Sort
O, Θ, and Ω
Problems and Procedures
Complexity Classes P and NPP and NPClass 16: Knapsack Problem (Exam Review) (Notes)
Why O(2n) is intractable
Smileys Puzzle
3SAT
NP-complete ProblemsClass 17: Exam 1
Through Exam 2 Mutation PrimitivesClass 19: Environments (Notes)
Differences between Functional and Imperative Programming
Advantages and Disadvantages of MutationExam 1Class 20: Objects (Notes)
Environments
Evaluation RulesPackaging State and ProceduresClass 21: Inheritance (Notes)
Object-Oriented Programming
Programming with ObjectsClass 22: Gödel's Theorem (Notes)
Inheritance
Problem Set 6Mechanizing ReasoningClass 23: Computability (Notes)
Gödel's TheoremProofs in Axiomatic SystemsClass 24: Problem Classification Practice (Notes only)
Undecidable Problems
The Halting Problem
Hard problems about how hard problems areClass 25: Metalinguistics (Notes)Problem Classification SummaryClass 26: The Metacircular Evaluator (Notes)
Metalinguistic AbstractionMetacicular EvaluatorClass 27: In Praise of Idleness (Notes)
Implementing EnvironmentsLazy EvaluationClass 28: Types of Types (Notes)
Quantum Mechanics for DummiesTypesClass 29: Typed Scheme (Notes from Class 28)
Type Checking Mini-SchemeType Checking EvaluatorClass 30: Exam 2
After Exam 2 Class 31: Networks, The Internet and the World Wide Web (Notes)
Brief History of NetworkingClass 32: How to Build a Dynamic Web Site (Notes)
Latency and BandwidthDynamic Web SitesClass 34: Modeling Computation (Notes)
HTML, PHP and SQL
Modeling ComputationClass 35: Lambda Calculus (Notes)
Finite State Machines
Turing Machines
Universal Turing MachineLambda CalculusClass 36: The Meaning of Truth (Notes)
Substitution and Reduction
Church-Turing ThesisLambda Calculus ReviewClass 37: Making Numbers, Lists and Recursion from Glue Alone (Notes)
Proving Lambda Calculus is equivalent to a Turing Machine
The Meaning of Truth
Lambda Calculus ReviewClass 38: Fixed Points and Biological Computing (Notes)
Making Numbers and Lists
Fixed Points, Y operatorFixed PointsClass 39: Review (Notes)
Computing with DNA
How Biology Programs
University of Virginia Department of Computer Science CS 200: Computer Science |
David Evans evans@virginia.edu Using these Materials |