Interactive Systems for Learning Programming at Scale

Talk
Philip Guo
University of Rochester
Time: 
12.08.2015 11:00 to 12:00
Location: 

AVW 4172

Computer programming is a vital skill, but millions of people around the world struggle to learn it on their own without being able to get help from a tutor. To address this access gap, I created a pedagogical code visualization system called Python Tutor (pythontutor.com). I then generalized Python Tutor's visualization engine into a language-independent platform called Rosetta, which now visualizes code written in Python, Java, C, C++, Ruby, JavaScript, and TypeScript.
So far, over 1.5 million people in over 180 countries have used Rosetta to visualize over 13 million pieces of code. This unique scale inspires new types of user interfaces for online learning, along with the ability to evaluate those interfaces on orders of magnitude more subjects than is possible in lab studies.
This talk will describe the Rosetta visualization platform and two social learning systems built upon it: 1.) Codechella enables multiple people to simultaneously write code together, visually explore its execution state using multiple cursors, and text chat to perform tutoring and collaborative learning. 2.) Codeopticon enables a single tutor to efficiently monitor dozens of learners as they are coding and then step in to offer proactive assistance. Taken together, these systems help people around the world learn programming even when they do not have access to scarce in-person tutoring resources.