Philip Guo CV
Philip Guo CV
Philip Guo CV
RESEARCH INTERESTS
Human-computer interaction, online learning, productivity tools for programmers and
data scientists, computing education
ACADEMIC POSITIONS
07/2016 – University of California, San Diego (UCSD), La Jolla, CA
Assistant Professor of Cognitive Science
Affiliate Assistant Professor of Computer Science and Engineering
EDUCATION
09/2006 – 06/2012 Stanford University, Stanford, CA
Ph.D. in Computer Science
Dissertation: Software Tools to Facilitate Research Programming
Advisor: Dawson Engler
09/2006 – 09/2009 National Defense Science and Engineering (NDSEG) Graduate Fellowship
PRIOR EMPLOYMENT
07/2015 – 08/2015 Microsoft Research, Redmond, WA
Visiting Researcher – Research in Software Engineering (RiSE) group
National Science Foundation. CRII: CHS: Scaling Up Online Peer Tutoring of Com-
puter Programming. $175,000 (sole PI, 2015–2018)
Microsoft Research. Online Python Tutor for Office Mix. $61,308 (sole PI, 2014)
PEER-REVIEWED PUBLICATIONS
Note that in many areas within computer science and human-computer interaction,
conferences (not journals) are the primary venues for peer-reviewed publications.
Conference C.36 Xiong Zhang and Philip J. Guo. DS.js: Turn Any Webpage into an Example-
Papers Centric Live Programming Environment for Learning Data Science. In Pro-
ceedings of UIST 2017: ACM Symposium on User Interface Software and Tech-
nology, Oct 2017.
(Honorable Mention Paper Award)
C.35 Hyeonsu Kang and Philip J. Guo. Omnicode: A Novice-Oriented Live Pro-
gramming Environment with Always-On Run-Time Value Visualizations. In
Proceedings of UIST 2017: ACM Symposium on User Interface Software and
Technology, Oct 2017.
C.34 Alok Mysore and Philip J. Guo. Torta: Generating Mixed-Media GUI and
Command-Line App Tutorials Using Operating-System-Wide Activity Tracing.
In Proceedings of UIST 2017: ACM Symposium on User Interface Software and
Technology, Oct 2017.
C.33 Ian Drosos, Philip J. Guo, Chris Parnin. HappyFace: Identifying and Predicting
Frustrating Obstacles for Learning Programming at Scale. In Proceedings of
VL/HCC 2017: IEEE Symposium on Visual Languages and Human-Centric
Computing, Oct 2017.
C.32 Jeremy Warner and Philip J. Guo. Hack.edu: Examining How College Hackathons
Are Perceived By Student Attendees and Non-Attendees. In Proceedings of
ICER 2017: ACM International Computing Education Research conference,
August 2017.
C.31 Philip J. Guo. Older Adults Learning Computer Programming: Motivations,
Frustrations, and Design Opportunities. In Proceedings of CHI 2017: ACM
Conference on Human Factors in Computing Systems, May 2017.
(Honorable Mention Paper Award)
C.17 Philip J. Guo and Katharina Reinecke. Demographic Differences in How Stu-
dents Navigate Through MOOCs. In Proceedings of L@S 2014: ACM Confer-
ence on Learning at Scale, March 2014.
C.16 Philip J. Guo, Juho Kim, Rob Rubin. How Video Production Affects Student
Engagement: An Empirical Study of MOOC Videos. In Proceedings of L@S
2014: ACM Conference on Learning at Scale, March 2014.
C.15 Juho Kim, Philip J. Guo, Daniel T. Seaton, Piotr Mitros, Krzysztof Z. Gajos,
Robert C. Miller. Understanding In-Video Dropouts and Interaction Peaks
in Online Lecture Videos. In Proceedings of L@S 2014: ACM Conference on
Learning at Scale, March 2014.
C.14 Philip J. Guo. Online Python Tutor: Embeddable Web-Based Program Visu-
alization for CS Education. In Proceedings of SIGCSE 2013: ACM Technical
Symposium on Computer Science Education, March 2013.
C.13 Thomas Zimmermann, Nachiappan Nagappan, Philip J. Guo, Brendan Murphy.
Characterizing and Predicting Which Bugs Get Reopened. In Proceedings of
ICSE 2012: ACM/IEEE International Conference on Software Engineering,
Software Engineering In Practice track, June 2012.
(Best Paper Award)
C.12 Philip J. Guo. CDE: Run Any Linux Application On-Demand Without In-
stallation. In Proceedings of LISA 2011: USENIX Large Installation System
Administration Conference, December 2011.
C.11 Philip J. Guo, Sean Kandel, Joseph M. Hellerstein, Jeffrey Heer. Proactive
Wrangling: Mixed-Initiative End-User Programming of Data Transformation
Scripts. In Proceedings of UIST 2011: ACM Symposium on User Interface
Software and Technology, October 2011.
C.10 Philip J. Guo and Dawson Engler. Using Automatic Persistent Memoization
to Facilitate Data Analysis Scripting. In Proceedings of ISSTA 2011: ACM
International Symposium on Software Testing and Analysis, July 2011.
C.9 Philip J. Guo and Dawson Engler. CDE: Using System Call Interposition to
Automatically Create Portable Software Packages. Short paper in Proceedings
of USENIX 2011: USENIX Annual Technical Conference, June 2011.
C.8 Philip J. Guo, Thomas Zimmermann, Nachiappan Nagappan, Brendan Murphy.
“Not My Bug!” and Other Reasons for Software Bug Report Reassignments.
In Proceedings of CSCW 2011: ACM Conference on Computer Supported Co-
operative Work, March 2011.
C.6 Adam Kiezun, Vijay Ganesh, Philip J. Guo, Pieter Hooimeijer, Michael D.
Ernst. HAMPI: A Solver for String Constraints. In Proceedings of ISSTA:
C.4 Adam Kiezun, Philip J. Guo, Karthick Jayaraman, Michael D. Ernst. Auto-
matic Creation of SQL Injection and Cross-site Scripting Attacks. In Proceed-
ings of ICSE 2009: ACM/IEEE International Conference on Software Engi-
neering, May 2009.
C.3 Joel Brandt, Philip J. Guo, Joel Lewenstein, Mira Dontcheva, Scott R. Klem-
mer. Two Studies of Opportunistic Programming: Interleaving Web Foraging,
Learning, and Writing Code. In Proceedings of CHI 2009: ACM Conference
on Human Factors in Computing Systems, April 2009.
(Honorable Mention Paper Award)
C.2 Philip J. Guo, Jeff H. Perkins, Stephen McCamant, Michael D. Ernst. Dy-
namic Inference of Abstract Types. In Proceedings of ISSTA 2006: ACM
International Symposium on Software Testing and Analysis, July 2006.
C.1 Brian Demsky, Michael D. Ernst, Philip J. Guo, Stephen McCamant, Jeff H.
Perkins, Martin Rinard. Automatic Inference and Enforcement of Data Struc-
ture Consistency Specifications. In Proceedings of ISSTA 2006: ACM Interna-
tional Symposium on Software Testing and Analysis, July 2006.
Journal J.3 Elena L. Glassman, Jeremy Scott, Rishabh Singh, Philip J. Guo, Robert C.
Articles Miller. OverCode: Visualizing Variation in Student Solutions to Programming
Problems at Scale. In TOCHI: ACM Transactions on Computer-Human Inter-
action, 2015.
J.2 Adam Kiezun, Vijay Ganesh, Shay Artzi, Philip J. Guo, Pieter Hooimeijer,
Michael D. Ernst. Hampi: A Solver for Word Equations over Strings, Regular
Expressions and Context-free Grammars. In TOSEM: ACM Transactions on
Software Engineering Methodology, 2012.
J.1 Michael D. Ernst, Jeff H. Perkins, Philip J. Guo, Stephen McCamant, Carlos
Pacheco, Matthew S. Tschantz, Chen Xiao. The Daikon system for dynamic
detection of likely invariants. In Science of Computer Programming, 2007.
Workshop W.4 Philip J. Guo and Margo Seltzer. Burrito: Wrapping Your Lab Notebook in
Papers Computational Infrastructure. In Proceedings of TaPP 2012: USENIX Work-
shop on the Theory and Practice of Provenance, June 2012.
W.3 Philip J. Guo. Sloppy Python: Using Dynamic Analysis to Automatically Add
Error Tolerance to Ad-Hoc Data Processing Scripts. In Proceedings of WODA
2011: ACM International Workshop on Dynamic Analysis, July 2011.
W.2 Philip J. Guo and Dawson Engler. Towards Practical Incremental Recompu-
tation for Scientists: An Implementation for the Python Language. In Pro-
ceedings of TaPP 2010: USENIX Workshop on the Theory and Practice of
Provenance, February 2010.
W.1 Joel Brandt, Philip J. Guo, Joel Lewenstein, Scott R. Klemmer. Opportunistic
Programming: How Rapid Ideation and Prototyping Occur in Practice. In
WEUSE 2008: ACM Workshop on End-User Software Engineering, May 2008.
INVITED PUBLICATIONS
Magazine M.11 Philip J. Guo. How adults ages 60+ are learning to code. In Communications
Articles of the ACM, Vol. 60, No. 8, Aug 2017.
M.10 Philip J. Guo. Learning Programming at Scale. In O’Reilly Radar, Aug 2015.
M.9 Philip J. Guo. Refining Students’ Coding and Reviewing Skills. In Communi-
cations of the ACM, Vol. 57, No. 9, Sep 2014.
M.8 Philip J. Guo. The Difficulty of Teaching Programming Languages, and the
Benefits of Hands-on Learning. In Communications of the ACM, Vol. 57, No.
7, Jul 2014. (appeared alongside an unrelated article by Mark Guzdial)
M.7 Philip J. Guo. Clarifying Human-Computer Interaction. In Communications
of the ACM, Vol. 57, No. 2, Feb 2014.
M.6 Philip J. Guo. Silent Technical Privilege. In Slate, Jan 2014.
M.5 Philip J. Guo. Helping scientists, engineers to work up to 100 times faster. In
Communications of the ACM, Vol. 56, No. 10, Oct 2013.
M.4 Philip J. Guo. Teaching Programming the Way It Works Outside the Class-
room. In Communications of the ACM, Vol. 56, No. 8, Aug 2013.
M.3 Philip J. Guo. Lessons from the Grind: How unglamorous grunt work can lead
to creative innovation. In MIT Technology Review, Jan 2013.
M.2 Philip J. Guo. CDE: A Tool For Creating Portable Experimental Software
Packages. In Computing in Science and Engineering: Special Issue on Software
for Reproducible Computational Science, Jul/Aug 2012.
M.1 Joel Brandt, Philip J. Guo, Joel Lewenstein, Mira Dontcheva, Scott R. Klem-
mer. Opportunistic Programming: Writing Code to Prototype, Ideate, and
Discover. In IEEE Software: Special Issue on End-User Software Engineering,
Sep/Oct 2009.
Book B.3 Philip J. Guo. Parse that data! Practical Tips for preparing your raw data
Chapters for analysis. Book chapter in Perspectives on Data Science for Software En-
gineering, T. Menzies, L. Williams, T. Zimmermann, eds. Morgan Kaufmann,
2016.
B.2 Philip J. Guo. CDE: Automatically Package and Reproduce Computational
Experiments. Book chapter in Implementing Reproducible Research, V. Stod-
den, F. Leisch, R. Peng, eds. Taylor & Francis Group, 2013.
Invited IP.1 Quanzeng You, Jianbo Yuan, Jiaqi Wang, Philip J. Guo, Jiebo Luo. Snap
Papers n’ Shop: Visual Search-Based Mobile Shopping Made a Breeze by Machine
and Crowd Intelligence. In Proceedings of ICSC 2015: IEEE International
Conference on Semantic Computing, Feb 2015.
INVITED TALKS
SERVICE
Paper Reviewer CHI (2014–2017), UIST (2013–2017), CSCW (2014–2018), TOCE (2017–2018), JSME
(2017), JVLC (2016), VLSS (2016), IEEE Software (2016), TOCHI (2015), IUI (2015),
MobileHCI (2015–2016), UbiComp (2015), JAIED (2015, 2017), TSE (2014–2015)
PLDI (2013), EuroSys (2012), POPL (2011), ECOOP (2006, 2009)
TEACHING
Ph.D. Committee Erin Brady, Anna Loparev, Phyo Thiha, Eric Seidel, Tricia Ngoon, Adam Rule
Member
Outreach@Scale My Python Tutor educational website pythontutor.com has so far accumulated over
3.5 million total users from over 180 countries. My personal website pgbovine.net
contains over 400 articles, videos, and podcast episodes on topics ranging from research
to education, and receives over 750,000 page views per year. My YouTube channel
has over 200 research, education, and outreach videos, over 2,500 subscribers, and
∼300,000 total video views. My Twitter social media account has ∼7,000 followers
and has been officially verified by the company as a notable account of public interest.