Skip to main content

Computational thinking is for everyone


Problem solving is not trivial (Beaumont and Fox, 2003).  In fact, if we think about Bloom’s Taxonomy’s (Bloom 1956) and the Cognitive Domain, problem-solving involves the high-level skills of synthesis, evaluation, analysis and applications, so perhaps it is not surprising that student’s often struggle in this area and with subjects based around problem-solving (such as programming). A much discussed and related area of Computational Thinking (Wing, 2006) has raised the profile of areas such as problem-solving, by highlighting the importance of “thinking like a computer scientist” (Wing 2006). The thought processes involved in being a computer scientist are more complicated than just being able to program, “Computational thinking is reformulating a seemingly difficult problem into one we know how to solve, perhaps by reduction, embedding, transformation, or simulation.” (Wing, 2006). The skills of computer scientists are applicable to a much wider range of areas or as Wing states:One can major in computer science and go on to a career in medicine, law, business, politics, any type of science or engineering, and even the arts.” (Wing, 2006).

Characteristics of Computational Thinking (Wing 2006):
“Conceptualizing, not programming. Computer science is not computer programming. Thinking like a computer scientist means more than being able to program a computer. It requires thinking at multiple levels of abstraction;
Fundamental, not rote skill. A fundamental skill is something every human being must know to function in modern society. Rote means a mechanical routine. Ironically, not until computer science solves the AI Grand Challenge of making computers think like humans will thinking be rote;
A way that humans, not computers, think. Computational thinking is a way humans solve problems; it is not trying to get humans to think like computers. Computers are dull and boring; humans are clever and imaginative. We humans make computers exciting. Equipped with computing devices, we use our cleverness to tackle problems we would not dare take on before the age of computing and build systems with functionality limited only by our imaginations;
Complements and combines mathematical and engineering thinking. Computer science inherently draws on mathematical thinking, given that, like all sciences, its formal foundations rest on mathematics. Computer science inherently draws on engineering thinking, given that we build systems that interact with the real world. The constraints of the underlying computing device force co puter scientists to think computationally, not just mathematically. Being free to build virtual worlds enables us to engineer systems beyond the physical world;
Ideas, not artifacts. It’s not just the software and hardware artifacts we produce that will be physically present everywhere and touch our lives all the time, it will be the computational concepts we use to approach and solve problems, manage our daily lives, and communicate and interact with other people; and
For everyone, everywhere. Computational thinking will be a reality when it is so integral to human endeavors it disappears as an explicit philosophy.”(Wing 2006)

Carnegie Mellon now has a Centre of Computational Thinking 


Beaumont, C., & Fox, C. (2003). Learning Programming: Enhancing Quality Through Problem-Based Learning (pp. 90-95) 4th Annual Conference of the ICS HE Academy Galway: ICS.
Bloom, B., S. (ed.) (1956). Taxonomy of Educational Objectives, the classification of educational goals – Handbook I: Cognitive Domain New York: McKay.




Comments

Popular posts from this blog

Problem Solving Open educational Resource

  Another new Open Education Resource (OER) has been made available by the School of Science and Technology, University of Northampton. Problem-Solving Author: Dr Scott Turner http://find.jorum.ac.uk/resources/19001 Details These mini lectures are intended for undergraduate computing students, for providing simple steps in problem solving before the students learn a programming language. Problem-Solving and Programming is a common first year undergraduate module on the BSc Computing Programme at the University of Northampton. This material was taken from the problem solving part of the module and provides an introduction to five topics in problem-solving. The resource can be found at:  http://find.jorum.ac.uk/resources/19001 After one week on JORUM  93 downloads  and  12 views  of the OER.

One of the best blogs of 2010

The blog Confessions of a mediocre programmer  by Alan Norton is one of the most interesting blogs I read in 2010. Including a great definition of a Mediocre Programmer: " Mediocre programmer  - A programmer who has a limited toolset. He knows the syntax of only the simplest commands, but he knows where to find the syntax for more complex commands. He doesn’t know how to write the most efficient code, but he knows how to rewrite and test the code for greater efficiency if he must. He runs into more roadblocks along his passage to success, but he views each as a challenge and is confident that he will find a path around each roadblock. He may take longer to get there, but he always reaches his goal. He doesn’t know how to create a DLL, but he knows he can if necessary. Like most programmers, he doesn’t particularly like documenting his work but does so anyway because he is a professional. " Alan Norton (2010) A definition which in their heart of hearts a lot of success...

Problem-solving or computational Thinking

Confession time, this has been a research interest for me, along with a number of colleagues, since around 2005. It started with undergraduate students - investigating teaching and developing problem solving skills as a first step in developing programming skills through the use of LEGO-based robots and graphics based programming for undergraduate students. The main vehicle then for developing the problem-solving skills was the LEGO RCX Mindstorms robotics kits and series of gradually more challenging robot-based tasks. Lawhead et al (2003) stated that robots “…provide entry level programming students with a physical model to visually demonstrate concepts” and “the most important benefit of using robots in teaching introductory courses is the focus provided on learning language independent, persistent truths about programming and programming techniques. Robots readily illustrate the idea of computation as interaction”. Synergies can be made with our wo...