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

I study HCI, software engineering, and online learning.

Academic Biography

Philip Guo is an assistant professor of computer science at the University of Rochester. He researches human-computer interaction, software engineering, and online learning. In particular, to enable learning programming at scale, he created a code visualization and social learning platform called Online Python Tutor (, which has been used by over 1.2 million people in over 165 countries to visualize over 11 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 software development tools for the unique needs of computational researchers and data scientists. Before becoming a professor in 2014, he developed online learning tools as a software engineer at Google, a visiting researcher at edX, and a postdoc at MIT CSAIL.

Philip is also passionate about broadly sharing academic knowledge. His personal website ( contains over 250 articles (including The Ph.D. Grind) and attracts over 750,000 page views per year. In addition, he has 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)

Current Students

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

Former Students and Alumni

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


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