What is Computational Thinking Skills
Computational Thinking is a structured way to solve problems.
Through coding, students train their own minds in Computational Thinking by looking at problems and thinking about innovative ways that a computer could be used to solve them.
Put simply, algorithms are step by step instructions, describing how to do something, or the rules describing how it works.
Algorithms can come in many different forms. Recipes, dance steps, and storyboards for animation are all examples of algorithms put to practical use.
Teaching children about algorithms means showing them the steps they, or a computer, need to follow in order to do something. This naturally means that when it comes to other subjects, such as long division in Math or devising an experimental procedure in Science classes, they will find it easier to come up with the necessary steps to succeed.
Developing software to solve problems or understand systems involves breaking things down into smaller parts, and then dealing with each of those separately.
This is known as decomposition. Children pick this up intuitively through programming languages which make it easy with procedures, functions or objects.
Planning a story outline, working on collaborative projects, solving multi-step problems in maths or putting on a play: all, typically, involve converting one big, complex problem into many smaller ones.
After just a short time spent coding, pupils will recognise that they keep writing similar blocks of code time and time again. Programmers might describe these as patterns: common solutions to common problems.
Often these will become part of standard code libraries available to all, to save each person from having to re-invent the wheel whenever they want to do something.
When learning to code, Roboto stresses the importance of looking at or remixing others’ code.
Recognising and re-using patterns will be familiar to children from other subjects too, from spelling rules to musical refrains.
A computer simply follows the program it is given, using whatever data or input it is provided with. By understanding its algorithms, it’s possible to predict just what a computer will do in any situation.
When children write their own programs, more often than not they will contain bugs that stop them from working properly. Fixing these isn’t just a hit and miss affair. Instead, by carefully looking at their code, they will be encouraged to use logical reasoning to see what is causing the problem, and then fix it effectively.
By encouraging children to make predictions when using software, they will develop their ability to reason logically, and figure things out using the information available to them. This can then be used in their daily life, as well as in their school subjects, so that they can figure out a way forward themselves.
Abstraction is all about taking a step back from a system or problem, and considering how it works as a whole instead of each individual element.
Learning to code involves multiple layers of abstraction. A child might start with what a program does, then learn about how to program, then perhaps about how data is represented, then about the execute cycle of the CPU and then, if he is really interested, in the electronics.
This is the same way that a child might solve word problems in Math- they start by identifying the essential facts, and then use their knowledge to come up with the correct answer. They can also use these skills to summarize facts and deduce conclusions in Social Studies. Even the use of similes and metaphors in Composition are a form of abstraction, so this is certainly a useful skill to develope.
Through programming, students learn to collect, analyse and structure data into arrays, stacks and queues.
The same skills are present in virtually every other area of studies; from using pie charts, sets and lists in Math; to summarizing experimental data in Science; to representing trends in Social Studies.
The use of Control Structures is common in coding, being used for a variety of technical purposes. The thought processes involved with these are also utilized by children studying functions in Algebra or using branches in story-writing and composition.