Thinking about computational thinking

I have been working on a revision of our textbook and every time I go through this process I consider what I think a textbook should be. As those who follow this blog would likely guess, we write a book focused on technology integration; I.e., the use of technology in support of learning. We have been working to keep our book current since it was first published in 1996. The book was originally imagined as a text for what I would describe as the undergraduate “technology for teachers course” although it has been assigned at other levels and purchased by individuals. 

I have come to divide the books assigned to preserving and in-service teachers into two categories – textbooks and trade books. I am not certain what label should be attached to the second category of books, but I found a post by another author contemplating this same issue and she used trade book as the alternative category to textbooks. 

I don’t have difficulty placing books into these two categories and I hesitate to list popular trade books as examples out of a concern that educators might be offended assuming I see these books in a lower category. This would not be my intention, but I do think it useful to explain how I think each book addresses a different goal. I see trade books as more opinionated, advocacy-based, and narrower. As a textbook author, I obviously have a perspective I want to pass on, but I feel a strong responsibility to communicate with accuracy the positions and research-based arguments of the advocates of what could sometimes be competing approaches. While the lack of a clear message on what to do and what not to do, I assume some looking for clear direction may end up frustrated. However, when I read the research to lack a clear consensus or to be based in different value systems, I see it as my responsibility to describe and not decide. The authors who offer trade books don’t hedge in this way.

Here is an example I am presently struggling to resolve. I have written about programming experiences in K12 classrooms since our first edition. What I find interesting is that this chapter was in the book and then not included and now included again as a result of editorial decisions reflecting priorities and the size/cost of the book. As an observer of these changes in priorities and as an individual who programmed as an important component of my “real job”, this vacillation is quite interesting. I wonder if anyone has thought of doing an analysis of multi-edition educational technology books to see if my own experience is typical. This is not the focus of this post, but I do find it intriguing.

I had no difficulty explaining programming in the early days and how it represented a great occupational opportunity. The focus has now become something different and I am struggling with the concept of “computational thinking” and how I should try to present it to others. I find the concept “squishy” and difficult to arrange among other higher-order thinking processes and skills. I understand the “think like a programmer” position, but at what level should I imagine this directive. Based in my personal experience programming, I can map some of the sub-skills advocates identify to personal practices of my own that were good or bad. It is when I try to move up my own hierarchy of thinking and reasoning practices that I have difficulty seeing computational thinking as distinct from aspects of problem-solving, problem-finding, critical thinking, and metacognition. In other words, is there something real here or is it just a new vocabulary for old concepts that is being used (perhaps in all sincerity) to push educators to devote time to short duration programming experiences across grade levels (hour of code) and the reconceptualization of experiences in a wide variety of areas without proven advantages in skill level. I want to get past the personal feeling that the examples I examine could not be adequately described as applying the scientific method, the writing process approach, problem-based learning, etc. Learning coding skills is great. It is this vague expansion of what has evolved into other areas of the curriculum as providing a perspective more useful to teachers I struggle to grasp. I keep wondering what teachers mean when they describe their interest in computational thinking.

End of rant.

For anyone interested in this topic, I will offer one example.

Arastoopour Irgens, G., Dabolkar, S., Bain, C., Woods, P., Hall, K., Swanson, H., Horn & Wilensky, U. (2020). Modeling and Measuring Students’ Computational Thinking Practices in Science. Journal of Science Education and Technology, 29(1), 137-161.

Arastoopour Irgens, et al, (2020) evaluated computational thinking within high school students studying what I would describe as the ecology of predator/prey dynamics. The study caught my attention because as an undergraduate I earned a degree as a biology major, was interested in what at the time was called ecology, and planned to be a high school biology teacher. The researchers suggest that the relationship between predator and prey (e.g.,wolves and moose) over time has traditionally been best represented through calculus (no way for me to evaluate this claim), but high school students might more productively appreciate this dynamic as the interaction between two agents each independently coded to “act” according to certain rules. So, to explain as I understand this, you can code independent agents to independently follow rules and then see what happens when the agents interact (see an example I created some years ago using an environment called AgentSheets to demonstrate the distribution generated over time by combinations of dominant and recessive genes). To be clear, in this study of the development of computational thinking the students are not coding the simulation. They are setting variables in an existing simulation and then viewing the consequences of these settings depicted in several ways (see the following image).

The cumulative action of these agents when graphed could represent the dynamic relationship and when this graphed representation matched data from the field insights gained from manipulating the coding of the agents would offer a way to develop understanding. The following image taken from the article shows the sliders used to set values for variables, a depiction of moose and wolves over time, and graphic representations of the same number of moose and wolves over time.

As the students explore this simulation to some extent guided by teacher suggestions, the research tracks observations the students make. Some students become capable of explaining relationships between different representations of the interactions of the agents and variables – changes in the frequency of predator and prey over time. One aspect of computational thinking is the representation of a phenomenon at different levels of abstraction (e.g., what a program is to do vs. the code). In response to manipulating this simulation, some students began to explain how the interaction of predator and prey were represented in multiple ways by the visual representations produced by the agents and verbal representations of the interdependencies depicted in these various ways.

So, you can describe the development of this descriptive explanatory capability as evidence of computational thinking. Has this experience with the agent-based simulation provided a different way to understand the phenomena? I think it does. However, what does this research tell us about learning and instruction? What aspects of the experience make this unique and valuable and would it be enough to just claim that the learner manipulation of simulations allows learners to develop insights not appreciated by direct instruction? Is it the opportunity to predict an outcome and then test this prediction that is the key? This happens in coding (does the program run as anticipated), but it is a consequence of experimentation more generally.

Loading