- PhD defense slides (defense.key, Nov 2018) → phd_defense/ - Master's defense on MOOC peer evaluation (Dec 2014) - ENGI 600 data-driven program repair (Apr 2015) - COMP 600 data-driven program completion (Fall 2015, Spring 2016) - COMP 600 Program Splicing presentation + feedback + response (Spring 2018) - Program Splicing slides in .key and .pdf formats (Spring 2018) Each file has a .md transcription with academic frontmatter. Skipped www2015.pdf (duplicate of existing www15.zip) and syncthing conflict copy.
1.4 KiB
1.4 KiB
category, type, person, date, source
| category | type | person | date | source |
|---|---|---|---|---|
| academic | academic | Yanxin Lu | 2015-04 | engi600_2015.pptx |
ENGI 600: Data-Driven Program Repair
Yanxin Lu, Swarat Chaudhuri, Christopher Jermaine, Joe Warren, and Scott Rixner. 12 slides.
Slide 1: Title
Data-Driven Program Repair
Slide 2: Debugging is difficult
Slide 3: Related work
- Talus, tutoring system (Murray, 1986) — reference program, program analysis
- Mutation (Debroy and Wong, 2010) — predefined rules for mutating programs
Slide 4: Data-driven program repair
- Code database for evaluatePoly
- Incorrect Program → Correct Program
Slide 5: EvaluatePoly
- A program which evaluates polynomials
- Poly: a list of coefficients
- X: the x value in the polynomial
Slide 6: Similar and correct implementations
- Distance between programs
- Incorrect Program → Code Database → Correct Programs → Template Generation
Slide 7: Template Generation
- Find differences and replace them with holes
- Ignore variable names
Slide 8: Filling in the Holes
- Search for ways to replace holes
- Variable Renaming
Slide 9: Variable Renaming
- Rename variables in the good program
Slide 10: Unit Testing
- Filter all incorrect fixes using unit testing
- If multiple correct fixes, choose the most similar one
Slide 11: Experiment
Slide 12: Conclusion
- Data-driven program repair
- Effective in fixing small incorrect programs
- Computer science education — same mistakes