University of Virginia Computer ScienceCS216: Program and Data Representation, Spring 2006 |
01 November 2006 |

Class 1: Introduction [PPT, PDF]
Phylogeny ProblemClass 2: Orders of Growth [PPT, PDF] (Notes) Predicting Program PropertiesSection 1: Orders of Growth, Python Class 3: Levels of Abstraction [PPT, PDF] Θ and little-Class 4: Dynamic Programming [PPT, PDF] Dynamic ProgrammingSection 2: List Representations Class 5: Logs and Trees [PPT, PDF] Public Key CryptographySection 3: Recursive Definitions Class 6: Ordered Data Abstractions [PPT, PDF] Dictionary Data AbstractionClass 7: Greedy Algorithms [PPT, PDF] Greedy AlgorithmsClass 8: Computational Complexity [PPT, PDF] Complexity ClassesClass 9: Low-Level Programming [PPT, PDF] Why hard problems are useful?Class 10: *&!%[]++ (Pointers) [PPT, PDF] Bounds checkingClass 11: Managing Memory [PPT, PDF] Memory ManagementClass 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 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] |

CS216: Program and Data RepresentationUniversity of Virginia |
David Evansevans@cs.virginia.eduUsing these Materials |