Computational Thinking
This link provides a range of computational thinking resources we think you may find useful: iste.org/computational-thinking.
The ISTE also use computational thinking as one of their Standards for Students. Learn more here: iste.org/2016Standards |
Computational thinking is all about looking at a problem and trying to solve it using a computer to help (not thinking like one). It is important to gain an understanding of what computational thinking is before trying to solve a problem. There are different concepts and approaches that breakdown computational thinking. These allow you to approach the problem in different ways to find a solution. Problems do not have to be something that is preventing a program from working. It can be as simple as creating a new program with the computational thinking skills.
Computational thinking is a two-step process: Firstly, thinking about the steps that are needed to solve a problem. Then applying technical skills to use the computer to help solve the problem. |
Jeanette Wing
The term computational thinking was introduced by Wing in 2006. It was clear that although the new term was introduced, there was no clear definition. Wing states that ‘computational thinking builds on the power and limits of computing process, whether these are executed by a human or by a machine’. She continues by discussing the necessity to pull together computer intelligence and human intelligence. Overall, she summaries that ‘thinking like a computer scientist means more than being able to program a computer. It requires thinking at multiple levels of abstraction’ (Wing,2006).
Wing broke down her idea into different characteristics of computing. These are:
Wing broke down her idea into different characteristics of computing. These are:
- Conceptualizing, not programming.
- Fundamental, not rote skill.
- A way that humans, not computers, think.
- Complementing and combining mathematical and engineering thinking.
- Ideas, not artefacts.
- For everyone, everywhere.
- Intellectually challenging and engaging scientific problems requiring understanding and solutions.
Barefoot Computing
Barefoot computing has a list of different concepts and approaches that define a computational thinker. The breakdown of the different ways of solving a problem should introduce different ways of looking at a problem and methods of solving it.
Concepts
Logic
Using logic while trying to solve a problem helps you to analyse the problem. This should allow you to predict what the problem is and ways that you could attempt to solve it. This concept allows for a problem to be broken down and made smaller before looking at the key parts of the problem to help find a solution. This could include creating a new program and predicting what will be needed and how it will have an effect on what is being created.
Click the image to go to the Barefoot Website.
Algorithms
An algorithm is a set of instructions that show how something works. This list (set of instructions) is a step by step guide for the computer. Without these instructions the computer wouldn’t know how to process and work. Looking closely at the algorithm will allow you to see the steps that the program has to follow to ensure it will work effectively. You could call these the rules of the program.
Decomposition
Decomposition plays an important role in computational thinking as it encourages you to break down the program into parts to help to solve or find a problem. When looking at a program in detail, and deconstructing the different parts, it lets you monitor the program and see what part of code is causing the problem.
Patterns
When finding a solution in computing it can help to find or create patterns. By spotting patterns within your programming, it will help you locate problems and fix them with minimal difficulty. This is a skill that can help you recreate code quickly by spotting similarities and using them within the code.
Abstraction
When coding, it is important to abstract (remove) coding that is unnecessary. This will make the program run more smoothly and allow you to debug a program if needed. Using this skill is important while computing. It promotes looking at the code that you have entered and evaluating it to see how important the code is to the program you are creating.
Evaluation
Computational thinking encourages you to make judgements about the code you are using. This concept has strong links to every part of computational thinking. While inputting more code or recapping over code that has already been created, you need to be able to critically evaluate what you are doing. This allows you to work out if the code is important to your program or unnecessary, enabling a high quality, effective program to be created.
Approaches:
Tinkering
Tinkering is one of the approaches which could be considered the most important. If you are new to computing this approach allows you to experiment with existing programs, gaining familiarity. By playing with different programs and software you can learn valuable skills that will help you when you want to create your own code.
Creating
Another approach that is key to the role of computational thinking is creating. This is the skill that has, arguably, the most significance in computational thinking. Coding is all about creating. By becoming a creator, you develop new skills and learn a lot about the practical aspects of coding. Whilst creating, it is important that you incorporate other computational thinking ideas to make your program affective. Creating is the main body but you need the other strands to bring all of your ideas together.
Debugging
Debugging encourages coders to find problems within code and fix them. Whilst coding, it is likely that something may go wrong within the code. This skill prompts you to find and fix errors in existing code.
Persevering
Every individual will have an attitude towards coding and it may not always be positive. Computational thinking encourages coders to persevere; this concept needs to be deeply embedded to create a successful coder. Coding can be challenging at times, which can restrict the success achieved. By understanding the need for a ‘keep going’ attitude, programs can be developed in a creative manner.
Collaborating
Coding is a subject that encourages children to work together, building a program and problem solving. Whilst coding, it is highly beneficial to collaborate and share ideas. There is a wealth of online support when it comes to coding with advice about how best to approach something new. This in itself is collaborating; looking for help online. However, it is not the only way. Working together with friends to create a program is encouraging to individuals as there is mutual support when things get difficult as well as share decisions about how best to create something new. Collaborating is one of the key skills of computational thinking and I believe if it is not valued then coding could become isolating.
Concepts
Logic
Using logic while trying to solve a problem helps you to analyse the problem. This should allow you to predict what the problem is and ways that you could attempt to solve it. This concept allows for a problem to be broken down and made smaller before looking at the key parts of the problem to help find a solution. This could include creating a new program and predicting what will be needed and how it will have an effect on what is being created.
Click the image to go to the Barefoot Website.
Algorithms
An algorithm is a set of instructions that show how something works. This list (set of instructions) is a step by step guide for the computer. Without these instructions the computer wouldn’t know how to process and work. Looking closely at the algorithm will allow you to see the steps that the program has to follow to ensure it will work effectively. You could call these the rules of the program.
Decomposition
Decomposition plays an important role in computational thinking as it encourages you to break down the program into parts to help to solve or find a problem. When looking at a program in detail, and deconstructing the different parts, it lets you monitor the program and see what part of code is causing the problem.
Patterns
When finding a solution in computing it can help to find or create patterns. By spotting patterns within your programming, it will help you locate problems and fix them with minimal difficulty. This is a skill that can help you recreate code quickly by spotting similarities and using them within the code.
Abstraction
When coding, it is important to abstract (remove) coding that is unnecessary. This will make the program run more smoothly and allow you to debug a program if needed. Using this skill is important while computing. It promotes looking at the code that you have entered and evaluating it to see how important the code is to the program you are creating.
Evaluation
Computational thinking encourages you to make judgements about the code you are using. This concept has strong links to every part of computational thinking. While inputting more code or recapping over code that has already been created, you need to be able to critically evaluate what you are doing. This allows you to work out if the code is important to your program or unnecessary, enabling a high quality, effective program to be created.
Approaches:
Tinkering
Tinkering is one of the approaches which could be considered the most important. If you are new to computing this approach allows you to experiment with existing programs, gaining familiarity. By playing with different programs and software you can learn valuable skills that will help you when you want to create your own code.
Creating
Another approach that is key to the role of computational thinking is creating. This is the skill that has, arguably, the most significance in computational thinking. Coding is all about creating. By becoming a creator, you develop new skills and learn a lot about the practical aspects of coding. Whilst creating, it is important that you incorporate other computational thinking ideas to make your program affective. Creating is the main body but you need the other strands to bring all of your ideas together.
Debugging
Debugging encourages coders to find problems within code and fix them. Whilst coding, it is likely that something may go wrong within the code. This skill prompts you to find and fix errors in existing code.
Persevering
Every individual will have an attitude towards coding and it may not always be positive. Computational thinking encourages coders to persevere; this concept needs to be deeply embedded to create a successful coder. Coding can be challenging at times, which can restrict the success achieved. By understanding the need for a ‘keep going’ attitude, programs can be developed in a creative manner.
Collaborating
Coding is a subject that encourages children to work together, building a program and problem solving. Whilst coding, it is highly beneficial to collaborate and share ideas. There is a wealth of online support when it comes to coding with advice about how best to approach something new. This in itself is collaborating; looking for help online. However, it is not the only way. Working together with friends to create a program is encouraging to individuals as there is mutual support when things get difficult as well as share decisions about how best to create something new. Collaborating is one of the key skills of computational thinking and I believe if it is not valued then coding could become isolating.
Due to the complexity of computational thinking it is important to consider there are many definitions so they need to be understood to develop a well-rounded understanding.
Computational thinking with scratch: developing fluency with computational concepts, practices and perspectives.
This website provides another way of breaking down what computational thinking is into separate concepts, practices and perspectives. These ideas link closely to the scratch programming environment although they are transferable to other programming contexts.
Click the image below to go to the website.
This website provides another way of breaking down what computational thinking is into separate concepts, practices and perspectives. These ideas link closely to the scratch programming environment although they are transferable to other programming contexts.
Click the image below to go to the website.
For more information please visit http://scratched.gse.harvard.edu/ct/defining.html. You will be able to find key references for more reading if you are still unsure on the idea of computational thinking.
Acknowledgements
With thanks to ISTE for the use of Computational thinking: a digital age skill for everyone video. Available at https://www.youtube.com/watch?v=VFcUgSYyRPg&lc=z12qcp1aqr2ighcu023lx1d4fnmxs3hsr.1494285909528353
|
|
References
CAS Barefoot (2014) Computational thinking. Available at: http://barefootcas.org.uk/ Last accessed: 24th April 2017
Computational thinking with scratch: developing fluency with computational concepts, practices and perspectives. Available at: http://scratched.gse.harvard.edu/ct/defining.html Last Accessed: 24th April 2017
Computational thinking: A digital age for everyone: Available at: https://www.youtube.com/watch?v=VFcUgSYyRPg. Last Accessed: 24th April 2017
CS Fundamentals Unplugged: Computational thinking. [Online] Available at: https://www.youtube.com/watch?v=b4a7Ty1TpKU Last Accessed: 24th April 2017
Wing, J, M. (2006) 'Computational Thinking'. Communications of the ACM, 49, 3, pp. 33-35, Business Source Complete
The authors are not taking ownership of any images or videos on this website, unless stated otherwise on the respective pages, and therefore have attempted to make contact with all owners of images and videos used on this website.
Computational thinking with scratch: developing fluency with computational concepts, practices and perspectives. Available at: http://scratched.gse.harvard.edu/ct/defining.html Last Accessed: 24th April 2017
Computational thinking: A digital age for everyone: Available at: https://www.youtube.com/watch?v=VFcUgSYyRPg. Last Accessed: 24th April 2017
CS Fundamentals Unplugged: Computational thinking. [Online] Available at: https://www.youtube.com/watch?v=b4a7Ty1TpKU Last Accessed: 24th April 2017
Wing, J, M. (2006) 'Computational Thinking'. Communications of the ACM, 49, 3, pp. 33-35, Business Source Complete
The authors are not taking ownership of any images or videos on this website, unless stated otherwise on the respective pages, and therefore have attempted to make contact with all owners of images and videos used on this website.