These are my academic publications.
For the bean counters, there are 166 of them.
You can see who's citing them on
Semantic Scholar, or
that 7 are still
under my deadname, and thousands cite me by my deadname. Publishers refuse to
fix these citations, so please cite me
Amy J. Ko, regardless of how you might find my prior work
in reference lists and scholarly search engines. And if you're reviewing a
paper that cites me incorrectly, please demand they fix it.
Filter by publication topic and awards.
AI education UI mining assessment debugging design diversity editors errors expertise families feedback help interest issue tracking justice learning methods pedagogy problem solving program reading programming programming systems studies teams tools tutorials verification
best paper diversity + inclusion award honorable mention most influential paper most influential paper honorable mention
2023— Sabbatical (Winter/Spring/Summer)
Jayne Everson, Anne Beitlers, Amy J. Ko (2023) What do you really mean by rigor? Deconstructing the definition in CS Teaching American Education Research Association
Finds widely varying and inconsistent definitions of rigor amongst CS educators and students across primary, secondary, and post-secondary settings.
2022— Informatics program chair; gender transition; sabbatical (Summer/Fall)
2021— Informatics program chair; COVID-19; gender transition
Kyle Thayer, Sarah Chasins, Amy J. Ko (2021) A Theory of Robust API Knowledge ACM Transactions on Computing Education
Contributes a novel theory of robust API knowledge, including knowledge about the domain that an API models, knowledge of the semantics of API functionality, and knowledge of API usage patterns.
★ best paper Chenglong Wang, Yu Feng, Rastislav Bodik, Isil Dillig, Alvin Cheung, Amy J. Ko (2021) Falx: Synthesis-Powered Visualization Authoring ACM SIGCHI Conference on Human Factors in Computing Systems (CHI)
Contributes a synthesizer-powered visualization tool that allows users to specify examples of how concrete data values should be rendered, and receive one or more data visualizations that transform data accordingly. Finds that users can effectively adopt Falx to create visualizations.
Amy J. Ko, Anne Beitlers, Brett Wortzman, Matt Davidson, Alannah Oleson, Mara Kirdani-Ryan, Stefania Druga, Jayne Everson (2021) Critically Conscious Computing: Methods for Secondary Education Online
A book for secondary educators who want to teach CS from critical lens, examining it from technical, sociotechnical, and sociopoitical stance.
2020— Informatics program chair; promoted to Professor; COVID-19; gender transition
Amy J. Ko (2020) Foundations of Information Online
This book covers information, and all of the things that intersect with it: power, politics, oppression, data, knowledge, encoding, metadata; information technology, management, and policy; and the many domains in which information is crucial, including science, social media, automation, health, democracy, and sustainabiity. It serves as the foundation of our survey course on information, INFO 200 Intellectual Foundations of Informatics.
Alannah Oleson, Meron Solomon, Amy J. Ko (2020) Computing Students' Learning Difficulties in HCI Education ACM SIGCHI Conference on Human Factors in Computing Systems (CHI)
Investigates the challenges that computing students face in learning HCI, finding challenges in understanding design as distinct from engineering, understanding design methods, finding resources to support design, interpreting feedback, scoping design problems, choosing between alternatives, and designing for diversity.
Thomas D. LaToza, Maryam Arab, Dastyni Loksa, Amy J. Ko (2020) Explicit Programming Strategies Empirical Software Engineering
Presents the concept of explicit programming strategies, the idea of encoding manual procedures for solving programming programmers to accelerate software development problem solving. Presents a notation for encoding strategies and evidence that developers using explicit strategies, independent of expertise, were more successful at the design and debugging tasks.
2019— Informatics program chair; gender transition
Amy J. Ko (2019) Why Not to Measure Productivity Sadowski C., Zimmermann T. (eds) Rethinking Productivity in Software Engineering. Apress, Berkeley, CA
Presents several arguments for the dangers of measuring software developer productivity.
Amy J. Ko (2019) Informatics Teaching Guide Online
Supports new higher education teachers, including new faculty, guest faculty, doctoral student teachers, and teaching assistants. It uses our undergraduate Informatics program for examples, but is in essence a practical, but also research-informed introduction to teaching in a university.
Benjamin Xie, Dastyni Loksa, Greg Nelson, Matt Davidson, Dongsheng Dong, Harrison Kwik, Alex Tan, Leanne Hwa, Min Li, Amy J. Ko (2019) A Theory of Instruction for Introductory Programming Skills Computer Science Education
Proposes a theory that identifies four distinct skills that novices learn incrementally: tracing, writing syntax, comprehending reusable abstractions of programming knowledge (templates). Demonstrates that teaching these skills incrementally can result in improved completion rate on practice exercises and decreased error rate and improved understanding of the post-test.
Andrew Begel, Amy J. Ko (2019) Learning Outside the Classroom Cambridge Handbook on Computing Education Research (Sally Fincher, Anthony Robin, Eds.)
Surveys the small but growing literature on informal learning of computing and the contexts, technologies, and skills that support it. Identifies a several open questions about how to support informal learning and integrate it with more formal learning.
Amy J. Ko, Sally Fincher (2019) A Study Design Design Process Cambridge Handbook on Computing Education Research (Sally Fincher, Anthony Robin, Eds.)
Describes a process for designing studies in the domain of computing education research, though the process is more broadly useful for empirical study design in general.
Paul Luo Li, Amy J. Ko, Andrew Begel (2019) What Distinguishes Great Software Engineers? Empirical Software Engineering
Via a survey of nearly 2,000 developers, finds that great engineers are distinguished by writing good code, adapting to future business value and costs, being great decision-makers, avoiding making others’ jobs harder, and continuously learning.
2018— Informatics program chair
Alannah Oleson, Christopher Mendez, Zoe Steine-Hanson, Claudia Hilderbrand, Christopher Perdriau, Margaret Burnett, Amy J. Ko (2018) Pedagogical Content Knowledge for Teaching Inclusive Design ACM International Computing Education Research Conference (ICER)
Through interviews and observations, identifies 11 components of pedagogical content knowledge required to teach inclusive design in HCI education, including strategies for anticipating and addressing resistance to the topic of inclusion, strategies for modeling and scaffolding perspective taking, and strategies for tailoring instruction to students’ prior beliefs and biases.
★ best paper Greg Nelson, Amy J. Ko (2018) On Use of Theory in Computing Education Research ACM International Computing Education Research Conference (ICER)
Argues that our desire to both advance explanatory theory and advance design splits our attention, which prevents us from excelling at both; that our emphasis on applying and refining general theories of learning is done at the expense of domain-specific theories of computer science knowledge; and our use of theory as a critical lens in peer review prevents the publication of designs that may accelerate design progress.
Amanda Swearngin, Wil Li, Mira Dontcheva, Morgan Dixon, Amy J. Ko (2018) Rewire: Interface Design Assistance from Examples ACM SIGCHI Conference on Human Factors in Computing Systems (CHI)
Presents a technique for automatically converting screenshots of imagines into vector representations for use by designers. Demonstrates that designers find the technique accurate enough and superior to replicating user interfaces manually.
Kristen Shinohara, Saba Kawas, Amy J. Ko, Richard E. Ladner (2018) Who Teaches Accessibility? A Survey of U.S. Computing Faculty ACM Technical Symposium on Computer Science Education (SIGCSE), Research Track
Investigates the prevalence of instruction on accessibility among computing and information science faculty. Finds that nearly all HCI faculty teach something about accessibility, that most faculty want to teach it, but don't have the experience, and don't know how it fits into their course content.
2017— Informatics program chair
Amy J. Ko, Katie Davis (2017) Computing Mentorship in a Software Boomtown: Relationships to Adolescent Interest and Beliefs ACM International Computing Education Research Conference (ICER)
Finds that interest in computing was strongly related to having a mentoring relationship and not to gender or socioeconomic status, that teens with mentors also engaged in significantly more computing education and had more diverse beliefs about peers who engaged in computing education, and that teens who took a class from an instructor who aimed to become students’ teacher-mentor had significantly greater positive changes in interest in computing than those who already had a mentor.
Kyle Thayer, Amy J. Ko (2017) Barriers Faced by Coding Bootcamp Students ACM International Computing Education Research Conference (ICER)
Finds that bootcamps can be an alternate path into the software industry for people who missed earlier computing education opportunities, particularly for women, but students face great personal costs and risks, including significant time, money, and effort before, during, and after bootcamps.
Annie Yan, Michael J. Lee, Amy J. Ko (2017) Predicting Abandonment in Online Coding Tutorials IEEE Symposium on Visual Languages and Human-Centered Computing (VL/HCC)
Investigates the feasibility of predicting when a learner will abandon a coding tutorial, finding that account activation and help-seeking behavior predict continued learning, while tutorial features indicating struggle predicted abandonment.
Paul Luo Li, Amy J. Ko, Andrew Begel (2017) Cross-Disciplinary Perspectives on Collaborations with Software Engineers International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE)
Finds that non-software developers who collaborate with software developers described great software engineers as masters of their own technical domain, open-minded to the input of others, proactively informing everyone, and seeing the big picture of how pieces fit together.
Will Jernigan, Amber Horvath, Michael J. Lee, Margaret M. Burnett, Taylor Cuilty, Sandeep Kuttal, Anicia Peters, Irwin Kwan, Faezeh Bahmani, Amy J. Ko, Christopher J. Mendez, Alannah Oleson (2017) General Principles for a Generalized Idea Garden Journal of Visual Languages and Computing
Describes the general architecture for the Idea Garden paradigm and a series of studies that suggest it's effectiveness at unblocking learners' problem solving.
2016— Informatics program chair
Amy J. Ko (2016) Cooperative Software Development Online
An online, self-published book that covers software engineering fundamentals, but from a human, social, collaborative, and organizational perspective, rather than from a purely technical perspective.
Amy J. Ko (2016) What is a Programming Language, Really? ACM Workshop on Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU)
Reflects on the implications of various definitions of programming languages on research and practice.
Dastyni Loksa, Amy J. Ko, William Jernigan, Alannah Oleson, Chris Mendez, Margaret M. Burnett (2016) Programming, Problem Solving, and Self-Awareness: Effects of Explicit Guidance ACM SIGCHI Conference on Human Factors in Computing Systems (CHI)
Teaching novice programmers the structure of programming problem solving activities and to be aware of which activity they are conducting and whether they are succeeding has a substantial impact on their productivity, self-efficacy, independence, and growth mindset.
Amy J. Ko (2016) The World is Your Test Suite Perspectives on Data Science for Software Engineering, 1st Edition
Discusses the importance of monitoring, bug reporting, and user feedback in verifying requirements.
Amy J. Ko (2015) Design Methods Online
An online, self-published book that surveys HCI and Design methods in a simple, accessible, and direct manner.
William Jernigan, Amber Horvath, Michael J. Lee, Margaret M. Burnett, Taylor Cuilty, Sandeep Kuttal, Anicia N. Peters, Irwin Kwan, Faezeh Bahmani, Amy J. Ko (2015) A Principled Evaluation for a Principled Idea Garden IEEE Symposium on Visual Languages and Human-Centered Computing (VL/HCC)
In-context help on programming problem solving helps learners with diverse learning strategies work more independently.
Paul Luo Li, Amy J. Ko, Jiamin Zhu (2015) What Makes a Great Software Engineer? ACM/IEEE International Conference on Software Engineering (ICSE)
Software engineering expertise is much more about personality, interpersonal skills, and decision-making expertise than about technical knowledge and ability.
2014— Promoted to Associate with tenure; returned from AnswerDash
Michael J. Lee, Faezeh Bahmani, Irwin Kwan, Jillian LaFerte, Polina Charters, Amber Horvath, Fanny Luor, Jill Cao, Catherine Law, Michael Beswetherick, Sheridan Long, Margaret M. Burnett, Amy J. Ko (2014) Principles of a Debugging-First Puzzle Game for Computing Education IEEE Symposium on Visual Languages and Human-Centered Computing (VL/HCC)
Teaching debugging first, while redirecting blame to the computer instead of the learner, can increase learning efficiency and engage learners of all genders equally.
2013— On leave at AnswerDash
2012— Founded AnswerDash
Paul Luo Li, Ryan Kivett, Zhiyuan Zhan, Sung-eok Jeon, Nachiappan Nagappan, Brendan Murphy, Amy J. Ko (2011) Characterizing the Differences Between Pre- and Post- release Versions of Software ACM/IEEE International Conference on Software Engineering (ICSE), Software Engineering in Practice
Beta-testers use more applications, engage in more self-install, come from non-representative countries, and use more advanced hardware, skewing data on crashes, hangs, and kernel panics that is used for bug triage.
Amy J. Ko, Robin Abraham, Laura Beckwith, Alan Blackwell, Margaret M. Burnett, Martin Erwig, Chris Scaffidi, Joseph Lawrance, Henry Lieberman, Brad A. Myers, Mary Beth Rosson, Gregg Rothermel, Mary Shaw, Susan Wiedenbeck (2011) The State of the Art in End-User Software Engineering ACM Computing Surveys, 43(3), Article 21
Defines end-user programming and end-user software engineering, then presents the extensive history of efforts to integrate software engineering activities into programming environments.
Amy J. Ko, Yann Riche (2011) The Role of Conceptual Knowledge in API Usability IEEE Symposium on Visual Languages and Human-Centered Computing (VL/HCC)
Test the feasibility of a feature in an API requires architectural and terminology knowledge of the API, which is often missing from documentation.
Amy J. Ko, Parmit K. Chilana (2010) How Do Open Source Developers Talk about Users? CHI 2010 Workshop on The Future of FLOSS in CHI Research and Practice
Shows that many open source developers speak in generalities about users and their needs, leaning on stereotypes and instinct instead of evidence.
2008— Job search, finished PhD, started at UW, divorce
Amy J. Ko, Brad A. Myers (2008) Source-Level Debugging with the Whyline Workshop on Cooperative and Human Aspects of Software Engineering
Describes a pilot study of the Whyline for Java, showing that users were twice as fast at fixing a particular defect than without the Whyline.
★ most influential paper honorable mention Brad A. Myers, Sun Young Park, Yoko Nakano, Greg Mueller, Amy J. Ko (2008) How Designers Design and Program Interactive Behaviors IEEE Symposium on Visual Languages and Human-Centered Computing (VL/HCC)
Designers report that behavior is much more difficult to define than appearance, that it requires collaborating with developers, and that communicating behavior to developers is of particular difficulty.
Amy J. Ko (2008) Asking and Answering Questions about the Causes of Software Behavior Carnegie Mellon University Dissertation
Describes the discoveries of several investigations into debugging and presents the concept, implementation, and evaluation of interrogtative debugging, and the several prototypes that embody it, including the Whyline for Alice, the Whyline for Java, and Crystal.
Amy J. Ko, Rob DeLine, Gina Venolia (2007) Information Needs in Collocated Software Development Teams ACM/IEEE International Conference on Software Engineering (ICSE)
Developers have many distinct information needs to be productive; some are frequent and well-served, such as information about changes to artifacts and coworker progress, but others are infrequent but critical, such as information about requirements, design rationale, and reproduction steps.
2006— MSR intern
Michael J. Coblenz, Amy J. Ko, Brad A. Myers (2005) Using Objects of Measurement to Detect Spreadsheet Errors IEEE Symposium on Visual Languages and Human-Centered Computing (VL/HCC)
A language feature for specifying the unit of analysis for values in a spreadsheet, allowing the language to identify type errors as unit of analysis mismatch.
Amy J. Ko, Brad A. Myers, Mary Shaw (2005) Identifying Types of End Users: Hints from an Informal Survey Carnegie Mellon University ISRI Technical Report, no. CMU-HCII-05-101 and Human Computer Interaction Institute Technical Report, no CMU-ISRI-05-110
Presents a clustering of end user programming activities, finding revealing variation in advanced feature usage.
★ most influential paper Amy J. Ko, Brad A. Myers, Htet Htet Aung (2004) Six Learning Barriers in End-User Programming Systems IEEE Symposium on Visual Languages and Human-Centered Computing (VL/HCC)
When people write programs, they face at least six distinct problems: 1) identifying a solution, 2) finding abstractions to implement the solution, 3) coordinating these abstractions, 4) properly configuring these abstractions, 5) identifying possible causes of program failures, and 6) getting information about program execution.
★ best paper + most influential paper Amy J. Ko, Brad A. Myers (2003) Development and Evaluation of a Model of Programming Errors IEEE Symposium on Visual Languages and Human-Centered Computing (VL/HCC)
Software defects are caused by cognitive breakdowns in specification, implementation and debugging activities and analysis of these breakdowns can be used to identify tools that prevent these breakdowns.
2002— Graduated from college; 1st year of PhD
2001— Junior year of college
2000— Sophomore year of college
To the extent possible under law,
Amy J. Ko
has waived all copyright and related or neighboring rights to the design
and implementation of
Amy's faculty site. This work is
published from the
United States. See this site's GitHub repository to view source and provide feedback.