Special Lecture

Interactive Systems for Learning Programming at Scale

Wednesday, March 16, 2016
4:10 pm to 5:30 pm
202 South Hall
Philip Guo

Interactive Systems for Learning Programming at Scale

Interactive Systems for Learning Programming at Scale (Philip Guo)

Computer programming and data science are now vital skills across many professions, but millions of people around the world struggle to learn these skills on their own without being able to get help from a human tutor. To address this significant access gap, I created Python Tutor, a pedagogical code visualization and social learning system for basic programming. I then generalized Python Tutor's visualization engine into a language-independent platform called Rosetta, which now visualizes code written in seven popular languages: 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 15 million pieces of code, making it by far the most widely-used system of its kind. This uniquely large user base inspires new types of interactive systems for online learning at scale, along with the ability to evaluate those systems on orders of magnitude more subjects than is possible in traditional 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 run-time 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. I will conclude by discussing future extensions of these systems for learning data science at scale.

Philip Guo is currently a second-year assistant professor of computer science at the University of Rochester. His research spans human-computer interaction, online learning, and human-centered data science. To enable learning programming at scale, he created Python Tutor, a code visualization and social learning platform that has been used by over 1.5 million people in over 180 countries to visualize over 15 million pieces of code. Philip received S.B. and M.Eng. degrees in EECS from MIT in 2006 and a Ph.D. in computer science from Stanford in 2012. His Ph.D. dissertation was one of the first to create human-centered productivity tools for data scientists. Before becoming an assistant professor in Fall 2014, he built online learning tools at Google, edX, and MIT CSAIL. Learn more at pgbovine.net.

Last updated:

August 23, 2016