The Idea That Lived – Communications of the ACM
In an illuminating conversation recently hosted by Stanford Online, Mehran Sahami and Andrew Ng discussed how AI is changing coding and CS education. Even though the conversation was centered mostly on undergraduate teaching of CS and coding, I highly recommend it to all in the CS education world.
At one point, the host, Paxton Hehmeyer, asked Mehran to build on Andrew Ng’s observation that the skills students need to engage with generative AI tools like GitHub Copilot involve computational thinking and understanding how to think systematically and break a problem down.
Mehran’s response: You see these themes come up over and over over many years because they’re important, right? And when we think about, for example, teaching programming and how we consider the notion of what that curriculum looks like or how we think about the evolution of the skills that students have, in the first course … this is a class about problem solving … what we were trying to get you to understand is how do you take problems and think about them systematically. Similar to what Andrew was saying. How do you break them down into smaller pieces? How do you tackle those smaller pieces? How do you put them together in solving a larger problem? This is things that we do in the world to solve big problems, right? We’re not going to solve climate change because one individual does something. It’s a bunch of pieces that all need to be put together in more systematic ways to think about greater solutions. Programming is a way to be able to codify that notion of thinking in a way where we describe it to a computer to be able to execute, but it clarifies for us our own thinking, our own problem solving, our own decomposition of problems.
The need for computational thinking (CT) skills like problem formulation, decomposition, debugging, understanding how inputs map to outputs, and integrating solutions was highlighted several times in the conversation. This discussion echoed one of the earliest presentations on CS1 in an age of LLMs by Leo Porter and Daniel Zingaro, shared as an ACM Tech Talk in June 2023.
In short, computational thinking remains relevant as we enter an era where LLMs generate code and prompt us to question how much coding students actually need to learn. Denny et al. (2023) also argue that CT is a key metacognitive skill in an age of programming with generative AI.
Recently, Maggie Johnson’s opinion piece in Communications threw another phrase in the mix by calling out “code sense” as a new skill students need to succeed in this realm of automated software engineering. She likened it to “number sense” in mathematics. TeachAI’s Guidance on (K-12) CS education in the Age of AI defines code sense as the “conceptual understanding of a computer program’s underlying design, processes, and system relationships, as well as the mental capacity to analyze, simulate, and predict a program’s behavior.”
To me, there is overlap between CT and code sense. As the community works to operationalize what “code sense” means for curricula and learning, it’s clear that it involves CT along with attention to the structure of code and software systems. The idea of “code sense” might be more relevant in the context of CS2 and beyond or in industry software engineering—the context in which Johnson originally introduced the idea. Perhaps for K-12, we should continue focusing on teaching what everyone agrees are foundational skills—CT and coding fundamentals—before (or as) they begin collaborating with AI code generation tools.
On a personal note, the enduring relevance of CT vindicates my focus on it as a crucial cross-cutting skill these last 12+ years.
Most people know me from my work elevating CT as an essential skill for all K-12 learners. Last month, I was invited to Seoul by the South Korean Ministry of Education to present at their Digital Education Global Forum 2024, where they requested I speak about CT (among other skills). CT was the subject of my dissertation research at Stanford. My 2011 Ph.D. qualifying paper was subsequently published with my mentor, Roy Pea, as co-author. Grover & Pea (2013) is now one of the most cited papers on CT in K-12 education, providing far more concrete commentary and detail for a K-12 audience than Wing’s seminal (2006) paper. When Code.org launched its campaign for K-12 CS with its “Learn to Code” videos in early 2013, I made the argument that “Learning to Code Isn’t Enough,” a piece about CT that resonated widely. It led to a keynote invitation at the first European Scratch Conference in Barcelona and became one of EdSurge’s most-read articles for the next two years. I continued this advocacy through NSF-funded research and publications for teachers. (See The 5th C of 21st Century Skills, Grover & Pea, 2018, Grover, 2021.)
CT became the vehicle for taking CS to K-12 classrooms worldwide and also for integrating computing and STEM. The EU Joint Research Center published two exhaustive reports on it in 2016 and 2022. Despite its broad global appeal, the idea was met with resistance, especially in the CS education research community here in the U.S. Many in the CS education research space (including some stalwarts) argued against it. That CT was essentially coding. That CT was ephemeral whereas coding was concrete. Some made strange arguments that the rich kids would get coding while the poor would get CT. (I believed it would be exactly the opposite, that coding could be taught in superficial ways without engaging in the deeper thinking skills that CT brings to the table.) I fought for students to learn and engage in both CT and coding. My beliefs were also bolstered by computer scientists’ decades-old writings acknowledging thinking skills and habits of mind that went beyond programming. There was no doubt in my mind about the need for students to learn computational problem-solving skills that transcend programming environments. Even back then, I was concerned about a future where AI could write code; in 2017, I asked: what skills would students need then?
There was some definitional confusion surrounding CT, no doubt. There was also some confusion from the way it was perceived in non-CS settings (something Peter Denning wrote about extensively). I attempted to clarify the distinctions in another Communications blog post— A Tale of Two CTs–that many found to be very useful in addressing some of the confusion. My keynote address at the 2018 ICCE conference in Manila is perhaps my most substantive talk on the subject from those years. (Other CT-related keynotes: 2019 on CT for primary learners (Education World, Bangalore); in 2020 (CT Education, HongKong); and 2021 (STEMC 2021, UBC, CA) on CT integration in STEM settings.)
Teaching thinking skills and habits of mind has always been fraught; there is a long history dating back to the 1960s. One issue is that thinking skills are always developed in context. The other is that, as is often the case with technical topics, what is taught about the topic to younger learners is often a simplified version of the idea as it is taught at the higher ed level or deployed in professional settings. While the debate could have been more respectful and less vitriolic (some academics stooped to insulting attacks, like equating CT to Santa Claus), I channeled the critique to drive deeper thinking about what we want to teach and how. Over time, conceptualizations of CT have evolved and expanded, e.g., Tissenbaum, Sheldon, and Abelson’s (2019) shift from Computational Thinking to Computational Action, and Kafai and Proctor’s (2022) call for including situated and critical framings.
I find it heartening that, after a decade of scrutiny, computational thinking is the idea that lived (a riff on The Boy Who Lived :-)). It has not only survived, it is now seen as more important than ever in an age of AI where LLMs can spit out code in response to conversational/natural language prompts. Students need the ability to think about and articulate the problem, and formulate it in a way that it can be coded by an LLM. That involves breaking down the problem, recognizing patterns, understanding algorithmic flow, and knowing how to evaluate the solution and fix errors — all key components of CT. Additionally, there’s now a push to expand CT to include probabilistic, data-driven paradigms that underpin machine learning and AI models. CT lives on as it continues to evolve alongside advancements in computing.
References
- Denny, P., et al. Computing Education in the Era of Generative AI (2023); https://arxiv.org/pdf/2306.02608.pdf
- Grover, S. (2021). Computational Thinking Today. In Aman Yadav and Ulf Berthelsen (Eds.), Computational Thinking in Compulsory Education: A Pedagogical Perspective. pp. 18-40. Routledge.
- Grover, S., and Pea, R. (2013). Computational thinking in K–12: A review of the state of the field. Educational Researcher 42, 1, pp. 38-43.
- Grover, S., and Pea, R. (2018). Computational Thinking: A competency whose time has come. In S.Sentance, E.Barendsen, & S.Carsten (Eds.), Computer Science Education: Perspectives on Teaching and Learning in School. pp. 19–38. Bloomsbury.
- Kafai, Y. B., and Proctor, C. (2022). A revaluation of computational thinking in K–12 education: Moving toward computational literacies. Educational Researcher 51, 2, pp. 146-151.
- Tissenbaum, M., Sheldon, J., and Abelson, H. (2019). From Computational Thinking to Computational Action. Communications 62, 3, pp. 34-36.
- Wing, J. M. (2006). Computational Thinking. Communications 49, 3, pp. 33-35.
Shuchi Grover is a computer scientist and learning scientist based in Austin, TX. She is currently Director, AI & Education Research at Looking Glass Ventures. Her research over the last 15 years has focused on K-12 computer science education, and especially computational thinking in CS and STEM+Computing integration settings at the primary and secondary school levels. She currently advises national and global efforts on AI education, as well as AI in education in K-12 schools, in addition to leading NSF-funded research efforts on these topics.