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

My research spans human-computer interaction, online learning, and computing education.

Philip Guo is an assistant professor of Cognitive Science at UC San Diego (Go Tritons!), with an affiliate faculty appointment in Computer Science and Engineering. His research spans human-computer interaction, online learning, and computing education. He currently focuses on scalable ways to help people learn computer programming and data science. Philip is the creator of Python Tutor (pythontutor.com), a code visualization and social learning platform that has been used by over 3.5 million people in over 180 countries to visualize over 30 million pieces of code.

Philip received S.B. and M.Eng. degrees in Electrical Engineering & Computer Science 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, he built online learning tools as a software engineer at Google, a research scientist at edX, and a postdoc at MIT CSAIL.

Philip's website pgbovine.net contains over 300 articles (including The Ph.D. Grind) and gets over 750,000 page views per year. He has also written for O'Reilly, Quartz, and Slate.

Awards and Honors

  • CHI Honorable Mention Paper, 2017
  • 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 Ph.D. Fellowships, 2006–2011
  • MIT EECS Masters Thesis Award in Computer Science, 2006

Selected Press and Media

Research Summary

Check out my recent publications, my 2015 job application research statement, and this job interview talk from 2016:

Current Research Students

  • Xiong Zhang (Ph.D., Rochester)
  • Hyeonsu Kang (masters, UCSD)
  • Alok Mysore (masters, UCSD)
  • Kandarp Khandwala (masters, Ph.D. starting fall 2017, UCSD)
  • Ian Drosos (Ph.D. starting fall 2017, UCSD)
  • Sean Kross (Ph.D. starting fall 2017, UCSD)
  • Charles Chen (undergrad, masters starting fall 2017, UCSD)
  • You?

Former Research Students

  • Logan Gittelson (Ph.D., Rochester)
  • Jaime Montoya (Ph.D., Rochester)
  • Davide Berdin (visiting masters, Uppsala University)
  • Dan Scarafoni (masters, Rochester)
  • Jeremy Warner (masters, Rochester)
  • Jeffery White (masters, Rochester)
  • Renan Zanelatto (masters, Rochester)
  • Karina Banda (undergrad, Rochester)
  • Lenny Brown (undergrad, Rochester)
  • Jennifer Kate Godzicki (undergrad, Rochester)
  • Mitchell Gordon (undergrad, Rochester)
  • Dan Hassin (undergrad, Rochester)
  • Sara Lickers (undergrad, Rochester)
  • Emy Lin (undergrad, Rochester)
  • Doug Miller (undergrad, Rochester)
  • Annie Zhang (undergrad, Rochester)
  • Joyce Zhu (undergrad, Rochester)
  • Irene Chen (undergrad, MIT)
  • Anvisha Pai (undergrad, MIT)

Teaching

UC San Diego

  • COGS120/CSE170: Human-Computer Interaction Design (Fall 2016)
  • COGS121: Human-Computer Interaction Programming Studio (Spring 2017)
  • COGS231: Design Seminar on Human-Centered Programming (Spring 2017)

University of Rochester

MIT

  • 6.813: User Interface Design & Implementation (Spring 2014)
    • co-taught with Rob Miller, Daniel Jackson, and David Karger
  • 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