- 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.
56 lines
1.4 KiB
Markdown
56 lines
1.4 KiB
Markdown
---
|
|
category: academic
|
|
type: academic
|
|
person: Yanxin Lu
|
|
date: 2015-04
|
|
source: 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
|