Week 1 - Intro | Introduction (slides)
Human Aspects (slides) |
Week 2 - Code Editors | Paper Presentation Instructions (document)
Tool Demo Instructions (document) Discussion Lead Instructions (document) Example Paper Presentation (slides) Activity: Practice Organizing a Presentation Code Bubbles (paper) Patchworks (paper) Tool demos: Vim, VS Code, RStudio, JetBrains |
Week 3 - Debugging | Whyline (paper)
Timelapse (paper) |
Week 4 - Code Search | Prodet (paper)
Reacher (paper) Coronado (paper) Activity: Working on an Unfamiliar Codebase |
Week 5 - Code Reviewing | Modern Code Reviews (paper)
CFar (paper) Tricorder (paper) Tool demos: GitHub, Gerrit |
Week 6 - Documentation | Codelets (paper)
CodeScoop (paper) Codepourri (paper) |
Week 7 - Programming Languages | Language demos: Go, Mathematica, Rust, Nim
Fortran, Haskell, Zig, Crystal, Knox |
Week 8 - Program Analysis | Activity: Brainstorming Projects
Tool demos: |
Week 9 - Testing | CodeDeviant (paper)
Black-Box Fuzzing (paper) Activity: Harvest Memory |
Week 10 - Data Science | Variolite (paper)
Wrangler (paper) StreamTrace (paper) Tool demos: |
Week 11 - Systems & Empirical Studies | Project Instructions (document)
PromiseKeeper (paper) Ceph (paper) IDE Usage (paper) Information Foraging (paper) |
Week 12 - CS Education | Gidget (paper)
PLTutor (paper) Tool demos: Gidget, Scratch, Code.org's Code Studio |
Week 13 - End-User Programming | Marmite (paper)
Sikuli (paper) Rousillon (paper) Tool demos: Rousillon, AutoIT, Game Maker |