My research imagines and enables equitable, joyous, liberatory learning
about computing and information, in schools and beyond.
I work with outstanding postdocs, doctoral students, undergraduates, teachers and communities on this vision. My current
projects within this goal are shaped by the faculty, students, and teachers in
the Center for Learning, Computing, and Imagination, our partner teachers, school leaders, and families, and generous external funding.
We publish primarily in Computing Education and Human-Computer Interaction. I also work to broaden research discourse as Editor-in-Chief of ACM TOCE and sustain peer review with Reciprocal Reviews. We share our discoveries by blogging, presenting, teaching, writing,
and and connecting with community, including the CS for All Washington advocacy community and the PNW CS Teach consortium of teacher educators.
Want to do research with me? Read about my lab, and
join us in creating a more equitable future of computing that includes everyone.
My lab and I have discovered many things since I started doing research in
1999. Here are some of the highlights from our work. How I describe these is
always evolving as we learn more.
Text-based code editors can be richly interactive (2004 โ 2025) The structured editors of the 1980's were hard to build and use; I invented ways of making both easier by viewing programs as user interfaces, not documents.



editorsprogrammingtools ย ๐ฌ videoย
The tools and systems around programming languages are a primary source of learning difficulty (2000 โ 2025) Programming is hard for many reasons, but my work showed that it is also hard because tools, APIs, and IDEs make information about program behavior particulary difficulty to find.




programming systemsprogrammingstudies
Equitable CS teaching requires equity and resources that CS culture resists (2019 โ 2022) Teachers need time, resources, and community support to teach equitably, but CS culture often resists these needs in favor of individual achievement and technical prowess.




teachingstudies
Materials for learning CS online largely ignore pedagogical best practices (2017 โ 2022) They fail to provide feedback, scaffold effectively, grow self-efficacy, or develop mastery, often because learners struggle to effectively deploy their agency.



tutorialsstudies
Software engineering depends on information (2006 โ 2021) Through a series of studies, I unconvered the many ways that developers depend on information from people and systems to make engineering decisions, and how some of the most crucial information is hard or impossible to find.


teamsstudies
Software engineering expertise is technical, but also social, organizational, and political (2015 โ 2019) Across thousands of surveys and interviews, we found that expertise is far more than just knowing how to architect and build software.


expertisestudies
Finding help with software can be as simple as pointing (2006 โ 2015) Pointing to user interface elements can be a powerfully discrminating input into help retrieval algorithms.


helptools ย ๐ฌ videoย ย ๐ฌ videoย ย ๐ฌ videoย ย ๐ฅ๏ธ demo ย {}ย code
Programs can answer questions about their behavior (2004 โ 2013) I invented tools and algorithms for deriving 'why' and 'why not' questions from programs and automatically answering those questions, helping people efficiently and interactively debug the root causes of program failures.


debuggingtools ย ๐ฌ videoย ย ๐ฌ videoย ย ๐ฌ videoย ย {}ย code
Design skills depend greatly on domain expertise (2006 โ 2012) We found through several studies that designers' productivity and careers are often limited by their lack of domain expertise.


designstudies
Framing compilers as fallible, prosocial collaborators can facilitate learning (2011) Compiler feedback is usually impersonal and mean; we found that being nicer has powerful impacts on learners' attention, compelling them to pay attention to valuable direct instruction.


feedbackstudiestools ย ๐ฅ๏ธ demo
Defects emerge from the interaction of satisficing and state space complexity (2002 โ 2005) Much of my work during my dissertation examined where software failures come from; cognitive slips interact with the large state space that people create when programming to generate defects that are hard to localize.

errorsstudies
Last updated 12/18/2025. 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.