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

My research spans human-computer interaction, online learning, and computing education.

Philip Guo is an assistant professor of Cognitive Science at UC San Diego (Go Tritons!), with an affiliate faculty appointment in Computer Science and Engineering. His research spans human-computer interaction, online learning, and computing education. To enable learning programming at scale, he created Python Tutor (, a code visualization and social learning platform that has been used by over 2.5 million people in over 180 countries to visualize over 20 million pieces of code.

Philip received S.B. and M.Eng. degrees in Electrical Engineering & Computer Science 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 productivity tools for data scientists. Before becoming a professor, he built online learning tools as a software engineer at Google and as a postdoc at edX and MIT CSAIL.

Philip's website contains over 300 articles (including The Ph.D. Grind) and gets over 750,000 page views per year. He has also written for MIT Technology Review, O'Reilly Radar, Quartz, and Slate.

Research Summary

This four-page research statement and accompanying hour-long talk summarize my recent research:

Awards and Honors

  • Google Faculty Research Award (2015)

  • CHI Honorable Mention Paper (2014)

  • ICSE Software Engineering In Practice Best Paper Award (2012)

  • ACM SIGSOFT Distinguished Paper Award (2009)

  • CHI Honorable Mention Paper (2009)

  • NSF and NDSEG Fellowships (2006–2011)

Current Research Students

  • Hyeonsu Kang (masters, UCSD)
  • Kandarp Khandwala (masters, UCSD)
  • Alok Mysore (masters, UCSD)
  • Xiong Zhang (Ph.D., Rochester)
  • You?

Former Research Students

  • Logan Gittelson (Ph.D., Rochester)
  • Jaime Montoya (Ph.D., Rochester)
  • Davide Berdin (visiting masters, Uppsala University)
  • Dan Scarafoni (masters, Rochester)
  • Jeremy Warner (masters, Rochester)
  • Jeffery White (masters, Rochester)
  • Renan Zanelatto (masters, Rochester)
  • Charles Chen (undergrad, UCSD)
  • Karina Banda (undergrad, Rochester)
  • Lenny Brown (undergrad, Rochester)
  • Jennifer Kate Godzicki (undergrad, Rochester)
  • Mitchell Gordon (undergrad, Rochester)
  • Dan Hassin (undergrad, Rochester)
  • Sara Lickers (undergrad, Rochester)
  • Emy Lin (undergrad, Rochester)
  • Doug Miller (undergrad, Rochester)
  • Annie Zhang (undergrad, Rochester)
  • Joyce Zhu (undergrad, Rochester)
  • Irene Chen (undergrad, MIT)
  • Anvisha Pai (undergrad, MIT)

Sample Publications

These papers represent the kinds of research that I do. See my publications page for a more complete list.

Codeopticon: Real-Time, One-To-Many Human Tutoring for Computer Programming. Philip J. Guo. ACM Symposium on User Interface Software and Technology (UIST), Nov 2015.
[PDF | blog post | Behind the scenes]

How Video Production Affects Student Engagement: An Empirical Study of MOOC Videos. Philip J. Guo, Juho Kim, Rob Rubin. ACM Conference on Learning at Scale, March 2014.
[PDF | blog post | Behind the scenes]

Data-Driven Interaction Techniques for Improving Navigation of Educational Videos. Juho Kim, Philip J. Guo, Carrie J. Cai, Shang-Wen (Daniel) Li, Krzysztof Z. Gajos, Robert C. Miller. ACM Symposium on User Interface Software and Technology (UIST), Oct 2014.
[PDF | webpage | Behind the scenes]

Proactive Wrangling: Mixed-Initiative End-User Programming of Data Transformation Scripts. Philip J. Guo, Sean Kandel, Joseph M. Hellerstein, Jeffrey Heer. ACM Symposium on User Interface Software and Technology (UIST), October 2011.
[PDF | commercial version: Trifacta | Behind the scenes]

Burrito: Wrapping Your Lab Notebook in Computational Infrastructure. Philip J. Guo and Margo Seltzer. USENIX Workshop on the Theory and Practice of Provenance (TaPP), June 2012.
[PDF | webpage | Behind the scenes]

See more publications.


UC San Diego

  • COGS120/CSE170: Human-Computer Interaction Design (Fall 2016)

University of Rochester


  • 6.813: User Interface Design & Implementation (Spring 2014)
    • co-taught with Rob Miller, Daniel Jackson, and David Karger
  • 6.170: Laboratory in Software Engineering (Spring 2006), TA


  • CS343: Advanced Topics in Compilers (Spring 2012), TA
  • CS242: Programming Languages (Autumn 2009), TA
  • CS243: Advanced Compiling Techniques (Winter 2008), TA