Files
obsidian-yanxin/documents/academic/presentations/engi600_2015.md
Yanxin Lu b85169f4e7 Archive 10 academic presentations from ~/Downloads/slides/ (2014-2018)
- 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.
2026-04-06 12:00:27 -07:00

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