CS 201J
|
Engineering Software |
cs201j-staff@cs.virginia.edu | |
Schedule - Problem Sets - Exams - Lectures - Links |
CS201J - Lectures and Notes
Lecture 1: Engineering Software? (Notes): Can we Engineer Software?Lecture 2: Java Semantics, Valiation (Notes)
Why is software different from bridges?
Tools for managing complexity
JavaJava Semantics: Stack and HeapLecture 3: Abstraction by Specification (Notes)
Object equality and mutability
Validation: Testing and Analysis
Black-box, glass-box testing
ValidationLecture 4: Data Abstraction (Notes)
Modularity and Specification
Characteristics of a Good Specification
Formal and Information Specifications
Requires, Modifies, EffectsSpecifying ADTsLecture 5: Implementing Data Abstractions (Notes)
Creators, Producers, Observers and Mutators
Representations
Implementing Data AbstractionsLecture 6: Reasoning about Data Abstractions (Notes only)
Criteria for selecting a good representation
Rep Invariants and Abstraction Functions
Reasoning about program correctnessLecture 7: Tale of Two Graphs (Notes)
Criteria for selecting a good representation
Rep Invariants and Abstraction Functions
Rep exposureWhy Design MattersLecture 9: Handling Mistakes (Notes)
Modular Dependency Diagrams
Evaluating DesignsWeakly Uses DependenciesLecture 10: Exceptions
Tradeoffs between no checking, static checking and dynamic checkingExceptions
Try and Catch
Checked and Unchecked ExceptionsLecture 11: Subtyping and Inheritance (Notes) Lecture 12: Subtyping and Inheritance 2
Lecture 13: Behavioral Subtyping (Notes)
Lecture 14: Substitution Principle (Notes)
Substitution PrincipleLecture 15: Concurrency (Section Notes)
Eiffel's Type RulesConcurrency Race Conditions DeadlocksLecture 16: Programming Concurrency (Notes)Substitution Principle ExampleLecture 17: Concurrency without Locks (Notes)
Programming Threads in Java
Wait and notifyWhy were stop and suspend deprecated?Lecture 18: CAFEBABE (Java Byte Codes) (Notes)
Linda/JavaSpacesLecture 19: Java Security (Notes)
Java SecurityLecture 20: Hair Dryer Attacks (Notes)
Byte Code Verifier
Reference MonitorsArray Subtying RulesLecture 21: Garbage Collection (Notes)
Violating Type Safety
Using type violations to violated security policyStack and Heap ReviewLecture 22: C (Notes)
Garbage Collection Approaches:
Mark and Sweep
Stop and Copy
Reference CountingC Programming LanguageLecture 23: Everything Else You Should Know
Data Abstraction in C
Pointers
Garbage Collection
University of Virginia Department of Computer Science CS 201J: Engineering Software |
Sponsored by the National Science Foundation |
cs201j-staff@cs.virginia.edu |