1 Setting the stage
2 Computational thinking: Research history and implications
3 Challenges in defining computational thinking
3.1 The challenges of defining CT
Consider for example the proceedings that we call ‘games’. I mean board games, card games, ball games, Olympic games, and so on. What is common to them all? Don’t say, “There must be something common, or they would not be called ‘games’ ”–but look and see whether there is anything common to all. For if you look at them you will not see something common to all, but similarities, relationships, and a whole series of them at that. To repeat: don't think, but look! Look for example at board games, with their multifarious relationships. Now pass to card games; here you find many correspondences with the first group, but many common features drop out, and others appear. When we pass next to ball games, much that is common is retained, but much is lost. Are they all ‘amusing’? Compare chess with noughts and crosses. Or is there always winning and losing, or competition between players? Think of patience. In ball games there is winning and losing; but when a child throws his ball at the wall and catches it again, this feature has disappeared. Look at the parts played by skill and luck; and at the difference between skill in chess and skill in tennis. Think now of games like ring-a-ring-a-roses; here is the element of amusement, but how many other characteristic features have disappeared! And we can go through the many, many other groups of games in the same way; can see how similarities crop up and disappear. And the result of this examination is: we see a complicated network of similarities overlapping and criss-crossing: sometimes overall similarities, sometimes similarities of detail (Wittgenstein 1953, p. 66).
3.2 Definitions of CT
4 CT in education
4.1 Rationales for CT in education
4.2 What should be taught?
In the Advanced Placement Computer Science Principles Draft Curriculum Framework, six computational thinking practices are identified (The College Board, 2013, pp. 7–8): |
Computational Thinking Practices |
P1: Connecting computing |
Developments in computing have far-reaching effects on society and have led to significant innovations. These developments have implications for individuals, society, commercial markets, and innovation. Students in this course study these effects and connections, and they learn to draw connections between different computing concepts. Students are expected to: |
• Identify impacts of computing; |
• Describe connections between people and computing; and |
• Explain connections between computing concepts. |
P2: Developing computational artifacts |
Computing is a creative discipline in which the creation takes many forms, ranging from remixing digital music and generating animations to developing websites, writing programs, and more. Students in this course engage in the creative aspects of computing by designing and developing interesting computational artifacts, as well as by applying computing techniques to creatively solve problems. Students are expected to: |
• Create an artifact with a practical, personal, or societal intent; |
• Select appropriate techniques to develop a computational artifact; and |
• Use appropriate algorithmic and information-management principles. |
P3: Abstracting |
Computational thinking requires understanding and applying abstraction at multiple levels ranging from privacy in social networking applications, to logic gates and bits, to the human genome project, and more. Students in this course use abstraction to develop models and simulations of natural and artificial phenomena, use them to make predictions about the world, and analyze their efficacy and validity. Students are expected to: |
• Explain how data, information, or knowledge are represented for computational use; |
• Explain how abstractions are used in computation or modeling; |
• Identify abstractions; and |
• Describe modeling in a computational context. |
P4: Analyzing problems and artifacts |
The results and artifacts of computation, and the computational techniques and strategies that generate them, can be understood both intrinsically for what they are as well as for what they produce. They can also be analyzed and evaluated by applying aesthetic, mathematical, pragmatic, and other criteria. Students in this course design and produce solutions, models, and artifacts, and they evaluate and analyze their own computational work as well as the computational work that others have produced. Students are expected to: |
• Evaluate a proposed solution to a problem; |
• Locate and correct errors; |
• Explain how an artifact functions; and |
• Justify appropriateness and correctness. |
P5: Communicating |
Students in this course describe computation and the impact of technology and computation, explain and justify the design and appropriateness of their computational choices, and analyze and describe both computational artifacts and the results or behaviors of such artifacts. Communication includes written and oral descriptions supported by graphs, visualizations, and computational analysis. Students are expected to: |
• Explain the meaning of a result in context; |
• Describe computation with accurate and precise language, notation, or visualizations; and |
• Summarize the purpose of a computational artifact. |
P6: Collaborating |
Innovation can occur when people work together or independently. People working collaboratively can often achieve more than individuals working alone. Students in this course collaborate in a number of activities, including investigation of questions using data sets and in the production of computational artifacts. Students are expected to: |
• Collaborate with another student in solving a computational problem; |
• Collaborate with another student in producing an artifact; and |
• Collaborate at a large scale. |
4.3 Positioning CT in the curriculum
4.3.1 Computing as a separate subject
The National Curriculum for computing at the UK targets students in the age of 5–16. |
Its overall aims are: |
1. Students can understand and apply the fundamental principles and concepts of computer science, including abstraction, logic, algorithms and data representation; |
2. Students can analyse problems in computational terms, and have repeated practical experience of writing computer programs in order to solve such problems; |
3. Students can evaluate and apply information technology, including new or unfamiliar technologies, analytically to solve problems; |
4. Students are responsible, competent, confident and creative users of information and communication technology. |
At key stage 1 (5–7 year olds) students should be taught to: |
• Understand what algorithms are; how they are implemented as programs on digital devices; and that programs execute by following precise and unambiguous instructions |
• Create and debug simple programs |
• Use logical reasoning to predict the behaviour of simple programs |
• Use technology purposefully to create, organise, store, manipulate and retrieve digital content |
• Recognise common uses of information technology beyond school |
• Use technology safely and respectfully, keeping personal information private; identify where to go for help and support when they have concerns about content or contact on the internet or other online technologies. |
At the end of the age range, in key stage 4 (14–16 year olds) all pupils must have the opportunity to study aspects of information technology and computer science at sufficient depth to allow them to progress to higher levels of study or to a professional career. |
All pupils should be taught to: |
• Develop their capability, creativity and knowledge in computer science, digital media and information technology; |
• Develop and apply their analytic, problem-solving, design, and computational thinking skills |
• Understand how changes in technology affect safety, including new ways to protect their online privacy and identity, and how to identify and report a range of concerns. |