Sunday, September 11, 2016

Huang - Computational Thinking

Computational thinking, as defined by Wing, is more than just computer science. It “involves solving problems, designing systems, and understanding human behavior” using techniques like reduction, embedding, transformation, and simulation (Wing, 2006). She argues that computational thinking should and will become a necessity to function in society, similar to reading and writing. This form of literacy involves a variety of uncommon concepts and has already begun to take shape in some of the science and literature research.

Wing emphasizes the essence of computation thinking as symbolic and complex “abstraction”. Computing involves working with at least two layers of abstraction, usually simultaneously. This simultaneous manipulation and understanding of layers is supported by Wilensky and Resnick’s article that focuses on the foregrounding of levels in order to enable people to gain a better ability to think about interactions and relationships among elements of complex systems (Wilensky & Resnick, 1999). Understanding the various layers of levels in systems like slime mold and traffic jams will help create the basis for thinking about computer programming. This concept is further enforced by the type of systematic thinking that is used in agent based models when different variables are changed. For example, in the wolf-sheep model, learners build on their intuitive understandings about individual agents to grasp mechanisms in the aggregate level (Wilensky, Brady, Horn, 2014).

This style of thinking extends beyond science fields, too, as evidenced by the systematic approach of “flat” vs “round” characterizations of story characters (Burke, 2012). Programming these literary elements serves to reinforce an understanding of organizing and arranging ideas within a storyline. Through this example, we see that computational thinking can also be applied to language and literacy fields.

However, computational thinking is a complex kind of analytical thinking that may be difficult to grasp, perhaps particularly for younger students. In Simpson, Noyle, and Hoss’ article on modeling of elastic collisions, they show that 13 and 14 year old students often had a lack of conceptual understanding of the principle underlying velocity swapping (Simpson, 2014). The students were able to see the pattern of the carts swapping velocities upon impact, but missed, arguably, the point of the whole exercise. Further, almost all students asked to design a game featured multiple-choice questions that expected the user to provide answers (Kafai, 2006). This lack of design and creative characteristics in these games seems to not support computational thinking, where fundamental skill and not rote skill are paramount.

One of the most interesting parts for me to read about was the practice of obfuscating code, making code illegible to humans while still parsable to the computer (Vee, 2013). As Wing described computational thinking as a way that humans think and not computers, it seems odd that coders would detract from the systematic and efficient process of programming by obfuscating the code (Wing, 2006). This seems contrary to the idea of computational thinking.

These articles show just some of the uses for computational thinking for everyone, everywhere. However, these examples also highlight that the way we teach computational thinking is perhaps equally important, to ensure that we are spreading the appropriate methods and ideas.


USN Idea
- modeling antibiotic resistance 

No comments:

Post a Comment