Date

Topic (and notes, when available)

Homework

Reading For The Next Class

Tue Aug 26

Welcome To Wonderland

All homeworks are posted.
Start early!

Thomas Ball and Sriram Rajamani's The SLAM Project: Debugging System Software via Static Analysis
Thomas
Ball and Sriram Rajamani's Automatically Validating Temporal Safety
Properties of Interfaces

Thu Aug 28

Model Checking
SLAM Introduction


Henzinger et al.'s Lazy Abstraction
Henzinger
et al.'s Threadmodular Abstraction Refinement (optional)

Tue Sep 02

Program Verification Using
Counterexampleguided
Abstraction Refinement


Winskel Chapter Two: Introduction to operational semantics
Hoare's Hints On Programming Language
Design (shorter than it looks)
Weimer's Midterm Pi (optional,
but if you replace "Cool" with "Your Favorite Language" you should be able
to answer most of the questions in it)
Spolsky's The Perils of JavaSchools (optional, short,
controversial, relevant)

Thu Sep 04

A Simple Imperative Language Operational Semantics

HW 0 Due

Choose at least one of these three:
1. Wegner's Programming Languages  The First 25 years
2. Wirth's On the Design of
Programming Languages (bonus points if you mistakenly choose this
one just because it has the lowest page count)
3. Nauer's Report on the algorithmic
language ALGOL 60 (the language that Hoare said was an
improvement not only on its predecessors but also on nearly all of its
successors)
Cobbe and
Felleisen's Environmental acquisition revisited
(optional, recent paper  POPL 2005, uses operational semantics on page 7,
figure 11, just skim to that figure and see if you recognize it)
Chen and Tarditi's
A simple typed intermediate language for objectoriented
languages
(optional, recent paper  POPL 2005, uses operational semantics on page 9,
figure 14, just skim to that and note the nonstandard syntax  but you
should be able to interpret the (H; V ; x : t = v in e) rule, for
example)
Plotkin's
A Structural Approach To Operational Semantics
(optional, basically a textbook, see chapter 2 for another take on what
we're covering in class)

Tue Sep 09

Contextual Operational Semantics

 Chaptire Trois De Winskel: Some principles of induction
Wikipedia's
Natural deduction (optional, sections 13 show judgments and
rules of inference for a simpler system  propositional logic, read this
if you want another take on derivations)
Phillip's Degrees of
Interpretation (optional, Philosophy of Science; if you like math
or theory this is worth it)

Thu Sep 11

Proof Techniques For Operational Semantics Structural Induction

HW 1 Due

Capítulo Cinco De Winskel: The denotational semantics of IMP
Capítulo Ocho De Winskel: Introduction to domain theory
(read for general concepts, not details)

Tue Sep 16

Whirlwind Denotation Semantics (1/2)


Capítulo Cinco De Winskel: The denotational semantics of IMP
(really this time!)
Capítulo Ocho De Winskel: Introduction to domain theory
(read for general concepts, not details)

Thu Sep 18

Whirlwind Denotational Semantics (2/2)
 HW 2 Due
 Winskel Kapitel SechsEins Bis SechsVier: The axiomatic semantics
of IMP
Hoare's An Axiomatic Basis for Computer
Programming
Floyd's Assigning Meaning to Programs
Lee's A Denotational Semantics for
Dataflow with Firing (skim up to and including section 2.4 for an
alternative presentation of partial orders, least upper bounds, monotonic
and continuous functions, and least fixed points)

Tue Sep 23

Intro To Axiomatic Semantics

 Winskel Capitolele sasecinci pana la sasesapte (6.56.7) si
sapteunu pana la saptetrei (7.17.3):
Completeness of the Hoare rules
Hoare's Proof of a program: FIND
Necula's Completeness of
Axiomatic Semantics (using operational semantics)

Thu Sep 25

Axiomatic Semantics 2: With A Vengeance
 HW 3 Due
Project Proposal Due
 Winskel Chapters 7.47.6: Completeness of the Hoare Rules
Dijkstra's Guarded Commands, Nondeterminancy and Formal Derivation of Programs

Tue Sep 30

Verification Conditions


Cousot and Cousot's Abstract
Interpretation
Abramski's An introduction to abstract
interpretation

Thu Oct 02

Abstract Interpretation
 HW 4 Due
 Thompson's
Reflections on Trusting Trust
Wikipedia's
Abstract Interpretation (optional)

Tue Oct 07

Abstract Interpretation 2:
The Wrath of Cousot


Benjamin Pierce's Foundational Calculi for Programming Languages (pages 110)

Thu Oct 09

Lambda Calculus And Functional Programming


Xavier Leroy's Formal Certification
of a Compiler Backend or: Programming a Compiler with a Proof Assistant
Li & Zdancewic's Downgrading Policies
and Relaxed Noninterference (optional, describes secure information
flow and noninterference using the lambda calculus, check out section 4)

Tue Oct 14

Lambda Two: Electric Boogaloo

HW 5 Due
 Luca Cardelli's Type
Systems

Thu Oct 16

SimplyTyped Lambda Calculus

Project Status Update Due
 Andrew Wright and Matthias
Felleisen's A syntactic approach to type soundness

Tue Oct 21

Monomorphic Type Systems


John Goodenough's Exception
Handling: Issues and a Proposed Notation (optional, 1975, this is
the canonical paper on exception handling)

Thu Oct 23

Exceptions and Continuations



Tue Oct 28

Recursive Types and Subtyping



Thu Oct 30

SecondOrder Types (Polymorphism)



Tue Nov 04

Dependant Types and
Data Abstraction


Nelson and Oppen's Fast
Decision Procedures Based On Congruence Closure

Thu Nov 06

Automated Theorem Proving and Proof Checking

 Benjamin Pierce's Foundational Calculi for Programming Languages (pages 10end)
Dawson Engler et al.'s Automatically
Generating Malicious Disks Using Symbolic Execution (optional, uses
symex and theorem proving)

Tue Nov 11

Communication and Concurrency


Robert DeLine and Manuel Fahndrich's Enforcing highlevel protocols in lowlevel software
Weimer and Necula's Finding And Preventing RunTime Error Handling
Mistakes

Thu Nov 13

Type Systems For Resource Management


Hooimeijer
and Weimer's Modeling Bug Report Quality

Tue Nov 18

Machine Learning 1


Buse and Weimer's A Metric for Software Readability

Thu Nov 20

Machine Learning 2


Liblit et al.'s Bug
Isolation via Remote Program Sampling

Tue Nov 25

Cooperative Bug Isolation
 Projects Due

Speech Evaluation Form
ObjectOriented Programming Slides
(optional)

Thu Nov 27 
No Lecture  Thanksgiving Recess
(Nov 26  Nov 30)


Austen's
Pride and Prejudice (optional)
Barzun's
From Dawn To Decadence (optional)
Diamond's
Guns, Germs, and Steel (optional)
Goldman's
The Princess Bride (optional)

Tue Dec 02 
8Minute Student Presentations
(show up on time)
(class goes until 3:25)

Presentation Signup Reminder & Hints

 Kirti Chawla
 Zak Fry
 Luther Tychonievich
 Irwin Reyes
 Blake Sheridan
 Kristen Walcott
 Dan Lepage
 Ming Mao
 Elizabeth Soechting

Thu Dec 04 
8Minute Student Presentations
(show up on time)
(class goes until 3:25)


 Wil Burns
 Daniel Dougherty
 Mona Sergi
 Andrew Jurik
 Ren Xu
 Sam Block
 Tim Chaplin
 Derek Davis
 Arkaitz Ruiz Alvarez
 Michael Skalak
