Philip Guo is an associate professor of Cognitive Science and (by
affiliation) Computer Science & Engineering at UC San Diego. His
research spans human-computer interaction, data science, programming
tools, and online learning. He studies how people learn computer
programming and data science, and he builds tools to help people better
understand code and data.
(I am on sabbatical and away from campus in 2021–2022)
YouTube Channel |
Google Scholar |
Curriculum Vitae |
Profile Photo

To get a sense of my research interests, check out:
Selected Publications
2022
- The Design Space of Livestreaming Equipment Setups: Tradeoffs, Challenges, and Opportunities. Ian Drosos and Philip J. Guo. ACM SIGCHI Conference on Designing Interactive Systems (DIS), 2022.
- "There's no way to keep up!": Diverse Motivations and Challenges Faced by Informal Learners of ML. Rimika Chaudhury, Philip J. Guo, Parmit K. Chilana. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2022.
- Scaling Up Access to the Hidden Curriculum: A Design Methodology for Creating Undergraduate Mentoring Guides. Kendall Nakai and Philip J. Guo. ACM Conference on Learning at Scale (work-in-progress), 2022.
- The Challenges of Evolving Technical Courses at Scale: Four Case Studies of Updating Large Data Science Courses. Sam Lau, Justin Eldridge, Shannon Ellis, Aaron Fraenkel, Marina Langlois, Suraj Rampure, Janine Tiefenbruck, Philip J. Guo. ACM Conference on Learning at Scale, 2022.
- How Computer Science and Statistics Instructors Approach Data Science Pedagogy Differently: Three Case Studies. Sam Lau, Deborah Nolan, Joseph Gonzalez, Philip J. Guo. ACM Technical Symposium on Computer Science Education (SIGCSE), 2022.
- Five Pedagogical Principles of a User-Centered Design Course that Prepares Computing Undergraduates for Industry Jobs. Sean Kross and Philip J. Guo. ACM Technical Symposium on Computer Science Education (SIGCSE), 2022.
2021
- Ten Million Users and Ten Years Later: Python Tutor's Design Guidelines for Building Scalable and Sustainable Research Software in Academia. Philip J. Guo. ACM Symposium on User Interface Software and Technology (UIST), 2021. Best Paper Award
- Inside the Mind of a CS Undergraduate TA: A Firsthand Account of Undergraduate Peer Tutoring in Computer Labs. Julia M. Markel and Philip J. Guo. ACM Technical Symposium on Computer Science Education (SIGCSE), 2021. Best Paper Award
- Streamers Teaching Programming, Art, and Gaming: Cognitive Apprenticeship, Serendipitous Teachable Moments, and Tacit Expert Knowledge. Ian Drosos and Philip J. Guo. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), short paper, 2021. Honorable Mention Paper
- Orienting, Framing, Bridging, Magic, and Counseling: How Data Scientists Navigate the Outer Loop of Client Collaborations in Industry and Academia. Sean Kross and Philip J. Guo. ACM Conference on Computer-Supported Cooperative Work and Social Computing (CSCW), 2021.
2020
- Wrex: A Unified Programming-by-Example Interaction for Synthesizing Readable Code for Data Scientists. Ian Drosos, Titus Barik, Philip J. Guo, Robert DeLine, Sumit Gulwani. ACM Conference on Human Factors in Computing Systems (CHI), 2020. Best Paper Award
- The Design Space of Computational Notebooks: An Analysis of 60 Systems in Academia and Industry. Sam Lau, Ian Drosos, Julia M. Markel, Philip J. Guo. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2020.
- Learnersourcing at Scale to Overcome Expert Blind Spots for Introductory Programming: A Three-Year Deployment Study on the Python Tutor Website. Philip J. Guo, Julia M. Markel, Xiong Zhang. ACM Conference on Learning at Scale (work-in-progress), 2020.
- Designing the Future of Experiential Learning Environments for a Post-COVID World: A Preliminary Case Study. Julia M. Markel and Philip J. Guo. Symposium on the New Future of Work, 2020.
- Papercode: Generating Paper-Based User Interfaces for Code Review, Annotation, and Teaching. Priyan Vaithilingam, Julia M. Markel, Philip J. Guo. ACM Symposium on User Interface Software and Technology (UIST) (poster), 2020.
- Towards a Dynamic Multiscale Personalized Information Space. Amy Rae Fox, Philip J. Guo, Clemens Nylandsted Klokmose, Peter Dalsgaard, Arvind Satyanarayan, Haijun Xia, James D. Hollan. Convivial Computing Salon (workshop at the <Programming> conference), 2020.
- The Essence of Program Semantics Visualizers: A Three-Axis Model. Josh Pollock, Grace Oh, Eunice Jun, Philip J. Guo, Zachary Tatlock. Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU), 2020.
- Data Theater: A Live Programming Environment for Prototyping Data-Driven Explorable Explanations. Sam Lau and Philip J. Guo. Workshop on Live Programming (LIVE), 2020.
2019
- Practitioners Teaching Data Science in Industry and Academia: Expectations, Workflows, and Challenges. Sean Kross and Philip J. Guo. ACM Conference on Human Factors in Computing Systems (CHI), 2019. Honorable Mention Paper
- Improv: Teaching Programming at Scale via Live Coding. Charles Chen and Philip J. Guo. ACM Conference on Learning at Scale, 2019.
- Software Developers Learning Machine Learning: Motivations, Hurdles, and Desires. Carrie J. Cai and Philip J. Guo. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2019. Best Paper Award
- End-User Programmers Repurposing End-User Programming Tools to Foster Diversity in Adult End-User Programming Education. Sean Kross and Philip J. Guo. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2019.
- Bespoke: Interactively Synthesizing Custom GUIs from Command-Line Applications By Demonstration. Priyan Vaithilingam and Philip J. Guo. ACM Symposium on User Interface Software and Technology (UIST), 2019.
- Mallard: Turn the Web into a Contextualized Prototyping Environment for Machine Learning. Xiong Zhang and Philip J. Guo. ACM Symposium on User Interface Software and Technology (UIST), 2019.
2018
- Non-Native English Speakers Learning Computer Programming: Barriers, Desires, and Design Opportunities. Philip J. Guo. ACM Conference on Human Factors in Computing Systems (CHI), 2018.
- Mismatch of Expectations: How Modern Learning Resources Fail Conversational Programmers. April Y. Wang, Ryan Mitts, Philip J. Guo, Parmit K. Chilana. ACM Conference on Human Factors in Computing Systems (CHI), 2018. Honorable Mention Paper
- Codemotion: Expanding the Design Space of Learner Interactions with Computer Programming Tutorial Videos. Kandarp Khandwala and Philip J. Guo. ACM Conference on Learning at Scale, 2018.
- Students, Systems, and Interactions: Synthesizing the First Four Years of Learning@Scale and Charting the Future. Sean Kross and Philip J. Guo. ACM Conference on Learning at Scale, 2018.
- Porta: Profiling Software Tutorials Using Operating-System-Wide Activity Tracing. Alok Mysore and Philip J. Guo. ACM Symposium on User Interface Software and Technology (UIST), 2018. Best Paper Award
- Fusion: Opportunistic Web Prototyping with UI Mashups. Xiong Zhang and Philip J. Guo. ACM Symposium on User Interface Software and Technology (UIST), 2018.
- The Impact of Culture on Learner Behavior in Visual Debuggers. Kyle Thayer, Philip J. Guo, Katharina Reinecke. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2018.
2017
- Older Adults Learning Computer Programming: Motivations, Frustrations, and Design Opportunities. Philip J. Guo. ACM Conference on Human Factors in Computing Systems (CHI), 2017. Honorable Mention Paper
- CodePilot: Scaffolding End-to-End Collaborative Software Development for Novice Programmers. Jeremy Warner and Philip J. Guo. ACM Conference on Human Factors in Computing Systems (CHI), 2017.
- Hack.edu: Examining How College Hackathons Are Perceived By Student Attendees and Non-Attendees. Jeremy Warner and Philip J. Guo. ACM International Computing Education Research conference (ICER), 2017.
- DS.js: Turn Any Webpage into an Example-Centric Live Programming Environment for Learning Data Science. Xiong Zhang and Philip J. Guo. ACM Symposium on User Interface Software and Technology (UIST), 2017. Honorable Mention Paper
- Omnicode: A Novice-Oriented Live Programming Environment with Always-On Run-Time Value Visualizations. Hyeonsu Kang and Philip J. Guo. ACM Symposium on User Interface Software and Technology (UIST), 2017.
- Torta: Generating Mixed-Media GUI and Command-Line App Tutorials Using Operating-System-Wide Activity Tracing. Alok Mysore and Philip J. Guo. ACM Symposium on User Interface Software and Technology (UIST), 2017.
- HappyFace: Identifying and Predicting Frustrating Obstacles for Learning Programming at Scale. Ian Drosos, Philip J. Guo, Chris Parnin. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2017.
2016
2015
- Codeopticon: Real-Time, One-To-Many Human Tutoring for Computer Programming. Philip J. Guo. ACM Symposium on User Interface Software and Technology (UIST), 2015.
- Codechella: Multi-User Program Visualizations for Real-Time Tutoring and Collaborative Learning. Philip J. Guo, Jeffery White, Renan Zanelatto. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2015.
- Codepourri: Creating Visual Coding Tutorials Using A Volunteer Crowd Of Learners. Mitchell Gordon and Philip J. Guo. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2015.
- Perceptions of Non-CS Majors in Intro Programming: The Rise of the Conversational Programmer. Parmit K. Chilana, Celena Alcock, Shruti Dembla, Anson Ho, Ada Hurst, Brett Armstrong, Philip J. Guo. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2015.
- Toward a Domain-Specific Visual Discussion Forum for Learning Computer Programming: An Empirical Study of a Popular MOOC Forum. Joyce Zhu, Jeremy Warner, Mitchell Gordon, Jeffery White, Renan Zanelatto, Philip J. Guo. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2015.
- How High School, College, and Online Students Differentially Engage with an Interactive Digital Textbook. Jeremy Warner, John Doorenbos, Bradley N. Miller, Philip J. Guo. International Conference on Educational Data Mining (EDM), short paper, 2015.
- Wait-Learning: Leveraging Wait Time for Second Language Education. Carrie J. Cai, Philip J. Guo, James Glass, Robert C. Miller. ACM Conference on Human Factors in Computing Systems (CHI), 2015.
- OverCode: Visualizing Variation in Student Solutions to Programming Problems at Scale. Elena L. Glassman, Jeremy Scott, Rishabh Singh, Philip J. Guo, Robert C. Miller. ACM Transactions on Computer-Human Interaction (TOCHI), 2015.
2014
- 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), 2014.
- A Direct Manipulation Language for Explaining Algorithms. Jeremy Scott, Philip J. Guo, Randall Davis. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), short paper, 2014.
- Crowdsourcing Step-by-Step Information Extraction to Enhance Existing How-to Videos. Juho Kim, Phu Nguyen, Sarah Weir, Philip J. Guo, Robert C. Miller, Krzysztof Z. Gajos. ACM Conference on Human Factors in Computing Systems (CHI), 2014. Honorable Mention Paper
- Demographic Differences in How Students Navigate Through MOOCs. Philip J. Guo and Katharina Reinecke. ACM Conference on Learning at Scale, 2014.
- 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, 2014.
- Understanding In-Video Dropouts and Interaction Peaks in Online Lecture Videos. Juho Kim, Philip J. Guo, Daniel T. Seaton, Piotr Mitros, Krzysztof Z. Gajos, Robert C. Miller. ACM Conference on Learning at Scale, 2014.
2013
2012
- Characterizing and Predicting Which Bugs Get Reopened. Thomas Zimmermann, Nachiappan Nagappan, Philip J. Guo, Brendan Murphy. ACM/IEEE International Conference on Software Engineering (ICSE), Software Engineering In Practice (SEIP) track, 2012. Best Paper Award
- Burrito: Wrapping Your Lab Notebook in Computational Infrastructure. Philip J. Guo and Margo Seltzer. USENIX Workshop on the Theory and Practice of Provenance (TaPP), 2012.
- Software Tools to Facilitate Research Programming. Philip J. Guo. Ph.D. dissertation, Department of Computer Science, Stanford University, 2012.
- HAMPI: A Solver for Word Equations over Strings, Regular Expressions and Context-free Grammars. Adam Kiezun, Vijay Ganesh, Shay Artzi, Philip J. Guo, Pieter Hooimeijer, Michael D. Ernst. ACM Transactions of Software Engineering Methodology (TOSEM), 2012.
- CDE: A Tool for Creating Portable Experimental Software Packages. Philip J. Guo. IEEE Computing in Science and Engineering, 2012.
2011
- Proactive Wrangling: Mixed-Initiative End-User Programming of Data Transformation Scripts. Philip J. Guo, Sean Kandel, Joseph M. Hellerstein, Jeffrey Heer. ACM Symposium on User Interface Software and Technology (UIST), 2011.
- Using Automatic Persistent Memoization to Facilitate Data Analysis Scripting. Philip J. Guo and Dawson Engler. International Symposium on Software Testing and Analysis (ISSTA), 2011.
- Sloppy Python: Using Dynamic Analysis to Automatically Add Error Tolerance to Ad-Hoc Data Processing Scripts. Philip J. Guo. International Workshop on Dynamic Analysis (WODA), 2011.
- CDE: Run Any Linux Application On-Demand Without Installation. Philip J. Guo. USENIX Large Installation System Administration Conference (LISA), 2011.
- CDE: Using System Call Interposition to Automatically Create Portable Software Packages. Philip J. Guo and Dawson Engler. USENIX Annual Technical Conference, short paper, 2011.
- "Not My Bug!" and Other Reasons for Software Bug Report Reassignments. Philip J. Guo, Thomas Zimmermann, Nachiappan Nagappan, Brendan Murphy. ACM Conference on Computer Supported Cooperative Work (CSCW), 2011.
2010
2009
- HAMPI: A Solver for String Constraints. Adam Kiezun, Vijay Ganesh, Philip J. Guo, Pieter Hooimeijer, Michael D. Ernst. International Symposium on Software Testing and Analysis (ISSTA), 2009. ACM SIGSOFT Distinguished Paper Award, ISSTA 10-Year Impact Paper Award
- Linux Kernel Developer Responses to Static Analysis Bug Reports. Philip J. Guo and Dawson Engler. USENIX Annual Technical Conference, short paper, 2009.
- Automatic Creation of SQL Injection and Cross-site Scripting Attacks. Adam Kiezun, Philip J. Guo, Karthick Jayaraman, Michael D. Ernst. IEEE International Conference on Software Engineering (ICSE), 2009.
- Two Studies of Opportunistic Programming: Interleaving Web Foraging, Learning, and Writing Code. Joel Brandt, Philip J. Guo, Joel Lewenstein, Mira Dontcheva, Scott R. Klemmer. ACM Conference on Human Factors in Computing Systems (CHI), 2009. Honorable Mention Paper
- Opportunistic Programming: Writing Code to Prototype, Ideate, and Discover. Joel Brandt, Philip J. Guo, Joel Lewenstein, Mira Dontcheva, Scott R. Klemmer. IEEE Software, 2009.
2008
2007
2006
- Dynamic Inference of Abstract Types. Philip J. Guo, Jeff H. Perkins, Stephen McCamant, Michael D. Ernst. International Symposium on Software Testing and Analysis (ISSTA), 2006.
- Automatic Inference and Enforcement of Data Structure Consistency Specifications. Brian Demsky, Michael D. Ernst, Philip J. Guo, Stephen McCamant, Jeff H. Perkins, Martin Rinard. International Symposium on Software Testing and Analysis (ISSTA), 2006.
- A Scalable Mixed-Level Approach to Dynamic Analysis of C and C++ Programs. Philip J. Guo. Master of Engineering (M.Eng.) thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, 2006. Charles and Jennifer Johnson Award for Outstanding Computer Science Master of Engineering Thesis