Category Archives: Computing Education

All about video review: my session at OAME 2022

Dispatches from conferenceland…
An unrolled tweet thread:

While I’m sitting in sessions at Quebec’s @crifpe #SommetNumerique… my mind occasionally jumps ahead to tonight’s session at @OAMElearns!

#OAME2022 friends, are you open in tonight's Th 8pm time slot? I'm sharing our @KidsCoding video-review process. It helps our instructors be *even awesomer* (that's possible? 🤯) by breaking down their strategies & moves with one another, slowly and with reflection.

At the moment we have a small #OAME2022 crowd (I share a time slot with incredible educators; what're you gonna do?) — and we'd love to have more! Yes, it'll be recorded, but come join us live. 👋

In this session I have ~25:00 of video clips to share, of real @KidsCoding breakdown sessions. Three different situations, from new to experienced instructors. We'll watch these together, and notice the insights that pop up between the reviewer(s) and the reviewee.

Screen capture of 3 @kidscoding instructors reviewing a recorded Scratch workshop together, to share practices and insights.

This video review is a work in progress for us in @KidsCoding and it's been super productive in the 1st round. It has a lot in common with #LessonStudy and other teacher-ed practices.

#OAME2022 @OAMElearns is the first time we're sharing our video review process… but it won't be the last! (See us at @csteachersorg 2022 July in Chicago)

Originally tweeted by Mike Deutsch (@mdeutschmtl) on May 5, 2022.

MozFest 2022: My working group presents Trustworthy AI Toolkit for educators

An unrolled tweet thread in which I summarize the ‘big ideas’ and resources of my working group: The Mozilla Trustworthy AI K-12 Education Toolkit. We presented the following at MozFest 2022…

About to go on the virtual stage at #mozfest2022 with our crew! Presenting a new Trustworthy AI Education toolkit for K-12, the product of a working group with @MadameMiso @codepoet127 @kasslenters and @STEAM_Labs

Session's done! Let me add some LINKS…

We've curated a set of resources that we're calling a Trustworthy AI Edu Toolkit. We tried to orient folks to individual activities we like, and overarching frameworks that tie things together. (*not* an exhaustive list — come ADD a comment to it)

Also featured tonight in our #MozFest session on Trustworthy AI for k-12:
– The Montreal Declaration on Responsible AI, which we use to scaffold role-plays and conversations with high schoolers.

Also featured tonight in our #MozFest session on Trustworthy AI for k-12:
– The Algorithm Literacy Project – a curated set of videos, discussion guides, and 3rd party games & activities geared for middle grades. via @KidsCoding @CCUNESCO

Also featured tonight in our #MozFest session on Trustworthy AI for k-12:
– Consideration Cards – a scaffold for thinking about ethical design (technological or otherwise)

Also featured tonight in our #MozFest session on Trustworthy AI for k-12:
– Learn Like a Computer – camp-style unplugged games for younger kids to grasp bits of the idea of “learning” via @learningcode

Also featured tonight in our #MozFest session on Trustworthy AI for k-12:
– A Micro:Bit of AI – super cool & simple connector between Teachable Machine and a micro_bit. via @STEAM_Labs

*Also* (😅) featured in our #MozFest session on Trustworthy AI for k-12:
– Predict-a-Pie – the coolest neural-net construction set *we’ve* ever seen 😉. Gets at the basic mechanics, and ethical questions easily emerge. via @STEAM_Labs @KidsCoding

And one last activity featured in our #MozFest session on Trustworthy AI for k-12:
– AI piano duet. How does it PLAY with me!? 🤯

Originally tweeted by Mike Deutsch (@mdeutschmtl) on March 8, 2022.

CSTA session: computing education in rural communities

An unrolled tweet thread from CSTA 2021, following a really compelling panel discussion about the challenges and victories of getting CS to ‘stick’ in rural and remote schools…

#CSTA2021 @jennifer_rosato @NMValentine on (CS) education in rural areas. I never thought being "on the road system" was a dimension to consider! 😅

Live session at CSTA 2021, information slide about Overview of rural life and rural education. Slides at

US govt defines "rural" based not on anything about the area itself, but on its distance from the nearest urban area. Y'know, important places. 🤨
–> Slides at #CSTA2021

Current question in #CSTA2021 #rural: "What's the story of getting CS started at your school?" Lots of stories of starting with something tangential, and pivoting to CS: keyboarding class, tech, biz, coaching a sport.

Other strategies coming up, for building visibility & momentum for CS class: @VBHANDS wrangled some 3d printers, and sells prints to the community. Others make web pages for the school and community. Relate Ss to local businesses. #CSTA2021 #rural

@NMValentine to Alaska students (paraphrasing): "CS skills can allow you to stay here in the community you love, and have a great local career doing good." A participant says: lots of robotics on our local dairy farms! #CSTA2021 #rural

Originally tweeted by Mike Deutsch (@mdeutschmtl) on July 16, 2021.

Thesis framework clicking into place: bringing together Task and Talk

An unrolled tweet thread, as the puzzle pieces of my MA Edu theoretical framework shake around again and fall into place…

Major conceptual breakthrough in my #csk8 MA theoretical framework tonight with my supervisor, Prof Annie Savard of @McGillEducation. Giant pieces clicked in place that i didn't know were still in suspense.

(Trying to get this into tweets while it's still fresh in my head. Clarity not guaranteed. And this is all provisional riiight up until my thesis is written 😉) So…

My thesis is the synthesis and testing of a "complex task" model for #csk8 teaching via @KidsCoding.

I came into tonight having just presented a poster at @FieldsMathEd , and tonight two pieces of the TF clicked together with our KCJ curriculum-writing framework.

At KCJ we've started writing our lesson plans in blocks, almost like "scenes" playing out in the lesson. This is the first draft, and once things flow nicely (sensible progression) we fill in the details.

In writing the lesson plan, when it is time to issue a question, task, or challenge, we draw from the many types we've honed in our 1000s of reps in classrooms across Canada. We write these into the lessons, and train and coach on them as well.

Meanwhile, my thesis TF is based on the Complex Task framework of Stein & Silver (math ed), and I'm drawing from LOTS of edu thinkers who define and study task types & teaching in math, science, and computer science.

Some of these researchers talk about Tasks, some about Talk Moves, some Instructional Routines… and some have their own named teaching strategy but may not see it as part of a larger taxonomy. (PRIMM, POGIL, etc.)

Tonight it finally clicked how those all fit together. My eventual "complex task model for #csk8", will map the above (tasks, routines, talk moves, etc) onto TWO phases of Stein & Silver: 1. The task on paper. 2. The task as set up (launched) by the Teacher.

On paper we will continue to lay out the "scenes" of a lesson, and hone the progression of ideas and techniques from start to finish.

Each scene represents a Task: a thing I'm going to ask us all to learn or do; an Interim objective we're going to try to reach on our way to the end goal of the workshop.

Within each scene, also on paper, will be a range of recommended Task Setups – teaching strategies or instructional routines or talk moves that we think offer different levels of complexity and are well suited to *that* Task.

These will be pulled from our repertoire of task setups: simple question/answer, think-pair-share, predict what this will do, fill this faded example, fix this bug, etc – all the way up to "build something that does _."

An instructor will be invited to pick from the recommended setups based on what they think any particular audience is ready to do.

Voilà- differentiation on the spot. The building blocks for a successful workshop with kids of any (or mixed) age, any (or mixed) experience level, any (or mixed) neuro/thinking/learning approach. Complexity and #ambitiousteaching every time.

Now, our AMAZING instructional team has already figured out how to do this, but it's been thru their own instincts and experience and CoP. – Now it'll be drawn systematically from a catalog of proven, research based models.

When an instructor has mastered a key set of instructional routines (/launches/moves), they theory goes, they'll be able to reach any learning goal, with any class, using appropriately-complex choices for the situation.

My supervisor says as much: "give me the objective, I'll use my bag of instructional tricks to get us there in a way I think will work."

… that’s the synthesis as it stands now. I think I’ve resolved Tasks, Talk Moves, Instructional Routines and Strategies, and one-offs, into pieces that fit together (1) foreseen on paper, and (2) played out in practice.

They should all work together to support instructor adaptation and complex, rich teaching. </>

Originally tweeted by Mike Deutsch (@mdeutschmtl) on February 5, 2020.

A thinking vacation in Boston: with Jenna Laib!

An unrolled tweet thread, capturing a super visit I had with math educator Jenna Laib, on a family trip to Boston…

When you're visiting family in another city, and a favorite #mtbos teacher/blogger lives there, and everything aligns… Great afternoon chat, @jennalaib! Thanks for coming out to talk. ☺️ and thanks @DdeutschDan & fam for taking my kids for a while.

Big #csk8 idea coming out of our rendezvous: sense making via CS "faded examples" and "code comprehension" + math "slow-reveal charts." The result: slow-reveal block code. It would make a great facilitated #NoticeWonder routine.

Start with a fully greyed-out workspace. Can't see what the code looks like; can only (maybe?) see the working demo. Reveal bits at a time, asking "What do you notice/wonder?" at each step.

ex: Reveal the outline of the code stack(s). Reveal individual block edges so shapes become apparent; nested blocks, parameters, operators are seen. Reveal color; the instruction "types" are clear. Final reveal: the full code.

Alternative: present as static tasks, #openmiddle #fadedexample on a worksheet or in a #Scratch studio.
"What could be inside this loop, that's producing this result?"
"What logical condition could be producing this behavior?"

So much to chew on. So many project ideas to try. I think my team is going to eat it up.

You also confirmed for me that @IllustrateMath is fertile territory to find more about relevant tasks and techniques. Can't wait to go deeper. And up near me, @OAMElearns conf is a great regional resource. I'm trying to get there again this May.

I think that's it… This is shaking up to be another fun "thinking vacation." 🌨🤔🤓

Originally tweeted by Mike Deutsch (@mdeutschmtl) on December 23, 2019.

Thoughts as I help my daughter with high school python

An unrolled tweet thread, reflecting on what I noticed and how I felt helping my teenage daughter with a high school CS project …

My daughter (10th grade) is learning Python in school, and she's been coming to me for help with assignments. Some observations, as a #csk8 educator by day & dad by night…

1. Programming assignments haven't changed much over the years.

Tonight we were working on an encrypt/decrypt program (Caesar Cipher). Essentially: do or undo an ascii "rotation".

This is the kind of thing I remember doing in BASIC as a kid, probably age 10 or so. It's simple text processing, at least on the surface.

2. However, this assignment is HARD for new programmers. Why? Not the problem itself.

2a. It's hard to straighten out your understanding of the problem, and map out how you're going to use the building blocks you've just learned. It's distressing to discover how fuzzy "ok, i get the problem" actually is. You have to sharpen that considerably to get anywhere.

2b. Composing functions is common and essential. But this is hard too. I can see my daughter has mastered simple functions like input() and print(). But she struggled to compose ord(), chr(), and arithmetic together.

2c. It gets even harder when you throw in types. I watched my daughter *understand* the operations she needed to do to rotate a character through the ascii alphabet, but still leave a line assigning a numeric value to a 'letter' variable.

3. If the assignments haven't changed much, the programming environment sure has. I did BASIC on an Apple II, where there was just a text screen and ONE mode: you edited and ran your program right from command line. (Made sense at the time? 🤷‍♂️)

My daughter's class is learning Python using, so she gets a split screen for program + executing shell.

This means she's very quickly learned two different modes, edit and run, and has gotten adept at moving around, and juggling extra browser tabs for the assignment and Python references besides. This is cool.

When i jumped to xwindows and emacs as an undergrad, i almost drowned from the learning curve. I found it really hard to disentangle the signals i was getting from the code, from those from the IDE. My daughter just leapfrogged me. (🤩)

4. Another constant: her assignment includes a long list of test cases. She sees that as a burden 😫 but I see it as a really nice scaffold.

But that actually represents a change in perspective in *me*. After a decade of TDD (or at least understanding why tests are so important) I see that thoughtful testing is an essential defensive counterpart to the generative act of writing code.

5. I think my biggest contributions as a mentor for my daughter have been in what you might call Computational Practices and Perspectives.

I don't have anything to teach her about Python itself. I remember zero syntax. And she has already learned the basics and can look up the rest, anyhow. Good self-reliance there.

5a. But I definitely help her strategize her development.

ex: Baby steps. Try one thing at a time.

5b. Another: Test it at each step. And not with keyboard-mash inputs, or clever or goofy phrases, but with test cases chosen specifically to check the thing she just added to her code.

5c. The bedrock, though, is how to sit back and mull over the problem, and think through it out loud. Then, to assemble an approach in my head out of the building blocks that i know i can use.

5d. Maybe also: how to leave creative placeholders and debugging output to help yourself diagnose what's going on inside, from your perch on the outside. Put another way, maybe: help the Notional Machine talk to you.

After many years of software work this is now second nature to me, and watching my daughter I appreciate that this is a skill I've built over time.

That's a summary. I'm finding it fascinating to observe the #codingforkids coaching I give my daughter, as I give it.

In my day job at @KidsCoding I need to design effective but approachable coding activities. Because of our model, though, I don't tend to deal with (a) text languages or (b) tasks this advanced or intricate.

It's got me thinking about what an effective coding mentor might need to know what to do, and how i might approach more advanced tasks.

Epilogue: most of the stuff I'm talking about above – the mental models and discipline I've built over time, and my daughter is just now acquiring – is COMPUTATIONAL THINKING. Come at me, deniers. 😜

Originally tweeted by Mike Deutsch (@mdeutschmtl) on November 8, 2019.

Epistemology and teaching approach

My MA Ed. supervisor Annie Savard, in a recent conversation about developing teachers:

The way you teach depends on how you think learning works.
That’s why it’s so hard to get teachers to change.
Anything you to try to get them to do will conflict with their epistemology.

Is that really true? When teachers reject (or fail to fully adopt) new teaching methods, is it due to the fact that those teaching methods conflict with their epistemic beliefs? Is there such a link between my belief-about-learning and the strategy-I-choose-to-teach-with?

Another way to put Annie’s thought might be: practices are downstream from beliefs. And a corollary: if you can get a teacher to have good epistemic beliefs, then good practices will follow. I’m not convinced that epistemology and pedagogy are linked causally in this way, or at least this strongly.

I think teachers aspire to practice in accordance with what they believe—but I don’t think in real life many of us live up to that. There are all kinds of confounding factors that get in the way of adopting methods that we recognize to be aligned with our theories. There’s cognitive dissonance, yes, but also laziness, lack of practice, lack of focus, nervousness, sheer inertia.

I’ll confess, I’m guilty of this. I know I don’t teach in a way that fully reflects my epistemology.

When it comes to learning I’m a firm constructivist. I am convinced that my students construct their own mental models as they learn. And I think all learning necessarily happens this way. I can’t reach inside my students’ skulls and place a fully-formed, ready-to-use concept in there for them. Every bit of personal experience I’ve had, and every Cognitive Science, Psychology, and Education course I’ve ever taken, have reinforced that.

And yet I continue teaching under the “banking model,” explaining and conveying my own understanding of things to my students.

I hear myself doing it sometimes, and it’s jarring. I should change my teaching approach to take advantage of those construction engines sitting there inside my students’ heads. I should give students’ own ideas more air time than my own. I should be more judicious about telling new information (NCTM). But I’m lazy. I don’t practice my technique often enough or deliberately enough. I sometimes let my focus slip and let myself do what comes naturally. That means I end up doing a lot of explain-explain-explain… zzzzz….

My students would be better served if I spent more mental energy paring down my words and instructional interventions. I’m a better teacher (and—ahem—writer) when I pose an artful question, and let my students think themselves toward an idea that’s laying there just beyond their grasp, an answer that they can’t see yet but I can.

I’m even better, I’ve learned, when I ask students a bare, simple question that is not artful in any way, but simply invites focus and reflection. (There are many good lists of “talk moves” (Conceptua) like this.) Then they are the ones feeling their way from idea to idea, and, while I may see the whole terrain, I let them find the path by way of their own reasoning. It’s their mental construction all the way.

So… can there be a truly epistemically-grounded teaching technique? A methodically developed teacher practice that embodies their beliefs about learning? Sure, it’s possible. Maybe practices are downstream from beliefs—or at least, epistemic beliefs can prime a teacher to conscientiously develop well-grounded practices.

I think I’ve got my beliefs down pat. But my practices? Eesh. Those remain a work in progress.

The (misguided) Case for Fully Guided Instruction

This journal article has great ambitions. ± “Our goal is to put to an end to the debate” on whether instruction should be guided, unguided, or somewhere in between in order for people to best learn.

But it has a foundational flaw, and if you’re a reader that understands constructivism at all, that flaw prevents it from doing anything of the sort.

Like a number of other “debunking” type articles that purport to shoot down parts of the constructivist model, it misunderstands what constructivism is. Specifically, it misunderstands which “level of the stack” constructivism describes. This is crucial. If you get this wrong, then you start to come up with all kinds of misinformed applications of the model.

Constructivism is about hardware, not software.

It’s about the brains (minds) of people when they learn something from the world around them.

It is not about the something

It is a model of how our hardware works when we learn.

It is not a model of what


Constructivism does not suggest that school work should be composed of “constructing” or “building” things. It does not directly suggest project-based work. It does not suggest curriculum or materials of any specific kind. And constructivism does not

Constructivism is a model of what happens inside the learner’s head.



I’ve started reading articles like this when I see them, to understand the misconceptions that are out there and maybe find small ways in which I can bolster my own teaching. By talking explicitly about constructivism and embedding it in my other materials I hope I’ll be able to inoculate the people I teach against this misunderstanding.

Some of these articles are well-argued and thoroughly researched, so it’s important to consider them thoughtfully and pick spots where they can be corrected.


Source: Putting Students on the Path to Learning: The Case for Fully Guided Instruction, by Richard E. Clark, Paul A. Kirschner, and John Sweller; American Educator Vol. 36, No. 1, Spring 2012; AFT – Clark.pdf

Yup, that is NOT how to teach math

This TEDx talk about maths teaching is pretty bad


I’ve been combing through this educator’s site–Greg Ashman. I found him through his critique of Dan Meyer’s well-known TEDx talk. He has some pretty sharp criticisms of Meyer and others, and the “inquiry” school of instruction generally. I can’t say I find his arguments convincing–he’s wayyy on the far opposite pole from the inquiry crowd–but I’ve learned a lot from reading him and reading the papers he cites.

Then there’s this other TEDx talk. It’s horrible from a math education standpoint. The speaker goes on and on about wonder and discovery and inquiry, but as his centerpiece uses a horrendous, contrived problem that serves only to get students to guess the hidden pattern that was placed by the teacher. “Authentic” problems these are not.