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

I build software to help people learn.

View my Curriculum Vitae, Google Scholar profile, and publications.

Academic Biography

Philip Guo is an assistant professor of computer science at the University of Rochester. His main research interests are in human-computer interaction (HCI), with a focus on user interfaces for online learning. He created a free Web-based tool for learning programming called Online Python Tutor (, which has been used by over 500,000 people in over 165 countries. He has previously researched online education at edX and Google.

Philip received a Ph.D. in Computer Science from Stanford University in 2012 and S.B. and M.Eng. degrees in Electrical Engineering and Computer Science from MIT in 2006. His Ph.D. dissertation was one of the first to develop software tools for the unique needs of computational researchers and data scientists.

In 2012, Philip wrote a popular free e-book called The Ph.D. Grind (, which is the first known detailed account of an entire Ph.D. experience. The Ph.D. Grind has been downloaded over 300,000 times so far. Philip also writes a monthly blog column for the Communications of the ACM, and his personal website ( gets over 500,000 visitors per year. Philip's articles have appeared in publications from Slate, O'Reilly Media, and NPR.

Featured Publications

To get a sense of what research I work on, read these papers:

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

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.
[BibTeX | Video | Press | Webpage]

Online Python Tutor: Embeddable Web-Based Program Visualization for CS Education. Philip J. Guo. ACM Technical Symposium on Computer Science Education (SIGCSE), March 2013.
[BibTeX | Webpage]

See all of my publications

Current Research Students

  • Logan Gittelson (Ph.D.)
  • Mitchell Gordon (undergrad)
  • Doug Miller (undergrad)
  • Dan Scarafoni (masters)
  • Jeremy Warner (undergrad)
  • Jeffrey White (masters)
  • Renan Zanelatto (masters)
  • Joyce Zhu (undergrad)


  • J. Kate Godzicki (undergrad)
  • Sara Lickers (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]