Archive for January 13, 2020

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 46 comments


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

Join 7,680 other followers

Feeds

Recent Posts

Blog Stats

  • 1,744,439 hits
January 2020
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
2728293031  

CS Teaching Tips