University of Virginia Computer Science
CS216: Program and Data Representation, Spring 2006


01 November 2006

Classes

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

Class 1: Introduction [PPT, PDF]
Phylogeny Problem
Course Structure and Expectations
Evaluating Algorithms
Class 2: Orders of Growth [PPT, PDF] (Notes)
Predicting Program Properties
Orders of Growth
O and Ω Notation
Section 1: Orders of Growth, Python

Class 3: Levels of Abstraction [PPT, PDF]

Θ and little-o
Levels of Abstraction
List Datatype
Class 4: Dynamic Programming [PPT, PDF]
Dynamic Programming
Needleman-Wunsch Algorithm
Introducting Trees
Section 2: List Representations

Class 5: Logs and Trees [PPT, PDF]

Public Key Cryptography
Fast Exponentiation
Tree Traversal
PS1 and CS216 Grading Scheme
Section 3: Recursive Definitions

Class 6: Ordered Data Abstractions [PPT, PDF]

Dictionary Data Abstraction
Binary Search
Ordered Binary Tree
Class 7: Greedy Algorithms [PPT, PDF]
Greedy Algorithms
Interval Scheduling
Subset Sum
Class 8: Computational Complexity [PPT, PDF]
Complexity Classes
P vs. NP
NP-Completeness
NP-Complete Problems
Class 9: Low-Level Programming [PPT, PDF]
Why hard problems are useful?
Knapsack Ciphers
Thought and Abstraction
Introduction to C
Class 10: *&!%[]++ (Pointers) [PPT, PDF]
Bounds checking
Rvalues and Lvalues
Pointers
Python's List implementation
Class 11: Managing Memory [PPT, PDF]
Memory Management
malloc
free
Resizing lists
Class 12: Automating Memory Management [PPT, PDF]

Class 13: Huffman Codes [Chalk]

Class 14: Optimality of Huffman Codes [Chalk]

Class 15: Compression [PPT, PDF] (slides not used in class)

Class 16: Numbers [PPT, PDF]

Class 17: 0xCAFEBABE (Virtual Machines) [PPT, PDF]

Class 18: Code Safety [PPT, PDF]

Class 19: Java Security [PPT, PDF]

Class 20: Hair-Dryer attacks and Introducing x86 [PPT, PDF]

Class 21: Calling Conventions [PPT, PDF]

Class 22: Unconventional Calling [PPT, PDF]

Class 23: Faster Dictionaries [PDF, PDF]


CS216: Program and Data Representation
University of Virginia
David Evans
evans@cs.virginia.edu
Using these Materials