Files
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

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

  • 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