Sketch-n-Sketch

Fun, Funky, Functional: The Pursuit of Better User Interfaces for Programming
  1. ICFP 2021 Keynote. 08.2021 [ video ]

    1. Reimagining the User Interfaces for Programming
      1. University of Iowa. 01.28.2022
      2. Strumenta, Virtual Meetup. 09.16.2021
      3. University of Louisiana at Lafayette. 03.26.2021 [ pdf ]
      4. Microsoft Research, Cambridge. 03.17.2021
      5. University of Chicago. 10.02.2020 [ pdf ]

      Everyday Coding with Graphical User Interfaces
      1. Illinois Ignite. Recorded 08.27.2020 [ pdf ]

      Future of Coding
      1. Podcast Episode 49. Interviewed 01.29.2020

      Bidirectional Programming with Direct Manipulation
      1. Princeton University, Princeton, NJ. 11.08.2019
      2. University of Pennsylvania, Philadelphia, PA. 11.07.2019 [ pdf ]
      3. Purdue University, West Lafayette, IN. 10.16.2019 [ pdf ]
      4. University of California, Los Angeles, CA. 10.11.2019
      5. University of California, San Diego, CA. 10.09.2019
      6. University of California, Berkeley, CA. 10.08.2019
      7. Carnegie Mellon University, Pittsburgh, PA. 09.04.2019 [ pdf ]
      8. Northwestern University, Evanston, IL. 05.22.2019 [ pdf ]

      Sketch-n-Sketch: Output-Directed Programming for SVG
      1. UIST, New Orleans, LO. 10.21.2019 (Brian Hempel) [ pdf ]

      Bidirectional Evaluation with Direct Manipulation
      1. Bx Workshop, Philadelphia, PA. 06.04.2019 (Mikaël Mayer) [ pdf ]
      2. OOPSLA, Boston, MA. 11.07.2018 (Mikaël Mayer) [ video | pdf ]

      Direct Manipulation Programming in Sketch-n-Sketch:
      Three Years, Three Ideas
      1. PLATEAU 2018 Keynote, Boston, MA. 11.05.2018 [ pdf ]

      Direct Manipulation Programming in Sketch-n-Sketch: Tutorial
      1. ICFP Tutorials, St. Louis, MO. 09.27.2018 (with Sketch-n-Sketch team) [ tutorial ]

      Structured Editing for Elm* in Elm
      1. elm-conf, St. Louis, MO. 09.26.2018 [ video | pdf ]

      Deuce: A Lightweight User Interface for Structured Editing
      1. ICSE, Gothenburg, Sweden. 05.31.2018 (Brian Hempel) [ video | pdf ]

      Direct Manipulation Programming Systems
      1. SPLASH-I, Vancouver, Canada. 10.25.2017 [ pdf | demo ]
      2. University of Wisconsin, Madison, WI. 06.05.2017 [ pdf ]
      3. University of Maryland, College Park, MD. 02.20.2017 [ pdf ]
      4. University of Washington, Seattle, WA. 01.11.2017 [ pdf ]

      Semi-Automated Programming via Direct Manipulation
      1. Midwest PL Summit, University of Chicago, IL. 12.02.2016 (Brian Hempel)
      2. UIST, Tokyo, Japan. 10.18.2016 (Brian Hempel) [ video | pdf ]

      Sketch-n-Sketch: Interactive SVG Programming with Direct Manipulation
      1. Strange Loop, St. Louis, MO. 09.17.2016 [ video | pdf | sketch-n-sketch v0.5.2 ]

      Programmatic and Direct Manipulation: Together at Last
      1. PLDI, Santa Barbara, CA. 06.16.2016 (Brian Hempel) [ video | pdf ]

      Bidirectional Programming for the Masses
      1. ICSE V2025, Austin, TX. 05.19.2016 [ pdf ]

      Program Synthesis for Direct Manipulation Interfaces
      1. MIT, Cambridge, MA. 03.01.2016
      2. Harvard University, Cambridge, MA. 02.29.2016
      3. ECOOP PC Workshop, Brown University, Providence, RI. 02.28.2016
      4. PADL, St. Petersburg, FL. 01.18.2016 [ pdf ]
      5. Midwest PL Summit, Purdue University, West Lafayette, IN. 12.04.2015 [ pdf ]

IsoLate: A Type System for Self-Recursion

  1. ESOP, London, UK. 04.12.2015 [ pdf ]

Late Typing for Loosely Coupled Recursion

  1. Dagstuhl, "Foundations of Scripting Languages," Wadern, Germany. 06.30.2014 [ pdf ]

Building Blocks for Modern Programming Languages

  1. Pint of Science US, San Diego, CA. 05.20.2014 [ pdf ]

Modern Type Systems for Dynamic Languages

  1. Samsung Research, San Jose, CA. 04.22.2014
  2. Purdue University, West Lafayette, IN. 04.17.2014
  3. Swarthmore College, Swarthmore, PA. 03.28.2014
  4. University of Chicago, Chicago, IL. 03.14.2014 [ pptx | pdf ]

A Fix for Dynamic Scope

  1. OOPSLA PC Meeting, UCLA, Los Angeles, CA. 05.14.2014
  2. ML Workshop, Boston, MA. 09.22.2013 [ pptx | pdf ]

Nested Refinement Types for JavaScript

  1. Northeastern University, Boston, MA. 09.30.2013 [ pdf ]
  2. University of California, San Diego, CA. 09.03.2013 (Dissertation Defense) [ pptx | pdf ]
  3. University of California, San Diego, CA. 11.16.2011 (Thesis Proposal) [ pptx | pdf ]

Static Verification for Web Scripting Languages

  1. University of Washington, Seattle, WA. 04.18.2013 [ pptx | pdf | video ]
  2. Microsoft Research, Cambridge, UK. 04.09.2013
  3. Microsoft Research, Redmond, WA. 04.03.2013
  4. University of Texas, Austin, TX. 03.19.2013
  5. IBM Research, Yorktown Heights, NY. 03.14.2013
  6. University of Michigan, Ann Arbor, MI. 02.28.2013
  7. Georgetown University, Washington, DC. 02.25.2013
  8. Oregon State University, Corvallis, OR. 02.13.2013

Refinement Types for JavaScript Security

  1. Brown University, Providence, RI. 01.28.2013
  2. Rutgers University, New Brunswick, NJ. 01.23.2013

Dependent Types for JavaScript

  1. HCSS, Annapolis, MD. 05.07.2013 [ pdf ]
  2. SoCal, UCR, Riverside, CA. 11.30.2012
  3. OOPSLA, Tucson, AZ. 10.24.2012 [ pptx | pdf | video ]
  4. Dagstuhl, "Web Application Security," Wadern, Germany. 10.02.2012 [ pdf ]
  5. JSTools, Beijing, China. 06.13.2012
  6. STOP, Beijing, China. 06.11.2012 [ pptx | pdf | video ]

Nested Refinements: A Logic for Duck Typing

  1. POPL, Philadelphia, PA. 01.26.2012 [ pptx | pdf | video ]
  2. Dagstuhl, "Foundations of Scripting Languages," Wadern, Germany. 01.04.2012 [ pdf ]
  3. SoCal, UCSD, La Jolla, CA. 12.03.2011 [ pptx ]
  4. SoCal, Harvey Mudd College, Claremont, CA. (Poster) 04.16.2011 [ pdf ]

Type Inference with Run-time Logs

  1. STOP, Austin, TX. 01.29.2011 [ ppt | pdf ]
  2. Kyoto University, Kyoto, Japan. 01.17.2011 [ ppt ]
  3. SoCal, UCLA, Los Angeles, CA. 12.04.2010 [ pptx ]
  4. University of California, San Diego, CA. 11.10.2010 (Research Exam) [ pptx ]

End-to-end Verification of Security Enforcement

  1. Microsoft Research, Redmond, WA. 08.07.2009 [ pptx | pdf ]

Staged Information Flow for JavaScript

  1. PLDI, Dublin, Ireland. 06.16.2009 [ pptx | pdf | video ]