TEACHING COMPUTATIONAL THINKING IN ...

2 downloads 0 Views 399KB Size Report
Considering, Computational Thinking as knowing how to program may be too limiting. Shute and. All (2017) highlight the National Research Council (2010), ...
TEACHING COMPUTATIONAL THINKING IN CLASSROOM ENVIRONMENTS: A case for unplugged scenario Pedro Lealdino Filho and Christian Mercat S2HEP EA 4148 – Université Claude Bernard – Lyon 1 – École Normale Supérieure de Lyon – Université de Lyon; France, [email protected]; [email protected]; This article aims to share the experience in introducing computational and mathematical thinking to teachers and students, from different range of ages, in a workshop context, through modeling a mathemagical trick. The activity hereby described constitutes in itself a resource usable in the classroom. We argue that the introduction of technology, is not mandatory to enhance computational thinking, but it is a valuable tool on the verification step of solving a problem. That is to say, using unplugged approaches to teach algorithms, it is possible to achieve the goals of the curricula as well. Keywords: Teaching algorithms, Algorithms, Mathematics, Computational Thinking, Mathematical Thinking.

Introduction Since the beginning of the scholar year of 2016, the new mathematics curriculum became effective, its main difference being the introduction of Computer Science into the Mathematics program. Its goals are developing the following competences in students: • Decompose a problem; • Recognize schemas; • Generalize and Abstract; • Design and translate algorithms into a programming language. Computational thinking is a phrase that has received considerable attention over the past few years. Considering, Computational Thinking as knowing how to program may be too limiting. Shute and All (2017) highlight the National Research Council (2010), which says that everyone should acquire CT, not only programmers. CT skills include managing information effectively and efficiently with technologies in our data-driven era (Burke, O’Byrne, & Kafai, 2016; Kim, Kwon, & Lee, 2014; Lu & Fletcher, 2009; Sanford & Naidu, 2016; Wing, 2010). Definitions of Algorithms and Computational Thinking An algorithm can be defined as the process of solving a problem, using a finite amount of steps, in a way which is effective, non-ambiguous and organized, translated into instructions which are replicable to solve problems of the same instance, by an individual or a computer. Observing the notion of obvious to the kids like, “to spread butter on the bread”: using or not a knife is very interesting. It demonstrates that an algorithm must return the same result, independently of who performs the steps. Following the article from Shute and All (2017), Computational thinking (CT) stems back to the constructionist work of Seymour Papert (Papert, 1980, 1991) and was first coined as a term in a seminal article by Wing (2006). The most of-cited definition of CT comes from Cuny, Snyder, and Wing (2010), defining CT as a process where “… solutions are represented in a form that can be effectively carried out by an information-processing agent”. Weintrop et al (2016) proposed a definition of CT for mathematics and science in the form of a taxonomy consisting of four main categories: data practices, modeling and simulation practices, computational problem solving practices, and systems thinking practices, illustrated on the. Fig 1.

Figure 1: Computational thinking in mathematics and science taxonomy

Defining resources in mathematics education isn’t an evident task. However, Adler (2000) suggests that mathematics teacher education programmes need to work with teachers to extend common-sense notions of resources beyond material objects and include human and cultural resources such as language and time as pivotal in school mathematical practice. We understand the resource as a transparent tool which is used to achieve a goal. In this paper, we intend to demonstrate the use of the taxonomy proposed by Weintrop et al. (2016), in modeling the mathemagical trick: Binary Code, understood as a CS-unplugged resource, which will aid in the development of didactical strategies to teach computational thinking.

Method The Workshop, MathMagic: Computational and Mathematical Thinking, was offered to students, teachers, graduate students and researchers in various contexts, totaling more than a thousand people. The aim of the workshop is to introduce the concept of Computational and Mathematical Thinking by modeling the following trick: The binary magic trick is a set of 5 cards with numbers on them. The mathemagician asks someone to choose a secret number between 1 and 31 (for example her birthday in the month), show her each card one after the other in order to select whether the card contains the secret number. Using his magic powers, the mathemagician figures out which number she has chosen.

Table 1: Cards from Binary Code Trick

For instance, let’s say that one chooses the cards, from left to right: [1st , 3rd , 4th ]. Then, I can guess that the date of the birthday is 13, which is the only number in common to these three cards and not the other ones. After performing the trick, almost all the participants react on the same way saying: “Why, How, Can you do it again”? Building on this frustration fuels the motivation to understand the trick and deconstruct the algorithm. Then, the following tasks were given to participants:



Understand the trick and write an algorithm which performs it. It means, given a set of five yes or no answers, one for each card, the algorithm returns the correct number chosen by someone. • Write an algorithm which, given a card rank between 1 and 5, return all the numbers on the corresponding card. • Write an algorithm which, given a number between 1 and 31, returns the set of cards in which it is featured. Understanding the problem: The magician has five cards, each of them filled with sixteen numbers. The range goes from 1 to 31. The magician asks if the number is or isn’t on the card. The possible answers are yes or no. On this step we don’t need any digital tool. Devise a plan: Before devising a plan, it is important to understand all the data we have to model the phenomena, then choosing a strategy to approach the problem. Examples of strategies described by Pólya are (Guess and check, Make an orderly list, Eliminate possibilities, Use symmetry, Consider special cases, Use direct reasoning, Solve an equation, Look for a pattern, Draw a picture, Solve a simpler problem, Use a model, Work backwards, Use a formula). We can use the taxonomy of CT performing the Data Practices to identify a priori strategies: a. Collecting Data: The numbers in the cards, the number of cards, the answer given to perform the trick. b. Manipulating Data: Data must be organized by students in order to easy describe the phenomena. c. Analyzing Data: After organizing the data it is possible to look for a pattern. Eventually the student perceives, after organizing the data, that the relationship between the smallest number of each card and the gap on the sequences has a pattern of increasing by powers of 2. It means that each time one says yes to the magician, he/she takes the power of 2 corresponding to that card, which is the smallest number of that card, and makes the sum of them. For instance, my own birthday is 23rd. And indeed, 23 is on the 1st, 2nd , 3rd and 5th cards: 1 + 2 + 4 + 16=23. Carry out the plan: To write the algorithm, individuals can design it in natural language, or pseudocode. Giving the instructions to another person to perform the trick. Identifying the data structure is essential, understanding the set of information available to carry out the plan. For instance, one of the simplest ways to link the elements of a set is creating a list. It’s a structure in which the operations insert, withdraw and locate are defined. In the case, a table could be designed to clarify the data structure present in the problem.

Conclusion This article shows the possibility of working with computational thinking competences even without the use of computers, using CS-unplugged as resource. A primordial step in the convergent thinking (Mercat et al., 2017) in designing algorithms is the translation of thinking, an abstract and subjective construct, into a concrete, objective and meaningful method which makes any information-processing agent return the expected result. Solving the task of writing an algorithm to perform the trick and to solve this particular problem, didn’t need the use of any digital tool. Implementing it on a computer requires further work in understanding, collecting, visualizing, structuring and analyzing the data in order to translate the phenomena into a programming language. References Adler, J. (2000). Conceptualising resources as a theme for teacher education, Journal of Mathematics Teacher Education 3, 205–224.

Burke, Q., O'Byrne, W.I., Kafai, Y.B., 2016. Computational participation: Understanding coding as an extension of literacy instruction. Journal of Adolescent & Adult Literacy 59, 371–375. https://doi.org/10.1002/jaal.496. G. Polya-How to solve it. A new aspect of mathematical method-Princeton University Press (2004).pdf. (n.d.). Kim, Y.C., Kwon, D.Y., Lee, W.G., 2014. Computational modeling and simulation for learning an automation concept in programming course. International Journal of Computer Theory and Engineering 6, 341–345. https://doi.org/10.7763/IJCTE.2014.V6.886. Lu, J.J., Fletcher, G.H., 2009, March. Thinking about computational thinking. ACM SIGCSE Bulletin 41 (1), 260–264. Mercat, C., Lealdino Filho, P., & El-Demerdash, M. (2017). Creativity and Technology in Mathematics : from Story Telling to Algorithmic with Op ’ Art. Acta Didactica Napocensia, 10(1). National Research Council, 2010. Committee for the Workshop on Computational Thinking: Report of a workshop on the scope and nature of computational thinking. National Academies Press, Washington, D.C. Papert, S., 1980. Mindstorms. Children, computers and powerful ideas. Basic books, New York. Papert, S., 1991. Situating constructionism. In: Papert, S., Harel, I. (Eds.), Constructionism. MIT Press, Cambridge, MA. Sanford, J.F., Naidu, J.T., 2016. Computational thinking concepts for grade school. Contemporary Issues in Education Research (CIER) 9 (1), 23–31. https://doi. org/10.19030/cier.v9i1.9547. Shute, V. J., Sun, C., & Asbell-Clarke, J. (2017). Demystifying computational thinking. Educational Research Review, (October). https://doi.org/10.1016/j.edurev.2017.09.003 Weintrop, D., Beheshti, E., Horn, M., Orton, K., Jona, K., Trouille, L., & Wilensky, U. (2016). Defining Computational Thinking for Mathematics and Science Classrooms. Journal of Science Education and Technology, 25(1), 127–147. https://doi.org/10.1007/s10956-015-9581-5 Wing, J.M., 2010. Computational thinking: What and why?. Unpublished manuscript Computer Science Department, Carnegie Mellon University, Pittsburgh, PA, Retrieved from https://www.cs.cmu.edu/∼CompThink/resources/TheLinkWing.pdf.