== Tentative Schedule == ***Week 1** (1/7) *Introduction[[http://www.cs.purdue.edu/homes/xyzhang/spring13/1-introduction.pdf|Slides]] *Program Representation[[http://www.cs.purdue.edu/homes/xyzhang/spring13/2-representation.pdf|Slides]] *Reading: [[http://www.cs.purdue.edu/homes/xyzhang/spring10/representation.pdf|Book Chapters]] ***Week 2** (1/14) *Dynamic Program Analysis Primitives - Tracing[[http://www.cs.purdue.edu/homes/xyzhang/spring13/3-tracing.pdf|Slides]] *Reading:[[http://www.cs.purdue.edu/homes/xyzhang/spring10/valgrind.pdf|Valgrind:a framework for heavyweight dynamic binary instrumentation]] *Suggested Reading:[[http://www.cs.purdue.edu/homes/xyzhang/Comp/taco05.pdf|Whole Execution Trace]] (Section 4 only) ***Student Presentation (Ryan Miller)**: ***Week 3** (1/21) *Profiling[[http://www.cs.purdue.edu/homes/xyzhang/spring13/4-profiling.pdf|Slides]] *Reading:[[http://www.cs.purdue.edu/homes/xyzhang/spring10/epp.pdf|Efficient Path Profiling]] ***Student Presentation (Azfar Khandoker)**: ***Week 4** (1/28) *Dynamic Slicing[[http://www.cs.purdue.edu/homes/xyzhang/spring13/5-slicing.pdf|Slides]] ***Student Presentation (Yonghwi Kwon)** ***Week 5** (2/4, instructor travels from 2/2-2/8) *Building a LLVM tool by Nick Sumner on 2/5[[http://www.cs.purdue.edu/homes/xyzhang/spring13/LLVMIntro.pdf|Slides]] *Implementing information flow system on Valgrind by Mehdi Azarmi on 2/7[[http://www.cs.purdue.edu/homes/xyzhang/spring13/5-slicing-IFS.updated.pdf|Slides]] ***Student Presentation (Jianjun Huang)** ***Week 6** (2/11) *Delta Debugging and Statistical Debugging[[http://www.cs.purdue.edu/homes/xyzhang/spring13/7-debugging.pdf|Slides]] *Static program analysis[[http://www.cs.purdue.edu/homes/xyzhang/spring13/6-static-analysis.pdf|Slides]] *Suggested Reading: Dragon book 9.1-9.3.3 ***Student Presentation (Abhinav Ghai)** ***Week 7** (2/18) *Static program analysis ***Student Presentation (Hou-Jen Ko)** ***Week 8** (2/25) *Propositional Logic[[http://www.cs.purdue.edu/homes/xyzhang/spring13/10-logic-wo-notes.pdf|Slides]] *Reading: Chapter one of //Logic in Computer Science//. ***Student Presentation (Brendan Saltaformaggio)** ***Week 9** (3/4, midterm on 3/7) *Propositional Logic *Midterm ***Week 10** (3/11, spring break, no class) ***Week 11** (3/18) *SAT solving[[http://www.cs.purdue.edu/homes/xyzhang/spring13/10-bitblast.pdf|Slides]] *Model Checking C Programs[[http://www.cs.purdue.edu/homes/xyzhang/spring13/11-cbmc-1.pdf|Slides]] *Reading:[[http://www.kroening.com/papers/dac2003.pdf|CBMC]]. *Suggested Reading:[[http://yices.csl.sri.com/documentation.shtml|SMT solver]] ***Student Presentation (Jeff Avery)** ***Week 12** (3/25) *Model Checking Java Programs[[http://www.cs.purdue.edu/homes/xyzhang/spring13/12-jpf-1.pdf|Slides]] ***Student Presentation (Chung Hwan Kim) ** ***Week 13** (4/1) *JPF-Predicate Abstraction[[http://www.cs.purdue.edu/homes/xyzhang/spring13/12-jpf-2.pdf|Slides]] *[[http://ti.arc.nasa.gov/people/wvisser/ase00FinalJournal.pdf|Reading:Model Checking Programs]] *Reading:[[http://www.cs.ucla.edu/~todd/research/pldi01.pdf|Predicate Abstraction]] *Suggested Reading:[[http://mtc.epfl.ch/~tah/Publications/lazy_abstraction.pdf|Lazy Abstraction]] *JPF-Predicate Abstraction ***Student Presentation (Chunmeng Zhou)** ***Week 14** (4/8) *Testing-II[[http://www.cs.purdue.edu/homes/xyzhang/spring13/13-testing.pdf|Slides]][[http://www.cs.purdue.edu/homes/xyzhang/spring13/13-testing2-cute.pdf|Slides-2]] *Reading: [[http://portal.acm.org/citation.cfm?id=1081750|Concolic Testing]] ***Student Presentation (John S. Lima)** ***Week 15** (4/15) *Testing-II (testing concurrent programs)[[http://www.cs.purdue.edu/homes/xyzhang/spring13/13-testing2-concurrent.pdf|Slides]] *Reading: [[http://www.usenix.org/event/osdi08/tech/full_papers/musuvathi/musuvathi.pdf|Finding and Reproducing Heisenbugs in Concurrent Programs]] ***Student Presentation (Rodrigo Haragutchi)** ***Week 16** (4/22) *Review *Project Demo