• Nenhum resultado encontrado

Developing programming skills on digital native children through the interaction with smart devices

N/A
N/A
Protected

Academic year: 2021

Share "Developing programming skills on digital native children through the interaction with smart devices"

Copied!
77
0
0

Texto

(1)

DEVELOPING PROGRAMMING SKILLS ON DIGITAL NATIVE CHILDREN

THROUGH THE INTERACTION WITH SMART DEVICES

José Rafael Moraes Garcia da Rocha

RECIFE

2016

(2)

José Rafael Moraes Garcia da Rocha 

 

 

DEVELOPING PROGRAMMING SKILLS ON DIGITAL NATIVE 

CHILDREN THROUGH THE INTERACTION WITH SMART DEVICES 

 

 

 

Dissertação  apresentada  como  requisito parcial para a obtenção do        título de Mestre, pelo Programa de        Pós­Graduação  em  Ciências da    Computação  do  Centro  de  Informática da Universidade Federal        de Pernambuco 

 

 

 

 

Orientador: Vinicius Cardoso Garcia, PhD  Co­Orientadora: Taciana Pontual da Rocha Falcão, PhD 

 

 

 

 

 

RECIFE 

2016 

(3)

Catalogação na fonte

Bibliotecária Monick Raquel Silvestre da S. Portes, CRB4-1217

R672d Rocha, José Rafael Moraes Garcia da

Developing programming skills on digital native children through the interaction with smart devices / José Rafael Moraes Garcia da Rocha. – 2016.

76 f.: il., fig., tab.

Orientador: Vinicius Cardoso Garcia.

Dissertação (Mestrado) – Universidade Federal de Pernambuco. CIn, Ciência da Computação, Recife, 2016.

Inclui referências.

1. Engenharia de software. I. Garcia, Vinicius Cardoso (orientador). II. Título.

005.1 CDD (23. ed.) UFPE- MEI 2016-087

(4)

DEVELOPING PROGRAMMING SKILLS ON DIGITAL NATIVE 

CHILDREN THROUGH THE INTERACTION WITH SMART DEVICES 

 

 

 

Dissertação

 

apresentada

 

como

 

requisito parcial para a obtenção do

 

 

   

   

título de Mestre, pelo Programa de

   

 

 

   

Pós­Graduação em Ciências da

 

 

 

 

Computação

 

do

 

Centro

 

de

 

Informática

 

da

 

Universidade

 

Federal de Pernambuco 

 

 

Aprovada em 15/01/2016 

 

BANCA EXAMINADORA 

 

PhD. Cristiano Coelho de Araújo – UFPE 

________________________________________________ 

PhD. Vinicius Cardoso Garcia – UFPE 

________________________________________________ 

PhD. Alberto Cesar Cavalcanti França – UFRPE 

________________________________________________ 

 

RECIFE 

Jan 2016 

(5)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dedico essa dissertação a minha esposa e meus 

familiares. 

(6)

  

Agradecimentos   

Após três anos, recordar de todas as pessoas que contribuiram direta e indiretamente        para a conclusão deste trabalho não é uma tarefa fácil, então tentarei fazer os devidos        agradecimentos em ordem cronológica. Primeiramente, gostaria de agradecer o apoio dos        meus pais, Garcia e Audrey, que me propiciaram todas as condições físicas, mentais e        financeiras para que eu pudesse concluir um dos maiores desafios que decidi enfrentar. Sou        muito grato também a minha irmã, Raissa, que sempre me incentivou a continuar trilhando        este caminho, e me ajudou bastante com seu conhecimento na língua inglesa. Agradeço a        minha sogra Henriqueta Luiza, por me incentivar, principalmente na reta final do trabalho.        Aos meus colegas de turma agradeço o suporte para a conclusão da primeira parte do curso,        em especial os mais próximos: Clecio Costa, Herminig Everson, Plácido Segundo e José        Alfredo. Aos meus amigos Diego Nascimento e Diogo Carvalho, que me ajudaram na ideação        e no design gráfico do meu projeto. Gostaria de agradecer também aos meus amigos das        empresas Fingertips e C.E.S.A.R. nas quais trabalhei durante o período do mestrado ­ a lista        de nomes é bastante extensa, mas eles sabem que agradeço profundamente pelo apoio. As        palavras não seriam suficientes para agradecer ao meu orientador, Vinicius Garcia, que        aceitou entrar comigo nessa empreitada e colaborou ativamente com seu conhecimento e sua        experiência, além de me colocar no caminho correto sempre focando no objetivo final, a        conclusão deste trabalho. Da mesma forma, não tenho como agradecer suficientemente a        minha co­orientadora, Taciana Pontual, que me ajudou muito com seu conhecimento        específico e foi bastante criteriosa em suas sugestões, prezando sempre pela qualidade do        trabalho. Não poderia deixar de agradecer ao professor Luciano Meira, que em determinado        momento, em uma curta conversa, ajustou o rumo do meu trabalho, evitando que eu        provavelmente percorresse um caminho muito mais tortuoso do que percorri. Agradeço        também a todas as outras pessoas que contribuíram direta ou indiretamente para a conclusão        desse trabalho. E por fim, demonstro minha imensa gratidão a pessoa que talvez tenha me        acompanhado mais de perto, minha esposa, Mariana, que me deu todo o suporte psicológico,        além de me acompanhar nos experimentos, me ajudou com seus conhecimentos sobre        métodos de pesquisa e que, na reta final, ainda ajudou com suas habilidades em design        gráfico, construíndo algumas figuras para o trabalho.  

(7)

 

Abstract 

 

Nowadays the computational thinking is one of the most important skills a person        should develop to be more well prepared for the near future. By the middle of this century,        this ability will probably have the same level of importance of fundamental skills like reading        and writing, and people will need to learn programming and problem solving with        computational thinking from an early age. Studies are trying to stimulate the introduction of        this skill set to young children, and this has been done since 1967 when the Massachusetts        Institute of Technology created the first language aiming this kind of public called LOGO.        Although the studies in the area of developing computational thinking on children started        almost six decades ago, the importance of teaching programming in schools is not widely        spread, in places like Brazil, this skill is starting to be introduced to children older than 10        years­old. In contrast, the United States and some european countries are using a variable set        of approaches to introduce these concepts to young children varying from 4 to 12 years old,        usually by creating toys and games which these concepts can be developed within them.        Unfortunately most of approaches are aimed for already literate children, very few of them        do not require reading skills, limiting the minimum age of users to approximately 6 years old.        This work has the intention to argue that toddlers are not only able to develop algorithms and        initiate the development of computational thinking skills, but also this practice will be quite        profitable for their future. A survey involving 9 children with between 4 and 6 years old is        presented, where the selected children played a game developed specially for this work, and        their performance was able to produce data that is going to be analyzed further to test the        main hypothesis which is "        ​Toddlers can develop algorithmic thinking by playing              programming games  ", additionally, while reviewing the literature, problems related to the        effects of letting children use smart devices and internet without supervision were identified,        in order to advocate the usage of this technology by young children, possible causes and risks        of these problems are presented and ways to avoid them as well, the results of this work are        encouraging, all toddlers involved were able to play the game developed.  

 

Keywords: Programming skills. Computational thinking. Digital native children. Smart        devices. 

(8)

Resumo 

 

Nos dias de hoje o pensamento computacional é uma das habilidades mais importantes        que uma pessoa deve desenvolver para se preparar melhor pro futuro próximo. Em poucos        anos essa habilidade será tão importante como ler e escrever, pessoas precisarão aprender a        programar e resolver problemas com pensamento computacional desde cedo. Estudos que        tentam estimular a introdução dessas habilidades para crianças são feitos desde 1967 quando o        Institudo de Tecnologia de Massachusetts criou a primeira linguagem para esse público        chamada LOGO. Embora os estudos na area de desenvolvimento do pensamento        computacional em crianças tenha começado a mais de seis décadas atrás, a importância de        ensinar programação em escolas não é amplamente difundida, em lugares como Brasil, essa        habilidade está começando a ser introduzida a crianças com mais de 10 anos de idade. Por        outro lado, nos Estados Unidos e em alguns países europeus diversas abordagens vem sendo        usadas para introduzir esses conceitos para crianças de 4 a 12 anos de idade, normalmente são        criados brinquedos e jogos que podem ajudar a desenvolver tais conceitos. Infelizmente a        maioria dessas abordagens são focadas em crianças alfabetizadas, poucas não requerem a        habilidade de leitura, limitando a idade mínima a 6 anos de idade. Esse trabalho argumenta        que crianças muito novas não somente são capazes de desenvolver algoritimos e iniciar o        desenvolvimento de habilidades do pensamento computacional, como essa prática será        bastante proveitosa para o futuro deles. É apresentada uma pesquisa envolvendo 9 crianças        com idade entre 4 e 6 anos, onde as crianças selecionadas jogam um jogo desenvolvido        especialmente para este trabalho, e a performance deles foi capaz de produzir dados que        foram analisados para testar a hipótese principal que é "      ​Crianças muito novas podem        desenvolver pensamento algoritimico jogando jogos de programação            ", adicionalmente,    enquanto a literatura foi revisada, problemas relacionados aos efeitos de permitir crianças a        usar dispositivos móveis e internet sem a supervisão dos responsáveis foram identificados,        para defender o uso desse tipo de tecnologia na educação de crianças as possíveis causas e        meios de evitar esses problemas foram levantados, os resultados desse trabalho são        encorajadores, todas as crianças envolvidas foram aptas a jogar o jogo desenvolvido com uma        boa performance.  

Palavras­chave: Habilidades de programação. Pensamento computacional. Crianças nativas        digitais. Dispositivos móveis.   

(9)

LIST OF FIGURES    Figure 1: The Valiant turtle ………19  Figure 2: Roamer educational robot ………..21  Figure 3: Roamer Too, Roamer's second generation ………...22  Figure 4: Flashlight with touch sensor built with electronic blocks ………...23  Figure 5: FlowBlocks (left) and SystemBlocks (right)...23  Figure 6: Tern (left) and Quetzal (right) ………...24  Figure 7: RoboEduc Level 1 (left), Level 3 (center), and Level 5 (right) …...25  Figure 8: LogoBlocks user's interface. ………...26  Figure 9:  Scratch interface …………...28  Figure 10: ScratchJr interface ………...29  Figure 11: A kindergartener project working on a pre­made environment (left), a project based  on a story by two kindergartners (right).………...30  Figure 12:  Research on introducing computational thinking to children timeline ………...31  Figure 13: Children side­by­side practicing programming with AlgoBlock………..33  Figure 14: Traffic lights built with AgentSheets………...35  Figure 15: Squeak Etoys printscreen………...36  Figure 16: LightBot………...37  Figure 17: Cubetto………...37 

Figure 18: physical programming interface ……….....38 

Figure 19: Sphero ………...40  Figure 20: Application’s alpha version main screen………...42  Figure 21: Design of the three game levels………...42  Figure 22: First level of the game………......45  Figure 23: Second level of the game………...46  Figure 24: All valid ending points and respective scores…………...48  Figure 25: Level 2 and application redesign………...49  Figure 26: Child playing freely with the robot………...50  Figure 27: 4 year­old child playing the first level………...51  Figure 28: 5 y.o child celebrating the completion of the second level……...56  Figure 29: 6 y.o child playing the third level………...60 

(10)

Figure 30: Conceptual model of smartphone addiction in early childhood……...68  Figure 31: New interface prototype for the tablet application………...73 

(11)

LIST OF TABLES   

Table 1: M's first three attempts on level 1 ………..44 

(12)

LIST OF CHARTS  Chart 1: First 4 year­old Score x Attempts………...53  Chart 2: Second 4 year­old Score x Attempts……….…..54  Chart 3: Third 4 year­old Score x Attempts………..………...55  Chart 4: First 5 year­old Score x Attempts………..……….57  Chart 5: Second 5 year­old Score x Attempts……….………..58  Chart 6: Third 5 year­old Score x Attempts………...59  Chart 7: First 6 year­old Score x Attempts……….………..61  Chart 8: Second 6 year­old Score x Attempts………..……….62  Chart 9: Third 6 year­old Score x Attempts………..………...63 

 

 

 

 

(13)

 

CONTENTS 

 

1 INTRODUCTION………... 13  2 STATE OF THE ART……….17  2.1 DEVELOPING COMPUTATIONAL THINKING ON CHILDREN: BASIC  CONCEPTS AND HISTORICAL FINDINGS………....18  2.2 A TAXONOMY FOR APPROACHES TO INTRODUCE CHILDREN TO  PROGRAMMING………..31  2.2.1 TEACHING MECHANICS OF PROGRAMMING………..31  2.2.2 SOCIAL LEARNING………....32  2.2.3 PROVIDING REASONS TO PROGRAM………..33  2.2.4 EMPOWERING MECHANICS OF PROGRAMMING………...34  2.3 APPROACHES THAT INFLUENCED DIRECTLY THE GAME DEVELOPED  36  2.4 CHAPTER SUMMARY………...38  3 THE GAME: HOW IT WAS BUILT, AND WHAT IT ACHIEVED………....39  3.1 ALPHA VERSION, TESTING AND RESULTS………...………....41  3.2 BETA VERSION USED FOR THE SURVEY……...………....47  3.3 CHAPTER SUMMARY………...49  4 THE SURVEY, TESTING THE GAME'S BETA VERSION WITH  CHILDREN……….50  4.1 THE 4 YEAR­OLD'S ANALYSIS   ………...51   4.2 THE 5 YEAR­OLD'S ANALYSIS ………...55  4.3 THE 6 YEAR­OLD'S ANALYSIS………..59  4.4 A COMPARISON BETWEEN THE THREE GROUPS………..63  4.5 CHAPTER SUMMARY………...64  5 RISK ASSESSMENT AND MITIGATION………..65  6 CONCLUSION……….70  6.1 FUTURE WORK………..71  REFERENCES………....74

 

(14)

1. Introduction 

Through the past few years the learning process that is applied in elementary school        has been criticised more often. Questions about its effectiveness are being made and some        schools have already tried to improve it by adding some disciplines that may prepare the        students better for the World's demands (WAGNER, 2008). 

According to Wing (2006) computational thinking is one of the abilities that the world        is demanding from people, and it will probably be listed as a fundamental skill set in a few        years. This skill set includes the computer science foundations such as: abstraction as the        ability to separate the complexity of things in different levels, think recursively, algorithmic        thinking, essentially solving problems using the computer science fundamentals. 

The algorithmic thinking, as part of computational thinking skill set and understood as        the capability to develop algorithms, is often listed as one of the most important skills to be        learned sooner and, since the early 90's developing thinking skills by programming has been        stimulated (COSTA, 1991). Nowadays, in a majority of countries, programming is only        learned when the person reaches adolescence or early adult age, at college. Some studies and        applications are trying to deliver to children an early access to this skill through classes,        games, puzzles, and applications. Some examples of such applications are Alice, a 3D        environment to create animations and tell stories, and Scratch      , an environment to create        stories, games and animations, LEGO mindstorms, a tool set to create robots and develop        programs to control them (DE PAIVA et al., 2015; FARIAS et al., 2015; MATTOS, 2015;        FINCHER et al., 2010). 

The introduction of programming concepts to teenagers and children have been        studied since before the personal computer was introduced to the stores. Most of the studies        related to this research are focused on how to achieve the two most valued aspects of the area,        which are lowering the barriers to programming and designing a "higher ceiling" with a lower        barrier (TEMPEL, 2012). When the barriers are lower more people can access the technology        and people with less previous knowledge of mathematics, logic and programming can access        the technology and start to create programs. Moreover, an easier approach to be used might be        considered to have a "higher ceiling", if people can create more complex programs with it        than with previous ones. This chapter provides a brief introduction of the historical        achievements of the area to be more detailed on the next chapter. 

(15)

In 1967 the MIT (Massachusetts Institute of Technology) started working on Logo, a        multi­paradigm language based on the functional language LISP, which was introduced to        schools in 1980 by Papert (TEMPEL, 2012). In his work, Papert (1980) advocated that        children would be able to comprehend and play with Logo, and as soon as it were accepted by        the schools, the educational system would have to change and adapt to it, but clearly it did not        go this way as many countries are still trying to introduce programming to schools more than        3 decades after Papert published his work.  

With the advent of Logo in the late 60's a series of research and works were done in        the area of teaching programming to children (described in the next chapter), but the majority        of the approaches, like Scratch and LEGO Mindstorms for example, requires reading skills,        building a barrier for preschool children to start learning programming skills. Some recent        approaches of the area that concentrate efforts on young children try to avoid written text        actions, replacing them with icons and contextualized buttons to provide a more reachable and        intuitive user interface, for example ScratchJr and Roamer Too. More details on these        approaches will be seen on the next chapter.  

With appropriate approaches    , teaching programming to children can deliver even more        than just a useful skill, programming classes can also help the development of basic concepts        of science, technology, engineering and mathematics (HOLMQUIST, 2014). Wyeth (2001)        advocates that the increasing need of introducing technology to young children is undeniable,        considering that educators have to prepare the next generations for the 'information        revolution'. Although an approach of how to teach programming to children has not reached a        consensus yet, it is considered that it needs to be gradual and assisted. According to        Zuckerman et al. (2005) an interesting approach is with digital manipulatives or familiar        objects, as it increases the acceptance of children to technology. 

Considering that children manipulating new technology is probably an unavoidable        scenario that will be faced worldwide, it is important to parents and school teachers to prepare        themselves properly to provide such contact, and there are many possible strategies to        introduce children to smart devices in ways that will be productive, enabling them to develop        new skills and play at the same time. Conversely, unsupervised and uncontrolled usage of        smartphones, tablets and the internet can lead to very serious problems such as: addiction,        loneliness, obesity, hearing and vision impairments and the situation is aggravated the        younger the child is ​(​PONTES, GRIFFITHS, PATRÃO, 2014)​. 

(16)

There are many initiatives on teaching children how to create programs, and        developing basic programming skills such as developing algorithms, procedure calls and        recursion. Some of these approaches are focused on young children with 4 years­old average,        but very few of these approaches present studies suggesting that children are able to use it        properly, and the ones that present such study, mostly do not evaluate the children's results in        the process, and none of them with the same focus on toddlers presented a quantitative        analysis to test the hypothesis. Considering this fact, this research investigates if preschoolers        are able to develop algorithms, and if they develop programming skills such as developing        algorithms and debugging when playing programming games. 

This project is willing to understand if not yet literate or recently literate children can        develop computational thinking skills by being in contact with an application that is        architected to stimulate these skills, by smoothingly introducing them to the concept of        algorithm. Allowing pre­scholar children to control a small robot may attract their attention to        the programming activity, making it easier to focus on it      . Furthermore the demonstration of          how age and life experiences affect the tests results is also an important. 

To test the main hypothesis that is:       ​"​Toddlers can develop algorithmic thinking by            playing programming games    ", a programming game was developed composed by a tablet        application, a robot and challenging levels. The game was designed as an application for        smart devices based on some of the most played programming and puzzle games on mobile        marketplaces such as LEGO Mindstorms and LightBot. In order to be easily accessed by        children, the application was designed to run on a tablet device, and to stimulate the        development of algorithms to solve simple logic problems. The tablet application is connected        to a robot through Bluetooth and is able to send specific commands to it. It attempts to        recreate the idea of the combination of Logo and the floor turtle, abstracting programming        languages with a visual language and removing the "umbilical cord" (cable) from the machine        with the use of Bluetooth. To become interesting, games need to be challenging, and to        represent these challenges game levels were designed to simulate a track on the environment        where the robot has to follow the path, guided by the child through the tablet application to be        put on the floor, or on a table where it can simulate a track. 

During the application's experimentation process, useful data such as score of each        attempt of each level, age and gender were collected to be further analysed and used to test        the main hypothesis of this work. The data collected was both quantitative and qualitative,       

(17)

and the results are presented based on charts and observation notes. Considering that most        children have a high interest in games and smart devices, the application was expected to be        enjoyable while helping them to get in contact with the basic concepts of programming. 

This work does not focus on socio demographic variables and to avoid high variability        due to such variables the children selected to participate on the survey had to follow a        predefined profile: only children with previous experience with smartphones and tablets were        selected. As most of the studies often test children from an specific grade, usually they have        results on a particular sample with the same age approximately. In this study, a larger age        range (4 to 6 years old) was defined in order to provide comparisons between different ages.        The specific profile and the differences between ages raised important facts that are detailed        in Chapter 3. 

Chapter 2 reviews the literature to provide a historical overview and the state of the art        of the studies regarding developing programming skills on children. Chapter 3 is focused on        detailing how the game was designed and developed, how it was initially tested, which        changes were made between versions, and also presents a quantitative analysis on the data        collected as the results of the research, and a detailed report of how children interacted with        the game. Chapter 4 provides a risk assessment in children interacting with technology and        ways to mitigate those risks. Chapter 5  draw the conclusions of the work. 

   

(18)

2. State of the art 

 

Since 1980, when the personal computer was an imminent reality, studies that involve        children practicing programming skills have been made, and the need of       ​developing young    children's computational thinking skills has grown in importance over time. This chapter        supplies a historical overview of the studies related to developing digital native children's        programming skills and emphasizes the importance of promoting the development of such        competences in children nowadays. 

The present research is focused on children that are called "digital natives". According        to Bennett et al. (2008) a digital native can be defined as any person who was born immersed        in digital technology, is familiar with it and interested in it. 

A digital native child is able to easily understand and interact with digital devices as a        consequence of being constantly exposed to technology. Brazil has not yet designed an        educational system to fully satisfy the needs of a digital native student      Although some    individual initiatives are being implemented, such as programming, robotic and information        technology classes, the whole system is still outdated. In the United States a lot more effort is        being made with the advent of Scratch and Alice, but their educational system has not fully        changed (PRENSKY, 2009). 

According to Prensky (2001), the opposite of digital native, is digital immigrant,        which means a person that was born before the delivery of the personal computer, or did not        have access to it during their childhood. Prensky affirmed that all the educators from        American schools were digital immigrants at the time. Considering this was more than ten        years ago, we can assume that not all but, most of our educators are digital immigrants. 

Nowadays the gap between digital immigrants and digital natives is not as big as it        was ten years ago, because the immigrants are constantly trying to follow the technological        innovations (BENNETT, 2012). However the swiftness with which digital natives absorb        technology information is much higher and, since the creation of Logo, according to Papert        (1980) one of the main objectives of those involved in teaching programming to children is to        lower the barriers to programming, in the next section are presented some works related to        developing computational thinking skills on children, and the majority of them focus on        diminishing the difficulties of programming and making it more accessible. 

(19)

2.1 Developing computational thinking on children: basic concepts and historical                    findings  

The main concept involved in all studies of computer programming is algorithm, for        the aim of every approach is to learn or develop the ability of building algorithms.       ​The classic    concept of algorithm is traced back to the early ninth century and is attributed to        al­Khwarizmi, a philosopher from the House of Wisdom of Baghdad (Iraq nowadays), where        the greek works were translated (O'CONNOR; ROBERTSON, 1999). The algorithm concept        accepted nowadays was firstly formalized by David Hilbert on "Hilbert's Program" in 1921        (ZACH, 2009). 

David Hilbert in the first decade of the 20th century realized and stated that in order to        rigorously develop any scientific subject, an axiomatic approach is needed. This assumption        raised a series of questions about the foundations of mathematics, so Hilbert proposed to the        community the problem of developing a direct consistency proof of analysis not based on        reduction to another theory. Although this question was never answered, it raised many ideas        and contribute to the field of mathematics (ZACH, 2009). 

Later in 1936, Church and Turing proposed different approaches to formally define        algorithm, lambda calculus and the Turing's machine concept respectively. Both were able to        do it and the problem of defining algorithm was solved, many other approaches were        developed, but those became most famous in the computer science field. 

Exploring all the historical works related to Hilbert's program is not the focus of this        work, but it should provide an informal definition of algorithm enabled by Hilbert's works.        Informally, algorithm can be defined as an ordered sequence of non­ambiguous steps with a        goal to accomplish.  

With the introduction of Logo to schools in 1980, a famous application was created,        known as the Logo turtle, which was basically a game where a turtle was controlled by the        user with Logo commands. The game was popular among computer users, and then following        with the idea the floor turtle was created, a little robot connected to the computer to        materialize the virtual turtle used on Logo's programs. It enabled children to send simple        commands for the machine to execute such as: move to the sides, back and forward, all in        Logo language. Papert (1980) explained that children were able to interact with the turtle and        make it reflect their own cognitive process. In 1983 Valiant Technology started to ship their        commercial version of the floor turtle, named Valiant Turtle (Figure 1). It consisted of a       

(20)

remotely controlled version of the floor turtle which was a great improvement, and also it had        space to plug a pen or pencil on the top of it, which enabled the turtle to make drawings on the        surface. 

Figure 1: ​The Valiant Turtle 

   

Source: ​http://roamerrobot.tumblr.com, accessed in 02/12/2015. 

 

Studies of the benefits of practicing computational thinking at early ages are dated        from before the computer was widely used in education.       ​In 1984 Clements and Gullo, in order        to understand some cognitive benefits of      teaching programming skills to kindergarten          children, randomly divided two groups of first graders (6 years and eleven months old        approximately) in order to investigate the effects of computer programming on their cognitive        development and ability to describe directions, among other aspects. They pretested every        subject to assess their current status on the studied abilities. One group used computer        programming, and the other used computer assisted instruction (CAI). After the activities of        each group, they retested the subjects and although there was not a cognitive measurements        difference, the computer programming group was more creative on the second test, and        outperformed the CAI group in metacognitive tasks and similar results were found on        direction tests.  

Other approaches introduce programming to children in similar ways of how computer        science students learn, implementing simple algorithms like easy mathematical calculations,        building lists and drawing lines for example, far away from their interests. Moreover,        programming was introduced without guidance when things went wrong (debugging), and        children were not stimulated to deeply understand when things went right (CLEMENTS;        GULLO, 1984). According to Resnick (2009) those were the main reasons why some children       

(21)

could not master the syntax of the early programming languages and were the main        challenges to overcome back in the 80s. 

To motivate children to get in touch with programming, the LEGO/Logo language        was introduced in the late 80s. LEGO/Logo is a language based on Logo designed to control        machines built with Lego programmable bricks, sensors and motors. The kids were able to        build the machines, connect them with the computer, and program them with LEGO/Logo        (RESNICK; OCKO; PAPERT, 1988). 

To unleash the robots from the cables connected to the computers the Lego Company      1  introduced the programmable brick, which is a tiny computer embedded on a Lego brick.        Joining some blocks people are able to create simple electronic circuits and control motors to        automate something, for example: door opening, switching lights on/off, and also moving car        toys (RESNICK et al., 1996). 

The Lego Company is still investing in the robotics area, and nowadays we can find        all sorts of machines made from Lego bricks and motors. The company produced, out of the        programmable bricks initiative, a set of products known as LEGO Mindstorms for building      2      robots with Lego bricks and programming them with a visual language built for the product        called RCX Code, and the Tufts University also created an environment named ROBOCODE        to develop programs for LEGO Mindstorms, there are several other third parties approaches        available, including environments that supports Lua, Visual Basic and Java for example. 

According to Holmquist (2014), educational robotics can be a great tool for making        students engage and learn science, technology engineering and math (STEM) and for        elementary students toys can be used to this objective. She conducted a research with fourth        grade students (9 ­ 10 years­old) to describe the process of using robotics to facilitate the        understanding of STEM concepts. Roamer Too, a reinvention of the floor turtle, was used as        tool for the research. This version is also a second generation of the Roamer created in 1983        and mostly used in European schools at the end of the 80s. 

Both versions of the Roamer were designed to be independent robots, no need for        cables, Bluetooth devices or any other tools commonly required by other approaches. The        robots have a commands keypad on top of them that enables users to previously set up their        actions and then play. The first version (Figure 2) had only one keypad option, while the       

1 Available at http://www.lego.com/ ​accessed in 02/12/2015.  2 Available at http://mindstorms.lego.com ​accessed in 02/12/2015. 

(22)

second generation (Figure 3) is considerably smaller and provides different keypads for users        of different ages, also it can communicate with the user to help with debugging and give        advice such as remembering to shut it down. 

 Figure 2: ​Roamer educational robot 

 

Source: ​http://www.valiant­technology.com, accessed in 02/12/2015. 

 

The work of Holmquist in 2014 with fourth grade students was conducted in a way        that the children involved built a project in which the robot needed to complete using        sequential tasks, and also built the set of instructions to lead the robot to complete the tasks.        She observed a list of STEM concepts such as forces, motion, programming, designing, and        metrics units. The study was a comparison between 2 groups, one used robots, and the other        did not. The analysis was qualitative and the activities proposed to the students were the        same. The students were presented to a fictional adventure where they needed to rescue a        spaceship, and they needed to design the pathway and work together to complete the task.        Holmquist used a pretest to assess the previous STEM knowledge of each group, and then        conducted a class to teach basic instructions. The full experiment took 5 sessions lasting        between 1 and 2 hours of duration. The only difference between the two groups was that when        the group with the robot needed to program the robot and design the path, the other group        needed only to design the path. As for the results, the group with robots showed a        considerably positive difference in engagement, and the results of the post test on STEM        concepts were slightly higher in comparison with the group without robots. 

(23)

Figure 3: ​Roamer Too, Roamer's second generation 

 

Source: ​http://www.valiant­technology.com, accessed in 02/12/2015. 

Important contributions to the area involve the creation and use of digital        manipulatives, which are based on manipulative toys like cuisenaire rods and pattern blocks        with digital circuits embedded to add computational and communications capabilities to the        regular toys (RESNICK et al. 1998). Lego bricks for example are manipulatives with which        people can join blocks and create a form, like a castle or an animal, and also turn lights on and        off, make them run across the room among other features. 

Using the electronic blocks, a manipulative toy using modified LEGO blocks with        electronic systems inside, a research involving 40 children between 4 and 8 years of age        found that even the youngest children were interested in playing with the toy. Low levels of        frustration were noticed, and playing with it the children were able to build a good variety of        systems such as walking cars, flashlights activated by a touch sensor (Figure 4), and lights        that are turned on and off by a clap. Most of the children demonstrated signs of using        analogies to do it, what was identified as a good approach to facilitate their experience, use        analogies to make it easier to understand how to build systems or what systems they are able        to build (WYETH; PURCHASE, 2002).   

(24)

Figure 4: ​Flashlight with touch sensor built with electronic blocks 

 

Source: ​Wyeth and Purchase, 2002. 

According to Zuckerman et al. (2005) during their experiments involving children        working with toys designed to develop systems, in addition to practicing their creativity and        building algorithms, children can become more social while playing with each other and they        can start to understand some important concepts such as abstraction, iterativeness, modelling,        and analogizing. Zuckerman's experiments were based on what they called digital MiMs        (Montessori inspired Manipulatives). They developed two toys, SystemBlocks and        FlowBlocks (Figure 5), that enabled children to create abstract structures that through        analogies made possible to better understand real world systems and operations such as water        flow from a bathtub or probability of a storm to happen. 

Figure 5: ​FlowBlocks (left) and SystemBlocks (right) 

 

(25)

An interesting study using LEGO Mindstorms was done by Horn and Jacob in 2007.        They created a programming language for LEGO Mindstorms robots using manipulatives to        control robots, which they named Quetzal. It was considered a good approach to stimulate        children to play and discover programming, as it was relatively easy to use and easy to test        and debug a program. They used connectible tags to represent commands and form        algorithms. Although Quetzal was a good approach, they suggested that the pieces were        fragile and probably would raise problems using it inside classrooms, so they created a second        language, Tern, to control virtual robots on a computer screen, which was considered an        evolution and had better acceptance with the users. It was based on wooden blocks        representing the commands, similarly to Quetzal, but they noticed that the wooden blocks        from Tern language were easier to connect so they realized that it created a better experience.        Figure 6 shows on the left side, the wooden blocks from the Tern language and on the right        the connectible tags from Quetzal, which makes it easier to understand why Tern was        considered to give a better experience to the users, the connectible tags from Quetzal were        more delicate on the joining dots, requiring more motor coordination to use. 

Figure 6: ​Tern (left) and Quetzal (right) 

 

Source: ​Horn and Jacob, 2007. 

In 2009 an experiment was made by Horn at an exhibit at the Boston Museum of        Science, where he put people in contact with two approaches to learn programming moving        robots: the first one was through tangible manipulatives using the Tern language, and the        second one was with a visual language on a mice based application. The experiment was        focused in comparing the two approaches to understand the differences between them in some        aspects such as learnability, engageability, collaborativeness, focus on the child and other        aspects. The results shown that the first approach performed better than the second one in        most of the aspects studied, on the other ones the two approaches tied. It suggested that       

(26)

manipulatives tend to be more effective when trying to learn and practice programming than        mice­based applications (HORN et al. 2009). 

Another research made in 2009 by Thomaz and associates used LEGO Mindstorms to        introduce robotics and programming to Brazilian digitally excluded children. They developed        a software that was used as a programming interface with different levels of difficulty, so that        programming could be introduced gradually to the students. The research was performed with        third and fourth graders (8 to 10 year­old), and the children were able to "learn by doing"        robotics, as they assembled their LEGO robots. After assembling they were put into a        challenge that needed programming, and then they used the software called RoboEduc to      3    create algorithms and send the instructions to the robots (THOMAZ et al. 2009). RoboEduc        provided 5 different levels of programming, starting with visual icons, and increasing the        complexity to written commands to control a specific motor for example. Figure 7 shows        levels 1, 3 and 5 of complexity, level 1 provided a set of commands represented by icons,        level 3 let the user start to code with a simple language using some commands in native        language, and the level 5 accepted a more complex language, similar to C. The main results        observed were the great engagement showed by the children, and some feedbacks given by        the teachers involved in the process, that this approach revealed to be a great tool for digital        inclusion. 

 

Figure 7: ​RoboEduc​ ​Level 1 (left), Level 3 (center), and Level 5 (right)

 

Source: ​Thomaz et al., 2009. 

After the invention of the programmable brick, the Logo team created an innovative        approach to teach programming for kids that was Logo Blocks, unifying concepts of Logo        programming language and the idea of joining LEGO bricks. Figure 8 exemplifies how the       

(27)

coding is done with the bricks concept, at the left a commands palette and the right side was        reserved for developing. In 2006 as a project of the Lifelong Kindergarten Group at the MIT        Media Lab, Scratch was built based on the idea of Logo Blocks but adding a collaborative    4        platform to develop and share multimedia content on the internet such as games, presentations        and animations (TEMPEL,  2012). 

Figure 8: ​LogoBlocks user's interface. 

   

Source: ​Kelleher and Pausch, 2005. 

Although Scratch enables simple sprites (two dimensional figures to simulate a        character moving) setup and programming, like having a cat walking through a two        dimensional plane to parallel programming with multiple threads, the collaborative platform        is one of its key features. According to Resnick, et al. (2009) small multi­national online        groups are being formed by children from all ages, they simply like one another's project, ask        to help, and then any new ideas can come out. An example Resnick and associates retrieved        from the Scratch community was from a 15 year­old British girl that started a project of full        animated sprites, she started to encourage others to use her sprites, and then another 10        year­old British girl asked if she could help providing some backgrounds for the sprites, and        they started to collaborate, and also called themselves "Mesh Inc.", a company to build        games. After some time, a 14 year­old boy from United States asked to join Mesh Inc.       

(28)

claiming to be a good programmer; later on an Irish 11 year­old boy also asked to join saying        that he was good in side scrolling feature. This group formed by 3 different nationalities,        different skills, all available through web communication, formed an active community what        is very positive, children can interact socially, study design, programming and particular        concepts that will only be showed to them at college or equivalent.   

Scratch's community grows continuously, and by the end of 2015 more than 11        million projects will have been shared on the platform, it is used in more than 150 countries        and is translated to 40 languages, which considerably contributes to growth. Figure 9 shows        Scratch's main interface and it is possible to identify the similarities with LogoBlocks, the left        side with the commands palette, in the middle a developing area, and at the right side a        debugging area with a palette for building scenarios at the bottom. 

With some similarities to Scratch more recently in 2010 Greenfoot was released, a      5        platform that provides the practice and learning concepts of object oriented paradigm by        programming Java code to build games and other sophisticated applications (FINCHER et al.        2010). Greenfoot is a useful tool for adolescents, it provides an environment to develop        complex applications, but it is not focused on young children, and requires some experience        with writing code, more appropriate for high school students.                                 

(29)

Figure 9: ​Scratch interface 

 

Source: ​Resnick, et al. (2009) 

Scratch first contact is aimed for children with the average of 7 years old, when they        are already literate. Coding with blocks and these kinds of language are limited for people        who are able to read, for that matter an association between the Lifelong Kindergarten group        (MIT​), the DevTech Research Group at Tufts University and the Playful Invention Company        developed ScratchJr (Figure 10), a tool based on Scratch but designed for children between 5        and 7 years­old. 

According to   Flannery et al. (2013) the ScratchJr project started with experiments on        the Scratch platform, presenting it to children of different ages and analysing their interactions        with the platforms. When letting four and five year­olds of the same school arranged in        groups to have lessons of Scratch's functionalities and skills accompanied by some of their        teachers, it was possible to gather data to create ScratchJr's first interface and main features        (Figure 10).           

(30)

Figure 10: ​ScratchJr interface 

 

Source: Flannery et al. (2013) 

Following Scratch's idea, the green flag represents start, and the red block or button        means stop, in Figure 10 it is possible to identify how ScratchJr simplified the interface        providing only necessary features, at the bottom the development area, composed of a        operations palette (turn to sides, run, jump) and a lower area reserved for programming, the        left panel is a sprites pallet that enabled the user to compose the environment with some        actors, and the panel from the right options for debug were provided with the green flag and        the red button to start and stop debugging. 

This experiment enabled the creation of a prototype that was tested with children        between 5 and 7 years­old. The alpha test encountered some barriers, clearly illiteracy was a        problem, with most of the commands based on text, children that were still learning to read        had troubles with it, also some numeric operations that were not yet introduced revealed to be        problematic causing programming to be very difficult. These results led them to improve        SratchJr's interface and develop the concept of cards, visually more acceptable for younger        children and when applied in a semi­structured project was more effective on kindergarten        students.              

(31)

Figure 11: ​A kindergartener project working on a pre­made environment (left), a project based on a 

story by two kindergartners (right). 

 

Source: Flannery et al. (2013) 

While refining ScratchJr solution Flannery and her associates could collect many        examples of projects children from 4 to 7 years old were able to work on. Their activities        were more commonly divided into two subgroups, those who wanted to program actors on an        specific scenario, and those who wanted to build a scenario and then refine some of its actors        behaviours. These observations are exemplified on Figure 11, where a kindergartener        familiarized himself with the presented scene, and started to add behaviour to its actors (left),        and a couple of students who were creating a particular story and practiced programming with        some of the created actors.  

Considering ScratchJr as one of the newest and most popular solutions, with the        lowest learning curve to programming skills, the next step into this line of work is to find out        how to lower the curve even more. The next chapter introduces the game developed that tries        to lower the curve to better prepare children to interact with more complex applications. 

Figure 12 summarizes the timeline of the most relevant work and important products        related to introducing computational thinking to children starting from late 60s until more        recent works. This section provided a historical overview and also a review of the most        common approaches used nowadays for making children familiar with programming. The        number of solutions made for this kind of initiative is massive, since it started more than 40        years ago and the interest of researchers only grew since then. For this reason the next section        of this work exposes a taxonomy presented in 2005 that tries to categorize all kinds of        approaches of the area.  

 

   

(32)

Figure 12: ​Research on introducing computational thinking to children timeline 

   

2.2 A taxonomy for approaches to introduce children to programming 

An interesting survey was made by Kelleher and Pausch in 2005 categorizing most of        the attempts to ease the programming learning process. They created a taxonomy that divided        all the approaches into two large groups: Teaching systems, and Empowering systems. The        first one tries to teach programming to develop skills of the learner, and the second one is to        use programming for some reason in the future. 

Kelleher and Pausch analyzed over 70 different approaches that would make        programming easier, the taxonomy is useful to categorize new approaches, and it will be        briefly described in this section. In order to create an approach that aims to develop        computational thinking on young children, it is required to understand most of the strategies        used to make programming more accessible to people, a summary of the taxonomy is        presented in the next subsections with example of the approaches related to the categories.  

2.2.1 Teaching Mechanics of programming 

The category that probably contains the majority of the approaches towards learning to        code, believes that syntax and code style are the hardest things to learn when a person starts to        develop programs, and focuses on lowering the barriers to learning these aspects. Some        approaches are centered on how to express programs and making it easier to communicate       

(33)

with machines, lowering the complexity of a programming language, for example, is one of        the strategies. Some languages like BASIC, Blue language and JuniorJava were based on        other more complex languages, also, some programs help developers to code by making them        avoid syntax errors.     Another changing approach is to create new languages and/or       ​paradigms  that focus on how instructions can be combined and organized to create more complex        programs. There are several examples of approaches for this subgroup, like Pascal,       a language  created to be taught in classes when the only languages available were FORTRAN, COBOL        and Algol. Pascal is a structured language. Smalltalk, considered to be the first object oriented        language, is a good example of a language that introduced a new paradigm, that made easier        to create more complex programs. 

An approach, and the most relevant for this presented work, is lowering the barriers to        programming by avoiding typing and, in some cases, reading code. The initiatives of this        subgroup focuses on creating visual languages, physical objects, toys, more tangible        experiences that make easier to learn how to develop programs. These approaches are able to        lower the barriers for very young children to start developing algorithms and be able to start        developing more complex programs while still in childhood beyond the approach presented in        the next chapter, other examples are Logo Blocks, Electronic Blocks, Scratch, Alice,       ​Curlybot

 and ​Tortis .  

6 7

2.2.2 Social learning 

All the approaches of this category and its groups are focused on allowing children to        develop skills by working together. There are two ways of collaboration: side­by­side and        through network interaction, probably, all the tangible user interfaces are classified into        side­by­side social learning such as the previously cited tangible manipulatives Tern and        Quetzal, LEGO programmable bricks and AlgoBlock, a set of tangible manipulatives that        represents a physical programming language created on the mid 90s (      ​SUZUKI; KATO,    1995​). Figure 13 shows children practicing programming side­by­side using AlgoBlock.        6 A robot that can record motion and replay it, more information available at  http://tangible.media.mit.edu/project/curlybot/ accessed in 02/12/2015.  7 A device to ease the communications between young children and a robot turtle available at  http://dspace.mit.edu/handle/1721.1/6224 accessed in 02/12/2015 

(34)

Figure 13: ​Children side­by­side practicing programming with AlgoBlock 

 

Source: ​Suzuki and Kato (1995) 

 

Although the survey indicated that an approach can only be classified into one        category, Scratch was classified into Teaching mechanics of programming, but if you        consider that one of the main interesting features of the platform is the network experience,        and what children from all over the world are creating using it, maybe, it can be classified into        this category too, because it provides a network interaction between users, and the context of        programming for children may have considerably changed since 2005.  

2.2.3 Providing reasons to program 

This category focuses on providing a starting point for beginners since usually they do        not understand the complexity of programming, or how to start, or even what they can achieve        with it. Reinforcing the idea that one approach can be categorized in more than one category,        the game presented on the next chapter can be classified into the previous categories and also        in this one, because it provides tools to develop the fundamentals of programming mechanics,        it can be played with friends side­by­side and it also provides a starting point for beginners. 

Approaches of this category can be educational software or games that provide        puzzles or challenges that involves fundamental concepts of programming or actual coding to       

(35)

achieve certain goals for example on The Incredible Machine from Sierra Entertainment, the      8          user changes pipes position to provide water for houses. Children can gradually develop their        skills while facing harder challenges. Another example is       ​Robocode where programmers9      write java code to control a simulated battle robot and then test them into an arena against        other programmer's robot. 

2.2.4 Empowering Mechanics of programming 

This category is not focused on preparing users to program on general purpose        languages, but to understand the importance of programming to develop the skills to be used        in specific domains. The approaches classified into this category are basically divided into        two subgroups, the first one advocates that coding is too difficult and tries to avoid it        following certain strategies, and the second one tries to improve existing languages or ways of        interacting with existing languages. 

One strategy to avoid coding is to provide an educational software where the user can        interact with the interface and practice some programming concepts focusing on a certain        domain, Programming by rehearsal was one of the approaches of this subgroup, created in        1984, it consisted into a program that allowed users to build small systems like clocks,        chronometers only by moving visual components that communicate with others. Another        strategy is to allow users to create programs or simulations using only conditionals and        actions. ​AgentSheets created in 1991 at University of Colorado is an environment that10        allowed the user to create simulations based on conditionals and actions, Figure 14 shows a        program that simulates traffic lights built with AgentSheets. It contains 2 rules: the first one is        to every 3 seconds execute the second rule that is change color following the sequence green,        yellow, red.                8 Available at http://www.sierragamers.com/aspx/m/660032 accessed in 02/12/2015.  9 Available at http://robocode.sourceforge.net/ accessed in 02/12/2015.  10 Avalable at http://www.agentsheets.com/ accessed in 02/12/2015. 

(36)

Figure 14: ​Traffic lights built with AgentSheets 

 

Source: ​Kelleher and Pausch, 2005. 

A third strategy the user does not build any program, but changes its behaviour by        choosing its specific actions. The         ​Pinball Construction Set , for example, was created in    11        1983 and it is a software program that allows the user to create a pinball game by placing each        component on the screen, but also define the behaviour of the ball when getting in contact        with each component. 

The second subgroup focuses on creating languages that are easy to teach, and prepare        their programmers to write in languages of general purpose.       Languages designed to become        more understandable usually applied common expressions used by people on their natural       

environment.  Created in 1981 COBOL (COmmon Business Oriented Language) was       

designed to be written by programmers and read by management. Another language        categorized into this subgroup is Logo, previously defined, created for children.  

(37)

Another approach was an environment with a different way to code by replacing the        typical text editor with different tools, for example Squeak Etoys created in 1997 where the      12        novices can edit the behaviour of certain pre­made objects. Figure 15 shows a printscreen of        Squeak, and the boxes on the upper left are the places programmers can edit the code.  Figure 15: ​Squeak Etoys printscreen    Source: ​Kelleher and Pausch, 2005.    2.3 Approaches that influenced directly the game developed 

A very popular related initiative that started as a web­browser game in the last decade,        and was lately upgraded for a multi­platform approach, is       ​Light­Bot: Programming puzzles      (Figure 16), where the user guides a robot with simple commands with the goal of lighting        blue floor spaces into yellow ones. It gradually puts users in contact with some programming        core concepts such as basic algorithm development, procedure calls, and recursiveness.                 

(38)

Figure 16: ​LightBot 

   

Source: ​http://lightbot.com/ (Accessed on 02/12/2015) 

The Light­Bot initiative divided the game in two main versions, a common version        designed for public in general, and a junior version designed for children between 4 and 8        years old. Code.org , a non­profitable organization with the goal of bringing programming    13        classes to schools, recognizes Light­Bot as a good approach to introducing children to        programming concepts.  

Most of previous approaches are not as focused on developing algorithms as        Light­Bot, and not all of them, Light­Bot included, are able to get children further interested        in it, probably because of lacking a physical representation of the algorithm execution, from        the presented approaches the Valiant turtle and the Roamer are the only ones that showed        such attributes. 

The main product that inspired this work was the       ​Cubetto (Figure 17) from primo.io          initiative, which consists of a robot with a simple electronic board and a cubicle form. 

Figure 17: ​Cubetto 

 

(39)

Cubetto is controlled by a wireless wooden board (Figure 18) that provides, what        primo.io initiative calls, a physical programming interface, and with a set of command bricks,        enables children to develop and debug basic programs. It presented the main ideas of        Light­Bot and the Roamer, but it was not available to be used in this research, as will be        further discussed on the next chapter. 

Figure 18: ​A ​physical programming interface  

 

Source: ​https://www.kickstarter.com/projects/1039674461/ 

primo­teaching­programming­logic­to­children­age­4 (Accessed on 02/12/2015)   

2.4 Chapter summary 

This chapter presented a literature review collecting some historical works made on        programming for children, and more recent studies including the areas of robotics and smart        tangible devices. It also summarized a taxonomy that tries to categorize all approaches on        teaching children how to program. The next chapter introduces the approach used on this        work to introduce young children to programming, the experiment methodology and the main        findings of the research. 

     

 

Referências

Documentos relacionados

Belano d’Os detetives selvagens, ou mesmo com o próprio Bolaño. O início se dá com uma frase que indica um locomover-se de um país ao outro, apesar desta primeira frase

In this paper, we provide rigorous definitions, usage guidelines, analytical evaluation, and empirical data from ten open source projects, determining the value of six metrics

Entretanto, para alguns idosos a sexualidade não é um componente que faz parte de sua vivência atual, seja por não possuírem companheiro(a), seja por não terem interesse. A

Assim, como o cantar é um ato natural que implica uma participação total do corpo, também é de extrema importância que o professor de educação musical

O tema da migração internacional de goianos para os Estados Unidos da América, em especial para o estado da Califórnia e para a cidade de San Francisco, tem sido tema e

It is on these Augmented Reality capable devices that there may be a key that will open a door to a new experience in exploring cultural and historical sites, currently very

The school's aim is “first of all to live, and learn through the interaction with that experience” (Dewey, 2002, p. Because of that, it is important to use the resources from the