User Interfaces for Programming Languages (EECS 598-015 Fa19)

9 min read Original article ↗
Tues. 9/3

Introductions, Logistics, and Topic Overview

Tasks:

  • Make sure you are registered or email me so I can add you to the mailing list.
  • Sign up for the course chat (ASAP)
  • Email me with presentation topic preferences and date preferences + constraints (due Wed. 9/11)
Thurs. 9/5

Inventing on Principle

Bret Victor's talk Inventing on Principle has inspired hundreds of people to experiment with better UIs for programming. Even better, it has helped people clarify their thinking and crystalize the principles that they work to advance. We'll watch it together, pausing to discuss and expand on several of his points.

Tues. 9/10

Cognitive Dimensions of Notations

Wed. 9/11

Email me with topic preferences + date preferences and constraints by this date.

Thurs. 9/12

Structure Editors

Tues. 9/17

Live Programming Environments

Thurs. 9/19

Graphical and Interactive Notation

Additional Resources:
Tues. 9/24

No Course Meeting

Thurs. 9/26

Usability of Type Systems

Tues. 10/1

Crowdsourced Programming

Thurs. 10/3

Guest Lecture: Programming by Demonstration

Presenter: Rebecca Krosnick (PhD student, University of Michigan)

Tues. 10/8

Overview of Evaluation Methods

Wed. 10/9

Project Proposals Due

Send a project proposal by email to me, following the Project Guide. Set up a meeting with me to discuss ideas if you are not sure what you'd like to propose!

Thurs. 10/10

Project Proposal Lightning Talks

  • Ke Du - Better Semantic Highlighting
  • Abhitej Ganta - Profiling Run-Time Data from Prior Executed Code Blocks to Suggest Future Code Blocks
  • Jaylin Herskovitz - Contextually Aware Prototyping Tools for Augmented Reality
  • Chenhao Li - Numpy Package Real-Time Helper
  • Anthony Liu - Turkit2: Flexible Human Computation
  • David Moon - Node Staging Mode in Hazel
  • Hannah Potter - Evaluating Python Tutor: Improving Novice Programmers’ Understanding of Memory
  • Yang Shi - A Visual Dataflow Tool for C Programming
  • April Wang - Exploring Programmable Semantic Document Editors
  • Yongwei Yuan - Improving the Usability of Variables in Hazel
  • Lei Zhang - Type Visualization and Constraints in Immersive Dataflow Programming
Tues. 10/15

No Course Meeting

(Fall Study Break)

Thurs. 10/17

Predictive Programming Interfaces

Presenter: Abhitej Ganta, Partner: Yongwei Yuan

Additional Resources
Tues. 10/22

Programmable Physical Environments

Presenter: Chenhao Li, Partner: Jaylin Herskovitz

Thurs. 10/24

Educational Programming Environments

Presenter: Hannah Potter, Partner: Yang Shi

Additional Resources
Tues. 10/29

User Interfaces for Game Development

Presenter: Lei Zhang, Partner: Chenhao Li

Additional Resources
Thurs. 10/31

Guest Lecture: Direct Manipulation Programming in Sketch-n-Sketch

Presenter: Brian Hempel (PhD student, University of Chicago)

Additional Resources
Tues. 11/5

API Usability

Presenter: Anthony Liu, Partner: David Moon

Additional Resources
Thurs. 11/7

Accessible Programming Interfaces

Presenter: Jaylin Herskovitz, Partner: Lei Zhang

Additional Resources
Tues. 11/12

Interactive Debuggers

Presenter: David Moon, Partner: Ke Du

Additional Resources
Thurs. 11/14

Visual Dataflow Programming

Additional Resources
Tues. 11/19

Program Visualization

Presenter: Yongwei Yuan, Partner: Hannah Potter

Additional Resources
Thurs. 11/21

Data Analysis Environments

Presenter: April Wang, Partner: Abhitej Ganta

Additional Resources
Tues. 11/26

Interactive Theorem Provers

Presenter: Ke Du, Partner: Anthony Liu (and Michael Adams)

Additional Resources
Thurs. 11/28

No Course Meeting

(Thanksgiving)

Tues. 12/3

Project Presentations

Thurs. 12/5

Project Presentations

Tues. 12/10

Project Presentations, Reflections, and Wrap-Up