Philip Guo (Phil Guo, Philip J. Guo, Philip Jia Guo, pgbovine)

Learning Programming at Scale

(45-minute research talk)

Here's a 45-minute talk that I gave in April/May 2018 at Caltech, UC Berkeley, Google, Coursera, and South Park Commons. It's a heavily revamped version of my 2016 job interview talk, Interactive Systems for Learning Programming at Scale.


Computer programming is a vital technical skill that prepares people for careers in a wide variety of fields ranging from software engineering to data science to public policy. Although traditional schools are ramping up computing education efforts, the vast majority of people around the world who want to learn to code do not have access to high-quality classroom instruction. Thus, the only way to bring programming knowledge to a sizable portion of the world's population is to develop and deploy scalable online systems. In this talk, I will present a series of such systems built upon a code visualization and peer tutoring platform called Python Tutor ( that I have been developing since 2010. So far, this platform has been used by over 3.5 million people in over 180 countries to visualize over 50 million pieces of code in languages such as Python, Java, JavaScript, Ruby, C, and C++. Thousands of people each month use it to receive free tutoring from volunteers around the world. The platform also serves as a rich substrate for running empirical studies of learning at scale. In sum, this work points toward a future where millions of people can receive some of the benefits of face-to-face classroom instruction without being present in person.

(full YouTube playlist)

4-minute summary of this talk:

The talk split into five bite-sized parts:

Part 1: intro. (7:26)

Part 2: Discuss visual representations (10:32)

Part 3: Connect learners online (13:00)

Part 4: Make experts multitask (7:50)

Part 5: parting thoughts (5:38)

This talk roughly covers these three papers:

Online Python Tutor: Embeddable Web-Based Program Visualization for CS Education. Philip J. Guo. ACM Technical Symposium on Computer Science Education (SIGCSE), 2013. [Abstract]
Codechella: Multi-User Program Visualizations for Real-Time Tutoring and Collaborative Learning. Philip J. Guo, Jeffery White, Renan Zanelatto. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2015. [Abstract]
Codeopticon: Real-Time, One-To-Many Human Tutoring for Computer Programming. Philip J. Guo. ACM Symposium on User Interface Software and Technology (UIST), 2015. [Abstract]
Keep this website up and running by making a small donation.

Created: 2018-05-28
Last modified: 2018-05-28
Related pages tagged as research:
Related pages tagged as human-computer interaction:
Related pages tagged as computing education:
Related pages tagged as Python Tutor: