Computational Thinking: Possibilities and Challenges Leila Ribeiro , Daltro Jos´ e Nunes , Marcia Kniphoff da Cruz and Ecivaldo de Souza Matos Institute of Informatics, Federal University of Rio Grande do Sul (UFRGS), Porto Alegre, Brazil Email: {leila,daltro}@inf.ufrgs.br Departamento de Inform´ atica, Universidade de Santa Cruz do Sul(UNISC), Santa Cruz do Sul, Brazil Email: marciakniphoff@gmail.com Instituto Federal de Educac ¸˜ ao, Ciˆ encia e Tecnologia de S˜ ao Paulo ao Paulo, Brazil Email: ecivaldomatos@yahoo.com.br Abstract—The aim of this paper is to discuss the importance of computational thinking and how to include techniques to teach this kind of ability in schools in Brazil. First, we discuss what Computational Thinking is and the importance of teaching such skill in school. Then, we list some of the challenges that are involved in introducing this discipline in school curricula. Keywords-computational thinking, elementary and middle school, high school, education in Brazil I. I NTRODUCTION Computer Science can be seen as the art of solving problems, in the sense that in Computer Science one studies how to construct and organise the solution of a problem, presenting the process that leads to the solution in a very precise way. This process is called algorithm, and it can be described at various levels of abstraction. Students learn in elementary school ways to sum, divide and multiply numbers, extract the square root, etc. All these are examples of algorithms, that is, there is a series of well-defined steps that they follow to perform each of these operations to get the from the arguments to the result. Algorithms may be used in any area, not just to describe mathematical operations. For example, we may use algorithms to describe how a cake is made, how to change a tire, how to perform a biological experiment, how to organise a party, etc. A very important characteristic of an algorithm is that it describes precisely and non-ambiguously the process that has to be executed such that different persons (or even machines) following the algorithm can perform the same steps in the same way, arriving to the same results (when the process is deterministic). The question of which kind of procedures can be de- scribed in such a precise way actually led to the development of the area of Computer Science. In the kernel of this area lies the fundamental work of Alan Turing [1] and other researchers like Church, G¨ odel, Kleene, ..., explaining what is an algorithm, that is, how can we define the process of solving a process in a precise way. Turing’s idea led to the development not only of techniques to solve and analyse the complexity of problems, but also to the architecture of the first machines that could automatically follow a series of steps to solve a problem, called computers nowadays. Since the the dawn of Computer Science many methods to solve problems and describe the solutions in a organised and efficient ways were developed. And, in fact, if we compare problems that could be solved and automatised in computers fifty years ago to the ones that can be handled today, we will see that the complexity and size of problems solved today was non-imaginable 50 or 60 years ago. As we learned how to solve bigger and more complex problems, many different abstractions and techniques were developed. and we claim that this kind of problem solving skills are needed by everybody not just Computer scientists. In this paper we will first explain what Computational Thinking is and how it compares to other abilities, specially to logical and mathematical reasoning. Then we will moti- vate why this kind of skill is important and finally discuss how to teach this kind of ability at school, pointing out some challenges involved in this process. II. WHAT IS COMPUTATIONAL THINKING? The cognitive process used by human being to find algo- rithms to solve problems is called Computational Thinking or Algorithmic Thinking [2], [3]. This process which is the basis of Computer Science, may be applied in many other areas like Mathematics, Physics, Chemistry, Sociology, Phi- losophy, etc, enabling the students to specify and organize the solution of problems. The study of algorithms involve concepts like abstraction, refinement, modularisation, recur- sion, etc. Learning these concepts improves the capacity of reasoning and problem solving by way of meta-cognitive learning processes, considered essential for intelligence [4]. 2013 2nd Workshop-School on Theoretical Computer Science 978-1-4799-3057-9/13 $31.00 © 2013 IEEE DOI 10.1109/WEIT.2013.32 22