http://bit.ly/2sxWlBq, November 3, 2019
Alan Kay, Cathie Norris, Elliot Soloway, and I had an article in the September 2019 issue of Communications called "Computational Thinking Should Just Be Good Thinking" (access the article at http://bit.ly/2P7RYEV). Our argument is that "computational thinking" is already here—students use computing every day, and that computing is undoubtedly influencing their thinking. What we really care about is effective, critical, "expanded" thinking, where computing helps us think. To do that, we need better computing.
Ken Kahn engaged with our article in the comments section (thank you, Ken!), and he made a provocative comment:
There are have been many successful attempts to add programming to games: Rocky's Boots (1982), Robot Odyssey (1984), RoboSport (1991), Minecraft (multiple extensions), and probably many more. But these efforts excite a small fraction relative to those who are excited about using general-purpose programming systems such as Logo, Scratch, Squeak, ToonTalk, or Snap! for their own projects.
That got me wondering: Is general-purpose programming more popular than specialized programming? That's a hard question to answer, but there are other related questions that are answerable. What fraction of people use Scratch and other general-purpose programming systems, versus something like Minecraft? What fraction of students learn any kind of programming at all? How many students learn general-purpose programming today, compared to using other computing environments or learning other science, technology, engineering and mathematics (STEM) subjects?
Here is what I found. I decided to be U.S.-centric, so that I could compare to known overall populations.
Number of people in the U.S. (World Population Review, http://bit.ly/2Pg79Mu): 329 million.
Number of school children in the U.S. (National Center for Educational Statistics, http://bit.ly/2OKFhAK): 56.6 million
Number of Scratch users in U.S. (Scratch community statistics at a glance, http://bit.ly/37YWrCl): 19.2 million.
We don't know ages (and we know that we can't trust the age data in Scratch; see "Youth Computational Participation in the Wild: Understanding Experience and Equity in Participating and Programming in the Online Scratch Community," http://bit.ly/2ONsq0E). Roughly one-third of all U.S. school-children have tried Scratch. While Logo, Snap!, Squeak, and other tools are popular, they are nowhere near as popular as Scratch. Scratch is likely our best possible scenario.
Number of Code.org students in U.S. (2018, Computing Education Research Blog, http://bit.ly/2DJiz5W): 1.2 million.
Number of Minecraft users (from "'Minecraft' has been quietly dominating for over 10 years, and now has 112 million players every month," Business Insider, September 14, 2019, http://bit.ly/2OISLNv): 112 million.
Obviously, that's more than the U.S., and not just school age, since that's even school children or a third of everyone in the U.S. I was unable to find a number just in the U.S.
I found this estimate for the number of children playing Minecraft (in "Minecraft teaches kids about tech, but there's a gender imbalance at play," The Conversation, January 16, 2018, http://bit.ly/2OISLNv):
The results show that 53% of children aged 6 to 8, and 68% of children aged 9 to 12, are actively playing Minecraft. More than half of those play more than once per week.
Number of Fortnite users (from Fall Skirmish Fortnite Series, Fall Skirmish Details, September 20, 2018): 78.3 million.
Again, more than in the U.S., and not limited to school children.
The best estimate I could find is that 61% of U.S. teens play Fortnite (from "Exclusive: 'Fortnite' survey shows kids are playing in class. So what can parents do?" USA Today, December 6, 2018, http://bit.ly/363N02V), so perhaps 9.3 million.
Bottom line: There is no computing education tool that comes anywhere close to the number of children who play Minecraft or Fortnite.
One way of getting a sense of access to computing vs. other subjects in the U.S. is to look at access to Advanced Placement, which is a program for accessing advanced subjects (for college credit or placement) in high school. It is generally considered elitist: not every student gets access to it (though there is some argument that it's no longer elitist.) But if we're going to compare between subjects, it's elitist to all subjects equally.
Number of students who took AP Calculus AB (2018, http://bit.ly/2sHB1cU): 308,537
Number of students who took AP Calculus BC (2018, http://bit.ly/2sHB1cU): 139,376 Total: 347,913
Compared to the 15.3-million high schools students in the U.S., this is about 2%. It's an upper bound on the number of students that one might get in an AP STEM class.
Number of students who took AP Physics 1 (2018, http://bit.ly/2LhaXMg): 170,653
Number of students who took AP Physics 2 (2018, http://bit.ly/2LgcvpC): 24,985
Number of students who took AP Computer Science A (2018, http://bit.ly/360EMbS): 65,133
Number of students who took AP Computer Science Principles (2018, http://bit.ly/2ONsq0E): 72,187
So, combined, AP exams in computer science have about 137,320 exam takers, which is about 70% of AP Physics. That's about 40% of AP Calculus, or about 40% of 2% of all U.S. high school students.
The Bottom Line: Computing education is not even close to the mainstream of STEM.
Conclusion: We should try everything: In general, we have not yet created popular computing education. We reach very few students.
To respond to Ken, we only have reached a small fraction of students with all our tools combined. We should be programming extensions to games and general-purpose programming languages and everything else we can think of that might help kids to gain access to computing education.
There's so little reaching students now that it doesn't make sense to build only on what's been most successful in the past. All past successes may be local maxima. We may have to try something radically different to reach many students.
Interesting numbers. It would be great to get a worldwide census. I think the numbers are better in the U.K. for 5-to-16-year-olds, and not as good for 16 to-18-year-olds. I've heard about countries with much better numbers (Costa Rica, Lithuania, ??).
Twelve years ago, I wrote "Should Logo Keep Going Forward 1?" (http://bit.ly/2Lz2gx1) for EuroLogo 2007. I tried to argue against incremental progress; instead, we should move towards "something radically different" as you suggest. I came up with a list of 12 ideas that looking at it now should be a much longer list. One thing I would add today is artificial intelligence playing multiple roles including being a guide/coach and providing new kinds of computational building blocks for students to use in their projects.
One topic that Seymour Papert brought up when I spoke to him about this just before his accident is, whose aesthetics should count: mathematicians or engineers? A mathematically aesthetic design would be based upon a very small set of very expressive building blocks. Nearly everything we build for children has been engineered to have a large number of nice features, instead of a beautiful kernel.
November 4, 2019
©2020 ACM 0001-0782/20/2
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and full citation on the first page. Copyright for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or fee. Request permission to publish from firstname.lastname@example.org or fax (212) 869-0481.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2020 ACM, Inc.
I find this provocative and agree that we should try all these avenues. And yet, we should consider how to make them effective. Of all those Minecraft and Fortnite users, the vast majority will not be programming at all. Most minecrafters I've witnessed never even employ redstone, which could be deemed explicit computational thinking. As for Fortnite, there is perhaps a wealth of computational thinking and critical thinking situations waiting to be tapped, such as anticipating opponents' behavior in response to cues (and setting those cues), devising and employing construction tactics (not just "build faster and higher") and more. Advanced players do this, but to what extent they reflect upon it and to what extent non-advanced players do so is unknown.
We know that advanced players in any game are a small minority, and I wonder if Ken's original "excite a small fraction" remark wasn't considering a more social context: what excites educators, community organizers, evangelists, etc. that care about computational thinking and critical thinking. All of these platforms, certainly, but we need to consider the contextual support (i.e., examples, plans, features, approaches, freedom to use and repurpose). The context which leads these enthusiasts and connectors to pick these platforms and use them to reach a wider audience.
Reaching more students, of course, is a great goal. But popular games seem not to be heading in the direction of making future games more relevant to computing education. Microsofts sequel to Minecraft, Minecraft: Dungeons, for instance is less, yes *LESS*, about building, less about programming (Redstone) and ultimately less about creativity. Seymour Papert used the term hard fun to describe creative activities, such as constructing, programming and writing, that are engaging precisely because they are difficult. Meanwhile, mainstream games, with or without programming, including Minecraft, are heading the other way.
I was confused too when, 25 years ago with AgentSheets, I created the first modern blocks-based programming language for kids. I assumed that accessibility was the sole key to enable a much larger audience in participating in programming. This tool centric view did not completely work out. On the one hand, we did get many kids around the world to create their own games and publish them on the web. On the other hand, these numbers were small compared to the number of kids playing Minecraft. The idea of getting more people into programming because of blocks-based programming, i.e., removing syntactic challenges of programming, is roughly equivalent to think that spell checking in Word will dramatically increase the number of people writing books. It does not. Challenges of programming language are similar to the challenges of natural languages. It takes much more than just colorful puzzle pieces to effectively aid the complete computational thinking process. I started to use the term Computational Thinking Tool as idea how to support not only syntax, but also the semantics and pragmatics of programming. AgentCubes does this and does reach millions of users. However, while appropriate tools can provide affordances to further increase accessibility to Computational Thinking (CT), the tool centric view alone will not help the computer science education community to cross the chasm to reach a technology apathetic group of people including students, teachers and parents.
Reaching the general population with CT is not a question of technology, i.e., the right tool, but of educational policy. CT education has to become mandatory just like Math education. But we have to be very careful not to make similar mistakes with mandatory CT education as we did a long time ago with mandatory Math education. There is a perpetual cycle of Math anxiety that could easily blow up into a perpetual cycle of Math AND Computing anxiety. It has been well documented that teachers who do not like Math are very effective at passing their attitudes on to students. These students, in turn, become the next generation of teachers. The perpetual cycle continues. Here are some numbers from our pre-service teacher education at PH FHNW. Less than 0.2% of these pre-service teachers have programmed before. That is more than 10 times less than the average person in the Swiss workforce. In fact, 2.7% of the workforce have not just written a casual hello world -like program but are professional software developers. This just goes to show that people are not planning to become teachers because of programming but in spite of it. In less than 3 years we have already trained over 1200 teachers. They have to take two courses: Learn CT, and Teach CT. This is our chance to persuade them that CT is not hard and boring. Most pre-service teachers would not have signed up to an elective CT course. However, using Scalable Game Design as strategy and AgentCubes online as Computational Thinking Tool we can teach them how to program simple 2D/3D games and how to teach CT. Of course, not everybody buys into the idea of hard fun but practically all of them do learn CT andjust by looking at their gamesseem to be having quite a bit of fun. Excited teachers enabled to teach CT are the key to reach students.
Sample AgentCubes online games produced by teachers: https://bit.ly/2Ow86k1
Paper on why blocks-based programming is not sufficient: https://bit.ly/37WmVUG
School of Ed, PH FHNW Switzerland, and University of Colorado at Boulder
Perhaps Leonel's discussion of social context is critical. And Alex's efforts with teacher training is part of the way to change the social context to be more friendly and excited about computing.
i'm reminded of learning how different a social context for mathematics exists in Bulgaria (or at least did 15 years ago when I learned of this). Children were excited about mathematics - they admired famous mathematicians much as children world-wide admire sports figures.
I've often wondered if the earlier that children are exposed to the "beauty and joy of computing" (bjc.berkeley.edu) the more likely we are to obtain a society where computing is for all. Leonel's thesis work with preschool children was a good demonstration of what is possible. Imagine the consequences if that was done on a large scale.
Displaying all 3 comments