Summary & Awards

Yanyan Jiang

Introduction to SE Research:

Three Easy Pieces


Newbie phase (or unfamiliar research area)

  • Newbies: courses $\approx$ tutorials $>$ textbooks $>$ talks $>$ papers
  • You will learn a lot!

Professional phase (your topic's related research)

  • Virtually re-implement every paper (to make sure you digest them well)
    • be constructive, not destructive on every paper
  • Make a reading list (now)!
    • get all top-conference papers in 10-15 years
    • build a reference graph
    • (a very hard time; but very useful)


How to write?

  • Lots of tedious details
    • “Least surprise principle” - your reader is a deep neural network; make their predictions in line
    • Find a manual, e.g., CMOS
  • Give a lot of time to your advisor for revising your manuscript
    • $>3$ months


Write good code

  • Readable - make specifications explicit
  • Verifiable - make correctness explicit

Life is short, use

  • Modern IDE and command line tools
  • Git
  • Python
  • Domain-specific languages
    • example: I use Jinja2 for spamming:
    • spam assignment.csv


Distinguished Review Award

Distinguished Review Awards




Distinguished Proposal Award

Distinguished Proposal Awards


“Detecting Breaking Changes in Python Libraries: A Systematic, Automatic Approach”


“JFass: A New Serverless Platform with Customized JVM Runtime”


“Incremental Pointer Analysis”

Instructor's Summary

Course Summary

Course contents (class meetings and assignments)

  • Same as the last year
  • But everything goes in English
    • (seems okay)

Better proceeding and Online Judge

  • Not perfect (will improved next year...)
    • manually handled .zip, .pdf, and hash-ID for A5 😂

Upcoming Next Year...

Larger paper pool

  • ~10 must-reads and ~100 awesome papers

Presentations go virtual

  • Everyone presents a different paper (10-minute video)
  • One-week open online cyclic sessions (on
  • Everyone (including instructors) watches all presentations
    • in-class commentary

More class-meeting topics and more code

  • AI and SE, model checking and formal verification, constraint solving and program synthesis
  • Stronger emphasize on working code (live demos in class)

Take Away Messages

Three easy pieces

  • Reading
  • Writing
  • Hacking

Set a higher bar!

  • Seek changes
  • Seek challenges

For Fun and Profits!

(Or Drop PhD.)