Schedule
Complete the reading (including the slides) before the class where it is listed.
CSE 503 26wi schedule
| Date | Lecture | Reading | Homework (submit via Canvas) |
|---|---|---|---|
| Wed Jan 7 | Introduction | ||
| Fri Jan 9 | Static and dynamic analysis; Longer slides 1, Longer slides 2 | book chapter 1 and section 2.24 (Notes on "Static and dynamic analysis: synergy and duality"); Static and dynamic analysis: synergy and duality; Lessons from building static analysis tools at Google | |
| Tue Jan 13 | HW1: Development difficulties | ||
| Wed Jan 14 | Abstract interpretation | book sections 2.0 - 2.14. | Exercises 4 and 5 from the book |
| Fri Jan 16 | Abstract interpretation | book rest of chapter 2; Abstract Interpretation: a semantics-based tool for program analysis sections 1.0-2.2; skim remainder of section 2. | Skim HW1 submissions and read those that interest you (nothing to submit); Exercises 17 and 18 (monotonicity) and 26 and 27 (Stein's algorithm) from the book |
| Wed Jan 21 | Abstract interpretation wrapup & demo | ||
| Thu Jan 22 | |||
| Fri Jan 23 | More abstract interpretation, project proposal consults | Project proposal and form groups; optional: read potential research projects (note 3 other lists of projects are linked from it) | |
| Sat Jan 24 | Exercise 29 (divide by zero design) from the book | ||
| Wed Jan 28 | Test generation | book chapter 3 and section A.3 (Testing; terminology: Bugs, defects, and failures), Feedback-directed Random Test Generation, EvoSuite: Automatic Test Suite Generation for Object-Oriented Software | |
| Fri Jan 30 | Program repair | "A systematic study of automated program repair: fixing 55 out of 105 bugs for $8 each" | |
| Sat Jan 31 | Exercise 30 (divide by zero implementation) from the book | ||
| Wed Feb 4 | Program repair | "An Analysis of Patch Plausibility and Correctness for Generate-and-Validate Patch Generation Systems", "Angelix: Scalable Multiline Program Patch Synthesis via Symbolic Analysis" | slides (please use a light background for your slides) |
| Fri Feb 6 | Project presentations | report (related work and methodology complete) | |
| Wed Feb 11 | Static slicing | "Program slicing" by Mark Weiser "Thin slicing", by Manu Sridharan, Stephen J. Fink and Ras Bodik, in PLDI 2007. |
|
| Fri Feb 13 | Dynamic slicing | Debugging Reinvented: Asking and Answering Why and Why Not Questions About Program Behavior by Amy J. Ko and Brad A. Myers, in ICSE '08, "Cost Effective Dynamic Program Slicing", by Xiangyu Zhang and Rajiv Gupta, in PLDI 2004. | report (address comments, add new text) |
| Wed Feb 18 | ML for SE | Neural software analysis, code2vec: learning distributed representations of code; visit the code2vec website. | |
| Fri Feb 20 | ML for SE | "Suggesting accurate method and class names". | report (address comments, add new text) |
| Wed Feb 25 | Project presentations | slides (please use a light background for your slides), report (code and initial results complete) | |
| Fri Feb 27 | Model checking | Review linear temporal logic and buchi automaton; "CMC: a pragmatic approach to model checking real code" and "Finding and Reproducing Heisenbugs in Concurrent Programs". | |
| Wed Mar 4 | Model checking | "The Model Checker SPIN", "Using predicate abstraction to reduce object-oriented programs for model checking", and "Counterexample-Guided Abstraction Refinement". | |
| Fri Mar 6 | Typestate | Typestate: A Programming Language Concept for Enhancing Software Reliability and Effective Typestate Verification in the Presence of Aliasing. | report (address comments, add new text) |
| Wed Mar 11 | No class (visit days) | ||
| Fri Mar 13 | Accumulation analysis | Chapter 3 of Lightweight Verification via Specialized Typecheckers, titled "Lightweight Verification via Accumulation Analysis." | report (address comments, add new text) |
| Wed Mar 18 | 2:30-4:30 Final Presentations | slides (please use a light background for your slides), report (final version) | |
| Fri Mar 20 | No class (final project reports due) | submit final project reports on Canvas |