Candidly, I have not been enthusiastic about teaching “computational thinking” to kids. In nearly every case, computational thinking seemed to be a dodge intended to avoid computing, specifically computer programming.
“There is no expedient to which a man will not resort to avoid the real labor of thinking.”
(Sir Joshua Reynolds)
Programming is an incredibly powerful context for learning mathematics while engaged in being a mathematician. If mathematics is a way of making sense of the world, computing is a great way to make mathematics.
Most of the examples of computational thinking I’ve come across seemed like a cross between “Computer Appreciation” and “Math Appreciation.” However, since smart people were taking “computational thinking” more seriously, I spent a great deal of time thinking about a legitimate case for it in the education of young people.
Here it is…
Computational thinking is useful when modeling a system or complex problem is possible, but the programming is too difficult.
Examples will be shared in other venues.
Veteran educator Gary Stager, Ph.D. is the author of Twenty Things to Do with a Computer – Forward 50, co-author of Invent To Learn — Making, Tinkering, and Engineering in the Classroom, publisher at Constructing Modern Knowledge Press, and the founder of the Constructing Modern Knowledge summer institute. He led professional development in the world’s first 1:1 laptop schools thirty years ago and designed one of the oldest online graduate school programs. Gary is also the curator of The Seymour Papert archives at DailyPapert.com. Learn more about Gary here.
Great post and I absolutely love this phrase
“Programming is an incredibly powerful context for learning mathematics while engaged in being a mathematician. If mathematics is a way of making sense of the world, computing is a great way to make mathematics.”
It was really through learning to program that I really started to appreciate and understand maths!
Dan
What do you think of the potential for Jenglish (Jenglish.org)? The premise is to use precise language to code.