# What is Computational Thinking?

Computational Thinking is the process of formulating a problem, finding solution to the problem and expressing it in such a way that humans or machines can understand the solution. It involves the use of problem solving methods to decompose the problem into smaller manageable sub problems, identifying the right abstractions so as to deal with scale and complexity, finding existing patterns or models that can be adapted, building an algorithm to solve the problem and in case of multiple solutions, analysing the solutions on multiple parameters to identify the one that best meets the given situation.

Computational thinking has been suggested as an analytical thinking skill that draws on concepts from computer science but is a fundamental skill useful for everyone (Wing [2006]). Computational thinking as a practice is considered central to all sciences and not just computer science. There is hardly any profession where computers and computational methods aren’t used. New disciplines have come up in the past decades or so due to the advancement in computational methods. Computational thinking concepts have been used in other disciplines including biology, health, retail, transportation, history, journalism, finance, and archaeology. It is said that by middle of 21st century Computational skills would be essential skills like reading, writing and arithmetic! This is why it becomes imperative that we teach Computational Thinking in schools.

## Computational Thinking in K-12 Education

The National Research Council (NRC) (NRC [2010]) has highlighted the importance of exposing students to computational thinking notions early in their school years and helping them to understand when and how to apply these essential skills. Computer Science Teachers Association (CSTA https://www.csteachers.org/) and the International Society for Technology in Education (ISTE https://www.iste.org/) have presented a computational thinking framework for K-12 schools in 2011 with core computational thinking concepts and capabilities, including data collection, data analysis, data representation, problem decomposition, abstraction, algorithms and procedures, automation, parallelization, and simulation (CACM [2017]).

Algorithms are central to both computer science and computational thinking. Algorithms underlie the most basic tasks everyone performs, from following a simple cooking recipe to providing complicated driving directions. There is a general misconception that algorithms are used only to solve mathematical problems and are not applicable in other disciplines whereas there are enough examples from daily lives that require us to use algorithms. For example, the steps involved in brushing teeth, getting ready for school, steps performed during a lab experiment etc. Understanding and articulating algorithms as a sequence of precise steps helps us develop an algorithm that can be understood by a human or a machine, in the latter case implemented by a computing program. Students can be exposed to the computational thinking concept of abstraction by creating models in physics (such as a model of the solar system). Abstraction helps students learn to strip away complexity and unnecessary detail to focus only on the important parts of the problem. A number of leading research, educational, and funding organizations have argued for the need to introduce K-12 students to these core constructs and practices.

**Why teach Maths in Computational Thinking curriculum? **

Do you agree that mathematics is required for every profession, Why? What does mathematics have that makes it a foundational skill for every profession? Apart from basic counting, it helps us think logically – we break down a problem and solve it one step at a time. More importantly it teaches us abstractions which is essential when dealing with complex problems. It can help develop our problem solving, critical thinking and reasoning abilities. These are the foundational skills required for Computer Science and computational thinking. So important to include these aspects of mathematics and relevant examples into computing curriculum.

Unfortunately the current mathematics curriculum in schools does not do enough justice to developing these skills. So curricula teaching Computer Science or computational thinking include these aspects of mathematics. One of the unintended side effects might be that seeing and working on mathematics examples through fun and activity based learning, students will develop better and improved understanding of concepts and perhaps overcome fear of Maths!

Children learn to solve puzzles, design algorithms, get to know better ways to sort things, identify patterns, know of hierarchy, plan things better, etc. If you observe, all these skills are useful in daily life too and not just in computing! Ask someone for directions to reach a landmark and you will realize that you need to ask a number of people before you reach the destination. Why is that so? It is because instructions provided are incomplete and confusing and we have not learnt to give precise and clear instructions.

## Teaching Computing without using computers

The primary goal of teaching Computational Thinking is to develop ability to solve problems and express the solution in the form of an algorithm that is precise and can be understood by a human or a machine. Experts feel that the above does not require the use of computers and can be taught as a series of interesting, engaging and fun activities. We want to convey that computing concepts and fundamentals do not depend on particular technology or software or programming languages. Technology has a short shelf life and will serve our children for the next few years, whereas, fundamentals will stay with them for several decades.

Fundamentals can be taught through a set of interesting activities, games and puzzles that make it a fun and engaging for the students. The activities do not depend on computers. This avoids confusing Computer Science with programming or learning application software, makes the activities **available to those children who do not have access to computers**, and overcomes the hurdle of having to learn programming before being able to explore ideas and articulating solutions as algorithms. We want students to realize that they are capable of finding solutions to problems on their own, rather than being given a solution to apply to the problem. For example children play the game of Tic-Tac-Toe and then develop the rules of the game as well as winning positions.

The activities are largely paper and pencil based, that are easily available in every classroom.

The focus of the CSpathshala curriculum is to work towards developing problem solving and computational thinking as foundational skills amongst students and train them to be creators & inventors of technology and not just users of technology!

With Computational Thinking, you will see your children getting smarter day by day. We also encourage you to go through the material yourself and see the progression of topics across grades – it is available for free!

## References:

- Tucker, F. Deek, J. Jones, D. McCowan, C. Stephenson, and A. Verno. 2006 A Model Curriculum for K-12 CS (2nd ed.). http://csta.acm.org/Curriculum/sub/CurrFiles/K-12ModelCurr2ndEd.pdf
- CAS-UK. Computing at School Working Group http://www.computingatschool.org.uk, http://www.computingatschool.org.uk/data/uploads/CAS_UKCRC_report.pdf
- Wing, J.M. Computational thinking. Commun. ACM 49, 3 (Mar. 2006), 33–35
- National Research Council. Report of a Workshop on The Scope and Nature of Computational Thinking. The National Academies Press, Washington, D.C., 2010.
- Aman Yadav, Chris Stephenson, Hai Hong. Computational Thinking for Teacher Education. Communications of the ACM, April 2017. Vol. 60 No. 4, Pages 55-62