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

I research HCI and educational technology.

I currently

  • study how people use educational technology, and
  • build interactive 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 (pythontutor.com), 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 (phdgrind.com), 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 (pgbovine.net) gets over 400,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

Awards and Honors

  • National Science Foundation (NSF) Graduate Fellowship

  • National Defense Science and Engineering (NDSEG) Graduate Fellowship

  • Software Engineering In Practice Best Paper Award for Characterizing and Predicting Which Bugs Get Reopened

  • ACM SIGSOFT Distinguished Paper Award for HAMPI: A Solver for String Constraints

  • CHI Honorable Mention for Crowdsourcing Step-by-Step Information Extraction to Enhance Existing How-to Videos

  • CHI Honorable Mention for Two Studies of Opportunistic Programming: Interleaving Web Foraging, Learning, and Writing Code

Teaching

University of Rochester

MIT

  • 6.813: User Interface Design & Implementation (Spring 2014)
  • 6.170: Laboratory in Software Engineering (Spring 2006) [TA]

Stanford

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