Bits and Behavior
Published in

Bits and Behavior

A group of researchers and two children standing on tiered steps facing the camera directly.
The 2022 Educational PL gang on the Schloss steps.

Dagstuhl trip report: Educational programming languages


Monday: Tutorials, Games, Scaffolding, Design

Tobias in front of a slide that says “Supporting Students”
Tobias talks about his design goal in TigerJython.
Felienne in front of a sketch that says “There are more things causing cognitive load.”
Felienne talks about Hedy and cognitive load.
Mike Lee on stage with a slide showing the Gidget home page and URL.
Mike introduces Gidget.
Diana Franklin on the stage with a slide that says Instructional Strategy vs Learning Strategy.
Diana explains the difference between instructional strategies and learning strategies.
Eva on the stage with a slide showing a triangle of Cognitive Science, Computer Science, and Educational Science
Eva talks about the many disciplinary perspectives on programming.
Ethen on the stack with a slide that says “Research Design”
Ethel describes her significant body of work on transfer.
Barb Ericson on the stage with a slide that says “My Parsons Problem Findings”
Barb talks about her work about Parsons problems.
Bastiaan Heeren on stage with a title slide “As-Elle”
Bastiaan prepares to speak about Ask-Elle.
Michael Ball on stage with a slide “Loose Motivations for Snap!”
Michael takes us on a tour through Snap!.
Mark Guzdial on stage with a slide “Three examples of participatory design”
Mark tells us stories about participatory programming language design.
Felienne Hermans with a slide “Assume nothing, create a diverse team, tech stack is not designed for this”
Felienne gives a wonderful talk about hermeneutical injustices of language design.
Michael, Barb, and Kathi sitting on a wall with an audience looking at them. Two children play on the hills in the background.
We discuss issues of scale and educational programming tools.
Felienne, Ethel, and Amy in a selfie, looking fine in the backyard of the castle.
A lovely post dinner chat with Felienne and Ethel.

Tuesday: Representations, Planning, Feedback

Kenichi with a slide “OCaml, since 2002”
Kenichi talks about his OCaml course.
Youyou with a slide “Motivation, program design recipe is great”
Youyou motivates Mio.
Niel with a demo of expression construction.
Neil talks about the drag and drop problem of expression editing.
Jens wearing a red droopy hat and a photo of a child wearing the same.
Jens talking about the origin of the hat in the wizard book.
Kathi with a slide, “What are the tasks in this problem?”
Kathi walks through an example problem.
Shriram demonstrating a notional machine in Snap.
Shriram celebrates Snap as a platform for planning and modeling of program execution.
Johan with a slide, “Towards Giving Timely Feedback to Novice Programmers”
Johan talks about many of the subtle challenges of when and how to give hints.
Kathi describing two alternative uses of higher order functions.
Kathi describes an example motivating higher order functions.
Jadga demonstrating Snap.
Jadga preps her demo.
Shriram demonstrating reactivity in Pyret.
Shriram rails on void in the context of reactive programming.
Barb demonstrating peer instruction support in Peer+.
Barb demonstrates her web-based peer instruction tool.
Diana describing learning trajectories on stage.
Diana describes different ways of thinking about learning trajectories.
Amy in a blue floral dress and straw hat looking over a valley.
The view from the hilltop where the old Dagstuhl castle lives.
  • The field really needs to stop asking largely useless is “X better than Y” questions and focus more on understanding why, when, and for whom something is useful.
  • The field needs to embrace a multiplicity of methods and epistemologies as well as mixed and negative results, productive student transgression, and artifact evaluations.
  • The field needs to center the questions that teachers and students have about systems in its work, potentially engaging in more research practice partnerships.
  • The field has to recognize the limits of evidence and acknowledge the power of (pop) culture in shaping what people use and why.
  • While there are many systems level issues in academia that warp incentives for all of the above, there are some things we can control, like our journal and conference policies.
A black and white shot from below of Jens and Michael having a conversation.
An accidental photo on the walk back from our hike, where Jens, Michael, and I talked about educational programming system sustainability and content moderation.

Wednesday: Notional Machines, Tables, APIs, AI

Tobias with a slide “A Debugger for Python” and a chamelion.
Tobias talks about his journey to create a program visualization for Python.
Kenichi with a slide “Implementation of OCaml stepper”
Kenichi describes the implementation of his stepper.
Shriram in Dr. Racket demonstrating runtime visualization on factorial.
Shriram demos a notional machine.
Kathy with a slide “Context: University Intro course”
Kathi sets up her course.
Niel with a slide “Columnal, a tool for processing tables of data.”
Neil talks about his side project on tables.
Elena with a slide “Concept Annotated Examples for Library Comparison”
Elena talks about her to appear UIST paper.
Mark with a slide showing the Michigan Computer Science & Engineering building.
Mark talks about just how few people learn computing.
Mark showing Hypercard’s contact book.
Mark demos Hypertalk.
Janet explaining how fMRI’s work with a slide showing one.
Janet explains fMRIs.
Elena talking about her HCI course at Harvard.
Elena talks about her Harvard HCI course.
Shriram demonstrating a chat-like REPL.
Shriram talks about REPLs.
  • We can’t ignore AI; it’s here, and so we have to figure out how to teach its good and bad parts.
  • There are significant questions about whether it’s an appropriate technology for learning, especially data-driven AI, which has a tendency to focus on aggregate, normative behavior at the expense of those facing inequities or those with creative, idiosyncratic, but creative insights and solutions.
  • There are so many ways in which CS educators should not be teaching AI alone; social science has much to say that students need to hear, and CS educators shouldn’t pretend to be experts on the social impacts of AI.
Amy looking at the camera with glass hallways, trees, and clouds behind her.
I go for a morning stroll in the interior courtyard before the session.


  • There are many questions about why we need representations; are they a means to greater understanding or an essential part of programming and learning?
  • There are also many questions about whether automated computational tools for generating representations of program behavior is essential, or just a bias we have as a discipline; is it possible that whiteboarding and sketching skills should get our attention instead?
  • There are some ways that representations may benefit from social settings, using communication as a vehicle to generate needed representations as needed.
  • Representations may also need to leverage prior knowledge. One example of this is having domain knowledge about the data passing through algorithms, especially personal data. This can promote greater comprehension by leveraging learners’ assets.
  • There may be some value in trying to name some of the many representations that we’ve invented and teach people how to use them flexibly to reason about algorithms and program behavior. Maybe they will be compelling to the extent they’re situated in relevant domains and personal data.
Amy and the group in the seminar room at tables in chairs.
We get ready to chaotically write.
Amy in front of the Villa Borg in a floral dress and straw hat.
Me at the villa.
The skies cleared Friday morning; everyone was tired.

Friday: Sustainability

  • Whatever the source of funding, it’s key to align a project’s fundraising strategy with the incentives, constraints, and expectations of the funding climate. For some, that might mean particular kinds of scholarship to justify sustain funding, for others that might mean adoption numbers, and for others still that might demonstrate impact on education systems. Thinking carefully about these incentives is important, as they can often have novelty biases, rigor biases, and technology biases. Accounting for these biases, and ensuring they don’t end up warping the scholarship, requires explicit planning.
  • Another consideration is how much funding is restricted toward particular expenses; obviously, having unrestricted funding is the most valuable, as it allows for a project to meet whatever needs come, rather than being constrained. It’s also the least common and hardest to obtain.
  • There are almost always politics that influence how long money can be held and what it is spent on, whether it’s a corporate politics game or an academic or foundation politics game. It’s key to have someone who can manage those politics and relationships and ensure that they do not interfere with project goals in problematic ways. That could be a project lead, or a principal investigator, or even a funder or corporate partner who provides cover.
  • There was a tangible sense of a continuum from deception to omission when it came to reporting and persuading funders. Everyone agreed that deception is unacceptable, but everyone also agreed that sometimes omission was necessary to amplify the outcomes that a funder might care most about, while hiding other details that might be in alignment with academic or innovation goals, but in tension with funder goals.
  • It was quite common for successful projects to have one or two people with semi-permanent positions as the backbone of a project, from a maintenance perspective and from a resource perspective. This might be a corporate job or academic position. But it also means that projects have a single point of failure.
  • Backend infrastructure can be a key risk to project sustainability. It requires regular maintenance, cloud costs, and staffing. Committing to back end infrastructure is a significant decision with long term consequences. Using university bandwidth and hosting is one way to avoid these costs, but is often restricted to static hosting, or has costs for university IT. But the quality of university IT service can be highly variable, and can also require some political negotiations to navigate policy restrictions.
  • It’s important to consider other sources of revenue. Communities can be a source of revenue. User events can have registration fees and that can generate unrestricted funding. But where to store that money can be complicated and impose accounting challenges. Donations can also be a source of revenue. Sometimes people will just give and this can also be a source of funding, especially when requests are targeted towards those with philanthropic capacity. Some talked about offering nearly meaningless premium services that offer almost nothing extra, but allow corporations that are often reluctant to donate to pay for a service. This might not sustain the project, but it can help sustain it. All of this requires a place to keep money, which may or may not be the backbone organization.
  • We also talked about other sources of staffing, such as ways of trying to onboard, supervise, and engage students to contribute, for credit or for modest pay. There are all kinds of challenges of doing this, including ensuring they have sufficient expertise, that there is onboarding for them, and that they get feedback through code reviews or other mechanisms. We also talked about open source contributions and the limited value of “drive by” contributors that don’t have enough context for the project to make meaningful contributions. Some talked about ways of engaging contributors socially first, to get context, and then have them contribute later after they have it.




This is the blog for the Code & Cognition lab, directed by professor Amy J. Ko, Ph.D. at the University of Washington. Here we reflect on our individual and collective struggle to understand computing and harness it for justice. See our work at

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Amy J. Ko

Professor of programming + learning + design + justice at the University of Washington Information School. Trans; she/her. #BlackLivesMatter.