Philip J. Guo

Orcid: 0000-0002-4579-5754

Affiliations:
  • University of California, San Diego, Department of Cognitive Science, CA, USA
  • University of Rochester, Department of Computer Science, NY, USA
  • MIT, Computer Science and Artificial Intelligence Lab, Cambridge, MA, USA
  • edX, Cambridge, MA, USA
  • Stanford University, Department of Computer Science, CA, USA


According to our database1, Philip J. Guo authored at least 97 papers between 2006 and 2024.

Collaborative distances:
  • Dijkstra number2 of four.
  • Erdős number3 of four.

Timeline

Legend:

Book 
In proceedings 
Article 
PhD thesis 
Dataset
Other 

Links

Online presence:

On csauthors.net:

Bibliography

2024
UNFOLD: Enabling Live Programming for Debugging GUI Applications.
Proceedings of the 2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2024

Perpetual Teaching Across Temporary Places: Conditions, Motivations, and Practices of Media Artists Teaching Computing Workshops.
Proceedings of the 2024 ACM Conference on International Computing Education Research, 2024

Taking ASCII Drawings Seriously: How Programmers Diagram Code.
Proceedings of the CHI Conference on Human Factors in Computing Systems, 2024

2023
Six Opportunities for Scientists and Engineers to Learn Programming Using AI Tools Such as ChatGPT.
Comput. Sci. Eng., 2023

Foreword.
Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing, 2023

Uncovering the Hidden Curriculum of University Computing Majors via Undergraduate-Written Mentoring Guides: A Learner-Centered Design Workflow.
Proceedings of the 2023 ACM Conference on International Computing Education Research, 2023

From "Ban It Till We Understand It" to "Resistance is Futile": How University Programming Instructors Plan to Adapt as More Students Use AI Code Generation and Explanation Tools such as ChatGPT and GitHub Copilot.
Proceedings of the 2023 ACM Conference on International Computing Education Research, 2023

Teaching Data Science by Visualizing Data Table Transformations: Pandas Tutor for Python, Tidy Data Tutor for R, and SQL Tutor.
Proceedings of the 2nd International Workshop on Data Systems Education: Bridging education practice with education research, 2023

2022
Seq2Parse: neurosymbolic parse error repair.
Proc. ACM Program. Lang., 2022

"There's no way to keep up!": Diverse Motivations and Challenges Faced by Informal Learners of ML.
Proceedings of the 2022 IEEE Symposium on Visual Languages and Human-Centric Computing, 2022

Codehound: Helping Instructors Track Pedagogical Code Dependencies in Course Materials.
Proceedings of the 2022 ACM SIGPLAN International Symposium on SPLASH-E, 2022

How Computer Science and Statistics Instructors Approach Data Science Pedagogy Differently: Three Case Studies.
Proceedings of the SIGCSE 2022: The 53rd ACM Technical Symposium on Computer Science Education, 2022

Five Pedagogical Principles of a User-Centered Design Course that Prepares Computing Undergraduates for Industry Jobs.
Proceedings of the SIGCSE 2022: The 53rd ACM Technical Symposium on Computer Science Education, 2022

Scaling Up Access to the Hidden Curriculum: A Design Methodology for Creating Undergraduate Mentoring Guides.
Proceedings of the L@S'22: Ninth ACM Conference on Learning @ Scale, New York City, NY, USA, June 1, 2022

The Challenges of Evolving Technical Courses at Scale: Four Case Studies of Updating Large Data Science Courses.
Proceedings of the L@S'22: Ninth ACM Conference on Learning @ Scale, New York City, NY, USA, June 1, 2022

The Design Space of Livestreaming Equipment Setups: Tradeoffs, Challenges, and Opportunities.
Proceedings of the DIS '22: Designing Interactive Systems Conference, Virtual Event, Australia, June 13, 2022

2021
Orienting, Framing, Bridging, Magic, and Counseling: How Data Scientists Navigate the Outer Loop of Client Collaborations in Industry and Academia.
Proc. ACM Hum. Comput. Interact., 2021

Streamers Teaching Programming, Art, and Gaming: Cognitive Apprenticeship, Serendipitous Teachable Moments, and Tacit Expert Knowledge.
Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing, 2021

Ten Million Users and Ten Years Later: Python Tutor's Design Guidelines for Building Scalable and Sustainable Research Software in Academia.
Proceedings of the UIST '21: The 34th Annual ACM Symposium on User Interface Software and Technology, 2021

Inside the Mind of a CS Undergraduate TA: A Firsthand Account of Undergraduate Peer Tutoring in Computer Labs.
Proceedings of the SIGCSE '21: The 52nd ACM Technical Symposium on Computer Science Education, 2021

2020
The Design Space of Computational Notebooks: An Analysis of 60 Systems in Academia and Industry.
Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing, 2020

Papercode: Generating Paper-Based User Interfaces for Code Review, Annotation, and Teaching.
Proceedings of the UIST '20 Adjunct: The 33rd Annual ACM Symposium on User Interface Software and Technology, 2020

Towards a dynamic multiscale personal information space: beyond application and document centered views of information.
Proceedings of the Programming'20: 4th International Conference on the Art, 2020

Learnersourcing at Scale to Overcome Expert Blind Spots for Introductory Programming: A Three-Year Deployment Study on the Python Tutor Website.
Proceedings of the L@S'20: Seventh ACM Conference on Learning @ Scale, 2020

Wrex: A Unified Programming-by-Example Interaction for Synthesizing Readable Code for Data Scientists.
Proceedings of the CHI '20: CHI Conference on Human Factors in Computing Systems, 2020

2019
End-User Programmers Repurposing End-User Programming Tools to Foster Diversity in Adult End-User Programming Education.
Proceedings of the 2019 IEEE Symposium on Visual Languages and Human-Centric Computing, 2019

Software Developers Learning Machine Learning: Motivations, Hurdles, and Desires.
Proceedings of the 2019 IEEE Symposium on Visual Languages and Human-Centric Computing, 2019

Mallard: Turn the Web into a Contextualized Prototyping Environment for Machine Learning.
Proceedings of the 32nd Annual ACM Symposium on User Interface Software and Technology, 2019

Bespoke: Interactively Synthesizing Custom GUIs from Command-Line Applications By Demonstration.
Proceedings of the 32nd Annual ACM Symposium on User Interface Software and Technology, 2019

Improv: Teaching Programming at Scale via Live Coding.
Proceedings of the Sixth ACM Conference on Learning @ Scale, 2019

Theory and practice of string solvers (invited talk abstract).
Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis, 2019

Practitioners Teaching Data Science in Industry and Academia: Expectations, Workflows, and Challenges.
Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems, 2019

2018
The Impact of Culture on Learner Behavior in Visual Debuggers.
Proceedings of the 2018 IEEE Symposium on Visual Languages and Human-Centric Computing, 2018

Fusion: Opportunistic Web Prototyping with UI Mashups.
Proceedings of the 31st Annual ACM Symposium on User Interface Software and Technology, 2018

Porta: Profiling Software Tutorials Using Operating-System-Wide Activity Tracing.
Proceedings of the 31st Annual ACM Symposium on User Interface Software and Technology, 2018

Students, systems, and interactions: synthesizing the first four years of learning@scale and charting the future.
Proceedings of the Fifth Annual ACM Conference on Learning at Scale, 2018

Codemotion: expanding the design space of learner interactions with computer programming tutorial videos.
Proceedings of the Fifth Annual ACM Conference on Learning at Scale, 2018

Mismatch of Expectations: How Modern Learning Resources Fail Conversational Programmers.
Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems, 2018

Non-Native English Speakers Learning Computer Programming: Barriers, Desires, and Design Opportunities.
Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems, 2018

2017
Building tools to help students learn to program.
Commun. ACM, 2017

How adults ages 60+ are learning to code.
Commun. ACM, 2017

HappyFace: Identifying and predicting frustrating obstacles for learning programming at scale.
Proceedings of the 2017 IEEE Symposium on Visual Languages and Human-Centric Computing, 2017

DS.js: Turn Any Webpage into an Example-Centric Live Programming Environment for Learning Data Science.
Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology, 2017

Torta: Generating Mixed-Media GUI and Command-Line App Tutorials Using Operating-System-Wide Activity Tracing.
Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology, 2017

Omnicode: A Novice-Oriented Live Programming Environment with Always-On Run-Time Value Visualizations.
Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology, 2017

Hack.edu: Examining How College Hackathons Are Perceived By Student Attendees and Non-Attendees.
Proceedings of the 2017 ACM Conference on International Computing Education Research, 2017

CodePilot: Scaffolding End-to-End Collaborative Software Development for Novice Programmers.
Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems, 2017

Older Adults Learning Computer Programming: Motivations, Frustrations, and Design Opportunities.
Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems, 2017

2016
Paradise unplugged: identifying barriers for female participation on stack overflow.
Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2016

Understanding Conversational Programmers: A Perspective from the Software Industry.
Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems, 2016

Parse that data! Practical tips for preparing your raw data for analysis.
Proceedings of the Perspectives on Data Science for Software Engineering, 2016

2015
OverCode: Visualizing Variation in Student Solutions to Programming Problems at Scale.
ACM Trans. Comput. Hum. Interact., 2015

Toward a domain-specific visual discussion forum for learning computer programming: An empirical study of a popular MOOC forum.
Proceedings of the 2015 IEEE Symposium on Visual Languages and Human-Centric Computing, 2015

Codechella: Multi-user program visualizations for real-time tutoring and collaborative learning.
Proceedings of the 2015 IEEE Symposium on Visual Languages and Human-Centric Computing, 2015

Codepourri: Creating visual coding tutorials using a volunteer crowd of learners.
Proceedings of the 2015 IEEE Symposium on Visual Languages and Human-Centric Computing, 2015

Perceptions of non-CS majors in intro programming: The rise of the conversational programmer.
Proceedings of the 2015 IEEE Symposium on Visual Languages and Human-Centric Computing, 2015

Codeopticon: Real-Time, One-To-Many Human Tutoring for Computer Programming.
Proceedings of the 28th Annual ACM Symposium on User Interface Software & Technology, 2015

Snap n' shop: Visual search-based mobile shopping made a breeze by machine and crowd intelligence.
Proceedings of the 9th IEEE International Conference on Semantic Computing, 2015

How High School, College, and Online Students Differentially Engage with an Interactive Digital Textbook.
Proceedings of the 8th International Conference on Educational Data Mining, 2015

Wait-Learning: Leveraging Wait Time for Second Language Education.
Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems, 2015

2014
The difficulty of teaching programming languages, and the benefits of hands-on learning.
Commun. ACM, 2014

Refining students' coding and reviewing skills.
Commun. ACM, 2014

Clarifying human-computer interaction.
Commun. ACM, 2014

A direct manipulation language for explaining algorithms.
Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing, 2014

Data-driven interaction techniques for improving navigation of educational videos.
Proceedings of the 27th Annual ACM Symposium on User Interface Software and Technology, 2014

Modeling programming knowledge for mentoring at scale.
Proceedings of the First (2014) ACM Conference on Learning @ Scale, 2014

Understanding in-video dropouts and interaction peaks inonline lecture videos.
Proceedings of the First (2014) ACM Conference on Learning @ Scale, 2014

Demographic differences in how students navigate through MOOCs.
Proceedings of the First (2014) ACM Conference on Learning @ Scale, 2014

How video production affects student engagement: an empirical study of MOOC videos.
Proceedings of the First (2014) ACM Conference on Learning @ Scale, 2014

Crowdsourcing step-by-step information extraction to enhance existing how-to videos.
Proceedings of the CHI Conference on Human Factors in Computing Systems, 2014

Wait-learning: leveraging conversational dead time for second language education.
Proceedings of the CHI Conference on Human Factors in Computing Systems, 2014

2013
Helping scientists, engineers to work up to 100 times faster.
Commun. ACM, 2013

Teaching programming the way it works outside the classroom.
Commun. ACM, 2013

Online python tutor: embeddable web-based program visualization for cs education.
Proceedings of the 44th ACM Technical Symposium on Computer Science Education, 2013

2012
Software tools to facilitate research programming.
PhD thesis, 2012

HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars.
ACM Trans. Softw. Eng. Methodol., 2012

CDE: A Tool for Creating Portable Experimental Software Packages.
Comput. Sci. Eng., 2012

BURRITO: Wrapping Your Lab Notebook in Computational Infrastructure.
Proceedings of the 4th Workshop on the Theory and Practice of Provenance, 2012

Characterizing and predicting which bugs get reopened.
Proceedings of the 34th International Conference on Software Engineering, 2012

2011
CDE: Using System Call Interposition to Automatically Create Portable Software Packages.
Proceedings of the 2011 USENIX Annual Technical Conference, 2011

Proactive wrangling: mixed-initiative end-user programming of data transformation scripts.
Proceedings of the 24th Annual ACM Symposium on User Interface Software and Technology, 2011

CDE: Run Any Linux Application On-Demand Without Installation.
Proceedings of the Past, 2011

Using automatic persistent memoization to facilitate data analysis scripting.
Proceedings of the 20th International Symposium on Software Testing and Analysis, 2011

Sloppy Python: using dynamic analysis to automatically add error tolerance to ad-hoc data processing scripts.
Proceedings of the International Workshop on Dynamic Analysis: held in conjunction with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2011), 2011

"Not my bug!" and other reasons for software bug report reassignments.
Proceedings of the 2011 ACM Conference on Computer Supported Cooperative Work, 2011

HAMPI: A String Solver for Testing, Analysis and Vulnerability Detection.
Proceedings of the Computer Aided Verification - 23rd International Conference, 2011

2010
Towards Practical Incremental Recomputation for Scientists: An Implementation for the Python Language.
Proceedings of the 2nd Workshop on the Theory and Practice of Provenance, 2010

Characterizing and predicting which bugs get fixed: an empirical study of Microsoft Windows.
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, 2010

2009
Opportunistic Programming: Writing Code to Prototype, Ideate, and Discover.
IEEE Softw., 2009

Linux Kernel Developer Responses to Static Analysis Bug Reports.
Proceedings of the 2009 USENIX Annual Technical Conference, 2009

HAMPI: a solver for string constraints.
Proceedings of the Eighteenth International Symposium on Software Testing and Analysis, 2009

Automatic creation of SQL Injection and cross-site scripting attacks.
Proceedings of the 31st International Conference on Software Engineering, 2009

Two studies of opportunistic programming: interleaving web foraging, learning, and writing code.
Proceedings of the 27th International Conference on Human Factors in Computing Systems, 2009

2008
Opportunistic programming: how rapid ideation and prototyping occur in practice.
Proceedings of the 4th international workshop on End-user software engineering, 2008

2007
The Daikon system for dynamic detection of likely invariants.
Sci. Comput. Program., 2007

2006
Dynamic inference of abstract types.
Proceedings of the ACM/SIGSOFT International Symposium on Software Testing and Analysis, 2006

Inference and enforcement of data structure consistency specifications.
Proceedings of the ACM/SIGSOFT International Symposium on Software Testing and Analysis, 2006


  Loading...