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

My research spans human-computer interaction, online learning, and data science.


Philip Guo is an assistant professor of computer science at the University of Rochester. His research spans human-computer interaction, online learning, and 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 13 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 productivity tools for data scientists. Before becoming a professor in 2014, he built online learning tools at Google, edX, and MIT CSAIL.

Philip is passionate about sharing knowledge online. His website contains over 250 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.

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)


  • NSF. CRII: CHS: Scaling Up Peer Tutoring via Real-Time Coordination, Shared Visualizations, and Session Archiving. (sole PI, 2015–2017)

  • Google Faculty Research Award. Enabling Learners to Create Hierarchical Tutorials from How-To Videos on YouTube (sole PI, 2015)

  • University of Rochester. University Research Award: Enabling Fast and Scalable Feedback on Writing. (sole PI, 2015)

  • Microsoft Research. Online Python Tutor for Office Mix. (sole PI, 2014)

Sample Publications

These papers give an overview of the kinds of research that I do:

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.
[Blog post]

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.
[Blog post]

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.
[Commercial version: Trifacta]

See all publications.

Current Students

  • Jaime Montoya (Ph.D.)
  • Xiong Zhang (Ph.D.)
  • Davide Berdin (masters)
  • Jeremy Warner (masters)
  • Jeffery White (masters)
  • Renan Zanelatto (masters)
  • Lenny Brown (undergrad)
  • Mitchell Gordon (undergrad)
  • Dan Hassin (undergrad)
  • Emy Lin (undergrad)
  • Annie Zhang (undergrad)
  • Joyce Zhu (undergrad)

Former Students and Alumni

  • Logan Gittelson (Ph.D.)
  • Dan Scarafoni (masters)
  • Karina Banda (undergrad)
  • Jennifer Kate Godzicki (undergrad)
  • Sara Lickers (undergrad)
  • Doug Miller (undergrad)


University of Rochester


  • 6.813: User Interface Design & Implementation (Spring 2014)
  • 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