Posts tagged ‘CS teachers’

Getting feedback on Teaspoon Languages from CS educators and researchers at the Raspberry Pi Foundation seminar series

In May, I had the wonderful opportunity to speak at the Raspberry Pi Foundation Seminar series. I’ve attended some of these seminars before. I highly recommend them (see past seminars here). It’s a terrific format. The speaker presents for up to a half hour, then everyone gets put into a breakout room for small group discussions. The participants and speaker come back for 30-35 minutes of intensive Q&A — at least, it feels “intensive” from the speaker’s perspective. The questions you get have been vetted through the breakout room process. They’re insightful, and sometimes critical, but always in a constructive way. I was excited about this opportunity because I wanted to make it a hands-on session where the CS teachers and researchers who attended might actually use some Teaspoon Languages and give me feedback on them. I have rarely had the opportunity to work with CS teachers, so I was excited for the opportunity.

Sue Sentance wrote up a very nice blog post describing my talk (thank you!) — see here. The video of the talk and discussion is available. You can watch the whole thing, or, you can read the blog post then skip ahead to where the conversation takes place (around 26:00 in the video). If you have been wondering, “Why isn’t Mark just using Logo, Scratch, Snap, or NetLogo? We already have great tools! Why invent new languages that are clearly less powerful than what we already have?”, then you should jump to 34:38 and see Ken Kahn (inventor of ToonTalk) push me on this point.

The whole experience was terrific for me, and I hope that it’s valuable for the viewer and attendees as well. The questions and comments indicated understanding and appreciation for what I’m trying to do, and the concerns and criticisms are valuable input for me and my team. Thanks to Sue, Diana Kirby, the Raspberry Pi Foundation, and all the attendees!

June 14, 2022 at 7:00 am Leave a comment

Computing Education Lessons Learned from the 2010’s: What I Got Wrong

There’s a trend on Twitter over the last few weeks where people (especially the academics I follow) tweet about their accomplishments over the last 10 years. They write about the number of papers published, the number of PhD students graduated, and the amount of grant money they received. It’s a nice reflective activity which highlights many great things that have happened in the 2010’s.

I started this blog in June 2009, so most of it has been written in the 2010’s. The most interesting thing I find in looking back is what I got wrong. There were lots of things that I thought were true, ideas that I worked on, but I later realized were wrong. Since I use this blog as a thinking space, it’s a sign of learning that I now realize that some of that thinking was wrong. And for better or worse, here’s a permanent Internet record.

There are the easy ones — the ones I’ve been able to identify in blog posts as mistakes. There was the time I said Stanford was switching from Java to JavaScript. I should have fought for more CS in the K-12 CS Framework. And I should have been saying “multi-lingual” instead of “language independent” for years. And there was the blog post where I just listed the organizational mistakes I’d made.

The more interesting mistakes are the ones that are more subtle (at least to me), that took me years to figure out, and that maybe I’m still figuring out:

Creating pre-service CS teacher programs would be easy. I thought that we could create programs to develop more pre-service computer science teachers. We just needed the will to do it. You can find posts from me talking about this from 2010 and from 2015. I now realize that this is so hard that it’s unlikely to happen in most US states. My Blog@CACM post this month is about me getting schooled by a group of education faculty in December. We are much more likely to integrate CS into mathematics or science teacher programs than to have standalone CS teacher professional development — and even that will require an enormous effort.

CS for All is about Access. I used to think that the barrier to more students taking CS was getting CS classes into high schools. You can find me complaining about how there were too few high school CS classes in 2016. I really bought into the goal of CS10K (as I talked about in 2014). By 2018, I realized that there was a difference between access and participation. But now we have Miranda Parker’s dissertation and we know that the problem is much deeper than just having teachers and classes. Even if you have classes, you might not get students taking them, or it may just be more of the same kinds of students (as the Roehampton Report has shown us). Diverse participation is really hard.

Constructionism is the way to use computing in education. I grew up as a constructionist, both as a “technically precocious boy” and as a researcher. Seymour Papert wrote me a letter of recommendation when I graduated with my PhD. My post on constructionism is still one of the most-read. In 2011, I thought that the One Laptop Per Child project would work. I read Morgan Ames’ The Charisma Machine, and it’s pretty clear that it didn’t.

The idea of building as a way of learning makes sense. It’s at the heart of Janet Kolodner’s Learning by Design, Yasmin Kafai’s work, Scratch, and lots of other successful approaches. But if you read Seymour carefully, you’ll see that his vision is mostly about learning mathematics and code, through teaching yourself code. That only goes so far. It doesn’t include everyone, and at the worst implementations of his vision, it leaves out teachers.

I was in a design meeting once with Seymour, where he was arguing for making a new Logo implementation much more complicated. “Teachers will hate it!” several of us argued. “But some students will love it,” he countered. Seymour cared about the students who would seek out technical understanding, without (or in spite of) teachers, as he did.

Constructionism in the Mindstorms sense only works for a small percentage of students, which is what Ames’ story tells us. Some students do want to understand the computer soup-to-nuts, and that’s great, and it’s worthwhile making that work for as many students as possible. But I believe that it still won’t be many students. Students care about lots of other things (from business to design, from history to geography) that don’t easily map to a focus on code and mathematics. I still believe in the value of having students program for learning lots of different things, but I’m no longer convinced that the “hard fun” of Logo is the most useful or productive path for using the power of computing for learning. I am less interested in making things for just a few precocious students, especially if teachers hate it. I believe in making things with teachers.

The trick is to define Computational Thinking. Then there’s Computational Thinking. I thought that the problem was that we didn’t have a clear definition. If we had that, we could do studies in order to measure the value (if any) of CT. I blogged about definitions of it in 2011, in 2012, in 2016, and in 2019. I’ve written and lectured on Computational Thinking. The paper I wrote last Fall with Alan Kay, Cathie Norris, and Elliot Soloway may be the last that I will write on CT. I realized that CT is just not that interesting as a research topic (especially with no well-accepted definition) compared to the challenge of designing computation for better thinking. We can try to teach everyone about computational thinking, but that won’t get as far as improving the computing to help everyone’s thinking. Fix the environment, not the people.

But I could be wrong on that, too.

January 13, 2020 at 7:00 am 47 comments

How the Cheesecake Factory is like Healthcare and CS Education

Stephen Dubner of the Freakonomics Podcast did an interview with Atul Gawande, author of the Checklist Manifesto. Atul is a proponent of a methodical process — from a behavioral economist perspective, not from an optimization perspective. People make mistakes, and if we’re methodical (like the use of checklists), we’re less likely to make those mistakes. If we can turn our process into a “recipe,” then we will make fewer mistakes and have more reliable results. Here’s a segment of the interview where he argues for that process in healthcare.

DUBNER: Okay, what’s the difference between a typical healthcare system and say, a restaurant chain like the Cheesecake Factory?

GAWANDE: You’re referring to the article I wrote about the Cheesecake Factory…Basically what I was talking about was the idea that, here’s this restaurant chain. And yes, it’s highly caloric, but the Cheesecake Factorys here have as much business as a medium-sized hospital — $100 million in business a year. And they would cook to order every meal people had. And in order to make that happen, they have to run a whole process that they have real cooks, but then they have managers.

I was talking to one of the managers there about how he would make healthcare work. And his answer was, “Here’s what I would do, but of course you guys do this. I would look to see what the best people are doing. I would find a way to turn that into a recipe, make sure everybody else is doing it, and then see how far we improve and try learning again from that.” He said, “You do that, right?” And we don’t. We don’t do that.

Here’s where Gawande’s approach ties to education. Later in the interview:

DUBNER: And do you ever in the middle of, let’s say, a surgery think about, “Oh, here’s what I will be writing about this day?”

GAWANDE: You know, I don’t really; I’m in the flow. One of the things that I love about surgery is: it is, I have to confess, the least stressful thing I do, because at this point I’ve done thousands of the operations I do. Ninety-seven to 98 percent go pretty much as expected, and the 2 percent that don’t, I know the 10 different ways that are most common that they’ll go wrong and I have approaches to it. So it’s kind of freeing in a certain way.

I think about teaching like this. I have been teaching computing since 1980. I actively seek out new teaching methods. Teaching CS is fun for me — because I know lots of ways to do it, I have choices which keeps it interesting. I have mentioned the fascinating work on measuring teacher PCK (Pedagogical Content Knowledge) by checking how accurately teachers can predict how students will get exam questions wrong. I know lots of ways students can get computer science wrong. I still get surprises, but because I’m familiar with how students can get things wrong, I have a starting place for supporting students in constructing stronger conceptions.

We can teach this. The model of expertise that Gawande describes is achievable for CS teachers. We can teach new CS teachers methods that they can choose from. We can teach them common student mental models of programming, how to diagnose weaker understandings, and ways to help them improve their mental models. We can make a checklist of what a CS teacher needs to know and be able to do.

September 2, 2019 at 7:00 am 10 comments

Lack of funding leads to lack of teachers leads to lack of CS classes: We may need to change our strategy

Pat Yongpradit of linked to this article on Facebook. Cambridge MA schools are turning away CS students because of a lack of teachers.

Eight folks gave urgent pitches for at least one more computer teacher at Cambridge Ridge and Latin School. Teacher Liz Atwood, who said she was “disappointed to hear that our request for another hire was denied,” declared that demand was so high for computer science classes that, based on registration requests for next year from current ninth- through-11th graders, without a new teacher, “we will be turning away six classes of students.”

Atwood, two parents and two current students stressed the importance of access to the classes, and several others appearing for other reasons echoed support after hearing their pleas. “Over 50 percent of students signing up for Level 2 [computer science] courses next year identify as African Americans,” Atwood said, speaking before eighth-graders had registered. “These are high-paying jobs. [State curriculum standards] are moving toward making computer science a graduation requirement. This seems like a step in the wrong direction” to reject a new hire, she said.

From “Shortages in computer education stand out in a swift process for $191.1M school budget” in Cambridge Day

I see this as evidence in support of my previous post that states are making a mistake by requiring CS without funding it.  I don’t think Cambridge schools are requiring CS, but they’re allowing students to sign up for it without the funding and teachers to support those classes.

There are multiple ways to fix this problem.

  • Obviously, we could fund CS classes, but that might mean stealing funding from other important areas that are underfunded.
  • We could increase supply of CS teachers.  If all teachers were taught CS (as part of all undergraduates being taught CS), we would dramatically increase the supply of teachers who could teach CS. Schools wouldn’t have to hire an extra, specialty teacher.  We would also have more teachers who would have the background to integrate computing into their classes.
  • We could (as Emmanuel Schanzer of Bootstrap pointed out in response to Pat) integrate CS into an existing, funded class.

We may not be able to achieve CS for All with CS-specific classes. They’re just too expensive.


April 27, 2018 at 7:00 am 4 comments

Finding a Home for CS Ed in Schools of Ed: Priming the CS Teacher Pump Report Released

Thursday April 12, the report on finding a home for CS Ed in Schools of Education was released at Microsoft’s Times Square offices.  Leigh Ann DeLyser and Frances Schick of “CS for All” did a great job pulling it all together.You can see the play-by-play (or tweet-by-tweet) of the event on the Twitter stream #home4CS.  The report is available on the website

Some of the points that I found particularly interesting or compelling:

  • Yasmin Kafai talking about the tension between standalone CS classes and integrating CS into other disciplines.  The latter is likely how CS is going to end up in K-8, and budget concerns may make that the most common path to giving high school students access to CS education. But our research shows that it’s really hard to make that work well.  CS will likely get little attention, if programming is just used as the tool for some STEM learning activities.  Questions from the audience were skeptical that we could get teachers to pay attention to both CS and the integrated subject well.
  • A big question was how to add something to US Schools of Education that are facing enrollment declines and budget cutbacks.  Aman Yadav addressed that point head-on, by identifying the courses that we’re already teaching in pre-service development programs where CS education could be integrated.
  • The discussion afterward was really great.  Participants stuck around for more than an hour to talk about these issues.  A common theme I heard was, “Give us the answers.  What are the best pre-service CS teacher PD programs?  What are the models we should be using?  Where are the syllabi for these courses?”  I don’t think that these are answerable questions in the US.  We don’t have one education system. We have one in each state.  Almost nothing transfers as-is from one state to another, from one university to another.  I’m more interested in the points that Joanna Goode made — how do we grow education leadership to understand the issues of CS Ed?  We need to inform the leaders who know their contexts to help them integrate CS Education.
  • I spoke about the challenges of growing a pipeline of CS Education Research PhD’s. One of the questions I got about my topic was, “What is the biggest lever for increasing the number of CS Ed PhD’s?  Is it just money?”  For my colleagues in Schools of Ed, money would really help — they don’t get enough funding.  For those of us in CS, it’s also the creation of PhD programs that meet the needs of CS Ed researchers.  Georgia Tech’s Human-Centered Computing PhD is great for that.  A traditional CS PhD is not a great fit, because it typically requires courses in systems development and theory that don’t help a CS Ed researcher and cost time and effort.

The report makes a bunch of recommendations, but doesn’t offer many answers.  It does start a conversation about how to make CS education sustainable in the US, which is a critical topic for long-term survival of the “CS for All” movement.


April 16, 2018 at 7:00 am 11 comments

What Universities Must Do to Prepare Computer Science Teachers: UTeach leads a multi-university group to grow computing education

Kimberly Hughes, Director of the UTeach Institute at The University of Texas at Austin has written a blog post about a multi-university effort to grow CS education. They have an interesting set of recommendations. I look forward to seeing the white paper that the blog post promises!

In-service teacher professional development has been key to the explosive growth of K–12 CS education offerings, but the role of universities in the preparation of computer science teachers is absolutely critical if we are going to address the current shortage of CS teachers at scale and with any kind of lasting impact. Yet there are precious few exemplars on which to model new programs. Partly this has been a chicken and egg problem. For example, the UTeach program at UT Austin has had an undergraduate pathway to CS certification for more than ten years. But with so little demand for CS teachers at secondary schools throughout the state, very few students were recruited and prepared. Now that the demand for CS teachers is increasing, UTeach Austin and other UTeach partner universities are ramping up and expanding their efforts.

Source: What Universities Must Do to Prepare Computer Science Teachers: Networked Improvement in Action

February 23, 2018 at 7:00 am 5 comments

What universities can do to prepare more Computer Science teachers? Evidence from UTeach

UTeach has published a nice blog post that explains (with graphs!) the ideas that I alluded to in my Blog@CACM post from last month.  While currently CS teacher production is abysmal, UTeach prepared CS teachers tend to stay in their classrooms for more years than I might have expected.  More, there is evidence that suggests that there is significant slice of the CS undergraduate population that would consider becoming teachers if the conditions were right.  There is hope to imagine that we can making produce more CS teachers, if we work from the University side of the equation.  Working from the in-service side is too expensive and not sustainable.

Michael Marder, Professor of Physics and Executive Director of UTeach, and Kim Hughes, Director of the UTeach Institute, write…

The number of computer science and computer science education teachers prepared per year is smaller than for any other STEM subject — even engineering and physics — and while estimates vary, it is safe to say it is on the order of 100 to 200 per year, compared to the thousands of biology or general science teachers prepared. 

The U.S. has around 24,000 public and 10,000 private high schools. Only 10% to 25% have been offering computer science, so to provide all of them with at least one teacher at the current rate simply looks impossible.

Source: What universities can do to prepare more Computer Science teachers

January 5, 2018 at 7:00 am Leave a comment

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 9,052 other followers


Recent Posts

Blog Stats

  • 2,030,789 hits
October 2022

CS Teaching Tips