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.
This commit is contained in:
Yanxin Lu
2026-04-06 12:00:27 -07:00
parent 180c615170
commit b85169f4e7
20 changed files with 602 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
---
category: academic
type: academic
person: Yanxin Lu
date: 2018-05
source: splicing_comp600_2018.key
---
# Program Splicing — COMP 600 Spring 2018 (Keynote)
Yanxin Lu, Swarat Chaudhuri, Christopher Jermaine, David Melski. Keynote presentation, Spring 2018.
Source Keynote file for the Program Splicing COMP 600 presentation. The PDF export is available as splicing_comp600_2018.pdf.
The presentation covers the same content as splicing_comp600_slides_2018.pdf but is a slightly revised version with subtitle "Data-driven Program Synthesis" on the title slide:
1. Copying and Pasting problem — time consuming and introduces bugs
2. Program Synthesis — automatically generating programs from specifications
3. Problem — can we use program synthesis to improve copy-paste?
4. Related work — Sketching (PLDI 2005), Code Transplantation (ISSTA 2015)
5. Program Splicing approach — automate copying/pasting using 3.5M program corpus, ensure correctness
6. Architecture — draft program → Synthesis ↔ PDB → completed program
7. PDB — 3.5M Java programs, natural language features, similarity metrics, KNN search, fast top-k query
8. Relevant programs — query PDB with draft program to find similar implementations
9. Filling holes — enumerative search over candidate expressions from relevant programs
10. Variable renaming — resolve undefined variables
11. Testing — filter incorrect candidates via unit tests
12. Heuristics — type and context-based pruning for search space reduction
13. Benchmark — 12 programs, synthesis times 3161 seconds, efficient algorithm
14. User study — 18 participants (12 grad students + 6 professionals), 4 problems, splicing most helpful for algorithmic tasks and tasks without standard solutions
15. Conclusion — data-driven synthesis with large corpus, enumerative search, efficient algorithm, fast code reuse