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

I build software to help people learn.

More jargony summary: I strive to humanize online learning by making empirical and artifact contributions to HCI.

Academic Biography

Philip Guo is an assistant professor of computer science at the University of Rochester. He researches human-computer interaction (HCI), with a focus on user interfaces for online learning. He created a free Web-based visualization tool for learning programming called Online Python Tutor (, which has been used by over one million people in over 165 countries.

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 500,000 times so far. The articles on his personal website ( attract over 500,000 readers per year and have been reprinted in publications from O'Reilly Media, Quartz, and Slate.

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 Students

  • Lenny Brown (undergrad - Sum15)
  • Mitchell Gordon (undergrad - S15)
  • Dan Hassin (undergrad - Sum15)
  • Jeremy Warner (undergrad - F14, S15, Sum15)
  • Jeffery White (masters - S15, Sum15)
  • Renan Zanelatto (masters - S15, Sum15)
  • Joyce Zhu (undergrad - S15)

Former Students and Alumni

  • Dan Scarafoni (masters - F14, S15, first job: MIT Lincoln Laboratory)
  • Doug Miller (undergrad - S15, first job: Jump Trading)
  • Karina Banda (undergrad - S15)
  • Logan Gittelson (Ph.D. - F14, S15)
  • J. Kate Godzicki (undergrad - F14)
  • Sara Lickers (undergrad - F14)

Ph.D. Committee Advisees

  • Erin Brady (first job: assistant professor at IUPUI)
  • Anna Loparev
  • Phyo Thiha


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]