Children Learning to Code: Essential for 21st Century Human Capital A Primer for Russian Policy Makers and Practitioners Suhas D. Parandekar, Evgeny Patarakin and Gülçan Yayla © 2019 International Bank for Reconstruction and Development / The World Bank 1818 H Street NW, Washington, DC 20433 Telephone: 202-473-1000; Internet: www.worldbank.org Some rights reserved This work is a product of the staff of The World Bank with external contributions. The findings, interpretations, and conclusions expressed in this work do not necessarily reflect the views of The World Bank, its Board of Executive Directors, or the governments they represent. The World Bank does not guarantee the accuracy of the data included in this work. The boundaries, colors, denominations, and other information shown on any map in this work do not imply any judgment on the part of The World Bank concerning the legal status of any territory or the endorsement or acceptance of such boundaries. Nothing herein shall constitute or be considered to be a limitation upon or waiver of the privileges and immunities of The World Bank, all of which are specifically reserved. Rights and Permissions This work is available under the Creative Commons Attribution 3.0 IGO license (CC BY 3.0 IGO) http://creativecommons.org/licenses/by/3.0/igo/. Under the Creative Commons Attribution license, you are free to copy, distribute, transmit, and adapt this work, including for commercial purposes, under the following conditions: Attribution—Please cite the work as follows: World Bank Group. 2018.Children Learning to Code: Essential for 21st Century Human Capital. Washington, DC: World Bank. doi: 10.xxxxx/xxx-x-xxxx-xxxx- x. License: Creative Commons Attribution CC BY 3.0 IGO Translations—If you create a translation of this work, please add the following disclaimer along with the attribution: This translation was not created by The World Bank and should not be considered an official World Bank translation. The World Bank shall not be liable for any content or error in this translation. Adaptations—If you create an adaptation of this work, please add the following disclaimer along with the attribution: This is an adaptation of an original work by The World Bank. Views and opinions expressed in the adaptation are the sole responsibility of the author or authors of the adaptation and are not endorsed by The World Bank. Third-party content—The World Bank does not necessarily own each component of the content contained within the work. The World Bank therefore does not warrant that the use of any third-party-owned individual component or part contained in the work will not infringe on the rights of those third parties. The risk of claims resulting from such infringement rests solely with you. If you wish to re-use a component of the work, it is your responsibility to determine whether permission is needed for that re-use and to obtain permission from the copyright owner. Examples of components can include, but are not limited to, tables, figures, or images. All queries on rights and licenses should be addressed to the Publishing and Knowledge Division, The World Bank, 1818 H Street NW, Washington, DC 20433, USA; fax: 202-522-2625; e-mail: pubrights@worldbank.org. ISBN (paper): xxx ISSN: xxx Cover: Booth at Moscow Maker Faire, September 2017 Acknowledgments This report is based on the work done by a World Bank (WB) team with the support, encouragement and participation of the National Research University Higher School of Economics (HSE), The Sberbank’s Charity Foundation “Contribution to the Future”, The Rybakov Foundation, Projectoria NGO, Moscow City University, ROBBO, Art-Industry Association. The WB team functioned under the leadership and guidance of Andras Horvai, Country Director; Jaime Saavedra Chanduvi, Senior Director of the Education Global Practice; Keiko Miwa, Director of the Education Global Practice; Harry Patrinos, Practice Manager and Dorota Agata Nowak, Program Leader and Country Program Coordinator. The HSE team was led by Isak Froumin and Maria Dobryakova. The Sberbank’s charity foundation “Contribution to the Future” team was led by Julia Chechet. The Rybakov Foundation team was led by Boris Yarmakhov. The Projectoria NGO team was led by Vasiliy Fokin and Yakov Ostanin. The Moscow City University was led by Igor Remorenko. The Art Industry Association team was led by Natalya Mikhaylova. The WB team would also like to thank other experts in addition to those mentioned above for valuable comments and contributions to early seminars in Moscow on the topic: Aigul Ashrafullina, Kirill Barannikov, Ovanes Gabriyelyan, Sergey Grigoriev, Narine Isakhanyan, Pavel Frolov, Mikhail Molchanov, Oksana Petrova, Tatyana Pirog, Alexey Semenov, Andrey Selskiy, Ivan Simonov, Anna Trunina, Irina Yegorova, Pavel Zaikin. The WB task team was led by Suhas Parandekar, Senior Economist and Evgeny Patarakin, Consultant. The team included Sujani Eli, Program Assistant; Gulcan Yayla, Consultant; Polina Zavalina, Consultant; Elena Lipilina, Consultant; Shizuka Kunimoto, Junior Professional Officer. Contributions from peer reviewers are gratefully acknowledged: Robert Hawkins, Igor Kheyfets, Julia Liberman, Helena Rovner and Michael Trucano. The findings, interpretations, and conclusions expressed in this and all other volumes of this report are entirely those of the authors. They do not necessarily represent the views of the International Bank for Reconstruction and Development/World Bank and its affiliated organizations, or those of the Executive Directors of the World Bank or the governments they represent. i Foreword by Andras Horvai, World Bank Country Director Nearly a fifth of the 21st century is already history, and ubiquitous computing devices, artificial intelligence and robotics are set to fundamentally alter the world. Education is at the forefront of this change, both in terms of how education is delivered, and how the educated come forth into the world to deliver newer technological marvels every day. Education is being transformed by technology, and education is the foundation of new technologies. Countries which master the looming educational transformation are set to be competitive and secure for their citizens the prosperity desired by all. The Russian Federation seeks to be one of the leaders in the rapidly emerging future of education, and the World Bank is ready to support this transformation, working with a range of stakeholders from the public and private sectors. This work began as part of a partnership of the World Bank with the Higher School of Economics and the VVB “Contribution to the Future” philanthropic foundation of Sberbank. As part of this partnership, the World Bank has prepared a chapter in the forthcoming book “Key Competencies and New Literacy.” This chapter focuses on coding or computer programming as a new literacy. It explores the idea that children need to learn coding starting at a very early age, in kindergarten and primary school, just as in the recent past and certainly in the 20th century, children have learnt to read and write and to learn about numbers. During the consultations with stakeholders in the Russian Federation, and the review of experiences around the world, it became clear that there was a wealth of available material that would be beneficial to Russian policy makers and practitioners. Policy makers would be interested in some fundamental issues about the purpose of teaching coding – it is not to help generate a pipeline for the labor market, but to help children learn something called “computational thinking”, which is explained in the very first chapter. Policy makers as well as practitioners would be interested in some topics that may require a change of thinking. Students were taught in the past to focus on their own work, now the concept of “remix” has become very important – how to build creatively on work done by others, acknowledging their contribution, and sharing your own work for others to remix. Assessment in the past was all about testing to determine if the students know the right answers to the questions posed by others – with coding for computational thinking, the topic of assessment requires a major re-examination. The book you have in your hands or on the screen in front of you tries to identify some of the important questions and to provide answers when answers are available. What is really meant by literacy? Why should everyone possess a command over computational thinking, and why should the process begin at an early age? Is it the case that there will be tens of thousands of computer programmer jobs that will go abegging if children are not taught programming now? Or is it the case that children are so overloaded with learning material that it might not be kind to load even more material for them to learn? There are some who say that coding will be done in the future by computers rather than by humans – if so, what is the sense in making children learn coding now? These are the kind of questions the book raises and tries to answer. There is a rich set of references and an online annex of products for the interested researcher to follow deeper. In the past few years, there have been substantive investments in 21st century learning by the Federal Government as well as in Regions, with a prime example being the establishment of the Kvantorium network and technoparks for children and others young at heart. Private sector investments and products continue to grow, and public investment is directed towards goals of equity. This book provides interesting insights and pointers to readers interests in finding out how to make the best use of these investments. The World Bank is ready to continue its collaboration with stakeholders to deepen 21st century learning in the Russian Federation. ii Executive Summary This book explores the premise that coding is an essential 21st century skill required for all. Learning of coding does not merely mean learn the syntax, grammar and usage of a specific computer language like Python or Ruby, but the deeper concept of computational thinking. It is possible to learn aspects of computational thinking without learning coding, but coding is essential to acquire a sound understanding and knowledge of computational thinking. The book is intended to be helpful to policy makers at the Federal and Regional level who are concerned about the need for the Russian Education system to be responsive to the demands that will be faced by children growing up today into a networked, connected world of ever-increasing digitization and online and offline collaboration. The book will also be helpful to teachers and parents and other adults who are interested in understanding more about the subject of preparing children for the 21st century from both theoretical and practical perspectives. It is also useful to explain what this book is not – even though it refers to a substantive body of rich and growing academic work on the subject, it is not intended to be an academic work that would contribute new knowledge. Most of this academic work does not appear in headlines or social media feeds of non-specialists, but quite a bit of the work is very interesting and relevant. This book has tried to translate some of this knowledge in understandable terms to policy makers and practitioners, without oversimplifying complex realities. An extensive set of references including website urls will allow the interested reader to delve deeper into any of the topics. The book is organized into five chapters, which are outlined below. The first chapter “Introduction: Computational Thinking” seeks to provide an understanding of the main elements that are explored throughout the book, starting with an explanation of the meaning of computational thinking. A proposition that everyone should possess a certain skill or a body of knowledge useful for everyday life is metaphorically or colloquially referred to as a literacy. But what is really meant by literacy? Why should everyone possess a command over computational thinking, and why should the process begin at an early age? There are many advocates for computational thinking, and possibly some detractors as well. One argument used by the advocates and rightly rebutted by detractors is the idea that there is a huge upcoming demand-gap in the labor market for skilled computer programmers. The chapter explains that this is not a correct argument – rather, what makes coding essential for the 21st century goes beyond the labor market. It is likely true that every job in the future will involve a combination of human abilities matched with computational multipliers of human capabilities. But the real reason for learning coding and computational thinking is because it brings about improvement in general mental development – cognitive as well as non-cognitive, and because it is a lot of fun. Indeed, the reader in addition to reading the book, would find out for herself or himself the joy of coding by getting involved with the children in their lives. Jordan Shapiro, an acclaimed researcher on the future of childhood, affiliated with the Brookings Institution and the Sesame Workshop, talks about “joint media engagement” – the idea that parents should join with their children in playing video games and mentor children through the online social media rather than be afraid of technology. Nowhere is this advice more guaranteed to meet with success than coding with your children, or those of your friends, nephews, nieces or grandchildren. It has to be experimented to be believed! The second chapter “Flight of the Two-Headed Eagle: Five Choices Regarding Implementation” moves the discussion from the theoretical to the practical. If coding is so great, surely, many countries would have initiated policies to bring about successful engagement for children. Indeed this is quite true. Developments in the field are quite fast, so any information about what is being done is likely to get iii outdated fast. Every month, if not more frequently, there are international seminars and workshops on the topic, and the chapter only is able to provide a quick glimpse at some of the things that are being done and the issues of concern. The metaphor of the two headed eagle helps to understand the five parts – the option of coding through the curriculum or extra-curricular education being the two heads of the eagle; teachers are one of the wings and content and context of learning is the other wing and the tail is the assessment, which determines the direction where the eagle flies. The section on assessment is perhaps the only section of the paper that comes close to being academic, in the sense of presenting the frontier of knowledge rather than seeking to make academic knowledge available to policy makers and practitioners. Assessment of computational thinking is far in actual practice from reaching its potential to revolutionize not only the learning of computational thinking, but to revolutionize all learning. Any adult who has faced the question “why are you asking me this question when you already know the answer” will benefit from reading this section, even though it may not be easy to understand at a quick reading because of a series of technical material that is introduced. A research program to develop assessment could be very useful and this chapter explores some of the options. The third chapter “Multitudinous Market” provides a descriptive account of a selection of the vast number of products that are available in the marketplace today to help children learn coding and acquire computational thinking. Just like there is Google and there are other search engines, and there is Amazon and other online market places, it is quite possible that there is Scratch and there are other products. Scratch itself has such a long history and such a deep and extensive research and application program that it would be justified only to focus on Scratch. As a matter of fact, there are a number of Scratch related books available, and we extensively quote from a highly accessible book that explains the philosophy behind Scratch by Mitch Resnick “Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers and Play.” Scratch is an open source software and is available for free to any child or adult with an internet connection, or even offline. In addition to Scratch, there are other free products and those available for a fee. Most of the products are available internationally, and quite a few are available for Russian language speakers. Russian entrepreneurs have also been creative, and we include a section of products developed specifically for Russian speakers. While the purpose of this chapter is mostly by the way of reference, so that interested readers can explore the links and product information, the chapter also adapts a framework that was initially proposed by Mariana Umaschi-Bers called the “Positive Technology Development” framework. The final content oriented chapter “Creative Computing in Russia” provides an account of the development of computational thinking and coding in Russia. While the content would be common knowledge for scholars and other specialists who have studied the theme, it would likely provide fascinating insight to the general reader. Briefly, at the very inception of the computer age, there were some far sighted individuals who saw tremendous potential of the new tool in terms of empowering children with a new understanding of the world and a new way to engage and be creative. A key figure amongst these individuals was the South African born Seymour Papert and his work at the Massachusetts Institute of Technology (MIT). Papert and the co-developed Logo language, while successful by many markers, probably did not bring about the revolutionary changes to education that might have at one time seemed to be around the corner. The chapter tells the story of another giant of a figure, Andrei Ershov, who championed coding for kids in the then Soviet Union. Current federal standards are outlined in this chapter, and the story told about Scratch in Russia. With the idea of not merely theorizing and describing computational thinking, the Bank team, with the help of partners in different regions of Russia, implemented a Scratch Collab Challenge in the winter of 2017-2018. The chapter describes some of the main takeaways from this experiment. The fifth and final chapter presents “Policy Recommendations”. As can be seen even with a casual and occasional look at the contents of the book, it provides a rather wide gamut of information related to computational thinking and coding. The last chapter brings together the policy implications of the diverse range of information presented in the book. Though these are the final words of the book, it is iv hoped that they are not the final words of a conversation that needs to continue through different fora in the Russian Federation and beyond. The broader field of technology in education is one of the most dynamic fields of action and a good way to stay in touch with the development of thinking of experts at the World Bank beyond the contents of this book is at https://www.worldbank.org/en/topic/edutech. Summarized Policy Recommendations/Conclusions for Policy Makers and Practitioners 1. Development of Computational Thinking through the learning of coding needs to be included as a key educational objective for children of all ages. 2. Learning of coding needs to be done in a collaborative and project-based setting, as part of both curricular and extra-curricular education. It will be easier to implement programs through extra-curricular education. 3. The challenge with regard to teachers is to encourage a new mindset rather than the provision of training to become skilled computer professionals. This mindset transformation will be best brought about through a community of dedicated and already committed teachers. 4. Coding in the curriculum will best be included in an integrated and transversal way. There is no single coding language like Python or JavaScript that students need to learn, rather the focus should be on learning and applying computational thinking to the regular study of subjects like Physics, History, or Language. 5. Assessment for computational thinking needs to be considered in an entirely different manner from traditional assessment. Coding provides its own immediate feedback, assessment needs to provide support to the learner and the teacher about the best suited learning process. 6. Parents and other family members have enhanced opportunities to contribute to the development of CT skills – programs need to be established through extra-curricular centers such as Kvantoriums and Techno-parks to provide knowledge and skills to parents. 7. The market for computational thinking products is booming and growing, and the government can take many steps to support this market development through institutional and financial support to start-ups, as well as support universities to conduct research and provide information to prospective customers. v Table of Contents 1. INTRODUCTION: COMPUTATIONAL THINKING ............................................................................... 1 1.1. Why should we teach coding to children? Part 1: The Individual .............................................................................. 1 1.1.1. Definition of computational thinking ........................................................................................................................ 1 1.1.2. The relationship between coding and computational thinking ................................................................................ 2 1.1.3. Learning “smart thinking” whether or not others have labeled you “smart” ........................................................... 3 1.2. Why should we teach coding to children? Part 2: The Collaborative ......................................................................... 7 1.2.1. From Code to Applications ........................................................................................................................................ 8 1.2.2. From Tools to Communities ...................................................................................................................................... 8 1.2.3. From Scratch to Remix .............................................................................................................................................. 8 1.2.4. From Screens to Tangibles ........................................................................................................................................ 9 1.3. Is coding the new literacy? ........................................................................................................................................ 9 1.3.1. What exactly is “literacy”? ........................................................................................................................................ 9 1.3.2. Literacy as a generalizable skill ............................................................................................................................... 10 1.3.3. Computational literacy ............................................................................................................................................ 11 1.1.5. The future of computational literacy ...................................................................................................................... 13 Take-aways from Chapter 1: Introduction: Computational Thinking .............................................................................. 14 2. FLIGHT OF THE TWO-HEADED EAGLE: FIVE CHOICES REGARDING IMPLEMENTATION .17 2.1. Head One: Coding integrated into the curriculum ................................................................................................... 17 2.1.1. Countries that have integrated coding into school curriculum............................................................................... 17 2.1.2. Countries that are exploring integration of coding into the school curriculum ...................................................... 22 2.1.3. Level of curriculum integration ............................................................................................................................... 22 2.2. Head Two: Coding through extra-curricular education ............................................................................................ 26 2.2.1. Structure vs. Agency in coding education ............................................................................................................... 26 2.2.2. From extra-curricular activities to regular school ................................................................................................... 28 2.2.3. Types of extra-curricular coding activities around the world ................................................................................. 29 2.3 Left Wing of the Eagle: Teacher professional development choices ......................................................................... 31 2.3.1 Specialist or Generalist teachers .............................................................................................................................. 31 2.3.2 In-service or pre-service training ............................................................................................................................. 32 2.3.3 Teacher mindsets as on obstacle and an opportunity ............................................................................................. 33 2.3.4 Online resources, including peer-to-peer support systems ..................................................................................... 34 2.4 Right Wing of the Eagle: Content for coding education ............................................................................................ 35 2.4.1 Platform and Activities ............................................................................................................................................. 35 2.4.2 Inclusion for Gender and Disability .......................................................................................................................... 36 2.4.3 Importance of Human Resources, Facilities and Equipment ................................................................................... 38 2.5: Tail of the Eagle: Assessment of student knowledge of computational thinking ..................................................... 40 2.5.1 Key considerations regarding assessment of computational thinking..................................................................... 40 2.5.2 An Automated Assessment tool for Computational Thinking: Dr. Scratch .............................................................. 41 2.5.3 Future direction of Assessment: Flow Zone of AgentSheets.................................................................................... 43 2.5.4 Measuring Collaboration and Teamwork Formation ............................................................................................... 46 Take-aways from Chapter 2: Five choices regarding implementation ............................................................................ 49 3. MULTITUDINOUS MARKET ...................................................................................................................51 3.1. Impact of Coding on Positive Youth Development .................................................................................................. 51 vi 3.1.1. Positive Technology Development Framework....................................................................................................... 51 3.1.2 Content creation and competence .......................................................................................................................... 52 3.1.3 Creativity and confidence......................................................................................................................................... 53 3.1.4 Choices of Conduct and Character ........................................................................................................................... 54 3.1.5 Communication and Connection .............................................................................................................................. 54 3.1.6 Collaboration and Caring .......................................................................................................................................... 55 3.1.7 Community-building and Contribution .................................................................................................................... 56 3.2 List of programming tools ........................................................................................................................................ 57 3.3. Five Dimensions That Matter: A Guide for the Perplexed........................................................................................ 66 3.3.1. Dimension 1: Type of Programming Language ....................................................................................................... 67 3.3.2. Dimension 2: Content creation (Purpose of the tool) ............................................................................................. 71 3.3.3. Dimension 3: Remix and Community ...................................................................................................................... 76 3.3.4. Dimension 4: Teacher / Parent support .................................................................................................................. 80 3.3.5. Dimension 5: Special Considerations ...................................................................................................................... 82 3.4. Product Reference Guide ........................................................................................................................................ 84 3.4.1 Representation of Multitudinous Market using repertory grid ............................................................................... 85 Take-aways from Chapter 3: Multitudinous Market ...................................................................................................... 87 4. CREATIVE COMPUTING IN RUSSIA......................................................................................................89 4.1 Early origins of constructionism in the Russian Federation ...................................................................................... 89 4.1.1. Logo Turtle as an actor for student’s control .......................................................................................................... 90 4.2 Informatics: Deployment of Federal Standards ........................................................................................................ 94 4.2.1 Federal Education Standards pertaining to Information and Communication Technology ..................................... 95 4.2.2 Teacher preparation ................................................................................................................................................. 96 4.3 Scratch ..................................................................................................................................................................... 97 4.3.1 Collaboration Tools in the Scratch Environment...................................................................................................... 97 4.3.2 History of Scratchers’ Network in Russia ................................................................................................................. 98 4.3.3 Intel Corporation and Google (Alphabet Corporation) Initiatives .......................................................................... 101 4.4. Scratch Collab 2018 ............................................................................................................................................... 105 4.4.1. Remixing of learning activities .............................................................................................................................. 105 4.4.2. Assessment of Scratch projects............................................................................................................................. 108 4.4.3 Discussion of Learning Activities with Activity Organizers ..................................................................................... 111 Take-aways from Chapter 4: Introduction: Creative Computing in Russia .................................................................... 117 5. POLICY RECOMMENDATIONS ............................................................................................................ 119 REFERENCES ................................................................................................................................................ 127 ANNEXES........................................................................................................................................................ 138 Annex 1: Computing Attitude Survey ........................................................................................................................... 138 Appendix 2a: Positive Technological Development (PTD) Engagement Checklist: Children/Child ............................. 140 Appendix 2a: Positive Technological Development (PTD) Engagement Checklist: Environment and Facilitator ........... 144 Appendix 3: Database of Tools for Children to Learn Programming ............................................................................. 148 vii viii In many schools today, the phrase "computer-aided instruction" means making the computer teach the child. One might say the computer is being used to program the child. In my vision, the child programs the computer and, in doing so, both acquires a sense of mastery over a piece of the most modern and powerful technology and establishes an intimate contact with some of the deepest ideas from science, from mathematics, and from the art of intellectual model building. Seymour Papert in “Mindstorms” 1. Introduction: Computational Thinking Computational literacy, coding, programming, and computational thinking are some of the terms that have become very popular in schools, at homes and in policy discussions. Leaders from around the world have spoken in favor of teaching coding from an early age. Although there is a significant push for coding education in schools, many teachers, parents and even policymakers are not clear about why coding is considered the new literacy of 21st century and if it really benefits the children’s learning apart from possibly preparing them for jobs in the future. This chapter introduces certain fundamental issues raised in this book. The chapter first clarifies that learning coding is not an end by itself. Rather coding is a pathway to computational thinking and computational literacy. These may be popular terms but perhaps not well understood by non-specialists. The chapter seeks to explain the meaning and importance of terms such as computational thinking that have quite precise meanings. The essential fact is that we are living in a world where human abilities and computer abilities are becoming intertwined at a rapidly accelerating pace and computational thinking ability will be needed by all. Coding enhances the ability of humans to think in a logical manner, to make cognitive leaps of imagination and to solve problems. One can say that coding helps everyone to think smarter. The second section of this chapter then discusses how coding is related to the so called non-cognitive or socio-emotional skills and the 21st century imperative of collaboration to solve challenges. This section goes beyond the theme of skills to pose questions about purpose and motivation for learning. The final section of the chapter addressed the issue of why coding is considered the new literacy, and whether is it reasonably certain that everyone will soon be expected to know coding as it is now with reading and writing. 1.1. Why should we teach coding to children? Part 1: The Individual The idea of that everyone must learn programming suggests a corollary or sequential question – when should they start learning? The gathering consensus is that the appropriate age to start is in childhood, preferably early childhood, when habits of the mind first begin to form. In this section of the chapter, we move beyond the concept of computational literacy, to look at coding from a broader angle regarding the benefits of cognition and meta-cognition (thinking about thinking). To understand why this must be so, we first need to understand the important concept of computational thinking. 1.1.1. Definition of computational thinking " Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing, and arithmetic, we should add computational thinking to every child's analytical ability." - Jeannette M. Wing (Wing 2006) Though we use the terms coding and programming inter-changeably, both are specific applications of computational thinking (CT). CT can be defined as deploying a set of skills that help set up a problem in such a way that a computer can help us solve it. Computational thinking has four main pillars as summarized in Figure 1.1 (Krauss and Prottsman 2016). 1 Pattern Decomposition Matching Breaking a problem down into Finding similarities smaller pieces between pieces Abstraction Automation Pulling out specific Plugging pieces differences to into an algorithm make one solution to help with a work for multiple result problems Figure 1.1: Four main pillars of computational thinking Coding can be defined as “the process of developing and implementing various sets of instructions to enable a computer to perform a certain task, solve problems, and provide human inter-activity” (Balanskat and Engelhardt 2014). Coding can thus be considered as the implementation of CT, or as a means by which CT is developed. The constituent tasks of CT like decomposition and pattern matching have general applicability beyond the programming of a computer. Indeed, they constitute building blocks of creativity and problem solving, and a step even more important than problem solving, which is problem formulation. 1.1.2. The relationship between coding and computational thinking In actual practice, the definition of and relationship between terms such as CT, coding, computer science and digital literacy vary between and within countries. However, there is a consensus that coding is a tool to improve CT; while CT involves a wider range of abilities such as problem analysis and algorithmic thinking. In this respect, coding is a constituent of CT, making CT concepts concrete and can thus become a tool for learning. For example, the processes of problem analysis and problem decomposition precede coding. Coding is only one of many ways to learn CT, however it can be considered as the most powerful one (Kafai and Burke 2014). 2 Figure 1.2: Definitions of and relationship between coding and computational thinking Throughout this book, we use the shorthand term ‘coding’ to mean ‘coding to develop or deepen computational thinking’. The generalized usage is simply due to convenience. Coding is a more commonly used term as compared to programming in the contexts referred to in this book. Programming is used more often to professional contexts, such as code written by professional programmers for various applications from Aircraft Engineering to Zygotene Imaging. 1.1.3. Learning “smart thinking” whether or not others have labeled you “smart” Coding is related to computational thinking, and by getting children to learn coding we really want them to develop computational thinking ability. It is this ability that will allow children to acquire fluency in the language of code, in a world where coding will be considered a literacy. But it is not only the fear of being considered illiterate that motivates a concern for children to learn coding. More fundamental is a concern with children’s development, articulated many decades ago by Seymour Papert, who came up with the idea of constructionism. Papert viewed children as active constructors rather than passive recipients of knowledge. Papert carried forward the ideas of Jean Piaget, who is famous as the inventor of the pedagogy of constructivism – the notion that children learn best when they draw associations from what they observe and reach their own conclusions, rather than being spoon-fed what they are expected to think of the world. Constructionism shares constructivism's connotation of learning as `building knowledge structures' irrespective of the circumstances of the learning. It then adds that this happens especially felicitously in a context where the learner is consciously engaged in constructing a public entity, whether it's a sandcastle or a theory of the universe... (Papert and Harel 1991) Constructionism brings together two types of construction: Children constructing things in the world and constructing new ideas in their heads. These two types of construction create a never-ending virtuous cycle of learning, because as the child has new ideas, s/he constructs new things in the world. Coding for children brings these ideas into life. It started with Logo programming language co-designed in 1967 by Papert, which was the first computer programming language for children, where children used coding primarily to control the motions of a robotic “turtle”. Since Logo, many new programming environments have been designed to help children construct things in real world and in their minds. 3 Today, one of the most well-known coding environments is Scratch. The excitement of a 12-year-old Scratch user exemplifies what Seymour Papert meant by constructionism: With Scratch, I am always coming up with my own ideas for project – and working on problems that I am interested in. It’s exciting to find solutions to problems, but it’s even more exciting to find solutions to problems that I’ve come up with myself. That’s a lot more motivational. -A 12-year-old Scratch community member, quoted in (Resnick 2017, p. 58) Coding helps children to learn how to think in a disciplined manner, to reflect about that thinking, and to learn together with others. The aspect of learning together with others, or social constructivism, following the teaching of Lev Vygotsky, is discussed in the next section. In this section, we deal with the basics of thinking. While some children may be adept at thinking abstract thoughts, others struggle with abstraction, and abstraction is essential to be able to think of more complicated things, given biological limitations on the size of working memory. A line of code (or more recently, a colored or shaped block as in Scratch) on a computer screen is a physical representation or manifestation of a thought – “move forward 10 spaces”. Seeing a thought on the screen helps in the manipulation of that thought, for instance, sequencing the thought with another one, “turn right”. Children start realizing that algorithms can be seen everywhere – how to bake cookies or in brushing one’s teeth every morning. Coding provides an easy access to meta-cognition or to think about thinking. It allows the child to know whether the turn of events will get the Scratch character (called a Sprite) to overcome the obstacles and get from one part of the maze to another “when left arrow clicked”. What makes the activity of coding so powerful is that coding taps into primal motivations to make sense of the world. Thinking requires energy and effort, and we only do it willingly when the activity is intrinsically engaging and fun. The real time feedback of most coding provides a thrill that acts as tonic for learning and supports the development of self-control. Before we turn to the topic of the kinds of thinking that is helped by coding, we briefly mention the possibility of learning computer programming without constructionism. Approaches to learning computational thinking through coding can be traced back to constructionism and the research and product development initiated by Seymour Papert at the Massachusetts Institute of Technology. However, this does not mean to suggest that the constructionist approach is the only way to learn computer programming. For adult learners who are learning computer programming for the first time, or for youth or adults who seek to learn programming with an immediate vocational purpose, projects with games, animation and music may not necessarily be engaging. Such learners can grapple individually with the rules of syntax to learn languages in standard use, such as Python or C++. Problem formulation and problem-solving skills In his engaging book “Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers and Play”, Mitchel Resnick of MIT describes a visit to the Brightworks school in the Mission District of San Francisco (Resnick 2017, pp. 51–54). The project-based approach to learning practiced at Brightworks is in stark contrast to the traditional classroom organization. Resnick provides examples of how students in most schools face a stream of problems that they are taught how to solve. Depending on age group, students may be provided instructions regarding adding fractions or changing the tense of a verb. They may also be learning or memorizing facts and not solving problems at all. “But when students solve sets of disconnected problems, they often end up with disconnected knowledge, without an understanding of they were learning it or how to apply it in new situations.” (Resnick 2017, p. 53). When children learn coding as part of a project they have devised themselves, the entire scenario about children approaching problems is different. In contrast to the fragmented learning in most traditional 4 settings, as described by Resnick, children working on coding within projects they are constructing knowledge for themselves. They are doing so in a way that has a lasting effect on the way they go about thinking. It is not possible to make a project which does not have a goal and setting your own goal, or a shared team goal is very important for motivation and enthusiasm. Coding helps the student to persevere with a problem because of this motivation. When the student realizes that she is missing a skill that she needs to know to solve a problem and makes a self-driven effort to acquire that skill, she is learning how to learn. The connections of elements of knowledge come about naturally, and the student knows where a piece of knowledge fits into the scheme of things. Of course, the teacher has a role to facilitate and guide the process of student enquiry, and to help the student learn to figure out problem solving strategies that work for him or her, but the process is led by the student. Creative thinking The creative nature of programming does not require special proof. Indeed, I may assert that, in its creative nature, programming goes a little further than most other professions, and comes close to mathematics and creative writing. In the majority of other professions, even if we put the tiger in the tank, we only tame the forces of nature. We simply use physical and biological phenomena, hopefully in a cleverly economical way, but without understanding their innermost principles. In programming, however, we go, in a certain sense, to the root. One of the theses of modern epistemology states that “we understand what we are able to program”. Andrei P. Ershov (Ershov 1981) It may not be possible to teach creativity to students in the manner of a directive “be creative”, but students can be provided the conditions and the stimuli to experiment and develop and deepen their creativity. Pablo Picasso is reported to have said that every child is an artist, but the problem is to remain an artist when one grows up. Coding helps the artist in every child to manifest itself. The reason it does so is because there is a strong resemblance between coding and play, indeed coding can be considered as a prototypical form of play. As explained by coder and play specialist Ian Bogost, “The power of games lies not in their capability to deliver rewards or enjoyment, but in the structured constraint of their design, which opens up abundant possible spaces of play” (Bogost 2016). Coding provides challenges or barriers to the coder, which he or she then has to overcome. Overcoming these challenges is the magic referred to by the visionary computer scientist Andrei Ershov in the quotation above. Although young users in many countries spend significant amount of time-consuming information on the internet, interacting with computers, and playing games, until recently most children did not spend a lot of time in creating their own artifacts, games, or art. The proliferation of programming tools for children, such as Scratch, Alice or Kodu, coupled with a realization of parents and educators about the ideas synthesized in this book, have started to change the ‘consumer’ model of computer interaction. Using these tools, children create a diverse selection of games, animations, stories, and art (Resnick 2017). Research indicates that creative computing activities may be especially beneficial for at-risk youth or those who may have low self-esteem associated with reasons such as ethnic background or low socio- economic status and poor academic performance. In an interesting experimental evaluation carried out in Israel, researchers tested the effect of two different kinds of videos on the creativity of novice Scratch programmers aged 14-17 years (Blau and Benolol 2016). The experimental group saw a video lecture about brain plasticity and the malleability of intelligence. The control group saw a neutral video about brain function. After watching these videos, both groups watched training videos to use Scratch and then made their own Scratch projects which were rated by external judges. Scratch projects from control and experimental groups were judged on four parameters including the clarity of the idea, the quality of programming, creativity and originality and aesthetics of design. The study found that the Scratch 5 projects of at-risk students from the experimental group were rated better on the creativity and aesthetics parameters. Learning the importance and usefulness of failure It has afforded her a bravery to try new things. Even if the first result is failure, that failure is only a clue to an alternate path that should be taken instead of an end to the quest, and there are multiple paths that could lead to the same destination, not always a ‘right’ and ‘wrong’ way. A mother’s reflection on her daughter’s experience with Scratch, quoted in (Resnick 2017, p. 148) In learning to write code, children learn to revise their own thinking when programs do not run as expected. Learning to program, learning to understand new ideas and learning to learn are all connected. Compared to other learning activities, coding is a more forgiving process, which makes children comfortable with making mistakes and learning from them. When coding, a child can easily undo what s/he did and recover from mistakes, make adjustments and try something new. The mistakes in coding are generally called “bugs” rather than “failures”. An important process in coding is to learn “debugging”, that is identifying a problem and trying several methods to solve it (Resnick 2017). Seymour Papert and Sherry Turkle defined this notion as learners constructing their own learning by arranging and rearranging a set of materials rather than simply receiving content provided by a teacher (Turkle and Papert 1992). Learning through “debugging” has even begun to be used in some “Debug It” challenges in Scratch. These challenges include an error and require the user to find a solution (Kafai and Burke 2014). Traditional education systems do not support failure very much – failure to answer the teacher’s questions about the atomic number of selenium is bad – and there is not any learning or recovery from such a failure. However, when the code of the jury rigged door to your cat feeder fails and the door does not open when the sensor detects the cat, you try to figure out systematically what went wrong – you find that the code you wrote had an error in sensor calibration – that is one failure you will likely be able to avoid in your next project. This can be termed as anti-fragile learning, with every failure, your understanding and skills become better and you can tackle a more complicated problem (Taleb 2012). Seeking information and learning how to find help and resources are important activities in the 21st century job market and everyday life. The debugging process that helps children in the journey from having an idea to sharing a project provides opportunities for modeling useful lifelong learning habits. Children can apply what they learn through debugging into all domains of their lives later (Marina Umaschi Bers 2017). Alternatives to coding to enhance cognitive and non-cognitive skills A recent meta-analysis examined over 100 experimental and quasi-experimental studies on the impact of learning coding (Scherer, Siddiq, and Sánchez Viveros 2018). The study analyzed the impact on creativity, reasoning and mathematical skills in addition to the impact on coding skills. To compare between the impact of different kinds of interventions and across studies of different sample sizes, the literature typically uses a measure called the “effect size”. The effect size is simply the difference in outcomes between an intervention or experimental group and a control group, expressed in standard deviation units. It is important to describe differences in standard deviation units because a high difference in the context of high underlying variance may not be of any economic or policy significance. A negative effect size would result when an intervention results in lower outcomes as compared to a control group. An effect size of zero means neither a positive or negative impact. In the education 6 literature, while effect sizes of +0.10 or more are regarded as being statistically significant, effect sizes of 0.40 or more are considered as notable in having potential to accelerate student achievement. 1 The Scherer et al, study indicates that learning coding has a standardized effect size of +0.75 for coding skills, +0.73 for creativity, +0.57 for mathematical skills and +0.37 for reasoning skills. Another recent study supplements this analysis qualitatively by looking closely at the impact reported in 10 recent studies (Popat and Starkey 2019). This study indicates that mathematical skills are the highest ranked in terms of impact of learning coding, but the study also reports positive findings regarding social skills, self-management and critical thinking. Clearly, if improving both cognitive and non-cognitive skills were an educational objective, without regard to computational thinking, there have been many programs over the years that predate computers in classrooms. An impact evaluation study of the internationally acclaimed Escuela Nueva or New School program, based on participative and collaborative learning, reported an effect size of less than 0.20 on cognitive skills and 0.40 on non- cognitive skills (Parandekar et al. 2017). John Hattie’s compendium, cited above, provides an effect size of 0.34 for ‘collaborative learning’ and ‘whole school improvement programs’ with an effect size of 0.28. 1.2. Why should we teach coding to children? Part 2: The Collaborative In this section, we examine the arguments in favor of coding as a way to learn how to collaborate, to understand how the world works, and to tap motivation for learning! As long as programming is seen only as a form of thinking and engaging the individual mind and not equally as a form of participation and expression, we will fail to benefit from learning and teaching code in today’s networked communities. - Yasmin B. Kafai and Quinn Burke (Kafai and Burke 2014) Although improving computational thinking skills of children is a key contribution of coding, narrowing down the potential of coding only to improving problem solving and other skills would not provide a full picture to us. On the contrary, coding allows students to unleash their creative potential, to express themselves and to participate in a community that they can both contribute into and learn from – it is a kind of becoming. Education systems down to this date carry a heavy weight of their origins in the industrial revolution – after all, universal education began to provide compliant, disciplined and punctual workers for factories. Perhaps this is a reason that play is under-appreciated in most human societies as a vehicle for learning. In their book “Connected Code: Why Children Need to Learn Programming”, Yasmin Kafai and Quinn Burke lay out four broad trends regarding creative computing for children. These four trends, summarized below, form a road map regarding the potential terrain for learning coding. An important aspect of all these trends is that they all have in common two aspects - one is the idea of personal expression or individual identity through programs written by children, for instance, record your own voice or your own music played in a Scratch story. The second is the high or intense level of intrinsic motivation that is often observed in children engaged in programming projects – in this case adults or grown-up don’t have to worry about how to get children to do something that is good for them, children are just enjoying themselves and no external motivation is required. Coding is not the only modern way that today’s connected children can access the creative power of collaboration and prepare children for the post-industrial world. Video games such as Fortnite and Minecraft have quite literally hundreds of millions of young fans around the world. In “The New 1 https://www.visiblelearningplus.com/content/research-john-hattie 7 Childhood: Raising Kids to Thrive in a Connected World”, Jordan Shapiro outlines how even playing video games (as opposed to coding or making new games) is beneficial to children (Shapiro 2019). While many children will have fun creating their own video games, even just playing games like Mortal Kombat and Frogger develops thinking abilities that children will need to thrive in a connected world, according to Shapiro. He cites Ian Bogost’s description of ‘procedural rhetoric’ - the idea that the limitations or rules imposed by video games generate capabilities to “author arguments through processes” (I. Bogost 2010). 2 1.2.1. From Code to Applications Computational participation is solving problems with others, designing intuitive systems for and with others, and learning about the cultural and social nature of human behavior through the concepts, practices, and perspectives of computer science. (Kafai and Burke 2014) Kafai and Burke introduce the term ‘computational participation’ to denote engagement beyond computational thinking for individuals. Having kids work in groups and remix one other’s code encourages computational participation. The authors relate an account of a fascinating research study that goes back some thirty years that sought to encourage fourth grade children to develop instructional software to teach fractions to third grade students. The researchers found the creative aspect of the exercise to be the most important. Authenticity of experience in the classroom is very important, meaning that learning is related to real life problems. For this purpose, it is important that the coding tasks are not merely to solve some puzzle, but they have a purpose, or an ‘application’. It is not playing games for learning but making games for learning. Further, the teacher should not be the only audience for the application, the wider networked audience now available through the internet makes the authenticity more accessible now. 1.2.2. From Tools to Communities By making programming a community effort, educators can turn schools into collaborative environments. When children code games, stories, or art, these should not be considered only as objects- to-think-with, but as objects-to-share-with that connect children with each other. The online communities created around programming tools such as Scratch or Kodu can be done in physical classrooms and clubs where youth share their designs with and learn from each other. There is a key shift in the movement from tools to communities that affects the role of the teacher. When learning coding meant learning a language as a tool, teachers would naturally learn the tools first and develop mastery over them before they could start teaching. This placed a high barrier on who could teach coding, typically only ICT or computer science teachers, who typically were small in number and not at all easy to scale up. The dependence on specialist teachers prevented the development and popularity of coding. With the movement towards communities and the attendant abundance of learning resources, both student and teacher just need to tap into the network or connect to the community. The teacher need not be the smartest person in the classroom, the one with all the answers. 1.2.3. From Scratch to Remix Kafai and Burke argue that learning coding by first learning basics of syntax and grammar, starting from the basics as it were, would be rather boring. It would be like learning to write fiction in a language arts class by first being taught about nouns, verbs and modifiers. When you open a Scratch game or animation that a Scratcher has shared through the platform, there is a prominent invitation – Lk 2 In this book we focus on coding activities rather than on the immensely popular pastime of videogaming. For many interesting ways to do both, many ideas have been developed regarding Minecraft (Glendening 2016). 8 Inside! The model is Use  Modify  Create: the student first uses the game or animation or app to get a feel for its functionalities and purpose; then experiments with the open source code to tweak or modify the behavior. This second step is very important as a way of learning quickly how an algorithm or set of routines works in practice. Finally, the student may be creating his or her own project that is a remix of various other projects with none or some or many self-generated elements. Re-mix as a method fits perfectly well in a modern professional environment for coding which is built around open-source and norms of conducts that encourage sharing. The reputation of professional coders is often built through the code they provide in the form of open source packages on open-source platforms. StackExchange.com, one of the most popular websites for coders uses an elaborate method where the quality and quantity of your shared contributions are rated by those who seek help. The practices associated with re-mixing are novel for the traditional model, because in the pre-digital world, copying was regarded as synonymous with cheating, and students were encouraged to keep quite in class and not talk to one another. 1.2.4. From Screens to Tangibles The fourth trend identified by Kafai and Burke concerns the increasing popularity of creative activities where coding is related to the creation of tangible products. Here the idea of low floors, wide walls and high ceilings finds clear manifestation. With platforms such as Makeymakey targeted to the youngest of makers, the entry level is easily accessible (low floors). Robotics is only one application and the wide walls refer to the different kinds of maker projects that are becoming increasingly popular. Kafai and Burke draw attention to electronic textiles, and creative projects with wearable technology. One easy to use kit is the Lilypad Arduino, about the size of a badge, that can be sewn on and programmed. The connection of embroidery related activities and participation without competition provides for useful reflections regarding gender and computing. 1.3. Is coding the new literacy? We start teaching kids to read and write in early childhood. However, we don’t expect every child to grow into a professional writer. I believe textual literacy is both an important skill and intellectual tool for everyone. So it is with coding. I do not advocate for all children to grow into software engineers and programmers, but I want them to have computational literacy, so they can become producers, not only consumers, of digital artifacts. - Marina Umaschi Bers (Marina Umaschi Bers 2017) Research on literacy studies, described in rich detail by Annette Vee, explains how it came about historically that everyone is now expected to read and write text. She further describes how it is possible to discern a similar trend regarding coding - the idea that everyone will be expected to possess coding ability in the 21st century. 3 While space limitations rule out providing a detailed exposition of the new literacy studies and other research described by Vee, some of the main ideas are sought to be captured here. 1.3.1. What exactly is “literacy”? Literacy is defined by Annette Vee as “a human facility that is necessary for creative, communicative and rhetorical purposes for everyday life”. People today need reading and writing literacy to understand 3 This sections is based mostly on the ideas contained in Annette Vee’s book Coding Literacy: How Computer Programming is Changing Writing, (Vee 2017). In the book, Vee eloquently describes how the theoretical tools of literacy studies can be used to understand programming in its historical, social and conceptual contexts. A shorter version of her elaborate argumentation and empirical evidence can be found at http://www.annettevee.com/blog/2013/12/11/is-coding-the-new- literacy-everyone-should-learn-moving-beyond-yes-or-no/. 9 and navigate the world. It is the main infrastructure for almost any society’s communication practices as long as the society is not isolated from rest of the world. Although literacy can be used colloquially to refer to different skill sets such as “design literacy”, “quantitative literacy” or “video game literacy”, literacy is a powerful term that implies that the skill is necessary or indispensable for everyday life. As long as a skill is only a specialized skill that only a group of people can use, that skill is far from being considered as literacy. Therefore, “literacy” corresponds to a generalized skill, “reading and writing text”, rather than a specialized skill, accessible only for a few. 1.3.2. Literacy as a generalizable skill The extent to which societies need reading and writing text to communicate with their members determines whether literacy is a generalized skill or not. For instance, in some isolated hunter-gatherer societies, the ability to interpret texts may not be a literacy because it is not expected from individuals in that society. Therefore, determining whether a skill is a literacy or not depends on its societal context.4 Figure 1.3: Specialized skill vs. generalizable skill Understanding the history of literacy can help us figure out how other kinds of skill sets, such as computer programming, can function in society and whether they can be considered as new literacies now or in the future. According to Vee, text literacy emerged from centralized government initiatives which later expanded to other large institutions and businesses, and finally prevailed in the everyday life of citizens. She describes two phases for history of literacy: Phase 1: Texts becoming a part of infrastructure Texts became central to people’s lives because they aided developing institutions (government bureaucracy, written contract law and the enterprise of publishing) to scale up and accommodate population and information growth. The first large-scale adoption of text that is well documented occurred in 11th century England, to fulfill the information need of Norman invaders who became the new rulers of England. Based on the order of King William I, a detailed census, known as the Domesday Book, was produced. The Domesday Book is the earliest public record and the foundation document of the national archives of England. After this census initiative of central government, local provinces started to adopt writing towards the 13th century. Text was used as a means to create laws and policies. Especially land laws started to take the form of written texts instead of relying on personal witnesses, requiring individuals to sign their names. 4 Vee presents ideas stemming from a large and varied literature regarding literacy, please refer to her book for details regarding the original sources from literacy studies and the related literature in that field. 10 Phase 2: Text becoming an inseparable part of everyday life Starting from the 19th century, mass literacy campaigns helped writing and reading become a common skill in society. People needed to have literacy skills to be able to benefit from information presented in newspapers that catalogued both local and global events, almanacs that provided advice to farmers, and accounts that kept track of debts. Institutions such as the postal service, written tax bills, public signage and mass education were built on the assumption that a majority of citizens could read and write. As a result, as more people learned how to read and write, more people were expected to be literate. This expectancy is so valid today that managing our daily lives became inseparable from text literacy. 1.3.3. Computational literacy “Coding is the literacy of today and it helps practice 21st century skills such as problem solving, team work and analytical thinking.” - The European Commission 5 “Coding is the new literacy. To thrive in tomorrow’s society, young people must learn to design, create and express themselves with digital technologies.” - Mitchel Resnick (Resnick 2017) - “Literacy is infrastructural and absolutely essential to education, to creating people who are knowledgeable and competent. Infrastructural means that literacy is not just a result of the educational process, but a driving force within it. Every class has textbook, not only English class or other literacy- oriented classes. If you don't read well enough or don't have basic mathematics literacy, you can't profit from history, science, or mathematics textbooks. Computers can be the technical foundation of a new and dramatically enhanced literacy, which will act in many ways like current literacy and which will have penetration and depth of influence comparable to what we have already experienced in coming to achieve a mass, text-based literacy.” - Andrea DiSessa (DiSessa 2001) Today, people all around the world can communicate with each other instantly, no matter how big the distance is. Computer code is the infrastructure that makes contemporary communication among people possible, through word processing, emails, social networking and many other means. Apart from making communication possible, computer code has entered all aspects of our lives, from managing our health status, finding employment prospects, even a new citizenship opportunity (Vee 2017). For instance, Estonia became the first country in the world developing an E-residency program that allows people anywhere in the world apply for a government-issued digital ID from Estonia. In this way, it created “a digital nation for global citizens” 6. As computer programming becomes more important for the everyday life of people and easier to learn and use by many people, we can expect fluency in using the language of computers and interacting with them to become widespread. This argument leads us to the term ‘computational literacy’, defined by Annette Vee as “the combination of abilities to break a complex process down into small procedures and then express - or “write” - those procedures using code that may be “read” by a non-human entity such as a computer.” 5 https://ec.europa.eu/digital-single-market/en/coding-21st-century-skill 6 https://e-resident.gov.ee/ 11 History of computational literacy: The historical dynamics behind adaptation of computers in daily life resembles the history of text literacy. We can detect for computational literacy a similar sequence of phases as described above for text literacy. One noticeable and remarkable difference is that a process that covered centuries in the earlier example, takes place in the new example over decades and even smaller periods. Phase 1: Computers becoming a part of infrastructure The first phase of history of computational literacy resembles that of text literacy: Both literacies were adopted at the government level to capture census data. The illustration used by Vee concerns the US Census. As a result of the need to record census data, the US Census Bureau started using an analog, electronic computer called the ‘Hollerith machine’, starting from the 1890 census. Over the next few decades, computer use spread from central government to industries and educational and research institutions. Universities, airlines, and banking industry started using computers starting from the 1950s and continuing through the 1970s. It was around the 1980s that computers became affordable enough for most people to become familiar with them. Knowledge about computers started to spread into ordinary people’s lives from specialized professionals’ expertise areas. The common individual came increasingly in contact with computers through healthcare systems, local government data systems and education systems, to name a few examples. It may not be well known that a mass computer literacy movement was started in the Soviet Union in the 1980s, led by Academy of Science member Andrei Ershov (Afinogenov 2013). The Ministry of Education in the Soviet Union ordered in 1984 that a computational science course be introduced in all high schools of the country. The implementation of this program suffered on account of the lack of computers in most schools at that time, though attempts were made to teach algorithmic thinking even in the absence of computers. We return to this theme in the next chapter, when we discuss products for kindergarteners and early grades to learn computational concepts without actual computers. Interestingly, even with the centralized apparatus of the Soviet education system, even in those days, there was a realization of the potential of after-school computer clubs and other extra-curricular avenues for children as well as adults. The history of coding for children in Russia is recounted in greater detail in Chapter 4. Phase 2: Computers becoming an inseparable part of everyday life After the 1990s, especially with the advent of common access to the internet around the world, the ability to write code has started to move beyond the exclusive domain of professional computer programmers. The use of spreadsheets or word processors at first requires only rudimentary understanding of computational concepts. However, widely used applications like spreadsheets can be utilized with greater efficiency and effectiveness if the user develops computational proficiency. A contemporary example with Microsoft-Excel is the use of macros to perform repetitive actions over multiple spreadsheets or files; another is the use of pivot tables to perform analysis. To move from a ‘trial and error’ approach to one using programming is difficult because of the high demands of learning the Visual Basic computer language, so the majority of MS-Excel users are stuck with non-programming use. Researchers have been working to address this problem, with a notable example being the development of Sprego programming 7. 7 http://sprego.hu/; http://www.ppig.org/library/paper/sprego-end-user-programming-spreadsheets 12 Annette Vee notes as an example of coding moving from the expert to the novice, the work of journalists. While many journalists may continue, for the time being, to be oblivious of the possibilities of coding, increasingly, as online media becomes pervasive, journalists themselves need to figure out quickly how to integrate visual and audio programmatic elements with text, to produce interactive graphics and information displays. Journalists, or lawyers, doctors, teachers and any number of other professions will find it easier to do their jobs if they know coding themselves rather than waiting for and depending on professional coders. 1.1.5. The future of computational literacy Even though most people don’t grow up to become professional journalists or novelists, it’s important for everyone to learn to write. So too with coding – and for similar reasons. Most people won’t grow up to become professional programmers or computer scientists; but learning to code fluently is valuable for everyone. Becoming fluent, whether with writing or coding, helps you to develop your thinking, develop your voice, develop your identity.” - Mitchel Resnick (Resnick 2017) Says Arthur Clark: "In future every man incompetent in the sciences will turn out, honestly speaking, to be lacking in education. And if he prides in this lack of natural sciences education, as is the custom nowadays, he will find himself in exactly the same position as the illiterate medieval barons declaring proudly that they have secretaries to do the counting and writing." The medieval barons and their offspring do not exist any longer, every man has learned to count and to write, and secretaries have acquired new masters and new obligations. The same is bound to happen with programming: managers who have no idea of computers and programming will go off the stage, professional programmers will become systems analysts and systems programmers, and ordinary programming will be mastered by everyone. This is precisely what I call the second literacy. -Andrei Ershov (Ershov 1981) Computational capabilities have become ever more powerful and complex, at the same time as the learning of computer languages has become simpler. Syntax of computer code has begun resembling human language (especially English) thanks to the replacement of numbers with words; automatic memory management; the ability to write comments and notes for human readers of code; and the proliferation of user-friendly programming environments. With the development of visual programming languages that use shapes and colors rather than text-based code, we can expect that coding will become even easier to learn and master in the future. Annette Vee argues that we may start using the term “computational illiteracy” in a similar manner as we use the word “illiteracy” to communicate the presence of a deficiency that has serious implications for the welfare and civic rights of the person who is deprived of literacy. As illiteracy is a barrier that prevents the illiterate person from navigating the world today, we can expect computationally illiterate people to rely on others to help them navigate their professional, civic and personal lives in the near future. Douglas Rushkoff proclaimed: “It’s really that simple: Program or be programmed.” (Rushkoff 2010). It may appear to be a throwaway phrase, but Rushkoff actually presents a deeply considered perspective about the world around us. Rushkoff makes the point that digital technologies are not mere tools in the way that a pen or a jackhammer is a tool. The reason is that digital technologies are programmed, meaning that the instructions for their use are self-contained, which makes them powerful, and allows those who control them to be super-powerful. Rushkoff explains, in often colorful and provocative language, how the potential of previous technologies was not realized because command over their use 13 was restricted – “after text, the people could gather in the town square and hear the word of God read to them by a rabbi. But only a rabbi could read the scroll… After the printing press a great many people learned to read, but only an elite with access to the presses had the ability to write… The people remained one stage behind the elite”. The remedy suggested by Rushkoff for the future is for everyone to learn programming for the emerging hyper-connected participative economy. Take-aways from Chapter 1: Introduction: Computational Thinking • Meaning and importance of Computational Thinking: Coding or programming are ways to acquire the habit, skill, and competency of computational thinking, which is becoming useful and eventually essential for all manners of occupations. The four main pillars of computational thinking are decomposition, pattern-matching, abstraction, and automation. Coding helps children to learn how to think in a disciplined manner, to reflect about that thinking, and to learn together with others. • The Collaborative – an essential feature of 21st Century Learning: Computational thinking is only a precursor to computational participation and learning coding opens doorways for computational participation, which goes beyond individual problem solving and creativity to solving real life problems together and learning to express oneself. Coding is useful not just for a person, but it helps people learn to live and work closely together. • Computational Literacy: The historic study of literacy, of how reading and writing was first the preserve of a few and then became essential for all, provides useful indications about the trajectory of coding as a literacy. Illiteracy is traditionally seen as a serious deficiency that needs to be addressed, as it is very difficult for an illiterate person to manage their daily lives and be empowered about their rights and responsibilities. Researchers and thinkers like Annette Vee present evidence of why “computational illiteracy” may be on the way to be a similar deficiency in the so-called information age. 14 15 16 2. Flight of the Two-headed eagle: Five choices regarding implementation The symbol or image of the two-headed eagle very appropriately provides a clear and easy way to understand the main set of choices facing policy makers and practitioners who seek to find ways to implement a policy of coding for all children. 8 The two heads of the eagle represent the two main approaches towards coding which co-exist with one another – one head is coding through the curriculum and the other head is coding through extra-curricular education. Then the wings of the eagle provide the locomotion propelling forward and upward flight – one wing represents the teachers and the other wing represents the other aspects of the learning environment – platforms or products, internet connectivity and so on. Finally, the tail of the eagle, the one that provides the direction of forward motion in flight, is the aspect of assessment, vital to understand its different meaning in the context of coding. The metaphor of the two-headed eagle is the framework for this chapter – the framework helps to navigate and simplify the choices and issues facing policy makers and practitioners. Education systems display great variance across countries and across regions and localities within countries. Even within localities, schools are typically not identical and teachers within schools add their own variation, stemming from differences in their professional background and trajectory. Education systems are prototypical examples of complex adaptive systems with extremely high levels of diversity (Page 2007). This diversity extends to the adoption of coding as well, with great variety in experience that precludes any particular example being regarded as “best practice”. As the eminent management strategist and founder of HBX, the Harvard Business School online program, Bharat Anand, has written in his book “The Content Trap: A Strategist’s Guide to Digital Change”, choices involve trade-offs and it is not meaningful to try and determine a generic best practice for a particular objective (Anand 2016). However, it is useful to study the examples of the choices that different education systems have made along the five dimensions of the two-headed eagle. 2.1. Head One: Coding integrated into the curriculum We begin by examining the option of coding as part of the curriculum – even though it is not a preferred to coding through the extra-curricular education, just as one head of the double-headed eagle is not preferred to the second one. 2.1.1. Countries that have integrated coding into school curriculum With the advent of the personal computer in the 1980s, many countries around the world started to take steps towards integrating coding education into school curriculum. Considering the increasing need for computational thinking skills in the economy and social life and a perceived shortage of talent in information and communications technology sector, policymakers in many countries started to develop strategies to bring coding into education. Many countries are in the process of integrating coding in curriculum, mostly at the secondary level of education. However, coding and computational thinking has also been introduced to the primary education curriculum (Balanskat and Engelhardt 2014). We briefly overview the country experiences here. 8 The metaphor of the two-headed eagle for the learning of coding is meant to represent modernity and continuity with a legendary tradition that is intended to be memorable for the Russian reader. However, this book is not the first time that an eagle metaphor helps understand and remember what is important in an education context. Former Netherlands Education Minister and former Vice-President of the World Bank popularized the eagle as a metaphor (Ritzen 1999). 17 Figure 2.1: Timeline of integration of coding into school curriculum in different countries Israel: Israel was an early adaptor of computer science education in its curriculum, updating its high- school curriculum quite a few years ago (The Economist April 26, 2014). The intention of the Computer Science course at high school level in not to train students to become programmers but rather to introduce learners to logical and algorithmic thinking and to expose them to different development environments at an early stage. Israel offers a range of mandatory and elective modules, allowing students to acquire the foundations of computer science while providing more time and content for those who have a higher interest in computer science (Bocconi et al. 2016). In Europe, the New Skills Agenda of European Commission invited all Member States to “invest more in digital skills formation, including coding / computer science, across the whole spectrum of education and training” in 2016 (European Union 2014). As of 2016, 16 European countries have integrated coding into their curricula at national, regional or local level. Eight of these European countries already integrated or developed plans to integrate coding into curriculum at primary school level, and 12 European countries already integrated or developed plans to integrate coding into curriculum at secondary school level (Balanskat and Engelhardt 2014). The experience of individual European countries is outlined below, based on (Bocconi et al. 2016). (Adapted from ErActiv website that summarizes a study by European Schoolnet) Figure 2.2: 16 European countries that integrated coding into curriculum by 2016 Poland: Poland has a long history of integrating coding into curriculum, starting from 1985. A stand- alone “Informatics” subject has been taught in classes starting from Grade 1, and recently Poland has developed a new curriculum with the aim to help students apply computational thinking skills in other school subjects. 18 Lithuania: Lithuania’s Information Technology (IT) subject not only introduces students to digital competencies, but also to ethics and legal principles of coding. The subject is included at both lower and upper secondary school levels, upper secondary school also including an advanced IT course. Slovakia: Slovakia is one of the early-adaptors in Europe: Coding curriculum is mandatory from primary school to upper secondary school in the country. Hungary: Hungary has a long history of introducing coding in high school curriculum; however, in recent years, it has been working on strategies to integrate coding into all school levels starting from primary school. Malta: Malta integrated coding into upper secondary school curriculum; however, Department of eLearning and the Department Curriculum’s strategy explicitly supports introduction of computational thinking skills from Kindergarten to Grade 11. Portugal: Computational thinking is among the learning outcomes for students in Grades 7 and 8. In 2015-2016, the Ministry of Education launched a pilot project for primary schools, entitled “Introduction to Programming”, involving 27,000 students in Grades 3 and 4 and about 670 teachers. The pilot focused on two main themes: Computational Thinking and Programming languages. The initiative has been extended to the 2016-2017 school year expecting to involve about 56,000 students and about 1,600 teachers. Estonia: Estonia is one of the world leaders in technology, with high-tech industries accounting for 15% of GDP in the country, see (The Economist July 31, 2013). However, Estonia is short of programmers for this thriving industry; its schools have started teaching coding to pupils as young as six since 2012 (Uzunboylu, Kinik, and Kanbul 2017). Estonia is one of the two countries in Europe that integrated coding into education system at all levels – from primary to upper secondary school. UK (England): The Royal Society, one of the world’s oldest scientific organizations, carried out a study published in 2012 that sought to understand a decline in interest in the UK regarding ICT in schools, with students complaining about boring and repetitive content. A major reform was initiated in 2012, with the old ICT content replaced by a new one with three elements of digital literacy, information technology and computer science. Learning coding using Scratch was one of the important elements of the reform, which is also marked by close policy analysis, with a five year review of performance published in 2017 indicating drawbacks in teacher readiness and preparedness (The Royal Society 2017). Denmark: In Denmark the curriculum is reported to be prepared to meet the needs of technology companies in the country. It puts more emphasis on topics such as the design of user interfaces, which interests its big firms, and the impact of digital technology on society (The Economist April 26, 2014). Finland: Finland is the first county to integrate coding in a cross-curricular approach, which requires that all subjects strengthen ICT competence of students starting from grade 1. In addition, coding is integrated into two subjects: Math classes starting from Grade 1 and Craft classes starting from Grade 3 – this is part of the new cross-competency based curriculum in Finland in place since 2016. New Zealand: In New Zealand, the Education Minister of New Zealand announced that digital technologies will be fully integrated into curriculum from Grades 1 to 13 in 2018 (Bocconi et al. 2016). The goal of the Ministry of Education is to make all students “digitally capable” – able to use and create digital technologies to solve problems and take advantage of opportunities - by Grade 10. By Grade 13, the students will be guided towards specialization, and the government has announced its intention to 19 provide resources dedicated for training of teachers towards a digitally-oriented education system (Gee- Spillane 2018; Gerristen 2017). Australia: A new curriculum named “Digital Technologies” was launched in Australia in 2015, making coding education compulsory from first year in school to grade 10. In this new curriculum, there is a strong focus on creative use of technology through its three learning components: Digital Systems, Data and Information and Creating Digital Solutions (Blannin 2017). South Korea: South Korea has made Software Education course mandatory at both primary and secondary levels starting from 2018. The objective is for primary school children to develop computational thinking abilities, using a visual programming language such as Scratch. The curriculum stresses real world problem solving abilities: “Students should apply computational thinking skills in authentic problem situations while collaborating with their peers” (Choi and Lee 2018). USA: The United States does not have a nationwide for curriculum integrating coding or any other purpose; different states have adapted coding at different levels. However, there is limited integration at the primary school level for the time being. Several organizations have been supported by the government to support coding education in classrooms. One of the most prominent of these organizations is Code.org, supported by the tech industry in the USA. The goal of Code.org is to make it possible to learn computer science in every public school. The advocacy efforts of Code.org and software giant Microsoft have persuaded twenty-four states to allow computer science to count toward math or science credits required for high school graduation (Singer 2018). Some states, including Arkansas, Virginia and Indiana, have started to integrate computational thinking and digital literacy into primary school curriculum. Pittsburgh school district case study This case study examines the transformation of the curriculum of a suburban, public school district in Pittsburgh from a traditional one to one that integrates computational thinking (CT) across all grades in K-12 education. As of 2016, the South Fayette Township School District had more than 3,000 students in four schools that are located in the same campus. Around 12% of students in the district are eligible for free or reduced-priced lunch, indicating a relatively affluent district compared to other districts in the Pennsylvania state, which has an average of 40% eligibility for free or reduced-priced lunch. The model used for the transformation is named STEAM Studio Model for Innovation, which aims to provide students with experiential learning activities that promote CT both in school and in after-school activities. Transformation of the curriculum started in 2010 with an environment to accelerate and sustain innovation. First, the district invested in technological infrastructure: All school buildings were connected to a high-speed broadband. All desktop computers were connected to the network with a 1- gigabyte connection. The district provides a device for every student: an iPad for 1st and 2nd graders, a laptop tablet for older students. In addition to the hardware, personnel was augmented, and a new Director of Technology and Innovation supported by a Technology Assistant was hired. Initially, self-selected “lead teachers” started using Scratch in the elementary and middle school curriculum. The Director of Technology supported teachers to improve the instructional strategies and classroom management. In time, Scratch use spread from middle school to elementary school in art, English, and math classrooms where its use is still growing. District management realized that traditional professional development practices to train teachers on CT was not feasible. Instead, the district hired STEAM Teachers, replacing or creating new positions from kindergarten to 8th grade. The STEAM 20 Teachers work with other teachers to develop curriculum activities that support and enhance traditional learning with CT. The district leadership procured a commercial curriculum mapping online tool. With the help of the tool, each curriculum unit was mapped according to CT concepts and essential skills. This mapping helped to identify learning activities needed to track gaps and repetition in instruction. To help deliver the activities, the district has built STEAM Studio labs in each school building, where authentic problem- solving activities are presented in a constructionist pedagogical context. In addition, after-school connected learning activities provide an opportunity for students interested in coding to pursue their passion after school hours. The district also uses after-school activities as an innovative incubator program where it can test new methods before placing them directly in the curriculum. Figure 2.3 illustrates how CT was integrated into both classroom curriculum and after-school activities: Figure 2.3: Mapping curriculum and technology tools in different grade levels Partnerships have been critical for sustaining the success of the STEAM Studio Model in Pittsburgh. The district has benefited from being an active member of the Pittsburgh Remake Learning Network, which is a consortium of innovators and more than 200 organizations working together to create relevant learning opportunities for children and youth through the compelling use of technology, media, and the arts. The model also gained support from key leaders in CT curriculum initiative inspired by the International Society for Technology in Education (ISTE), the Computer Science Teachers Association (CSTA), and supported by the National Science Foundation (NSF). 21 Student capabilities for innovation and leadership as a result of the new model are assessed through the level of student engagement in the Emerging Innovation Leaders Program. Standardized tests based on Pennsylvania academic standards showed that the district’s reading and mathematics annual state test scores were the highest in Southwestern Pennsylvania starting from 2015. Source: A Future-Focused Education: Designed to create the Innovators of Tomorrow (Ruberg and Owens 2017) 2.1.2. Countries that are exploring integration of coding into the school curriculum Although a limited number of countries have not yet prepared concrete plans to integrate coding into curriculum, these countries are currently undertaking studies to introduce coding into school curriculum. In China, coding education has not been yet integrated into the curriculum for pre-university education. The interesting story from China is the CS0 “College Computers” course that is required for all university students, regardless of major. The mandatory course is taken by about six million students each year since it was introduced in 1997. In recent years, the emphasis of this course is shifting towards computational thinking. The mandatory nature of CS0 makes for some unexpected positive outcomes, for instance the preparation of a course on computational thinking for deaf students (Pan 2017). In Germany, integration of coding into curricula varies across the sixteen States that constitute the Federal Republic. In five States, Computer Science (CS) is mandatory for all students in High School; five other States do not offer CS courses at all. In the State of Schleswig-Holstein, schools may themselves decide whether to offer CS as mandatory or elective. The State of Baden-Württemberg introduced a new State curriculum where CS is part of an inter-disciplinary approach, with coding activities included under the objective of media literacy (Delcker and Ifenthaler 2017). In the Netherlands, computer science subject is an elective course in secondary education and national institute for curriculum development is working on developing a CS curriculum (Balanskat and Engelhardt 2014). We also know about the following plans as of 2016 from (Bocconi et al. 2016): In Norway, a pilot program introduced programming in 143 lower secondary schools; however, there is not yet a finalized plan about compulsory coding education; In Greece, a 2016 report prepared by the Committee of Continuous Educational Affairs of the Greek Parliament suggests including computational thinking in the curriculum as a short-term priority; In Sweden, the Swedish National Agency for Education has been working on how to strengthen the digital competence and programming skills of children within national curricula; In Japan, the Education, Culture, Sports, Science and Technology Ministry announced that computer programming will be a compulsory subject in primary schools in 2020, followed by lower secondary schools in 2021 and higher secondary schools by 2022. 2.1.3. Level of curriculum integration Most countries start integrating coding into curriculum at secondary education although an increasing number of countries now offer coding classes at primary education. As coding education in schools has gained momentum only in recent years, there is not yet sufficient robust scientific evidence about the optimal age to start learning coding. Eight European countries that integrated coding into primary school curriculum are Estonia, France, Spain, Slovakia, UK, Finland, Poland, Portugal. Estonia and Slovakia are the two European countries that integrated coding at all levels of school education. In Slovakia, the classes are compulsory while in Estonia the classes are elective. In UK, coding education is compulsory in state-maintained schools but optional in independent or private schools, although many private schools choose to implement it. 22 Israel is another country that has integrated coding into curriculum at all levels of education. Computer Science has been included in the high school curriculum for many years, and it was introduced to lower secondary school and then primary school levels step by step. Apart from the level of curriculum integration, the choice between defining coding classes as compulsory or elective has serious implications. For instance, in the U.S., computer science courses are elective in many States. However, when school districts are asked why computer science classes are not offered in their respective schools, they typically provide two reasons: One is that students are not interested. But the lack of interest issue actually is mainly because of an already packed class schedule. A second typical response is that there are few qualified instructors to teach these classes. However, if computer science is not defined as a compulsory course, school districts and state departments will be naturally reluctant to allocate their limited budgets into training teachers in an area that is not compulsory. Therefore, some experts think that making coding classes elective may lead to a vicious cycle in coding education, which limits availability of coding education to many children. There are three main approaches that countries used to integrate coding into the curriculum, outlined below: Approach A: Establishment of a new, purposely-designed subject In 12 European countries, coding/computing is a stand-alone subject by itself. Establishing a separate coding subject ensures that a pre-determined amount of time would be allocated into coding education. However, the curriculum of most countries is already very crowded, which implies that trade-offs are made, with some subject(s) needing to be reduced/eliminated to make place for a coding subject (Balanskat and Engelhardt 2014; Hiltunen 2016) The name of specific coding courses and countries in which the courses were established are as follows: o Software Development (in Austria) o Informatics (in Hungary, Poland, Slovakia) o Programming (in Slovakia, Czech Republic) o Coding (in Ireland) o Computer Science (in Israel) o Computer Studies (in Malta) o Computing (in UK) o Information Technology (Lithuania) o Software Education (South Korea) Approach B: Accommodation in subjects already being taught Increasingly, coding is also integrated in other subjects, especially mathematics, and sometimes natural science classes. An advantage of accommodating coding into other subjects is that the time division of classes does not have to be changed. This method is highly demanding on teacher capabilities, but no material has to be ‘sacrificed, as what was taught before without coding is now taught with coding. The method is only possible where teachers can start teaching core concepts, for example: heat, pressure, volume, and temperature in thermodynamics class with similar problems as before, except now the students have to solve the problems using code, so they learn physics and coding at the same time. Coding was integrated into the following subjects that are already being taught in the following countries: o Math (in Denmark, Estonia, France, Spain) o Physics (in Denmark) o Chemistry (in Denmark) o Technology (in Estonia, France) 23 o Home-economics (in South Korea, “sil-gwa” course) Approach C: Only cross-curriculum strategy Finland is the only country in Europe that has chosen to implement a cross-curriculum strategy. In this strategy, “ICT competence” is one of the seven transversal competences defined by National Core Curriculum and all of the subject studies (particularly Math and Craft) are expected to encourage ICT competence starting from Grade 1. The United Kingdom case study Before 2012: Shut Down or Restart? The 2012 ‘Shut Down or Restart?’ report by the Royal Society concluded that the delivery of computing education in UK schools up to that time had been highly unsatisfactory. By 2012, England had an ICT curriculum with an emphasis on two domains: digital literacy and information technology. These two domains did not include computer science and computational thinking. The result was an unchallenging emphasis on the use of basic tools that students usually already knew from outside of school. As a result of the boring curriculum, a negative view towards ICT emerged, which undermined the interest of most students in ICT classes (The Royal Society 2012). 2012 – 2017: The Computing Curriculum Reform In response to the results presented in ‘Shut Down or Restart?’ report, the four nations in UK (England, Scotland, Wales and Northern Ireland) initiated a reform for computing education starting from 2012. The main aspect of the reform was a new national computing curriculum: England made computing subject mandatory for ages 5 to 16. The subject added a third domain, computer science, to the previous ICT curriculum. Scotland also refreshed its ‘Curriculum for Excellence – Technologies’ based on these three areas. Wales has replaced its ICT curriculum with ‘Curriculum for Life’ with elements from computer science starting from 2018; and Northern Ireland started embedding ‘Using ICT’ across the curriculum. The common factor across all four curricula has been increased emphasis on computer science to equip students with computational thinking skills. The Department for Education invested in technical resources to facilitate implementation of the new curriculum in schools. For instance, the Barefoot Computing Project provided free computing science teaching resources and workshops for around 40,000 primary teachers with no prior experience across UK. In terms of hardware support, the schools had access to low cost hardware such as Raspberry Pi and BBC’s micro:bit. A systematic review of the new 2012 policy was conducted after five years and reported in The Royal Society 2017. This itself is a practice worthy of evolution, as governments typically are biased towards new initiatives, rather than make a scientific study of past initiatives to understand what worked and what challenges remain. The Royal Society review found that the main challenges relate to the capacity of teachers to adopt the new curriculum: Although 70 percent of students in England have the opportunity to pursue a computer science qualification in the General Certificate of Secondary Education (GCSE) 9, only 11 percent did so in 2017 according to the Government of UK data. In response, the governments have recently started new initiatives to address these challenges as presented below. 9 GCSEs are subject-based academic qualifications completed in secondary school level in two years by the age 16. 24 2018 and onwards: Challenges and Future Plans 1. Undersupply of qualified computing teachers The first challenge facing England’s reform agenda today is the lack of qualified computing teachers. As the following figure illustrates, only 68 percent of teachers needed in the subject were available for recruitment from 2012 to 2017, a much lower ratio compared to other subjects. Among the teachers recruited, teacher professional development requirements are not fully defined; for instance, teachers in Scotland have to complete 35 hours of continuing professional development annually but there is no content-specific condition. A Royal Society survey with around 900 teachers with some responsibility for computing education showed that almost half of the teachers rated their confidence in teaching computing at level 7 or below out of 10 (The Royal Society 2017). Percentage of teacher recruitment against targets in England (2012-2017) 112% 115% Target: 100% 95% 98% 99% 81% 84% 68% Computing Physics Math Modern English Chemisty History Biology foreign language Source: (The Royal Society 2017, Figure 12) Figure: Undersupply of computing teachers in England In response to the challenge of recruiting quality teachers, the Department for Education founded the National Center for Computing Education with an £84 million investment in November 2018 (techUK, 2018). The Center aims to provide resources for continuing professional development of computing teachers across England that would improve teacher confidence and performance in the new curriculum. The Center is led by STEM Learning, the Raspberry Pi Foundation and BCS, The Chartered Institute for IT that brings together expertise from the private sector, government and civil society (National Centre for Computing Education, 2018). 2. Gender imbalance Computer science education remains an overwhelmingly male-dominated subject in UK: Among 16- year-old students, only 20 percent of the GCSE candidates in computing subject were girls in 2017 according to the Joint Council for Qualifications (The Royal Society 2017). The Department for Education invited relevant organizations for a ‘Gender Balance in Computing Pilot Programme’ through a tender worth £2.4 million in June 2018. The goal was to develop “multiple innovative interventions” that would increase the number of girls studying computer science, and to do so with an impact evaluation study that would allow scaling up of the program in the future. Lack of research on computing education at K-12 level Today, most research about computing education is focused on higher education institutions, with limited space for research at K-12 level in the UK. This limits the potential of evidence-informed 25 decision making in computing education. According to the Royal Society, “If we are going to spend £1 billion on computing teacher salaries, using evidence to increase their effectiveness by 20 percent is worth £200 million” (Foxall and Mist, 2018). Two initiatives undertaken to address this challenge have been to form a new research center in computing education under Kings College London; and a joint report, Harnessing Educational Research, by the Royal Society and the British Academy (Foxall and Mist 2018). 2.2. Head Two: Coding through extra-curricular education The biggest challenge and the biggest opportunity for the Maker Movement is to transform education. Students are seeking to direct their own education lives, looking to engage in creative and stimulating experiences. Many understand the difference between the pain of education and the pleasure of real learning. Unfortunately, they are forced to seek opportunities outside of school to express themselves and demonstrate what they can do. - Dale Dougherty (Dougherty 2013) - The inclusion of coding as part of formal school education will likely make slow but steady advance over the years as people figure out the big challenges regarding updating teacher mindsets and the skill repertoire of teachers. Perhaps less constrained by regulations and bureaucratic inertia, there have been an increasing number of non-formal, extracurricular activities for coding education all over the world. This section of the book highlights the issues and emerging trends regarding coding as part of extracurricular activities. 2.2.1. Structure vs. Agency in coding education In general, formal settings can provide structure for systematic thinking and approaches, while informal settings can help children build up motivation and identify their interests. An ideal setting should have both of those. - Mitchel Resnick (Bocconi et al. 2016) For the past hundred years, school has been assumed to be the primary site of learning. But increasingly, school is no longer the only place of learning. - Karen Brennan (K. Brennan 2014) Extra-curricular education has a rich heritage going back several centuries – as a matter of fact, there was extra-curricular education before someone came along to invent subjects and classes and textbooks and a ‘curriculum’. Priorities changed over the centuries, and extra-curricular education became the main course and arts, sports, games, outdoor activities, music and dance became ‘extra’. Not all of education has been characterized by the old proverb – “All work and no play makes Jack a dull boy”. Disparate education philosophies including the Jesuits and the Soviets have placed a high value on extra- curricular education over a long historical period (McMahon 2004; Trow and Kalachov 1934). Over recent decades, the pendulum has begun to swing back towards the importance of extra-curricular education, though the movement is very slow. Given the recent emphasis on the instrumental “human capital” value of education, an important event has been the introduction of unstructured or free time that is provided to all employees of Alphabet Corporation’s Google, a practice which is related to the development of breakthrough products (Savoia and Copeland 2011). Learning of computational thinking through coding has a very special relationship with extra-curricular education. Coding is an educational activity that began in after school clubs and is now migrating towards school. After school activities or weekend activities tend to be unstructured or have relatively 26 less structure than a lesson taught in a traditional classroom. Participation in extra-curricular activity is usually voluntary on the part of the child, whereas school is compulsory, whether you like it or not. Children enrolled in an after-school coding class are a little bit like those Google employees enjoying their unstructured time on a Friday – you can totally goof off if you want, but chances are that you will probably choose not to from your own volition. Most children would prefer to be unsupervised if they are given an opportunity to pursue their interest together with their friends, yet some children seem to prefer being told what to do at least some of the time. Karen Brennan posits that to understand this phenomenon we need to understand the relationship between structure and agency (K. A. Brennan 2013). Structure in this context means rules, roles, and resources in learning environments. Brennan provides the example of a lesson plan as a resource which is an explicit form of structure. The teacher-as-expert playing her role in the class is considered to be an example of an assumed or implied structure. Agency of the child is taken to mean the child’s ability to define and pursue learning goals. Brennan builds a detailed argument about how structure and agency need to co-exist. A few years before Brennan, Daniel Schwartz introduced powerful arguments questioning the received wisdom that agency is automatically superior for learning to take place. It is not just the case that some children like to be told what to do and some don’t. Schwartz introduces the idea of ‘productive agency’ – that learning develops when we share in the construction of meaning through collaboration with others (Schwartz 1999). One of the mechanisms why collaboration works is because in a group we get to create something, could be to introduce a small idea, and then we observe the influence generated by our creation. An experimental study about the importance of learning found that individuals who have taught a student learn better by observing their student answer questions rather than by answering questions themselves; a related study found that students who watched their ‘student’ receive feedback leant more than students who received feedback on their own performance – in the second study, the students were artificial, computerized agents (Okita and Schwartz 2013). One of the reasons that coding is so powerful is because coding is able to harness this recursive feedback effect to an extreme degree. It is very important to understand why coding should not be taught in a traditional lecture setting, with a teacher providing instructions and students working individually to follow those instructions. In order to investigate the difference between structured teaching and high agency extra-curricular environments, Kafai and Burke constructed two learning environments for writing digital stories in Scratch for ten consecutive weeks with the same instructor (Kafai and Burke 2014). The two environments and results are summarized in Table 2.1. Table 2. 1 Comparing learning environments of classroom and club A structured classroom An afterschool club Characteristics of the - A standard academic - A standard academic environments curriculum curriculum - The students were expected to - The students were expected to submit a storyboard on Scratch submit a storyboard on Scratch - The projects were graded - The projects were graded - Attendance was mandatory - Attendance was mandatory Results - 90% of students completed a - 71% of students completed a story digital story - Average length of stories was - Students completed twice as 2-3 minutes many projects as those in the - Stories were based on real- class life experiences or icons from - Storied included more types movies, books, etc. of coding concepts: Included - 10% of projects were remixed interactive art pieces and video games 27 - Students twice accused their - 26% of projects were remixed classmates of cheating by remixing others’ work Source: (Kafai and Burke 2014) These results indicate that afterschool club engaged children more than the structured classroom. Although percentage of students who completed a project was less in the club, the students completed many more projects than their classroom peers, used more creative coding skills, and collaborated twice more with their peers. In order to finding the middle ground between class and club, Mitchel Resnick suggests that “good teachers and good mentors move fluidly among the roles of catalyst, consultant, connector and collaborator” (Resnick 2017). Resnick explains the four roles: • Catalyst: Teachers provide sparks that accelerate the learning process, for example a teacher may show sample projects when a student gets stuck in the early stages of a project. A teacher or mentor can ask questions to catalyze exploration and reflection: “How did you come up with that idea? What would happen if you changed this code?" • Consultant: Teachers can be a ‘guide on the side’, rather than a ‘sage on the stage’. The role is not to deliver instruction but to provide support in the manner that a business consultant supports a manager. This role is very demanding as the teacher needs to be highly skilled to be able to provide tips and suggestions without merely providing a solution to the student’s problem. • Connector: The idea here is for the mentor to support the creation of “a community of shared learning”, where students help each other. This requires the teacher to know the individual strengths and weaknesses of each student and also manage emotional issues and make sure that students learn to contribute and not to free-ride. • Collaborator: This is perhaps the most innovative role as compared to the traditional teacher – here the teacher has her own project for which she seeks the support and contribution of students as collaborators in her project. 2.2.2. From extra-curricular activities to regular school These are not schools as we know them; they are social clubs with memberships that may range from a few hundred to many thousands. Each club owns a building, a place for dancing and getting together. Members of a samba school go there most weekend evenings to dance, to drink, to meet their friends. During the year each samba school chooses its theme for the next carnival, the stars are selected, the lyrics are written and rewritten, the dance is choreographed and practiced. Members of the school range in age from children to grandparents and in ability from novice to professional. But they dance together and as they dance everyone is learning and teaching as well as dancing. Even the stars are there to learn their difficult parts. Seymour Papert (Papert 1980) Almost half a century ago, Seymour Papert, envisioned a “computational samba school”, similar to samba schools in Brazil, that would give an opportunity to learners from all ages to come together and make things together. Although Papert’s vision is not fully realized yet, there has been encouraging progress in computational clubs, maker spaces and extra-curricular activities for coding all over the world. Special features of these extra-curricular activities include the following (Roque 2012): Connecting learners’ interests Bringing learners with similar interests together connects learners in a personally meaningful way. Connecting to others is a strong motivator for learners to engage even more deeply in their learning. Embedding learners in a community 28 Communities let learners engage with other learners with similar interests and learn from each other, while encouraging collaboration among learners. Learners improving themselves by “making” The unique characteristic of most extra-curricular activities is that they generally bring learners together in order to “make” their own projects, either physical or digital. Maker movement around the world has been gaining momentum recently because constructing things provides learners motivation to learn, and the opportunity to use their knowledge to create something while realizing what else they need to learn. Although the maker movement for children is mainly led by extra-curricular activities, it is possible to build schools around the maker philosophy. A popular example in discussion of the future of education includes Brightworks, a school for 5- to 15-year-old children in San Francisco founded in 2011, which uses a completely project-based approach to educate children. Instead of the usual linear curriculum with a sequential set of lessons organized by subject, the school is based on their own pedagogical invention of a learning arc. Students explore themes in each arc, which includes phases of exploration, expression and exposition. Mitch Resnick provides an account of a visit to the Brightworks school with other people who appear skeptical about the school’s project-based approach for all learning (Resnick 2017). Resnick argues against the conventional idea that children need to be first taught basics and then apply the basics in a project. While Basawapatna et al reasoned that teaching principles before providing project-based learning risks moving the children into the dreaded space of boredom (see Figure 2.8), Resnick discusses how the traditional form of instruction is fundamentally flawed: Students are presented with a steady stream of instruction and problem-solving activities, designed to highlight particular concepts. One set of problems teaches students how to multiply fractions. Another teaches them how to calculate the mechanical advantage of a gear-train. On the surface, this approach might seem to make sense. But when students solve sets of disconnected problems, they often end up with disconnected knowledge, without an understanding of why they are learning it or how to apply it in new situations. - Mitch Resnick (Resnick 2017) It is a challenge to implement the connected knowledge that Resnick recommends as the main approach to education, compared to coding classes as an extra-curricular activity. The Brightworks pedagogy may be considered to be an experimental at this stage, but it is an experiment that educators around the world may wish to follow very closely as it provides a practical understanding of project-based learning. 2.2.3. Types of extra-curricular coding activities around the world Type 1: After school programs There are many for-profit and nonprofit organizations around the world offering after school programs. From Coddy in Russian Federation, to Caustics Digital Academy in Los Angeles, Computhink in Singapore, Kodluyoruz and MucitKids in Turkey, after school programs are becoming easily accessible. There are also many volunteer-based, grassroots activities taking place around the world. Some of the most prevalent ones of these activities are CoderDojo, Code Club and the Clubhouse Network CoderDojo (Hatter 2016). A free after-school club, led by volunteers, for children aged 7-17. Active in 65 countries. There are more than 1,100 active volunteers reaching 45,000 kids Code Club. A worldwide network of free, volunteer-led coding clubs for children aged 9-13. Active in 140 countries. Over 10,000 Code Clubs have reached 150,000 children around the world 29 Club House Network. An international community of free out-of-school learning environments for underserved youth. 100 Clubhouses located in 19 countries. 100 Clubhouses works with 25,000 youth per year. The Clubhouse Network aims to make a shift from “think-it-yourself” to “make-it-together”. Type 2: Hackathons A hackathon is a gathering where programmers collaboratively code in an extreme manner over a short period of time. Hackathons are at least a few days - or over a weekend - and generally no longer than a week (Briscoe 2014; Briscoe and Mulligan 2014). One of the successful examples of hackathons that attract young participants is Local Hack Day. This hackathon was started in 2013 by Major League Hacking, a New York-based company that hosts competitive hacking events throughout the year. In December 2017, around 275 communities around the world attended a 12-hour long hackathon. One of these hackathons was organized by a 14-year old high school student in California. Type 3: Coding events Coding events provide materials for participants to carry out guided coding activities within their communities. A teacher, parent or a child can organize a coding event easily by organizing other people children in the community and downloading guidelines from the event’s website. Three of the most prevalent and successful international coding events are organized by Code.org’s Hour of Code, Codeweek EU and Bebras Challenge. Hour of Code: One-hour coding challenge tutorials designed for all ages in over 45 languages. Hour of Code activities held in 180 countries. 263 million people have tried the Hour of Code worldwide CodeWeek. Two-week coding events for children organized by volunteers around the world. Launched by EU Commissioner Neelie Kroes in 2013, today active in 50 countries. In 2016, nearly a million people took part in EU Code Week Bebras. The Bebras challenge is held every year, usually in November. Participants are 8 to 19 years old, and each participant has 45 minutes to solve 18 tasks that focus on solving problems from a broad range of informatics topics, without requiring any programming skills. Different tasks are offered for five different age groups from 8 to 19 years. Activities can be held at schools with supervision from teachers and winners are rewarded with certificates and honors. Several countries hold a second round of the challenge, usually around January/February, which is dedicated to the best participants from the first round (Bocconi et al. 2016). Scratch Day. Scratch Day is a global network of events that celebrate Scratch. Participants share their achievements using Scratch and enthusiasts utilize the event to expand the ever-growing number of scratchers worldwide. Type 4: Children’s technoparks Technoparks are educational sites for school children, equipped with high-tech equipment with an aim to motivate the next generation of highly skills ICT and engineering sector employees. “Quantorium” is a technopark in the Russian Federation that has been scaled throughout the country. Currently there are 24 of these technoparks in 19 regions of the country. An example of the activities of the technopark in Moscow is a 94-hour course over 9 months about aircraft construction using a specialized engineering software Autodesk Inventor. 30 2.3 Left Wing of the Eagle: Teacher professional development choices In order to implement the new curricula of which coding is an integral part, supporting teachers in terms of skills and knowledge regarding coding education is critical. However, the lack of teachers who can teach coding is a serious problem facing many countries today. The problem is connected to the job preferences of mathematics and computer science graduates, who generally prefer more lucrative professions than teaching. On the other hand, humanities and social science graduates that represent the majority of teachers need considerable training to deliver coding education to children (Singer 2018). There are a number of questions or choices that need to be addressed when it comes to preparing teachers to deliver instruction for coding or computational thinking/computer science more broadly: a) Specialist trained CS teachers or other subject/generalist teachers? b) Pre-service training for teachers or In-service training for teachers already deployed? c) In-person or online training? These questions are addressed in this section. 2.3.1 Specialist or Generalist teachers In Israel, teachers are required to have a degree in Computer Science Education in order to teach coding An undergraduate degree in Computer Science should be coupled with a formal teacher training certification is a mandatory requirement for individuals wishing to teach computer science in Israeli high schools. In 2000, the Ministry of Education established The Israel National Center for Computer Science Teachers (“Machshava”) as the professional hub for all CS teachers in Israel. This center oversees the organization and funding of in-service study programs, workshops, and guidelines to assist the teachers in their professional development. As part of its services, Machshava provides summer seminars called “On the Frontier of Computer Science” for ‘leading teachers’ to foster their professional leadership in the CS education community. This summer program recognizes the value of experienced and enthusiastic teachers as coaches in peer to peer within the teacher community (Balanskat and Engelhardt 2014). Whether the Israeli experience should be emulated by all countries is a matter of context and relevance. In some countries, of which Russia is a prime example, subject teachers at the secondary level are expected to have university degrees in both education and their particular subject matter. At the Pre- School and Primary levels, it is the generalist class teacher which will need to deliver the instruction, though even at these levels, there may be a need for a few CS specialist teachers who can be involved in the pre-service or in-service training of generalist teachers. These specialist teachers may not be available at every school, but they may be a resource to be deployed when needed, for instance to provide mentoring and support to a teacher or group of teachers who may be facing difficulties. Even for Secondary school, if the idea is for all children to learn coding, it is a natural corollary that coding would need to be part of instruction in other subjects like Physics or Biology. Indeed, there are some experts who believe in an exponential increase in quality of understanding in subjects like natural science with the use of coding by children. 10 There is thus a need for both specialist and generalist teachers skilled in being able to teach coding. At the Primary level, there is often only one class teacher and she needs to develop some level of proficiency, usually not as difficult as she might think. Yet, the Primary level may also benefit from a few specialist CS teachers who would help solve problems related to teacher professional development or mentoring. At the Secondary level, typically there would be a CS trained specialist teacher, but teachers of other subjects also need to develop proficiency in coding in order to deliver on cross- disciplinary benefits of learning coding, and gradually because teachers are likely to find out that it is a highly effective pedagogical technique. 10 This is the idea behind the concept of Scalable Game Design (SGD) – see (Buss and Gamboa 2017) 31 2.3.2 In-service or pre-service training Twelve European countries (Austria, Bulgaria, France, Estonia, Hungary, Ireland, Malta, Poland, Portugal, Slovakia, Spain, UK) where coding is integrated into curriculum provide both in-service and pre-service training to teachers to support them in teaching coding at classroom. The main provider of the training is usually a university; however, for-profit-companies and non-profit organizations are also involved in these trainings (Balanskat and Engelhardt 2014). South Korea faces significant issues in teacher training because the mandatory new coding curriculum at the elementary school level means that class-teachers who have never taught coding before need to be brought to speed quickly. Therefore, South Korea started in-service trainings to equip existing teachers, especially elementary school teachers, with coding skills to teach the new curriculum that was implemented in 2018. The goal of South Korea is to provide specialized training in software education to 60,000 elementary school teachers (30% of the total) by the end of 2018, with an in-depth training for 6,000 of these teachers. In addition, 1,800 lower secondary school teachers who are certified to teach IT/computing will receive additional training on software education (Bocconi et al. 2016). In New Zealand, existing teachers who are supposed to teach coding but do not meet the new requirement are supported through the training services of The New Zealand Association for Computing, Digital and Information Technology Teachers (The Royal Society 2017). Both pre-service and in-service training face deep challenges when implemented at scale. An interesting study was carried out to understand conceptions regarding computational thinking of pre-service students at a major American university (Yadav, Stephenson, and Hong 2017). The authors found that the students only had a rudimentary or simplified conception regarding computational thinking, for instance putting a mistaken emphasis on the similarity of computational thinking with mathematics and problem solving. Only few of the students were able to articulate the basic elements of computational thinking: decomposition, pattern-matching, abstraction and algorithms, that help humans to pose and solve problems with the help of computers. It is unlikely that many of the teaching students had read the definitive text regarding computer programming that explains a fundamental difference between computer science and mathematics, reproduced below: The computer revolution is a revolution in the way we think and in the way we express what we think. The essence of this change is the emergence of what might best be called procedural epistemology -- the study of the structure of knowledge from an imperative point of view, as opposed to the more declarative point of view taken by classical mathematical subjects. Mathematics provides a framework for dealing precisely with notions of ‘‘what is.’’ Computation provides a framework for dealing precisely with notions of ‘‘how to.’’ (Abelson, Sussman, and Sussman 1996) The teachers in training may not have used an elaborate term like “procedural epistemology” to denote the imperative aspect of computer programming (a program ‘instructs’ the computer what to do, hence it is imperative) and denote that it is different from the declarative that is in mathematics – ‘the ratio of the circumference of a circle and its diameter is denoted by the irrational number π’. It is useful to know and reflect upon this different because it goes to the heart of why coding is a literacy like reading and numeracy. Yet in a way, the students training to be teachers appeared to have an intuitive understanding though they may not have been able to articulate it using scholarly or philosophical constructs. I think CT fits well into math as they are heavily related. I would try to show students why working through a problem a certain way is logical, or try to explain what needs to happen in order to solve problems (that way they can use their own logic to solve it orderly); computational thinking can be implemented by having the students work together on a math problem. This will allow the students to solve the problem in a systematic and logical way. 32 Pre-Service teacher survey responses from (Yadav, Stephenson, and Hong 2017) The authors of the pre-service teacher study conclude that one pathway to awareness and CT skills is through additions to mandatory courses in educational psychology or educational technology which pre- service teachers already take. In the United States, the Federal Department of Education funded a program for universities that train teachers to develop new educational technology programs and attendant faculty professional development. A basic method of checking attitudes of pre-service students called the “Computing Attitudes Survey” is reproduced in Annex 1, which was used in studies that sought to capture the impact of introductory pre-service programs for teachers (Buss and Gamboa 2017; Yadav et al. 2014). 2.3.3 Teacher mindsets as on obstacle and an opportunity By far the biggest issue that needs to be tackled is the mindset of teachers and pre-service teachers in training. Though teachers with background in STEM disciplines or in arts and craft are sometimes positively disposed towards learning about coding and computational thinking, teacher attitudes about their own ability to teach coding is often not positive. A 2013 study in South Africa had some interesting findings in this regard (Zeeman 2013). The Government in South Africa had been concerned about the apparently declining interest in computer science amongst High School students. A program was introduced whereby students were introduced to coding using Scratch in Grade 10 and then study Java or Delphi programming languages in Grades 11 and 12. Teachers in Grade 10 were surveyed after some months implementing the program. There was a mix of negative and positive teacher opinions about Scratch, though teachers appeared to recognize the enthusiasm of students regarding Scratch and acknowledged the fact that Scratch brought our creativity from students. Teachers reported various concerns, including one that students were having way too much fun to be learning seriously, but the singularly revealing concern was “students explore Scratch at such a pace that teachers can’t keep up”. The idea that the teacher may not be the smartest person in the classroom for a particular activity is a revolutionary one for most teachers. In spite of decades of “new education” reforms and programs towards student-centered learning in almost all countries, the very concept of teacher and learner has a deep basis in the conception of education as knowledge or skill provision from one who knows towards one who does not know. The rhetoric of the teacher being a facilitator or ‘guide on the side’ instead of ‘sage on the stage’ is difficult to implement in practice. To be fair to both teachers and students, there is need for a middle ground. While some students thrive when they are given freedom to explore without any structure, there is benefit to be obtained for most students when there is some structure or scaffolding. It is clear that the teaching of coding cannot follow the traditional approach where the teacher demonstrates a skill and the student seeks to emulate the teacher by following her through drilling or practicing – there is too much customization or individual level variation in coding. And it is also true that learning coding is the prototypical example of learning to learn, with extensive help available online or through the program or platform the student is using. Learning collaboratively is by itself an objective that is supported by students helping each other out. Yet, it is one thing for the teacher not to tell the student an answer because she wants the student to learn trouble-shoot or learn to find help online. And another thing not to tell the student an answer because the teacher does not have the faintest idea about the answer herself. Teaching in a genuinely student- centered mode is actually more demanding than the knowledge provision mode. Even though there may be occasions when a student rather than the teacher may have a better or quicker answer, over a range of CT concepts, the teacher does need to be proficient herself and have the self-confidence in her ability. 33 2.3.4 Online resources, including peer-to-peer support systems Online resources are useful for teachers for a wide range of subjects, but online resources are especially important for the teaching and learning of coding. These online resources may take the form of online portals (e.g. Estonia) and specific coding websites and community platforms (e.g. Bulgaria, France, Finland) (Balanskat and Engelhardt 2014). Some governments have introduced other innovative methods to support teachers. For instance, “tutor-teacher system” of Finland provides a tutor teacher for each school who is responsible from supporting other teachers in implementation of the new coding curriculum. When a MOOC was introduced to teach the teachers to use Scratch and other tools, the teachers themselves produced the course material including videos. The teachers learnt how to use Eliademy, a learning management system based on the open source Moodle platform, and used other platforms such as Google forms for feedback and Padlet for sharing course materials (Toikkanen and Leinonen 2017). Peer-to-peer learning among teachers is an important ingredient of training for teaching coding, with online communities supplemented by meet-up groups. The European Commission encourages policy makers in EU to support networks of teachers and peer-to-peer training for coding education. In some countries, teachers are trained by bottom-up initiatives. For instance, in Denmark, Ministry of Education does not provide coding training for teachers. Instead, a movement of teachers, entrepreneurs and programmers called “Coding Pirates” provides training to teachers. Another example is Code.org’s teacher training workshops in the US. It has trained 30,000 teachers in USA from 2014 to 2017 through professional workshops and conferences. In England, the Department of Education is working with professional bodies such as the British Computer Society and Computing at School (CAS) to provide coding and computational teaching training for teachers. In this program, selected Master Teachers, who are mostly experienced and driven teachers, receive 5-10 days of training over a course of six months and afterwards, each Master Teacher supports around 40 teachers in her/his community. As of 2017, there was 350 Master Teachers, with the goal of increasing the number to 600 in 2018. The Master Teachers are involved in a Network of Teaching Excellence in Computer Science. Table 2.2 The methods of European countries to train teachers in coding education In service or pre-service training Bottom-up initiatives On-line resources By Ministry of Education By universities, company, nonprofits Austria   digicomp Bulgaria   Bulgarian Scratch Society Czech Republic    Union of  Informaticians in Education Denmark    Coding  Pirates Estonia  HITSA: A HITSA  HITSA collaboration of government, webinars and on-line universities and private sector resources Finland     Code ABC and University of Helsinki’s MOOCs France  Ministry of  Inria and Education coordinates Tangara trainings and local education authorities implement them Hungary    Association  of ICT Teachers Ireland     Lithuania     34 Malta  Poland     Portugal   Slovakia  Methodological and Pedagogical Centre under Ministry of Education Spain  UK (England)     Barefoot 2.4 Right Wing of the Eagle: Content for coding education For successful delivery of coding education, age appropriate learning materials are crucial. For early ages, when students may not yet have developed the ability to read, they may use easy to use color and shape based on screen objects, as in Scratch Jr. So called unplugged environments may be especially engaging for the youngest age group. While the choice of platform is no doubt important, it is also important to pay careful attention to the activities in utilizing the platform. One of the possibilities that is generated by modern technology is to lower the problems faced due to disabilities, and to overturn past stereotypes regarding gender. Since quite a few of the platforms available are open-source and free, such as Scratch or Agent Sheets, there is a mistaken tendency to think that the magnitude of resources is not important. These issues are addressed in this section. 2.4.1 Platform and Activities There is a well-known debate between the so-called technophiles and technophobes – people who think that technology is a panacea that will right all education wrongs; and people who believe that technology only intensifies an ongoing decline towards making automatons out of humans (Davidson 2017; Resnick 2017). Davidson is concerned with the collaborative and social activities underlying the ‘new education’. She provides the example of agile software development as an example of the work ethic of the twenty-first century – where team organization and collaboration, including learning from each other’s mistakes is paramount. Mitchel Resnick recommends that before trying to choose between high- tech, low-tech, or unplugged activities, teachers should be searching for activities and tools that will engage children in creative thinking and creative expression (Resnick 2017). From a policy perspective as well as the teacher’s goal in school or after-school activity, it is very useful to keep track of the ultimate goal. Learning a computer language or developing proficiency in the use of a platform such as Scratch, is only a means to an end; choice of platform and activity should serve that end, such as developing computational thinking abilities through creative collaboration. With regard to a platform, a visual programming platform like Scratch has been found to be friendly to children in diverse contexts, as evidenced by the millions of Scratch users or Scratchers. Professional languages like Java may be too complex for children as an introductory language. For instance, Malta has been using Java in its curricula; however, an assessment in 2014 showed that Java was not achieving its goal of teaching students programming concepts and creative problem solving, because Java is a syntax-heavy program and children have to pay attention to commands and rules rather than how the code works (Balanskat and Engelhardt 2014). South Korea addresses this issue by using unplugged education materials (e.g. board games) and visual programming languages in primary school level. As students progress into secondary school, they start learning more advanced languages like Java. One of the important questions to consider when developing content for coding education is determining the stage at which students will move away from exclusively visual programming and start using text programming. Figure 2.4 shows the variety of languages used in the UK according to a Royal Society survey reported in 2017. 35 (a) Primary Schools (b) Secondary Schools Source: (Royal Society 2017) Figure 2.4: Programming languages used in UK Schools Project based activities are meaningful and motivating to students across age groups, possibly because they provide a straightforward way of self-expression. Making games for other children to play and making robots are examples of activities that most children find enormously engaging. Games and game-based coding environments provide self-direction to children because of the instructions and feedback, and also motivation to progress because of the levels in the game. In a research with primary school teachers in Finland, it was found that many teachers use several games or game-based coding environments in classroom. They generally start with coordination exercises with children, where one child becomes a “robot” and the other gives commands to find a path. Then, they move into playing with educational robotic kits, followed by Scratch Jr. As the skills of children develop, relatively more advanced game-based environments such as Scratch, Kodu and Tynker are used in classrooms (Hiltunen 2016). However, when using game-based environments, it is important not to focus on too many extrinsic motivation factors such as points and badges and to encourage intrinsic motivational factors of children to make sure that learning does not depend on only extrinsic rewards. 2.4.2 Inclusion for Gender and Disability Equitable access to learning coding is a very important topic, especially when coding is provided as part of extra-curricular activities that families may need to pay for. In this section we discuss the issue of equitable access to redress imbalances regarding gender and disability. The under-representation of women in ICT industries is a highly discussed topic, which is a part of under-representation of women in STEM disciplines. However, with the introduction of advocacy efforts, the situation appears to be changing. In a guest blog, code.org founder Hadi Partovi reports about the increasing number of girls learning to code http://blogs.worldbank.org/education/schools-are-teaching-10-million-girls-code- gender-equality-real-possibility. The inherent joy in coding, with its instant feedback and endless variation may very well provide a pathway to break the back of gender imbalance in STEM. Girls who 36 may have lacked self-confidence in science perhaps because they were taught science in a boring way, without connection to reality, may discover a love of science due to their success in coding. While there will always be girls who dream of nothing else than being champion “battle-bot” designers, the research suggests that there are aspects of creative computing that appeal more to girls than to boys: these include more story-telling rather than fighting and the use of novel materials and wearable sensors and controllers such as the Lilypad Arduino (Kafai and Burke 2014; Kelleher 2009). The Kelleher study tested the hypothesis that developing a story using creative imagination may be more attractive for girls using Storytelling Alice, a modified version of the Alice 3D programming environment. The study found that middle school girls who used Storytelling Alice spend 42% more time programming than girls who used Generic Alice and are more than three times as likely to allocate extra time to programming. Kelleher went on to develop Looking Glass, a programming environment to “create and share animated stories, simple games, and even virtual pets” 11. There was a considerable lag between the development of reading and writing, essentially in pre-historic times and the development of the Braille language for blind or visually impaired individuals to read. Braille was developed in the early 19th century by the blind teenaged Louis Braille. Perhaps not so well known is that Braille re-mixed the original language developed by Charles Barbier de la Serre, a sighted French artillery captain in Napoleon’s army. 12 Barbier had attempted to answer Napoleon’s demand for a tactile code that could be used by soldiers such as one at artillery encampments, at night time, using their fingers instead of using a light to read printed text and thus become visible to the enemy. Barbier’s invention was too difficult and never adopted, but Braille’s modifications, with help of fellow students at the Royal Institution of the Young Blind, were to prove highly effective. Another remarkable story about the power of collaboration in creativity comes from the development of a sign-language by deaf children in Nicaragua, after the first time in the 1970s when there was a school for the deaf and hence a context of prolonged contact – the story is told in Science (Senghas, Kita, and Özyürek 2004). Due to heightened awareness and sensibilities in the 21st century, the emerging literacy of coding will likely be accessible for disabled individuals from the very beginning, without a prolonged lag as in the case of earlier literacies. Figure 2.5 indicates some of the technologies available. The picture shows a commercially available technology using finger tapping motion and sequences instead of a keyboard. Technologies available to help disabled gain access to computing • Muscle messages/electrode sensors • Eye gaze/Eye motion monitor • Head tracking/Head motion • Light operated input device • Sip and puff system • Braille PDA and Note taker • Text to voice/Voice to text • Tap activated wearable keyboard (pictured on right) Source: https://www.tapwithus.com/ Source: Computerworld, February 2010 Figure 2.5: Technologies for disabled to gain access to coding and computation 11 Accessible and downloadable freely, with online community and easy re-mixing and sharing capabilities at http://lookingglass.wustl.edu/ 12 http://www.afb.org/info/living-with-vision-loss/braille/what-is-braille/123; https://www.avh.asso.fr/fr 37 Interestingly, the product is marketed as a one hand text input device for everyone, with blind or visually impaired individuals being only one group of users. Entrepreneurs have sought to create accessibility through sounds and touch-screens for the block based environments such as Scratch that are immensely popular with children (Milne and Ladner 2018). Another interesting avenue for blind or visually impaired students to learn coding is through 3D printing, where the code that the student writes produces tactile objects, to provide a similar kind of real time feedback about the results of code as a sighted user takes for granted (Kane and Bigham 2014). One of the fascinating collaborative possibilities that are generated by accessibility to coding is generated when children or young adults engage in coding and making with a purpose. Cathy Davidson makes a very important point about 21st century education – she argues that it is time to replace what she sees as the decrepit model of education as knowledge transfer from expert teacher to novice student. In its place, one of her suggestions is in support of purpose driven projects, where the teacher helps the student identify and solve real life challenges (Davidson 2017). She gives the example of Sara Hendren, instructor at the Olin College, who works with students to develop products with assistive design. As more children learn coding, and as coding proficient high schoolers arrive at college, it is quite likely that the kind of engineering course taught by Sara Hendren at Olin College may become the normal kind of course taught everywhere. In the meanwhile, it is possible even for the middle school child to make a beginning. The ‘need gap’ in the market is identified in recent study that details the problems regarding games to motivate stroke patients (Hung et al. 2016). Games could potentially help overcome the monotony of the repetitive actions that stroke patients need to undertake for rehabilitation; yet existing games on offer are apparently not so interesting to play. An educator from a middle school in the American state of Georgia has already taken up the challenge, devising a Scratch activity for her 7th grade students, together with resources for other teachers who may want to re-mix the material 13. These resources deal with coding concepts such as dynamic game programming, which automatically increases the level of difficulty as the game player acquires proficiency, thus keeping the player motivated. 2.4.3 Importance of Human Resources, Facilities and Equipment Human Resources When the South Fayette school district near Pittsburgh embarked upon a curriculum for human-centered design, with coding literacy for all children at the heart of a studio model of instruction, one of the first decisions it made was to create a new position, the director of technology and innovation. The district embarked on a program of integrated coding, where general subject teachers were expected to bring coding activities into their lessons – the teachers needed to learn fast, and some could, but quite a few could not. The district then hired specialist STEAM teachers who worked directly with students and also supported other teachers. The program has been successful in terms of improving student cognitive achievement scores and measures of computational thinking ability. 14 This is not to suggest that school authorities should profligately hire people and hence increase the cost of providing education. But it does suggest that in order to implement a serious reform program, investment in human resources can scarcely be avoided. There is one interesting phenomenon here that makes the task of upgrading human resources slightly less onerous – the presence of coding and maker enthusiasts from among the teaching community and in society, who are interested in contributing and volunteering. It would appear that children are not the 13 http://scratched.gse.harvard.edu/resources/lets-play-dynamic-physical-therapy-games-using-scratch-and-makey-makey- plus-turning-code-c 14 (Ruberg and Owens 2017) 38 only ones who may become super-enthusiastic or joyful about coding. The enthusiast led initiatives are not only individual or personal efforts, but very large scale philanthropic organizations like code.org, #Yeswecode, Girls Who Code, and others with an international footprint. Multi-national technology companies also support these activities, perhaps out of altruism or self-interest – for public schools in most countries, the teaching of coding, especially associated with making, Facilities The example of the STEAM studios in the South Fayette district is again illustrative of a serious attempt to introduce computational thinking integrated into the curriculum. Many other jurisdictions have also invested in laboratories or studios or maker spaces. The South Fayette case is particularly interesting because the size and configuration of the district is such that there is a single educational campus and it may be regarded as a study of a school. The intermediate school has three floors, one for each of the Grades 3, 4 and 5. There is one STEAM studio at the center of each floor, with core classrooms on either side, a “layout that reflects a philosophy transforming the entire district (Ruberg and Owens 2017). A setup that encourages conversations around small tables and promotes collaborative activities can be as important as the content used in the classroom (Marina Umaschi Bers 2017). Although many computer classes have desktop computers that cannot be easily moved around, computing classrooms should be flexible learning spaces if possible. When learning how to code, students’ interactions with each other, pair programming and interactions with teacher are important factors. Therefore, using laptops / tablets in the classroom could be a better solution to create flexible learning environments. This would also let teacher use unplugged and plugged activities in a more flexible way and configure the class more easily based on the planned activities (The Royal Society 2017). As with human resources, the important idea is not just to make investment in buildings, but to target specific usage elements such as enhancing group work. When the only common areas in schools were gyms for physical exercises, libraries for books and periodicals, and cafeterias for school meals, it was probably sufficient to have one such facility for each school. However, if the idea of coding as a literacy and integrated computational thinking throughout the curriculum is to become a reality, the students and teachers likely need more frequent and closer access, so a resource room on each floor may prove to be very useful. While reforms for participative and collaborative learning abound, with the case of coding and computational thinking, it is practically impossible to teach meaningfully in the traditional way with the teacher in front facing rows of seated children on desks. As it is the rare school that might have sufficient resources for a complete makeover of physical plant, the authorities may tap into the growing knowledge of adaptive re-use for sustainability (Gelfand and Freed 2010) . Equipment Quality educational resources are needed to engage children in programming and generate conditions for them excited about what they can do with coding. Educational robots are one of the most engaging tools for children since they provide an immediate feedback to children’s actions. Even though the costs of the educational robots have been falling rapidly, most of the educational robots models are still expensive for school. Extremely low cost robots with high functionality have not yet appeared in the market as of the finalizing of this book in the latter half of the year 2018, but there are some interesting innovations. One such innovation is the BBC micro:bit, an open-sourced hardware that could be the world’s cheapest computer, with some version available at a price as low as US$15. The Micro Bit is a small circuit board about half the size of a credit card, with an array of 25 LED lights, that can be programmed to show letters, numbers and other shapes, and a Bluetooth chip for wireless connectivity. It has a huge range of capabilities for its size and cost. The micro:bit aims to inspire young people to begin coding and become creative with digital technology. BBC’s “Make it Digital initiative”, distributed a micro:bit to every 39 child in Grade 7 across the UK in 2016 for free. Following from BBC support, the micro:bit Educational Foundation was founded to make the BBC micro:bit and its supporting resources available for purchase to all around the world. 2.5: Tail of the Eagle: Assessment of student knowledge of computational thinking At some point, students will need to be self-motivating and able to bring their talents and knowledge to bear on the decisions and problems that make up their lives. They can’t just wait for the teacher (or politicians, or salespeople, or religious leaders) to tell them whether or not the answer is “right.” Effective assessment empowers students to ask reflective questions and consider a range of strategies for learning and acting. Over time, students move forward in their learning when they can use personal knowledge to construct meaning, have skills of self-monitoring to realize that they don’t understand something, and have ways of deciding what to do next. Lorna Earl in “Assessment as Learning”, (Earl 2012) The unique method of constantly learning by doing generates two peculiar methods of assessment for computational thinking – the use of machine generated assessment feedback; and the concept of an individualized learning path. Eventually, as digitization and coding permeates traditional subject, it is likely that all assessment will share these methods, but for now the learning of coding leads the way. Real-life problem solving is usually different from traditional teaching and learning methods – in real life, the problems do not come in a known format or scheme, and the most important thing is that there is usually more than one solution (Akcaoglu and Koehler 2014). In this section we describe some special considerations regarding assessment of computational thinking, present two examples of the currently used tools and the direction of evolution of those tools. We also briefly consider how computational thinking has been linked to improvements in cognitive and non-cognitive skills such as team-work and collaboration. 2.5.1 Key considerations regarding assessment of computational thinking Reflecting the inertia that characterizes education systems, many countries where coding is a part of curriculum, assess coding competencies of students through tests including answers to multiple-choice questions. However, there are some very basic or fundamental differences between computational thinking and other subjects. Lorna Earl devised a simple classification regarding assessment that is very helpful – she characterizes traditional exam-based assessment as “assessment of learning” – the student is supposed to have learnt something and the exam is designed to check whether or not the student has indeed learnt the material. More popular nowadays is the idea of formative assessment, where the idea is not to judge the student’s performance in the past, but to provide feedback including oral or written comments on a student’s work to help the student correct errors and improve her skills – this is called “assessment for learning” by Earl. Finally, and this one is exactly suited to computational thinking, is “assessment as learning” – where the student sets up her own goals and is equipped with tools to understand how far she has succeeded in reaching them and what she needs to do next. The role of the teacher and the use of questions changes dramatically when it comes to assessment of computational thinking. A program either works or does not work – the feedback is usually instantaneous, and the student knows that he or she has to try an alternative pathway and then another until the objective is met. It is also possible that given the constraints that are set up for the problem, a solution is unattainable, but the challenge is for the student to figure that out. Questions in this case come from the student herself, it is the student who figures out what skill she is lacking but she needs to acquire to sole a given problem. There is no time to be wasted in asking students a question to which the teacher knows the answer, but the teacher wants to find out if the student knows. Rather, it is almost always the student who asks the question! And the role of the teacher is not to provide the answer, but 40 to help the student figure out the optimal thought and action process. Sometimes the teacher may not the answer, which is perfectly okay, as long as the teacher knows how to guide the student in finding out the answer. The process of debugging a program is essential to learn coding, how to eliminate possible answers a systematic and sequential way – it is one of the ways that assessment is a form of learning. 2.5.2 An Automated Assessment tool for Computational Thinking: Dr. Scratch Dr. Scratch is a free, online analytical tool that provides an assessment of computational thinking based on the content of a Scratch program. All the user needs to do is to provide the web URL of the Scratch program at http://www.drscratch.org/. Scratch is available in multiple languages including Russian which can be inputted to the tool, and the interface of the tool, developed by Spanish researchers is available in Spanish, Portuguese, Italian and other languages, with a Russian version under development. Dr. Scratch analyzes the Scratch project along seven dimensions of computational thinking: flow control; data representation; abstraction; user interactivity; synchronization; parallelism; and logic. For each of these seven dimensions, the authors have identified a rubric that matches the program complexity to proficiency level, as shown in the example of Figure 2.6 for the dimension of ‘logical thinking’. Basic Level: 1 point Developing Level: 2 points Proficient Level: 3 points Uses if block Uses if else block Uses logic operations Figure 2.6: Example of three levels of development for Logical Thinking dimension in Dr. Scratch The scores generated by Dr. Scratch are provided to the user in the form of a dashboard as shown in Figure 2.7. Dr. Scratch has been the subject of a series of research projects that seek to establish its validity, reliability and usefulness. One of these research projects compares the scores generated by Dr. Scratch against established metrics used for determining the complexity of a software system. The study reports positive correlations between Dr. Scratch and the other measures, which the authors interpret as a validation of Dr. Scratch (Moreno-León, Robles, and Román-González 2016). Some researchers have cautioned that children can use computer constructs without computational understanding and that tools such as Dr. Scratch may need to be supplemented by other methods. One such method is an artifact- based interview, where the student answers questions about their use of specific artifacts in their code. 41 Figure 2.7 Screenshot of results from a Dr. Scratch analysis The purpose of the assessment is of vital importance. Merely providing a report card about a project would not be very different from administering a test with multiple-choice questions to check if the student knows the answer. From the student’s point of view, the assessment may lead to an understanding of what are the next skills the student needs to learn in order to get her program to do something. Researchers analyzed a sample of Scratch projects and performed a cluster analysis of the rating data – they found three clusters of increasing complexity: cluster 1 of animation, art and music projects; cluster 2 of stories; and cluster 3 of games (Román-González, Moreno-León, and Robles 2017). Researchers suggest the development of a learning path based on the analysis of trajectory of previous projects. Depending on the level attained and the type of project, the dashboard would provide a suggestion of other projects from which to draw inspiration. A common mode in learning software like Scratch is termed “use-modify-create” – with the source code shared as a rule, a user can play around with the project to understand how it works, then modify parts of the project to create different effects and end up creating a new project based on the skills learned through the earlier two steps. In a classroom setting, teacher dashboards can provide teachers a consolidated snapshot of the entire group. Automated assessments can also be supplemented through oral assessments or artifact-based interviews. A research with teachers in the UK also showed that there is support for oral assessments among teachers because verbal explanation of how a student would solve a problem is not necessarily less valuable than a written one. Explaining the logic behind programming projects can also better suit those students who have a great problem-solving mind but have difficulty in articulating their reasoning on paper (The Royal Society 2017). Sample questions to ask in these oral assessments include: • Explain what the selected project does, • Describe how the project could be extended, • Fix a bug in the project, • Remix the project by adding a feature 42 2.5.3 Future direction of Assessment: Flow Zone of AgentSheets AgentSheets, developed at the University of Colorado, Boulder is another tool for children to learn coding through developing games, with a view to transfer that learning to core scientific concepts. The idea is that the same concepts that children learn to make games can then be applied to simulations that capture scientific principles. AgentSheets is available online at http://www.agentsheets.com/. It follows the principles of low floors and high ceilings, meaning that it is easy to get started to make your first game, with only a few hours of learning, and it is possible to advance to high levels of complexity and use of computational thinking. The assessment rubric and methodology developed for AgentSheets suggest a pathway or future direction for assessment of other software used by children to learn computational thinking (A. R. Basawapatna et al. 2013; Koh et al. 2010). There are three concepts that are combined in this approach: (i) Zone of proximal flow; (ii) Program Behavior Similarity or PBS; and (iii) Computational Thinking Pattern Analysis or CPTA. These are explained below. Zone of Proximal Flow Lev Vygotsky’s pedagogical concept of the zone of proximal development (ZPD), meaning the development of a child’s ability through scaffolding and guidance for challenging tasks that are not impossibly difficult, is combined with Csikszentmihalyi’s idea of flow state, which refers to a person is undertaking an activity with a high level of motivation and adequate control. The concept is best understood through a diagram and a reflection on the peculiarity of learning to code by learning to make a computer game. Figure 2.8: Zone of Proximal Flow: Project First approach provides motivation to acquire skills 43 The child needs to learn a skill, for example how humans are stopped by walls, but a zombie can crash through them – the question is – will the child first learn a set of principles, such as having different rules for different types of agents, or will the child be better off tackling issues as they arise in making a project, seeking to acquire just the exact skill when needed. The researchers claim that the project first rule may be better in keeping children motivated and successful in developing skills, but eventually this is an empirical issue which may have different answers depending on the child and the set of projects he or she is attempting to create. If the challenge is too difficult for the level of skill the child already possesses, she may go beyond her ZPD and in a stressful anxiety zone and give up. If the tasks are too easy, like following the instructions in a manual to learn a skill, the child may easily get bored. Is it possible for an assessment technique to help the child be in the green or orange zone as shown in the figure? To examine that option, we need to understand an interesting measurement concept. Program Behavior Similarity (PBS) PBS measurement is a response to a criticism levelled against syntactic evaluation of the kind used by Dr. Scratch, which are stand-alone or intrinsic measures of complexity. Syntactic evaluation may not be able to monitor incremental changes in program quality as the measure lacks the aspect of context or purpose. One alternative is drawn from a totally different literature called Latent Semantic Analysis (LSA) that is used to find semantic information from comparisons of natural text. The canonical use of LSA is in investigation of plagiarism – clearly, finding common words between two texts does not indicate plagiarism, nor indeed the use of common phrases. However, the presence of substantive chunks with the same meaning may indeed indicate copying between two candidate pieces of texts. Mathematically identical principles that compare two pieces of natural text can be extended to a comparison of two programs, leading to the measure of program behavior similarity. The agents in an AgentSheets game use combinations of different conditions and different actions (example if left arrow key pressed, agent moves left one step is one such combination). Each game can thus be represented as a vector, with each element in the vector representing an individual condition and action combination used to implement the game. Two games u and v can be compared by examining the cosine similarity between their vector representations, as shown below. If the games share identical elements, the cosine similarity will be 1; if the vectors are orthogonal, for instance they do not share any rule, the cosine similarity will be zero. ∑ =1 (, ) = … (1) �∑ 2 =1 .�∑=1 2 Computational Thinking Pattern Analysis (CTPA) Over many years of development and use of AgentSheets, researchers were able to devise a set of nine canonical patterns that relate to computational thinking concepts. These are termed as transferrable concepts, referring to the transfer between playing games and scientific concepts. An example is “hill climbing”, a common algorithm used for optimization in diverse contexts. An agent employing a hill- climbing algorithm looks at neighboring values of interest and moves towards the one with the largest value. These values could be, for example, the “scent” of another agent, which would be useful in a zombie game, but the concept is transferable to other contexts of optimization (A. Basawapatna et al. 2011). CPTA is the application of the PBS of equation (1) above pair wise to each of the canonical computational thinking patterns which may or may not find similar code chunks in the program being 44 assessed. The result is an m length vector, where each of the m elements represents the score for a canonical pattern. In an instructional context, a tutorial game is used that provides an idea of the best possible combination of canonical patterns, and the candidate game compared with the tutorial game. Each axis of the polar graph below shows canonical patterns n increasing order of difficulty clockwise starting from cursor control. The score on each dimension is ten times the PBS. Figure 2.9: CTPA Diagram from Koh et al, 2010 It is straightforward to draw a numerical measure from the above graph to indicate the divergence of the tested game from the tutorial game. This is simply the normalized sum of the divergence – the root of squared deviations divided by the root of the number of dimensions used. The advantage of this approach is that it penalizes over-programming or unnecessary complexity. Averaging across different projects will provide a skills score for a student. In item-response theory, the most commonly used testing theory, item difficulty is measured against person ability by comparing performance of different ability individuals over test items of varying difficulty. In a similar manner, the challenge level of games can be computed on the same scale as the skill level of individuals at a point in time. Basawapatna et al propose that these scores can be used to provide a proposed learning trajectory depending on the skill level attained. Considering a course made up of a series of challenges, the next challenge to be posed to the student can be just of the correct increment so the student stays in the ZPD or flow areas shown in Figure 2.8 (A. R. Basawapatna et al. 2013). At the time of writing, the use of CTPA to design and implement computational thinking courses appears only to be a proposal that indicates the potential of computerized assessment of a student’s ongoing work. There is no need for either the student or teacher to spend time in separate testing, as usually happens with traditional subjects and assessment systems. CTPA based assessment can be combined with appropriate pedagogy, where the teacher engages groups of students to analyze the instantly 45 generated results of their programming efforts and help students identify their own learning path. Teaching of computational thinking through coding thus helps the student learn how to learn. Since the earliest days of introducing computational thinking to children, one of the suggested reasons for doing so has been the claim that the learning to code helps improve generalized cognitive skills. It appears logical that an activity that helps you to think in a more disciplined, systematized way will help you to always be a smarter thinker. Abstraction comes easy to some children within the same age group; for others coding may be instrumental in helping them think abstractly. An individual thought can be seen on the screen in terms of a colored block or written words of code – manipulating the block on the screen may help develop ability for mental manipulation, at least in theory. Through feedback and analysis as in CTPA, thinking about your own thinking can be carried deeply, thus leading to improvement in cognition across the ability distribution. It is also reasonable to hypothesize that different approaches to teaching coding may have differential impact in terms of cognitive improvement – research evidence can help identify optimal elements that enhance positive impacts. 2.5.4 Measuring Collaboration and Teamwork Formation An interesting application regarding assessment of computational thinking can be found in a study of a three year intervention (2014-2016) to teach children computational thinking called uCode@UWG, at the University of Western Georgia in the United States (D’Alba and Huett 2017). The program was inspired by the CoderDojo model, a worldwide movement that encourage communities to set up freely accessible coding camps or dojos. The aim of uCode@UWG was “to provide an environment where kids can access computer programming—conceptually and culturally—in a fun, informal environment, supported by experts and caring volunteers in the local community of Carrollton, Georgia”. The program is based on the support of volunteers, in this case computer science professionals from the university and private industry were the lead mentors. A novelty is that parents are encouraged to work along with children, aged 7 to 17 years. The researchers who conceived and took the lead in implementing the uCode@UWG chose to use a methodology termed “interaction process analysis”, an observation protocol that is surprisingly relevant given its development to study small groups long before those groups would be learning coding (Bales 1965). The categories proposed by Bales incorporate the fact that any group interaction necessarily has two sides, or comes in pairs – for example, asking and answering questions; agreeing or disagreeing with a proposed course of action and so on. The clever thing that Bales did was to classify these pairs in various meaningful groupings. As indicated in Figure 2.10, 12 observed behavior categories are in six opposing pairs, with the figure to be read starting in the middle and radiating outwards. The first pair refers to problems of orientation – in a group, especially at the beginning of an activity, there will be individuals who will be asking for orientation – to make sure of effective communication, there would be repetition and confirmation. Correspondingly, there will be a person or person who will provide the sought for orientation. – who will repeat, clarify and confirm. The classical example of this behavior is in an airplane cockpit, where the pilot and co-pilot run checklists to make sure the required procedures for safe flying are being carried out (Gawande 2010). Highly effective group work would likely follow one of two patterns – there would be symmetrical communication, meaning requests for orientation from some group members are met by answers from others; or the group has been working together for a long time and no orientation is required. Signs of a dysfunctional group would be where pleas for orientation go unheard. If there is only provision of orientation without anyone asking for it, this would likely be less of a coding group and more of a traditional class where a teacher provides all the orientation needed. 46 Figure 2.10 Interaction Process Analysis as designed by Robert Bales The figure indicates a further five pairs – problems of evaluation; problems of control (which deals with the often tricky aspect of providing suggestions and asking for suggestions); problems of decision (when a group has to make joint decisions, is there someone who always agrees or always disagrees or is there a healthy process of listening and expressing); problems of tension management (for instance tension release through jokes or laughter) and problems of integration, referring to group solidarity or antagonism as the opposite of solidarity. Bales further classified the 12 behaviors, which could be verbal or non-verbal into four groups. The middle three pairs are termed collectively as the Instrumental- Adaptive Task Area, these refer to questions and answers that are instrumental in getting the group’s work done. The outer three pairs are termed as the Expressive-Integrative Socio-Emotional Area, dealing with positive and negative reactions related to feelings of group members and how they are allowed or prohibited to express their feelings. In the implementation by the ucode@UWG researchers, they randomly chose a set of participants and conducted individual unobtrusive observations for a period of time between 5 and 10 minutes per person, and noted down the occurrences in a table, reproduced as Fig 2.10b. The table indicates the person by a code referring to gender (F or M) and age in years, because these are the two variables the researchers wanted to focus on. Row totals indicate the occurrence of each of the behaviors across the 17 students observed. The study does not report experimental evidence that indicated how taking part in coding activities may or may not have helped the acceleration of teamwork, collaboration and leadership skills. The method, based on Bales categories holds promise – data from Fig 2.10b can be subjected to Rasch analysis and item person scores generated (Bond and Fox 2015). Developments in digital video technology and wearable devices can lead to an automation of the data collecting process. Together with assessment of the coding itself, assessment can thus be extended towards feedback regarding skills of teamwork and collaboration. 47 Figure 2.11: Bales Interaction Process Analysis Data from ucode@UWG (D’Alba and Huett 2017) 48 Take-aways from Chapter 2: Five choices regarding implementation • Head 1 of the Double headed Eagle: Coding through the curriculum: This can be considered to be a traditional approach. Countries have experimented with various approaches: to teach coding as a separate subject; to incorporate coding inside of the traditional subjects; and to include coding in a cross-curriculum strategy. The tendency is for coding to be initiated as part of Primary Education and further deepened in Secondary Education. Some countries, such as the United Kingdom, have made a radical break – with earlier systems geared towards general computer using skills now being replaced by explicit reference to coding, computational thinking and computational science. • Head 2 of the Double headed Eagle: Coding through extra-curricular activities: Instruction regarding coding requires delivery mechanisms which are drastically different from traditional subjects. Coding cannot be taught as knowledge transfer through lectures or skill transfer through demonstration and copying. Extra-curricular activities are already based on connecting interests of learners, on embedding learners in a community and on making and creating artefacts – elements which are needed to learn coding. • Left Wing of the Eagle: Teacher Professional Development: In thinking about coding instruction, it is important to understand the inapplicability of the linear model – of developing a curriculum, then developing a corresponding program to teach that curriculum and then the teachers to deliver that curriculum. Rather, the challenge is to modify teacher mindsets towards a model of learning where the teacher does not always need to be the smartest person in the room, and the modality of teacher’s improving their own skills takes place through online and in-person networks. • Right Wing of the Eagle: Content for Coding Education: The market for content is huge and dynamic and any education minister in a region or national headquarters typically will have a row of people seeking to market the latest products. The important consideration are the activities that are afforded by the platforms. The market for products is considered more deeply in the next chapter. Here it is noted that the platforms need to pay special attention to the issue of inclusion for gender and for students with disabilities and interesting developments in this regard are described. • Tail of the Eagle: Assessment of Student Knowledge of Computational Thinking: As coding provides its own immediate feedback to the student, the purpose of assessment to determine the knowledge and skills of a student is fundamentally transformed. Automated assessment on the fly, while a student is developing her project, is the direction of assessment in this area. Development in this area has not yet been deep, but very interesting possibilities are indicated by the examples of computational thinking pattern analysis (CTPA) and creating systems that will encourage students to progress along an optimal development path. 49 50 3. Multitudinous Market 3: Multitudinous Market The number of programming tools for children has gone up substantially in recent years, and new products are always coming into the market. With many different tools in the marketplace with different functionalities, it would be useful for teachers, parents and children themselves to be able to select the tools serving their specific goals. To help inform readers about the tools available, this chapter reports on a compiled list of approximately ninety tools aimed to improve coding / computational thinking skills of children. Twenty of these tools were originally developed for Russian speakers, mostly but not exclusively from the Russian Federation. 3.1. Impact of Coding on Positive Youth Development A theoretical framework of the relationship between technology and development of skills and values has been developed by Prod. Mariana Umaschi Bers at Tufts University (M. Bers 2007).This useful framework, termed Positive Technology Development (PTD) posits deep impact of an activity like coding, beyond the development of computational thinking and other skills. A detailed underlying research program provides empirical support for the framework. A toolkit has been developed that enables the application of this framework to multiple technology contexts. This toolkit is being included as Annex 2a, a checklist for observation of what children are doing; and Annex 2b, a checklist for observation regarding the facilities and the teacher or facilitator. The framework reinforces the premise that any particular product or tool cannot be evaluated meaningfully without its placement in context – how the tool is used determines how impactful it can be. Tools need to be designed with specific affordances, for instance, making it easy to remix code is closely tied to the possibilities of developing collaboration, developing a game affords play (Hammond 2010). Bers suggests that previous discussion regarding youth and technology has been unproductively been couched as responses to negative situations – youth-at-risk and protection of youth against negative aspects of technology, such as inappropriate use of social media and pathological cases of video-game addiction. She suggests to focus instead on the positives, leverage the fact that youth often are already using computers in multiple ways, within and outside of school. While the initial development of the PTD framework was directed towards youth or older children, the framework was later extended to include children. 3.1.1. Positive Technology Development Framework The explicit end goal of educational programs guided by a PTD framework is not only to teach children how to code or how to think in computational ways, but to engage them in positive behaviors. Within the PTD framework, the vision of coding as literacy that empowers individuals can be implemented. -(Marina Umaschi Bers 2017) Bers proposed six C’s in which technologies are designed and used with specific features that engage children in behaviors that are likely to promote personal assets. The personal assets can also be classified in six C’s and these assets reflect main characteristics involved in healthy and positive youth development, which lead to thriving and healthy communities. The six assets and corresponding behaviors promoted by technological interventions are illustrated in Table 3.1. There are two sets of assets/behaviors – the first set relates to intra-personal behavior and intra-personal assets; the second set is inter-personal. The three pairs of behaviors/assets in the intra-personal domain are content creation/competence; creativity/confidence and conduct/character. The corresponding pairs in the inter- personal domain are communication/connection; collaboration/caring and community- building/contribution. Each of these pairs is explained in turn. 51 Table 3.1: Positive Technology Development Assets Definition Behaviors Definition generated Supported Intra- An ability to use technology, Creation of personally meaningful personal to create or design projects projects; youth become producers, domain using the computer in order to Content not consumers; youth develop Competence (contribution accomplish a goal, and to Creation competency in participatory online to self) debug projects and problem- culture. solve. A sense of oneself as someone Development of self-efficacy through who can act and learn to act experiences supportive of creative successfully in a technology- expression, sharing, and reflecting. Confidence rich environment and find Creativity help when necessary and have perseverance over technical difficulty. Awareness and respect of A bounded playground with freedom personal integrity and moral for youth to make choices, take risks, and social values while using Choices of experience consequences, and reflect; Character technologies in responsible conduct experiment with moral and ethical ways and an ability to express issues and community norms. oneself using technology. Inter- Positive bonds and Synchronous and asynchronous personal relationships established and communication through multimedia domain maintained by the use of (text, voice, sound, video, etc.); Connection Communication (contribution technology. development of language and to others) literacy; promotion of connections between youth and adults. A sense of compassion and Common tasks require that youth willingness to respond to depend and respond to each other; needs and concerns of other experience includes technical and Caring individuals, to assist others Collaboration social supports from peers and with technical difficulties, adults; youth use technology to help and to use technology as others. means to help others. An orientation to contribute to Shared sense of community society by using and responsibility; mechanisms for proposing technologies to Community contributions to the common good; Contribution solve community/social Building experiencing democratic problems participation. Source: (Marina Bers, Doyle-Lynch, and Chau 2012; Worker 2014) 3.1.2 Content creation and competence While hierarchy and abstraction are valued by the structured programmers' "planner's" aesthetic, bricoleur programmers, like Levi-Strauss's bricoleur scientists, prefer negotiation and rearrangement of their materials. The bricoleur resembles the painter who stands back between brushstrokes, looks at the canvas, and only after this contemplation, decides what to do next. Bricoleurs use a mastery of associations and interactions. For planners, mistakes are missteps; bricoleurs use a navigation of midcourse corrections. For planners, a program is an instrument for premeditated control; bricoleurs have goals but set out to realize them in the spirit of a collaborative venture with the machine. For planners, getting a program to work is like "saying one's piece"; for bricoleurs, it is more like a conversation than a monologue - (Turkle and Papert 1992) Tools that are aimed at improving coding and computational thinking skills of children involve content creation in different ways. When children engage in content creation and learn about the design process 52 of building and programming, their competence in computer literacy and technological fluency increase (Marina U. Bers 2010). Furthermore, successful tools let “tinkerers” mess around with the materials to come up with ideas they create, design and program, which further contributes to children’s competence. “Tinkerability” is defined as users experimenting with code snippets and commands in the way one might tinker with mechanical or electronic components (Maloney et al. 2010). In this respect, tinkering does not have to be associated with physical construction. It is an approach of making things, whether the things are physical or virtual. A child can tinker when she is writing a story or a code. The key idea is the style of experimenting and interaction (Resnick 2017). Tools for children available in the market shows that there are several ways for content creation, from storytelling to making art to creating mobile applications. Though one tool by itself may or may not provide multiple creative opportunities, it is important that content creation provide children with what Papert called “objects to think with”. 3.1.3 Creativity and confidence Engagement with coding and computational thinking tools requires use of problem solving skills by children. In the process of solving problems posed in creative ways, children develop confidence in their learning potential. However, smart or creative results may be difficult to achieve especially for children who are just starting to use technological tools. Students who are novice in coding generally do not know exactly what they want to build, what is possible to build, or how challenging certain kinds of projects will be to complete. This situation may create frustration for the child. Mitchel Resnick, one of the creators of Scratch, also recognizes this issue. He says “We know that some children have trouble getting started with Scratch. They look at the Scratch site and feel overwhelmed by all of the options. We need to provide more structure and support to help children get started with Scratch - but at the same time, we want to make sure that the newcomers have the opportunity to follow their interests and passions.” (Resnick 2017, p. 82) In addition to the challenge related to starting a new project, if a child cannot relate the coding problem that she is working on to an authentic problem in her life, then the student starts considering coding a socially isolating path (Kelleher and Pausch 2005). Therefore, Lye and Koh suggests presenting authentic problems that are relatable to children and they can try to address through programming. Possible problems can be designing a game strategy, games, or digital stories (Lye and Koh 2014). Looking Glass, developed at the University of Washington in St. Louis, is an example of a platform helping kids generate ideas through providing “community templates”. These templates make it easy for the child to get started to tell her/his story and unleash their creative potential step by step. Online communities also can provide some support for idea generation through showcasing users' projects (Kelleher and Pausch 2005). Apart from Looking Glass, Scratch is planning to address the idea generation difficulty issue by creating a collection of interest-based microworlds, where a simplified version of Scratch with a limited set of programming tools will be presented. For instance, a microworld may be designed for making interactive soccer games. After children get familiarized with Scratch by using the simplified microworlds, they will be able to import their projects into full Scratch environment, so that their improving skills will not be interrupted (Resnick 2017). 53 3.1.4 Choices of Conduct and Character In technological environments, character is defined as “awareness and respect of personal integrity and moral and social values while using technologies in responsible ways and an ability to express oneself using technology”. The character dimension within PTD refers to the imperative to avoid behaviors that may negatively affect other users. Programming, like a playground, can create opportunities for children to explore moral choices and to experiences consequences of their behavior. In the process of making choices, the child builds character (Marina Bers, Doyle-Lynch, and Chau 2012). For instance, Wonder Workshop, an educational technology company, offers classroom packets of Dash & Dot robots which are educational robotic kits for children. For classes of more than 30 students, the packet includes only 12 robots. In these kinds of situations where each child is not given a presorted robotic kit, children learn to take turns in playing with the robot, help other children play with it, and negotiate for what they need. Using limited resources in a community helps children develop an inner character to guide their actions in a responsible way (Adkins 2016). An interesting example of character building is reported from a robotics class for Grade 4 students in the Republic of Korea (Choi and Lee 2018). Students were presented with authentic scenarios such as disaster relief and rescue, building earthquake-resistant houses, recycling and dealing with future food shortages. Another example from Singapore involved students collecting data about water quality from local ponds after designing and building submersible Sea Perch robots, and then learning to analyze the data collected by the robots http://seaperch.mit.edu/index.php (Hameed et al. 2018). 3.1.5 Communication and Connection Communication helps children exchange ideas, externalize their thoughts, and promote connection between peers or between children and adults. Communication may take different forms: • Active interaction with shared projects in online communities: In many tools examined in this section, once a child completes a project, she can share it with the online community and interact with others’ projects in the form of comments, likes, favorites, and ratings. An example of a very active community on Gamestar Mechanic, a game-based platform designed to teach kids coding and the principles of game design in a highly engaging environment. • Traditional text-based forums: Traditional text-based forums allow children to ask questions, share ideas and get feedback or answers from other community members. For instance, Stencyl, a block-based 2D game creation tool, has one of the most active text-based community forums. Its “ask a question” thread has tens of thousands of posts. • Social media groups: Some platforms take the traditional text-based forums a step forward and create a social media channel to share updates with their users, while allowing interaction among the users. Young Coder, a free online learning platform for C programming in Russia, adopts this approach. Users can interact with each other and the platform developer through the VKontakte social media website. Communication and connection are vital when it comes to software development by adults, and this is one of the PTD dimensions where a teacher or facilitator may provide very useful support. It is quite common to hear “learning how to learn” as a fashionable catch-phrase, but how is it to be implemented in real life? One method is to learn how to ask questions in a way that will maximize the probability that someone can help. Also, answering questions clearly is a skill that goes beyond a mere technical solution to a coding problem. Some websites like stackexchange require the asker to provide a “minimum 54 reproducible example” – so that a potential helper may be able to reproduce the problem in order to provide help. The helpers themselves are usually part of a self-governing reputation building system – is not enough to know a possible answer to a given problem, is also important how you present the answer. Those whose answers are clear to understand may also need to evaluate other alternative answers. Perhaps there are alternative solutions that are simpler or faster or better for other reasons, and an expert’s reputations may be enhanced by complete explanations which at the same time are not too wordy. 3.1.6 Collaboration and Caring Remixing is one of the primary ways that ideas spread through the Scratch online community… As one Scratcher told: The good thing is that because of all of this remixing, every single project out there is a tutorial. - Mitchel Resnick (Resnick 2017) Collaboration signifies getting or giving help with a project, programming together, or working together on a common task. In classroom environments, collaboration can be achieved through pair programming, in which two children work together at one computer. The “driver” writes code while the “navigator” reviews and advises on code as it is typed. The children change roles periodically. Pair programming enhances collaboration and learning because students can collaboratively find better solutions to problems and they are less likely to quit programming in frustration (Krauss and Prottsman 2016). In online environments, remixing is one of the most effective ways of collaboration. It means that users create a new project based on the existing projects that other users have shared in the community previously. For instance, more than 27% of all projects shared on Scratch are remixes of other projects and the users have already shared over 27.7 million projects in the Scratch Online Community (Monroy- Hernández 2013). A community that would use remixing to support learning about programming finds particular support in the theory of constructionism. Constructionist theories state that we learn best by designing and constructing “public entities,” and that this learning is even more meaningful and effective in a social context (Dasgupta et al. 2016). The constructivist methodological principle in the Scratch environment has been further elaborated and may be redefined as follows: Learning is most effective, if the student is engaged in constructing an activity product that can be discussed, assessed and used by other participants for developing new objects (Y. Patarakin and Shilova 2015). To ensure efficient participation in subject oriented collaboration in a network environment, a collaborator must be able to assess and discuss objects created by other collaborators; accept other collaborators' assessments and judgments; monitor other collaborators' actions; classify objects created by other collaborators. Apart from enhancing learning and connection, remixing has another significant benefit: We want children to continually pursue learning advanced programming concepts. However, many children quickly reach a plateau or complacency with simple programming concepts. These users typically create simple, sequential programs containing many repetitive instructions. Few users seem to independently discover how to make use of other programming concepts to enable more exciting and compelling animations. Remixing comes into play at this point: a majority of users are able to use advanced programming concepts independently in their own programs after having remixed programs which contained the same constructs (Harms et al. 2012). Remixing also challenges the traditional concept of students doing their own work and considering using others’ projects as cheating. On the contrary, Scratch is trying to create a culture in which members feel proud, not upset, when their projects are used by others. For instance, Scratch home page demonstrates 55 “Top Remixed” projects to emphasize that it is an honor for a project to be remixed. In this way, children join an open knowledge-building community from a very young age. However, a disadvantage of remixing is that novice programmers may struggle to identify the code responsible for a given output behavior, limiting the potential for learning through full program-based remixing. But, some tools such as Looking Glass addresses this issue with a Play & Explore feature allowing users to connect program output to the line or lines of code that caused it, helping users to understand and begin to modify reused code (Bau et al. 2017). 3.1.7 Community-building and Contribution Community-building strategies promote children’s contribution to the learning environment and their own community. Coding can help children envision the possibility of making a better world through the use of computers. Some of the applications that children developed using MIT App Inventor support this argument. For instance, a tenth-grader from Chennai, India has created several important apps, such as an application to help coordinate relief efforts following flooding in the area, another to allow parents to track students on buses that have otherwise unreliable schedules. Some of the most effective learning occurs in a social context where more than one person is working on a problem. Since programming is considered hard and children often learn more effectively in groups, providing a social context in which learning can occur helps the learning process (Kelleher and Pausch 2005). The Scratch Online Community exemplifies a successful social learning environment. It makes programming more engaging by turning it into a social activity, where users can upload their own projects, comment on others’ projects, and can become involved in existing projects. The Community recognizes all four states of participation in fan-fiction communities defined by Jenkins (Jenkins 2008) : • Passive Consumer. Assesses the community to understand values and ideas. Browses the various categories and interacting with Scratch projects others have created. • Active Consumer. Participates in the community by producing metadata. Shares her/his ideas on others’ projects by commenting, tagging, and rating projects. • Passive Producer. Creates projects, inspired by other projects s/he has seen in the community, but does not necessarily feel compelled or ready to share them to the community • Active Producer. Does not only consumes but also contributes to the repository of projects. Gives feedback to others’ projects, becomes inspired by others, and provides inspiration to others. Creating a productive and respectful online community is not an automatic or simple task as rude negative feedback may prevent a community from forming. When children worry that community members will ridicule them for their projects, they are less likely to share projects or ideas. On the contrary, when they feel surrounded by respectful, caring peers who are ready to contribute into their projects, they are more likely to try new things and be creative. In order to provide this kind of respectful and supportive online community, Scratch did three things: First, it established a set of simple but powerful community guidelines. But writing guidelines is not enough. Second, the MIT Scratch Team is constantly modeling the guidelines through their own comments and behavior on the website and monitor the comments. If members violate the guidelines, the moderators give feedback, warning and advice, even sanctions if someone has multiple violations. Finally, online Scratch camps not only teaches children new programming skills but also how to give constructive feedback to one another. Through these different strategies, Scratch was able to create a collaborative community environment for its members. 56 3.2 List of programming tools This is a list of programming tools that was compiled through careful internet searches using the terms “computational thinking tools for children” and “coding for children”. It does not purport to be a scientifically compiled list nor is it meant to be comprehensive. The marketplace is truly dynamic so some of the tools mentioned here may not be available or new ones may have replaced the ones on the list. There is no explicit or implicit endorsement regarding any of the tools, nor is any claim made about the accuracy and validity of claims made by the makers or promoters of the tools that are summarized here - rather, the objective is to provide a reference list which can be explored by interested readers with specific interests. In a later section we also explore categories of products. The list is arranged alphabetically. AgentSheets and AgentCubes AgentSheets is a visual agent-based programming environment designed to support learning of computational thinking while building games and simulations. It is an environment for building simulations consisting of graphical agents (represented by icons) in a grid-based world. AgentCubes is an educational programming language which affords 3D Computational Thinking. AgentSheets and AgentCube online are based on Repenning's pedagogical framework called the Zones of Proximal Flow combining Vygotsky’s Zone of Proximal Development with Csikszentmihalyi’s state of Flow. Ancestors of AgentSheets are Prolog, spreadsheets, cellular automata, and SimCity-like games. AgentSheets provides a visual programming language for designing and sharing screen-based simulations in the spirit of SimCity (Repenning and Ambach 1997). AgentSheets is supported by a middle and high school Scalable Game Design curriculum that is available through the Scalable Game Design Wiki. Descendants of AgentSheets are LEGOsheets, Cocoa, KidSim. AgentSheets first introduced a form of blocks programming that later was found in Squeak eToys, Alice and Scratch. AgentCubes transitioned from 2D to 3D design by including a 3D modelling technology called Inflatable Icons. Inflatable Icons technology allows the users to first draw a 2D version of an object; and then gradually inflate it to a 3D object. (Ioannidou, Repenning, and Webb 2009; Repenning and Ioannidou 2006; Repenning et al. 2012). http://www.agentsheets.com/ https://agentcubesonline.com/ AlgoBlock Around 1994, the authors of AlgoBlock wanted to create an active learning community, where children can share notes and techniques and learn from each other. In AlgoBlock, each set of blocks correspond to a simple command in Logo. The blocks can be physically connected together to form programs that control the movements of a submarine in a maze. The blocks are tangible and large enough that they can be arranged on a desk that several students can work around. This allows students to work with the blocks in a social context, learn from each other, and communicate what they are learning. The tangible nature of the blocks makes it easy for children to take turns manipulating the blocks and communicate about the correct location of the blocks. The AlgoBlock project demonstrates that, in a suitable environment, children would work together in building programs. However, the blocks support a limited set of programming constructs; the children are not able to explore concepts like procedures, parameters, or control structures (Suzuki and Kato 1995). Alice Alice is a programming environment for building 3D virtual worlds, typically short animated movies or games. In Alice, users construct programs by dragging and dropping graphical command tiles and selecting parameters from drop-down menus. When the user drops a tile, the system automatically cascades to menus that allow the user to select valid parameters for the chosen animation. In this way, 57 Alice aims to help students gain experience with all of the standard constructs taught in introductory programming classes in an environment that prevents them from making syntax errors. https://www.alice.org/ App Inventor MIT App Inventor is a visual programming environment that allows children to build apps for smartphones and tablets. Released in 2012 as an open source platform, App Inventor is available in a number of languages, including Russian. The program has more than six million registered users, ranging from middle school students to university students. The users can build apps without the full knowledge of Java syntax and Android framework. In addition, the ‘liveness’ included in the system allows users to make changes in their code and immediately see the result in the application they build. http://appinventor.mit.edu/explore/ Basic Around 1960s, the Basic (Beginners All-purpose Symbolic Instruction Code) language was designed to teach Dartmouth’s non-science students computing through programming that included small set of instructions with limited syntax. All commands begin with an English word to make the language easier for the novice. FORTRAN and ALGOL, the commonly used languages at the time, were both large and complex. By using the syntax gradually, students could learn a small piece of the language at a time, allowing them to devote more time to problem solving than memorizing the features of the language. A site for those with nostalgia for one of the first languages for novice programming: http://www.quitebasic.com/ Blockly Blockly is an open source library that allows developers to add block-based coding to applications or web pages. It was released in May 2012 and is still active as of 2018. Blockly provides a block editor user interface (UI) and a framework for generating code in text-based languages. Out of the box it includes generators for JavaScript, Lua, PHP, Dart, and Python; but custom generators for other text languages may also be created. The core library is written in JavaScript and can be used as part of any website or embedded in a WebView. Native Android and iOS versions of Blockly are also available and provide a subset of features for building mobile apps. https://developers.google.com/blockly/ Boxer Boxer was one of the first learning environments designed for non-expert programmers, based on the plan of Andrea DiSessa. It presented a hierarchical world composed of boxes that can contain other boxes. Boxer contained three types of boxes: standard boxes which can contain text or program code, data boxes which contain string literals for use in programs, and graphics boxes which contain graphical displays. The composition of the boxes had meaning; it indicated that sub-procedures were parts of procedures and records were part of databases. The boxes provided the novice programmer with a mechanism for abstracting program and data elements. Boxer was based on a principle of naive realism: Every object in the system had an on-screen graphical representation that could be inspected, modified, and extended. For example, variables were not just names in Boxer. Creating a variable was creating a named box on the screen which corresponded to that variable. Codemoji The Codemoji Computer Science curriculum for schools allows first to eighth grade students to learn the basics of web development and through coding in HTML, CSS, and JavaScript. Codemoji teaches these text-based languages by using emojis and entry level online courses. STEM Educators can share the Codemoji courses to their Google Classroom accounts. https://www.codemoji.com/ 58 CraftStudio CraftStudio is a real-time 3D game-making platform. CraftStudio is used in schools as a prototyping tool, to engage kids in creative ways and to teach students to think in 3D space. CraftStudio allows multiple users to manipulate the same project at the same time (like Google Docs). https://sparklinlabs.itch.io/craftstudio Edison robots Edison robots are cheaper alternatives for Mindstorms robot series since their price is around 50 Euros. An Edison robot includes motors, microphone, distance sensor, light sensor and remote control. The robots can be extended with ordinary Lego bricks. However, sensors and motors of Edison robots are fixed; so, extending the robot with different sensors or motors is not possible. Edison robots are also able to read bar codes. The programming environment of Edison robots is visual programming similar to Mindstorms' environment. It can work with both computers and smart devices, such as iPads or Android phones. There is also a Python-based robot programming environment. https://meetedison.com/ Electronic Blocks Electronic Blocks are physical Lego blocks designed for young children (ages 3-8). Children can build block towers that flash when they talk or cars that move when a flashlight shine on them. Three types of blocks are provided: sensor blocks that can detect light, sound, and touch; logic blocks that can compute AND, NOT, TOGGLE, and DELAY; and action blocks that can produce light, sound, and motion. For the syntax of Electronic Blocks to work, each stack should include a sensor block and an action block, and action blocks should be placed at the bottom (Wyeth and Purchase 2002, 2003). Etoys Squeak Etoys were designed to allow children to interact with simulations others have built or to create their own simulations. Etoys provides students with a variety of pre-made objects, from simple shapes to trashcans, and a drawing tool with which students can create their own objects. All objects have viewers that contain object-specific information as well as tiles that the student can drag out of the viewer to build programs that control the behavior of the object. Programs can change the position, orientation, size, and appearance of objects as well as play sounds. Users can create simple if-statements in their program, but no other standard control structures are included in the Etoys system. Users can trigger object behaviors based on a variety of mouse events, or the behaviors can be started and stopped with a set of pre-made buttons users can add to their simulations. http://www.squeakland.org/ GameSalad GameSalad is a 2D game development environment for iOS and Android. The key feature about GameSalad is that the games are made through drag and drop behaviors and changing properties of objects. There is no “code” that is visible to the game creators, all code is behind the scenes. GameSalad’s web-based curriculum includes tutorials, activities, projects, and assessments. https://gamesalad.com / Gamestar Mechanic Gamestar Mechanic is an online game design platform built as a game about making games, with an embedded design thinking curriculum built in collaboration between professional game designers and learning scientists at the University of Wisconsin-Madison, notably the scholar James Paul Gee, currently at Arizona State University. The Gamestar Mechanic curriculum is built into an adventure game where players explore a virtual world through a series of “game tasks”, as they strive to become more skillful and popular “game mechanics”. Tasks are activities where players a) play and win games designed around specific patterns, b) repair dysfunctional games by using the patterns learned during play, and c) design new games from scratch and share them with others for peer review and critique. 59 Through the game design process, students cultivate skills involving STEM, arts, creative problem solving, system-based thinking. https://gamestarmechanic.com/ Globaloria Globaloria is a learning environment where middle school students learn STEM concepts when designing computer games using the Adobe Flash platform. Globaloria is a social learning system and educational program driven by Idit Harel, well known for a book on constructionism that she edited with Seymour Papert. Globaloria classrooms are designed around constructionist pedagogies and feature a project-based curriculum supported by Web 2.0, and an online community of classrooms, educators, and professional game designers. Globaloria aims to support the evolution of computational skills through a structured online curriculum that focuses on Flash STEM game design and scaffolded by a framework of Web 2.0 technologies (wikis, online videos, interactive tutorials). https://globaloria.com/ GP GP is an online blocks programming language, similar to Scratch. The GP class library and programming environment are written in GP itself, so all code can be viewed, edited, and debugged as blocks. So far, the GP developers have used conventional text editors on the textual representation of GP code as a way to bootstrap the system. https://gpblocks.org/ Greenfoot Greenfoot aims to teach Java programming language to children by combining features of block- and text-based programming. It uses the standard Java compiler and virtual machine (JVM) to ensure full conformance with current Java specifications. Instances of actor classes can be dropped into the scenario and they can be controlled using available methods or the methods written by the user. Greenfoot also has both a user and an educator community based on online interactions. https://www.greenfoot.org/door Hopscotch Hopscotch is a visual programming language designed to allow beginner programmers to develop games. The Hopscotch app uses an editor very similar to that of Scratch. In Hopscotch, users drag and drop blocks to create scripts that can be played when activated. Hopscotch is available only on iPad or iPhone as of 2018. https://www.gethopscotch.com/ Hypercard Developed by Atkinson in 1980s, Hypercard allowed users to create stacks of cards that contain images, text, and buttons. Buttons triggered visual changes, made sounds, or showed a new card. Hypertalk, a scripting language, allowed users to build more functionality into the stacks they created. Spoken English influenced the Hypertalk language, which provided constructs such as the first card and the last card, descriptors that were understandable to most users. When designing the system, Atkinson focused on supporting the user’s first success using Hypercard and tried to reveal features gradually. A beginner user could learn to create cards and used text-editing tools before moving on to graphics editing. The user could learn about using the message box as a calculator before moving onto placing values in fields. Josef Josef was created in 1980s and is not active anymore. Like Karel the Robot, it is intended to introduce programming to beginners using a robot, Josef, in a simulated world. Josef lived in ‘Wolfville’, which was represented by an ASCII map; but users could replace the map. The robot knew how to turn left and right and move forward. The user could set the speed at which Josef moved. Unlike Karel, Josef 60 could say and listen for text strings, enabling input - output programs. Additionally, he could drop text markers (e.g. the string “cat”) similar to Karel’s beepers anywhere in his world. Unlike Karel, Josef was intended for a full semester of programming for non-Computer Science majors; so, it included several programming constructs, such as parameters, variables, and recursion (P. L. Brusilovsky 1993; Peter Brusilovsky et al. 1997). Karel Karel the Robot has been one of the most widely-used mini-languages. It was designed by Richard Pattis in 1980s for university students taking their introductory programming course (Pattis and Pattis 1994; Ruf, Mühling, and Hubwieser 2014). Karel is a robot that inhabits a simple grid world with streets running east-west and avenues running north-south. Karel’s world can also contain immovable walls and beepers. Karel can move, turn, turn himself off, and sense walls half a block from him and beepers on the same corner as him. A Karel simulator allows students to watch the progress of their programs step by step. Karel was supported by a short textbook to help teachers incorporate Karel in their classes. The idea of the mini-language approach was to design a small and simple language to support the first steps in learning programming. The language included small set of commands that the actor can perform, and a set of value-returning queries and control structures. Most mini-languages include all basic control structures (conditional execution, looping, recursion, etc.) and a mechanism for creating some kind of sub-program. Karel contained main Pascal-like control structures to teach basic concepts including sequential execution, procedural abstraction, conditional execution, and repetition. The overhead of full high-level programming languages was reduced as there are no variables, types or expressions in Karel. http://karel.sourceforge.net/ Karel++ Karel J Robot, J. Karel, and Karel++ are versions of Karel the Robot that prepare students for object- oriented programming rather than procedural programming. Karel J Robot and J. Karel use Java-style syntax; Karel++ uses C++ style syntax. Rather than creating procedures to teach Karel to turn right, students subclass a basic robot to create a right-turning robot. These systems leverage off the success of the original Karel the Robot to introduce object-oriented programming early on to students. https://homepage.cs.uri.edu/faculty/wolfe/tutorials/csc101/karel++/ Kodu Kodu allows users to create their own video games by designing a world, choosing the characters, and programming them using a visual programming language. Kodu language is entirely event-driven. Kodu programs are collections of WHEN-DO rules organized into pages. Programming is done by placing the programming tiles in a meaningful order to form the condition and action on each rule. Kodu includes a full 3D gaming “development environment,” include a terrain editor, layout tools, character menus, and other mechanisms which allow end-users to create the world “data” against which their code will operate. https://www.kodugamelab.com/ KuMir The basic philosophy of KuMir is the ability to extend a compact core by loading one or more separately prepared modules providing new microworlds and actors, or even new numerical packages and abstract types of data. This approach allows customization. Real life applications showed that KuMir, equipped with Robot, Drawer, and other executives can be a useful tool for the programming courses for 12-16 years old school students. The Department of Mathematics at Moscow State University used KuMir at to allow students to solve simple problems quickly: during the first term, the students spend around 20 hours to solve 90 problems on programming, calculus and algebra. Lego Mindstorms 61 Lego Mindstorms is an educational robotics platform created by Lego. EV3 series is the most recent one among different Lego Mindstorms series. There is a large community of users, which helps users receive help from others in case they have questions. EV3 robots are programmed using a visual programming environment with a drag-and-drop interface. However, more experienced users can program EV3 with text-based popular programming languages such as Java and Python. https://www.lego.com/en-us/mindstorms LegoSheets LegoSheets, developed in 1990s, attempted to provide an introduction to programming for the MIT Programmable Brick by starting with manual control of the brick elements and gradually progressing to writing programs. Users were presented with a simulated version of the Programmable Brick in which the parts could be manipulated. Users could change the speed of a motor connected to the simulated brick by typing in a value or using arrow buttons to increase or decrease the value. Once users were comfortable with manipulating the values of motors and observing the values of sensors in response to different actions, they could double click on the representation of a motor or sensor and bring up a rule editor for that object. The rule editor provided buttons to add conditionals or initial values to control the behavior of the brick. Lightbot Lightbot is an online programming puzzle game for kids ages 9 to 11 to introduce kids to programming concepts and coding. Kids guide a virtual robot to light up tiles and solve puzzles with different difficulty levels. Users solve the puzzles by guiding the robot with a series of instructions in a finite instruction space referred to as Main Method. As the levels get more challenging, more sophisticated combinations of commands like functions are needed to solve the puzzle. There is also an easier version of Lightbot, Lightbot Jr, designed for younger kids, ages 6 to 8. http://lightbot.com/ Logo The Logo programming language was developed in the mid-1960s by Wally Feuzeig and Danny Bobrow at BBN Labs, in consultation with Seymour Papert from MIT to help children explore a variety of topics, from mathematics and science to language and music with coding. Logo is a dialect of Lisp with most punctuation removed to make the syntax accessible to children. The most well-known part of Logo is the Logo turtle, which was first a robotic turtle that could draw on the ground. It was later replaced by a simulated actor that can move, turn, and leave trails in a two-dimensional world. The turtle’s directions are object-centric: if a child tells the turtle to “forward 10”, the turtle will move forward rather than in a direction defined by the screen. Many children started programming by making this turtle draw simple pictures. The Logo language can support a wider variety of possibilities, including music programs and programs that translate languages. Logo is an interpreted language with descriptive error messages. Logo aimed to help students think about their own thinking, by expressing themselves in their programs and then debugging the programs until they worked. Logo proponents argued that by debugging, students could debug their own thinking and gain higher-order thinking skills. http://el.media.mit.edu/logo-foundation/resources/software_hardware.html Logo Blocks Logo Blocks was a visual programming language developed in 1996 based on Logo. It was two- dimensional and provided procedures and procedure calls. The interface of Logo Blocks was reminiscent of a colorful jigsaw puzzle. One limitation of Logo Blocks, that is also an issue for tangible programming, was the fixed size of the blocks, which sometimes prevented assembly of certain programs without introducing “padding” blocks. In Logo Blocks, labeled graphical shapes represented commands in Brick Logo, an extension of Logo that provided commands for the Programmable Brick, a precursor to the commercial Lego Mindstorms system. Logo Blocks supported procedures: users could attach commands to purple ‘procedure blocks’ and name their procedures. 62 LogoWriter LogoWriter integrated a word-processor, capable of both graphics and text, with a Logo interpreter. The LogoWriter turtle could now act as a cursor changing the letters beneath it or stamping graphics onto the page. Students could do language manipulation and create programs of mixed text-and-graphics the way that they might do in other applications software. Looking Glass Looking Glass, designed in 2010 for middle school children, is a 3D programming environment to create animated stories and games. Previous research with Looking Glass precursor Alice found that storytelling can motivate middle school children to program. Looking Glass users create virtual stories with 3D characters in a drag and drop interface. Looking Glass allows users to see the connections between output and the code that causes it. Users can join an online community, browse the website and bookmark the programs they like. They can then remix these programs into their own using remixing interface. https://lookingglass.wustl.edu/ Micro:bit The micro:bit is a palm-sized circuit board with 25 LED lights that can be programmed to show letters, number and other shapes. It aims to provide an opportunity for children ages 14-16 to build an understanding of electronics while programming. The micro:bit can be programmed by using Blocks, JavaScript, or Python. https://microbit.org/ MOOSE Crossing MOOSE Crossing is a networked programming environment built for children. It is an adapted text- based MUD (multi-user dungeon) in which children can use an object-oriented scripting language to create spaces and characters that inhabit a textual world (A. S. Bruckman 1997). Netlogo NetLogo is an open source, free, multi-agent programmable modeling environment. According to its website, NetLogo is used by thousands of students, teachers and researchers worldwide. NetLogo is written in Java and Scala. NetLogo programming environment includes an extensive vetted collection of models (Damaceanu 2011; Wilensky and Rand 2015). https://ccl.northwestern.edu/netlogo/ NetsBlox NetsBlox is a visual programming language and cloud-based environment that allows novice programmers to create networked programs such as multi-player games. Its visual notation is based on Scratch and it uses the open source JavaScript code based on Snap! NetsBlox’ public domain scientific and other data sources make it possible to create STEM projects, such as displaying seismic activity anywhere on Earth using an interactive Google Maps background. NetsBlox supports collaborative program editing similar to how Google Docs works. https://netsblox.org/ Ozobot Ozobot is a small robot that children from primary school to high school level can program using a block-based coding editor or simply with colors. In the color code system, children use colors and drawings to control Ozobot’s movements. Ozobot can follow these drawings by using the color sensor attached at its bottom, which is pre-programmed to act differently when encountering different colors. Apart from physical coloring and drawing, Ozobot can also be programmed with smart phones or tablets using a block-based coding editor. https://ozobot.com/ Pascal 63 The first version of Pascal was created in 1970 to enable professors to teach Structured Programming to their students in their first course, particularly systems programming. Although it was designed with teaching in mind, the improvements in the language reflected general improvements in programming languages. For instance, Pascal removed some ambiguities around interpretation of nested ifs. In addition, it added new basic types and the ability to define special purpose types through struct statements. http://www.pascal-programming.info/index.php Pencil Code Pencil Code is a visual programming tool for drawing art, playing music, and creating games. The Pencil Code Block editor is inspired by the visual programming languages Scratch and Blockly; however, its editor can be switched between blocks and text at any time. Instead of natural language text and icons, each block is labelled with function names, arguments, and syntax from the text language CoffeeScript. Instead of being arranged freely in two dimensions, blocks are snapped into a single main program in linear order. The program is labelled with line numbers. This structure aims to help students’ transition from visual programming to text programming language; because, beginner students can build a program with blocks while also learning a text language. https://pencilcode.net/ PiktoMir Freely distributed multiplatform educational and gaming system PiktoMir was developed by the Scientific Research Institute of System Analysis, Russia's research and development institution in complex applications, in 2014 upon the request of the Russian Academy of Sciences. PiktoMir allows preschoolers ages 5 to 7 to learn a set of programming concepts, including subroutine, repeater, feedback, command-orders and command-questions, branching, repeaters, and counters. PiktoMir is used as part curriculum of algorithmic programming in preschool and elementary classes. The next part of the course for middle and senior schools is the school algorithmic language, the KuMir system (Rogozhkina and Kushnirenko 2011).https://piktomir.ru/ Pocket Code Pocket Code is an application for Android mobile devices. It allows teenagers to create their own games, animations, videos and some other applications. Pocket Code uses a visual programming language. IT does not require programming experience, making it suitable for novices who want to learn program flows and concepts of logic. https://www.catrobat.org/#pocketcode Prolog Prolog, developed in 1970s, was a popular rule-based programming language, even among novice programmers. Its interface was similar to a command-line. In Prolog, the user could state facts about the world to execute commands. Prolog avoided some of the complexities that students tended to struggle with, such as some loops and conditionals. Robbo Robbo offers two different robotics kits. The first kit, Lab kit, is a board with sensors and buttons. The Lab kit can be used together with Scratch programming environment when it is connected to a computer with a USB cable or with Bluetooth. Because Lab kit is built with Arduino microcontrollers, more advanced learners can also program it Arduino programming language. https://www.robbo.world/products/ Robocode Robocode, developed in 2000, is a programming game to help users learn Java. The users write code to build a robot battle tank to compete against other robots. Although Java is the main programming language to code in Robocode, C# and Scala are also used. It provides a tutorial, a Google Group and a 64 collaborative website named RoboWiki to allow users to learn about Robocode and interact with each other. https://robocode.sourceforge.io/ ScratchJr In ScratchJr app, kids, ages 5 to 7 can learn to program their own games and interactive stories using a visual programming language. Kids snap together programming blocks to make their characters move, jump, dance, and sing. ScratchJr was inspired by the popular Scratch programming language. https://www.scratchjr.org/ Smalltalk The first version of Smalltalk was created in 1971 at Xerox PARC as the language for the KiddyKomputer, Alan Kay’s original name for a portable computer designed for use by a child. Smalltalk was based around three ideas: (1) everything is an object, (2) objects have memory in the form of other objects, (3) and objects can communicate with each other through messages. Smalltalk was developed along the path to creating the Dynabook, a computer whose purpose is to support learning through creation and exploration of the rich range of media that a computer enables (Kay and Goldberg 1988). Snap! Snap! (formerly BYOB - Build Your Own Blocks) is a visual, drag-and-drop programming language. It is an extended reimplementation of Scratch. The biggest difference from Scratch is having first class lists, first class procedures, and continuations. This extension allows users to create other data structures such as trees, heaps, hash tables, and dictionaries, which makes Snap! suitable for a relatively advanced introduction to computer science for high school or college students. Snap! runs in web browser. It is implemented using JavaScript, that helps running the program, even other people’s projects, without being affected from browser-based software. https://snap.berkeley.edu/ StarLogo StarLogo, released in 2006 as an open source modeling environment, was designed to allow students to model real-life phenomena such as traffic jams and population growth. It was based on Logo programming language. While Logo included control of one single turtle’s movements, users could control thousands of turtles in StarLogo. The StarLogo turtles had improved senses: they could detect nearby turtles and scents in the world (Resnick 1996). After StarLogo, the developers created StarLogo TNG. http://web.mit.edu/mitstep/starlogo/ StarLogo TNG (StarLogo Nova) StarLogo TNG is a 3D graphics-based programming environment that uses drag-and-drop programming blocks instead of text-based programming languages. StarLogo TNG is a client-based modeling and simulation software (Klopfer and Scheintaub 2008; Klopfer et al. 2009). It facilitates the creation and understanding of simulations of complex systems. StarLogo Nova is free, browser run, and allows students to share projects and play games created by others. Teachers can also use simulations developed by the StarLogo community to illustrate complex concepts. Users can create either simple or large-scale simulations using the existing library of agents or importing their own custom sounds and Collada- format 3D models (Collada or Collaborative Design Activity is an interchange file format that allows sharing of 3-D designs across applications. http://web.mit.edu/mitstep/starlogo-tng/download/index.html Stencyl Stencyl is a 2D drag-and-drop game development environment. It can work on Flash, iOS, Windows, Mac and Android. Stencyl, LLC, a U.S. based education technology company, released Stencyl in 2011. Users create their own games using Stencyl’s features such as creating and editing game code in modular 65 pieces, creating and editing game entities and game levels. An additional feature in Stencyl is Custom Blocks that allows users to create their own Code Block with functions, incoming parameters, and outgoing return values (J. Liu et al. 2014). http://ww.stencyl.com Story Blocks In Story Blocks, users create programs by assembling physical blocks that represent characters and actions within an interactive story. The user can then scan this program using a mobile device camera. The program is executed as an audio story on the mobile device. Thus, Story Blocks provides both tools to create programs and a universally accessible output. Creating more accessible programming tools may support children of different abilities in exploring computer science. In the current prototype, the blocks are made from low-cost materials and fabricated using a 3D printer or laser cutter. Each block is designed to be identifiable by its shape and color so that blind children can also use them. As in other tangible programming languages, the shape of each block indicates how it may connect to other blocks (Koushik and Kane 2017). Tern Tern is a tangible programming language that contains wooden blocks. When these blocks are assembled, they can program robots such as the LEGO Mindstorms RCX or the iRobot Create. The shape of the blocks creates a physical syntax that prevents invalid programs, and the code is identified and processed by a computer vision setting. http://hci.cs.tufts.edu/tern/ Thimble (Mozilla) Thimble is an online code editor that allows users to create and publish web pages while learning HTML, CSS and JavaScript. It is an open source project created by the Mozilla Foundation in partnership with CDOT at Seneca College. It runs in the web browser and is available in a number of languages including Russian. Users can remix the projects available on Thimble website to create their own websites, and then share the project with friends. The website provides sample projects to provide ideas for new users. As the users write their code, they simultaneously see the changes on their websites. https://thimble.mozilla.org/ Thunkable Thunkable is an application development platform for Android or iOS. On the website, users can build their own mobile apps using a drag-and-drop programming environment. Thunkable is similar to MIT App Inventor. However, while children ages 12 to 18 can use Thunkable for educational purposes, many other users can be beyond this age range also use the platform to create commercial or freely available apps. https://thunkable.com Tynker Tynker is an educational programming platform aimed at teaching children how to make games and programs. The visual design and principles are based on block-based programming language; but JavaScript and Python, two text-based languages, are also available to code. Tynker can be used in the browser without plugins, as well as on tablets and smartphones. https://www.tynker.com/ 3.3. Five Dimensions That Matter: A Guide for the Perplexed With so many tools available in the marketplace, it may appear to be very difficult to decide which ones may be suitable for a teacher or parent or any other facilitator to choose, or for that matter for a child to decide by himself or herself. From a conceptual perspective, the Positive Technology Development (PTD) framework developed by Marina Umaschi Bers provides a useful rubric. In addition, we look in this section at some practical means to place the various tools along five dimensions. 66 3.3.1. Dimension 1: Type of Programming Language The main programming languages used by software developers are fairly complex, with a large number of commands and rules of syntax and logic that need to be followed for the program to ‘run’. Running a program means that it is compiled, usually in the background away from a computer screen, into a machine-readable instruction set that is subsequently implemented or executed. A program that does not follow the correct syntax will not compile and will not execute. A program may compile but still not fulfill its function because of other errors. Typically, learning to code using a standard text-based language requires knowing a range of commands to master basic syntax while learning computational concepts at the same time – when the program does not work, a student may not know whether the problem is due to a problem with the syntax or with the logic or other computational element. Compound statements Conditions A pair of curly brackets { } and an enclosed sequence of statements constitute a compound In programming, a condition is something statement, which can be used wherever a statement that must be true in order for something to can be used. happen. If ... else One such block is: if (expr) { //statements; } else if (expr2) { //statements; } else { The construct above is generally known as an //statements; "if-then construct." With it can we instruct a } sprite to say hello only if, say, the user has Conditional (ternary) operator depressed the mouse button: The conditional operator creates an expression that evaluates as one of two expressions depending on a condition. This is similar to the if statement that selects one of two statements to execute depending on a condition. I.e., the conditional operator is to expressions what if is to statements. result = condition? expression : alternative; is the same as: A related construct is the "if-else construct": if (condition) { result = expression; } else { result = alternative; } With the above construct can we instruct a sprite to say hello or goodbye, depending on whether the user has depressed the mouse button: Source: Wikipedia on JavaScript syntax Source: Adapted from Scratch for Budding https://en.wikipedia.org/wiki/JavaScript_syntax Computer Scientists, by David Malan, Harvard University https://cs.harvard.edu/malan/scratch/conditions.php Figure 3.1: If – Else Conditional Statements using text (JavaScript) or visual (Scratch) programs 67 Visual Programming Visual programming was developed to deal with this problem. Fig 3.1 shows how visual programming leads to a simpler interface that eliminates problems due to syntax and allows the novice learner to focus on developing computational thinking. Abstracting away from syntax turns out to be a powerful motivator, and a novice user can write serious or effective programs right from the outset – part of the “low floor, high ceiling” requirement for coding languages for children. Visual programming languages, such as Scratch and Alice, provide a practical alternative to the complex text-based programming languages. They reduce syntax to a great extent and makes commands closer to spoken language. They replace words with pictures or blocks. For instance, Scratch uses blocks, similar to Lego- bricks, to represent several control structures. The “programming” is done by dragging and dropping these blocks together like a puzzle (Ruf, Mühling, and Hubwieser 2014). Like Lego bricks, blocks fit together only in ways that make sense. Furthermore, they are color-coded by category, helping users find related blocks – see Figure 3.2. The syntax of the statements is encoded in blocks and students need only to recognize the blocks, preventing them from creating syntactically incorrect statements. Figure 3.2: Color and shape coded Scratch blocks leading to ease of composition Researchers have studied the relative effectiveness of text-only languages compared to block-based languages for developing computational thinking skills (Weintrop, Killen, and Franke 2018; Weintrop and Wilensky 2015). High school students expressed a preference for blocks because: (i) they are easier 68 to read; (ii) the shapes and color of the blocks which aid understanding; (iii) they are easier to compose; and (iv) make it easier to remember underlying computational thinking (Weintrop and Wilensky 2015). Tangible programming Instead of words or blocks/icons, users arrange and connect physical objects, such as interlocking wooden blocks, to construct computer programs. Tangible languages benefit from physical properties of objects, such as size, shape and materials, to express and enforce syntax. Tangible programming generally serves very young children since it provides screen-free coding with very simple commands. The term “tangible programming language” was coined by Suzuki and Kato to describe their AlgoBlock collaborative programming environment for children (Suzuki and Kato 1995). The unique fea- ture that sets AlgoBlock apart from other programming environments is the graspable nature of its user interface. Instead of manipulating virtual objects displayed on a com- puter screen, users of AlgoBlock arranged physical blocks on a table to communicate to the computer. “Tangible programming” refers to the activity of arranging the blocks to build (as opposed to “write”) computer programs. The Kibo robot, shown in Figure 3.1, was developed for 4-7 year old children by the DevTech research group of Tufts University (Marina Umaschi Bers 2017). Children arrange the blocks, and then have the build in camera of the Kibo robot examine and process the code (see Figure 3.3). https://www.techagekids.com/2018/01/kibo-robotics-learning-tool-for-4-7.html Figure 3.3 Kibo robot – tangible programming developed by DevTech Research Group, Tufts University Strawbies/Osmo and Tica are tangible programming interfaces that utilize respectively an iPad and an android mobile device to read the tangible code which is created by piecing together tiles in lieu of blocks. Both blocks and tiles have connecters that prevent syntax mistakes, as with visual programming (Wilkie and Good 2017). The designers of Strawbies claim to have used a set of designing principles that are useful to examine as they have general applicability regarding development of computational thinking skills (Hu et al. 2015). Strawbies is a game using an iPad, a mirror and tangible coding tiles – the objective of the game is to put the tiles together in a code for a character, named Awbie to move 69 around on the iPad screen and perform actions as directed by the program. The designing principles are: (i) The experience should be inviting – in the testing sessions, children would apparently notice the Strawbies game across the room; (ii) Support playful and open-ended exploration – Awbie us supposed to grow and eat strawberries, but children can explore other possibilities; (iii) Simple + Complex, or the “low floor, high ceilings” metaphor, though probably ceiling is not very high with children of pre-school age being the typical user; (iv) fluid and responsive – the use of a mirror and iPad makes it possible for real-time interaction without expensive equipment like a camera to scan the tiles; (v) developmentally appropriate – as established through multiple rounds of testing; (vi) pedagogically aligned – to introduce computational thinking to preschoolers in a familiar cultural form and that had rich sensory-motor experiences (vii) affordance of social interaction – tangibles naturally lend themselves to many hands and bodies being able to move around and for children to interact as they distribute activities amongst themselves; and (viii) Adaptable – so that children of different ages and abilities can play together, for instance a pre-literate child can use the icon for ‘up’ or ‘down’ and also get help from an older child to read a command that is not clear. Some of the other examples of tangible coding are: Dr. Wagon (Chawla et al. 2013), Robo-Blocks, Tern (Horn and Jacob 2007), Twinkle (Silver and Rosenbaum 2010), Project Bloks, Story Blocks (Koushik and Kane 2017), TanPro-Kit, TanProRobot, Topobo and ToonTalk. Hybrid programming Although most technological tools use one of the three types of programming languages, some tools adapt a hybrid approach that allows children transition back and forth between different types of languages. Hybrid approach allows children to work with multiple representations (Price et al. 2016). For instance, a child can start learning how to code with virtual language and then switch to text-based language as s/he progresses. Examples of such hybrid text-based and visual languages are: Greenfoot, Pencyl Code Duncan and colleagues have collected a list of 47 tools that can be used for teaching programming and refer to these tools as Initial Learning Environments (ILEs). They classify an ILE according to a Level between 0 and 4 (Duncan, Bell, and Tanimoto 2014) • Level 0 - Age range 2-7 years. Drag-and-Drop or simpler. Teaches planning (sequence) only. Requires no abstraction. Contains no significant use of: functions, variables, iteration, indexed data structures, conditional execution. Examples: Daisy the Dinosaur, Lightbot Junior, Scratch Junior, PictoMir • Level 1 - Age range 5-10 years. Drag-and-Drop. Requires no abstraction (or small amounts). Contains none or few of: functions, variables, iteration, indexed data structures, conditional execution. Examples: Scratch Junior, PictoMir, Lightbot, Kodu, Blockly, HopScotch, Scratch, Tynker • Level 2 - Age range 8-14 years. Drag-and-Drop or text based. Includes some abstraction. Contains some or most of: functions, variables, iteration, indexed data structures, conditional execution. Examples: Kodu, Blockly, HopScotch, Scratch, Tynker, NetLogo, Alice, AppInventor, Looking Glass, Snap! • Level 3 - Ages 12 years and up. Drag-and-Drop or text based. Includes abstraction. Contains all of: functions, variables, iteration, indexed data structures, conditional execution. Examples: Scratch, Tynker, NetLogo, StarLogo Nova, Snap!, Alice, AppInventor, Looking Glass, StarLogo Nova, BlueJ, KidsRuby • Level 4 - Ages 14 years and up. Teaches an industry-level. Turing-complete programming language. Advanced, with extensions available. Contains all of: functions, variables, iteration, indexed data structures, conditional execution. Examples: Squeak, Code Academy 70 3.3.2. Dimension 2: Content creation (Purpose of the tool) Content creation dimension is related to the purpose of the tool and it is closely related to “Content Creation and Competence” component of Positive Technology Development Framework. First of all, the tools that facilitate content creation for children can be divided into two: 1) Tools that teach coding to children and 2) Tools that aim to develop basic computational thinking skills without coding. Further breakdown of these categories is presented below: Tools that teach coding to children can be categorized in eight groups: 1. Tools for storytelling through programming. 2. Tools for game development. 3. Tools that teach coding when playing games. 4. Tools for application development. 5. Tools for making art through programming. 6. Tools to program educational robotic kits. 7. Tools to program wearable technologies. 8. Tools that teach text-based languages in traditional ways. Tools that aim to develop basic computational thinking skills without coding can be divided into two categories: 1. Through game playing that includes very limited coding or no coding. 2. Through screen free activities. The ten tools – eight for coding, and two without coding are further explained below. Tools that teach coding to children These tools teach coding to children using different content creation strategies, most of which were summarized in Part 3.1. (Storytelling, Game development, Application development, Making art and Educational robotic kits). In addition to these, there are three other ways that marketplace products teach coding to children: 1. Storytelling: One of the most widely tools that let children build creative stories and animations is Scratch. It is a visual programming environment that allows users, primarily ages 8 to 16, to create and share interactive, animated stories and games while learning computer programming. It is a free program publicly launched in 2007 by MIT Media Lab, and today more than 23.5 million registered users around the world use Scratch to create storytelling projects. Scratch helps children express themselves creatively, much as they would paint a picture or build a castle with LEGO bricks. Other than Scratch, there are many other tools allowing children to create stories. Another well-known platforms for storytelling are Alice (Storytelling Alice, Looking Glass), PageCraft (Budd et al. 2007), Story Blocks (Koushik and Kane 2017). 2. Game development: Game development tools supports “learning by making games”. These tools aim to improve computational thinking and coding skills of children by helping them build their own games. Game development requires significant level of content creation skills. 71 Figure 3.4: Examples of games developed by children using Hopscotch and Kodu 3. Playing games: Aforementioned game development that aim to improve computational thinking and coding skills of children by helping them build their own games. However, game creation may require a considerable level of creativity and content creation skills. Therefore, some products try to teach coding to children simply when they are playing games. When playing games in this type of products, the child has to command characters in the game by coding and be creative when moving the characters in order to reach a goal. Figure 3.5: Example tools that teach coding to children when they are playing games 4. Application development: Children can even create applications for smart phones and tablet computers using tools specifically designed for these purposes, such as MIT App Inventor and Thunkable. The content of these apps can change from simple games to award-winning projects such as a group of young women from Moldova building a crowd-sourcing app to help residents of their country access safe drinking water sources http://appinventor.mit.edu/explore/about-us.html. 72 Figure 3.6: Examples of smart phone apps developed using MIT App Inventor and Thunkable 5. Making Art: Drawing, making music, and even writing short stories is possible using the computational thinking and coding tools for children. In this respect, creative computing not only uses pre-existing technologies, but also makes new technologies to improve human creativity, which makes it a perfect tool to facilitate the education of creativity (Yang and Zhang 2016). Pencil Code, a free programming tool available at pencilcode.net, is a good example of how children draw art or make music through coding (Bau and Bau 2014; Bau et al. 2017; Heines 2016). On the other hand, Twine, an open-source tool for telling interactive, nonlinear text-based stories, helps children and youth write interactive stories using JavaScript and CSS. Figure 3.7: Examples of how children can make art using Pencil Code and Twine 6. Programming educational robotic kits: Using these kits, a child uses a robotic artifact or builds it from scratch and then programs its behaviors with almost endless coding combinations. These kits allow children to bring a robot to “life”. Coding can be done on a computer screen but also by using physical objects, such as interlocking wooden or plastic blocks. Robotic kits help children develop their fine motor skills hand-eye coordination while involving children in activities that involve collaboration and teamwork. In recent years, the number of educational robot kits have been significantly increasing with the contribution of new educational startups and research labs. Some examples of how robotic kits are used for different kinds of content creation are Lego Mindstorms, Ozobot and Code-a-pillar, shown in Figure 3.8. 73 Figure 3.8: Content creation using educational robotic kits 7. Programming wearables: In the recent years, proliferation of wearable technologies has not skipped the marketplace for children. In the U.S., several education technology companies have started to develop wearables for children that can be programmed to uncover several functions of the wearables. Although these kinds of products are not very common yet (we have found only two examples, both in the form of a bracelet, developed in the U.S. market), they may inspire other education innovators in the future. Figure 3.9: Examples of wearables that can be programmed by children 8. Developing programs through text-based languages: These products teach traditional text-based coding languages, such as HTML, CSS, JavaScript, etc. online in traditional ways, i.e. online courses. These tools do not include “creative” content creation features such as game development and storytelling. Instead, the child goes from one level to another as s/he completes the lessons. However, as the child learns how to code in traditional text-based languages, the end products can be much more complex and diversified compared to the outputs of visual programming languages. For instance, the child can start building a website, a calculator, a web application and many other complex products once s/he learns a text-based language well. 74 Figure 3.10: Examples of programming tools teaching traditional text-based coding languages Tools that aim to develop basic computational thinking skills without coding The tools in the marketplace do not have to teach coding in order to improve computational thinking skills of children. There are many other available tools that do not involve coding on a computer/tablet screen but still are able to make significant contributions to development of computational thinking skills of children. Our research has found that these tools improve children’s skills either by engaging the child in a game playing environment or by offering screen free activities, such as screen free educational robotic kits, board games or unplugged activities. The following part of the paper summarizes both types and how they are able to help children create content that would eventually contribute into enhanced computational thinking skills. 1. Game playing that includes very limited coding or no coding: Children can play games on a computer/tablet by using simple commands that improve computational thinking skills instead of writing codes. The main difference of these kinds of games from straightforward games is that they involve main computational thinking components such as planning, testing, debugging, procedures and loops. After playing these kinds of games, the child can progress into more complex games that involve coding and finally s/he can start developing their own games. Figure 3.11: Example of a game that includes no coding 75 2. Screen free activities: Screen free activities are generally targeted towards very young children aged 4-9. These activities require no computer, tablet, or other form of “screen-time”, which may address the concerns around increasing amount of screen time for children in the recent years (Sullivan, Bers, and Mihm 2017). Although screen free tools do not include any coding on a computer/tablet screen, they creatively improve computational thinking skills of children by engaging them in building and programming robots, board games and other “unplugged” activities that do not require screen time. Most screen free tools in the marketplace are in the form of educational robotic kits. To control the behaviors of a robotic kit, the child uses “tangible programing”, such as interlocking wooden/plastic blocks that controls a physical robot or some physical buttons on the robot. Tangible programming is simpler than programming the educational robotic kits through code on a computer screen; so, it can be more suitable for younger children. Screen free educational robotic kits allow children to create content in many different ways. For instance, Kibo, a kit developed by DevTech research group at Tufts University in Massachusetts, US, has several creative content development units such as “Dances from Around the World”. In this unit, children program their KIBOs to perform their favorite dance from anywhere in the world (Marina Umaschi Bers 2017). Another type of screen free products are CT oriented board games. In these games, the goal is to move an object across a board to reach a specific goal. For instance, in Robot Turtles - http://www.robotturtles.com/ , a turtle card is moved across the board to reach a “jewel” using cards that include commands like turn right / turn left / go straight. There are many different ways to move the turtle from one point to another, so that the child needs to think creatively in order to form a strategy. Finally, unplugged activities such as exercises in children books and engaging games and puzzles can also improve computational thinking skills of children without requiring screen time. Two prominent examples include CS Unplugged that provides free learning activities that teach Computer Science through engaging games and puzzles that use cards, string, crayons and Hello Ruby -, which is a book that includes activities for children that teach basic computational thinking concepts such as sequencing, decomposing a problem and spotting patterns http://www.helloruby.com/about 3.3.3. Dimension 3: Remix and Community Philosophy of Remix One of the important phenomena of the age of digital connectivity is the emergence and consequent dramatic growth of the concept of open innovation. Open innovation encourages the sharing of new ideas rather than keeping ideas secret for the possible benefit of an original developer. The ability to reuse each other’s work has been essential to the success of open source software, Wikipedia, open education, open data, and many collaborative music-making, storytelling, and film-making initiatives. Examples of designing for reuse can be found in engineering, education, graphic design, music, video games, and other areas. In modern culture, a number of authors emphasize new opportunities in changing digital objects and creating a variety of literary, musical, video, and software remixes (Eduardo Navas, Owen Gallagher, and xtine burrough 2014; Knobel and Lankshear 2011; Navas 2014). Navas defined a remix as a reinterpretation of a pre-existing song, meaning that the ‘spectacular aura’ of the original will be dominant in the remixed version. The culture of remix has had a significant effect on education and new educational strategies (Smith et al. 2016; C.-C. Liu et al. 2017; Dodds et al. 2017). The number, quality, and availability of digital objects to be re-used for educational purposes are growing rapidly. One of the most promising technologies among new-generation learning tools is digital object re-use technology. A digital object is an object made up of a structured byte sequence, which has a name, a unique ID, and attributes that describe its properties. Digital objects are mostly described as editable, interactive, open, replicated, and distributed (Kallinikos, Aaltonen, and Marton 2010). Re-usability means that a digital object can be re-used in a new learning context, and it does not need to be linked to a discipline or subject it was created for. This makes it possible to use common digital objects creatively shifting them from one area to another. The same digital objects — drawings, sounds, photographs, and description texts — can be included in 76 children's encyclopedias, reports of summer school members and used as initial blocks for multimedia digital stories in the Scratch environment. P. Blikstein notes that the idea of productive activity (digital fabrication), students’ ability to create not only their own computer programs, but also other digital objects, is gradually spreading from an IT training environment to other educational environments (Paulo Blikstein and Krannich 2013). Easy-to-use and easy-to-create digital objects open up new horizons to education in creativity and invention. As for Russian works related to concepts of creativity in computer environments, we should mention the contribution of V.F. Turchin, who described in his book The Phenomenon of Science (Turchin 1977) how information technology, science and production mechanization set higher and higher standards for creativity, and M.Y. Lotman, whose significant epistemological contribution included both the concept of semiosphere and the mechanism of new content formation (Lotman 2001). According to Lotman’s model, which sees creativity and sense formation as a communication phenomenon, knowledge increment upon genre-to-genre and area-to-area transfer is very similar to the concept of remix. How to Remix and Reuse? A comparison of known educational communities close to the constructivist theory shows that virtually all of them use the idea of a cycle or a spiral of actions performed by collaborators with objects of collaboration. Scratch, Gamestar Mechanic, Agentcubes, Kodu, Pocket Code, NetLogo, StarLogo (TNG & Nova), Globaloria, Greenfoot. Alice (Looking Glass) create open-source sites for youth to share and contribute to their coded creations. All these sites have used experience of MOOSE Crossing that was unique at that time because within MOOSE Crossing, children learned programming within a networked community. Moose crossing: MOOSE Crossing is a text-based virtual world in which children collaboratively construct the virtual world in which they interact. In MOOSE Crossing, children create new objects – and write programs to control the behaviors of those objects (A. S. Bruckman 1997). Amy Bruckman made several changes in the language for MOOSE, based on the experience of years of work in Logo and her concern about making the language accessible to novice programmers (Guzdial 2004). She focused on principles for creating meaningful online communities: • Maximize each individual’s opportunities for creative expression and active participation. • Assume that average people are smarter and more creative than what is typically assumed. • Encourage users to be creators of content and maintain quality by enforcing a minimal set of community standards. • Develop an infrastructure for community support for learning. Studies of MOOSE Crossing have documented the ways in which a community can provide strong support for design and construction activities. One of the motivations behind MOOSE Crossing was to engage children in a different manner of thinking (Resnick 2003). According to Resnick, “the collection of sample projects on MOOSE Crossing has a very different (and more ecological) feel”. MOOSE Crossing members can “look inside” the object to see the computer code underlying the behavior create a new version (a remix) of the object with slightly modified code. Scratch: In the Scratch Social Learning Network (K. Brennan, Hernández, and Resnick 2009) students perform the following actions with Scratch projects: Imagine  Create  Play Share. To ensure efficient participation in subject oriented collaboration in a network environment, a collaborator must be able to assess and discuss objects created by other collaborators; accept other collaborators' assessments and judgments; monitor other collaborators' actions; classify objects created by other collaborators. All these skills point at the social competence of network collaborators. Yasmin Kafai applies the term computational participation, emphasizing that objects-to-think-with become objects- to-share-with (Kafai and Burke 2014). Since the code becomes a social object, programming evolves from a cognitive computational thinking skill into a social and cultural skill necessary for participation 77 in network collaboration. To remix at Scratch is a simple process. Scratch has a community site where users can publish their projects. When Scratchers open a project at the website and “look inside” at the underlying code, they are immediately presented with the option to remix via a button in the upper right- hand corner. When they click on the button, the project is reposted at the site as a remix Karen Brennan notes that users often stumble onto remix as a way to learn (K. A. Brennan 2013). Effective participation in all learning communities means that students independently distribute responsibilities among project team members. At present, there are the following key collaboration tools in the Scroll community: a studio for collecting and storing projects and project materials; an opportunity to make a copy of another participant's project and append/improve the copy; and an opportunity to make copies of individual sprites and scripts from other people's projects into a separate space and use these objects in one's own project (Fig. 3.12). Figure 3.12 Sprites in the backpack Gamestar Mechanic In Gamestar Mechanic, players take on the role of “game mechanics”, characters that are brought to a fantasy world where the economy, culture and lifestyle are fueled by well- functioning games. Game Alley is where players can review or comment on each other’s games and provide helpful critical feedback as part of the iterative design process (Figure 3.13). These reviews have both Ratings and simple Review Headings to guide feedback. Players can share a game by linking the game, emailing it, embedding it in another website, or marking it as a favorite. Sharing a game will make that game available even to people who are not logged in to Gamestar Mechanic. Players can show their games to their parents and friends, even if they don’t have Gamestar Mechanic accounts. Games in the Template Games section can be copied into your workshop, containing pre-created arrangements that you can edit any way you like. Figure 3.13 Game Alley 78 Agentcubes: AgentCubes is an educational programming language for kids to create 3D and 2D online games and simulations. The main application of AgentCubes is as computational thinking tool teaching kids computational thinking through game and simulation design based on the Scalable Game Design curriculum. AgentCubes is inspired by AgentSheets which introduced modern drag and drop blocks programming in 1995. AgentCubes transitioned from 2D to 3D design including highly accessible 3D modelling technology called Inflatable Icons. The combination of innovative end-user development tools and standards-based curriculum that promotes IT fluency by shifting the pedagogical focus from programming to design, can address motivational aspects without sacrificing principled educational goals. Users can play, design or edit exiting project. Remixed projects existed as clones. Kodu: Kodu is a new visual programming language made specifically for creating games. It is designed to be accessible for children and enjoyable for anyone. The programming environment runs on the Xbox, allowing rapid design iteration using only a game controller for input. Kodu employ program sharing and feedback to keep their users continually engaged. This environment provides positive feedback for new programmers. Kodu enable full program based remixing that consists of downloading an existing program, modifying it, and resharing (Fowler and Cusack 2011; Stolee and Fristoe 2011). Pocket Code: Pocket Code is a learning application for mobile devices. This app allows teenagers to create their own games and many types of other apps. Pocket Code is very similar to Scratch programming language (Petri et al. 2015; Slany 2014). No programming experience is needed to use the tool, so it is suitable for novices to learn program flows and concepts of logic. NetLogo: In the NetLogo Commons, modelers perform the following actions with the models: Create  Run  Share  Comment  Modify  Create variations (Lerner 2014). A modeler may invite other participants to modify his/her model together. Participants may play different roles in the team, though. StarLogo (TNG & Nova): In the StarLogo TNG Network, there are two linked circles of actions performed with a model as an object of their activity. Research cycle: Observe/Collect data  Generate questions  Test/Tinker. Design cycle: Design  Create Test/Tinker  Design (Klopfer et al. 2009). Globaloria: In the Globaloria Network, students perform the following actions with computer games: Play  Plan  Prototype  Program  Publish (Reynolds and Caperton 2009). A created object may be discussed within a special wiki portal and be used later on by other participants in the development of their own programs Greenfoot: Greenfoot is a learning environment to support the learning of object-oriented programming (Kölling 2015). For Greenfoot there is a traditional online discussion forum in and the Greenfoot Gallery - a public web site that hosts Greenfoot projects. Any Greenfoot user can publish their Greenfoot playable projects. Publication of a project may or may not include full source code of the project, at the choice of the publisher. Publishing the source code supports learning by example. Looking Glass: In the Looking Glass Network, 3D modelers perform the following actions with Alice Models: Create  Animate  Select a module  Share (Kelleher and Pausch 2007). The platform allows remixing the behavior of an individual object/character and then passing that behavior on another character. Looking Glass includes support for users to make connections between output and the code that causes it. Users can browse the website and bookmark the programs they like. Once bookmarked, users have the ability within the IDE to remix these programs into their own using remixing interface. Remix is related to the Communication & Connection component of the Positive Technology Development Framework. The tools in the marketplace were found to facilitate communication among users in four different ways: 79 a) Allowing children to share / showcase their projects: These platforms allow children to share their content online with other users. Sharing projects can increase the child’s competence while viewing others’ projects can provide idea generation support for the children. b) Allowing children to remix shared projects: As mentioned before, remixing allows users create a new project based on the existing projects that other users have shared in the community previously. Remixing takes sharing projects one step forward, allowing children to interact with others’ projects. c) Allowing children to ask questions and share their ideas in traditional text-based forums/community portals: Children can use text-based forums as a resource to ask questions and provide answers to others. Forums/community portals can be very useful to encourage children continue programming when they are challenged with some issues that they cannot overcome by themselves. d) Allowing children to interact with each other at the most active level: Some tools include interactive online communities, where children frequently comment on shared projects, like them, or select them as “favorites”. Interactive online communities provide the highest level of interaction among users. Although allowing children to share and remix projects supports interaction, it does not guarantee a high level of interaction in the community. Screen free tools were not assigned any of the four levels of community interaction, because interaction with children who are not physically in the same location is not possible if the children are using screen free tools. 3.3.4. Dimension 4: Teacher / Parent support Most of the tools in the marketplace can be employed by children and educators in many different environments that would seem to represent different levels along an agency/structure spectrum. Brennan defines agency as “a learner’s ability to define and pursue learning goals, which enables him or her to play a part in their self-development, adaptation, and self-renewal with changing times”, while defining structure as “rules, roles, and resources, both explicit and assumed, in learning environments” (K. A. Brennan 2013, p. 24). Many coding / computational thinking products are both used by children at home to support their own learning (an environment that is associated with high agency and low structure) and used by teachers in K-12 classrooms to support the learning of their students (an environment that is associated with low agency and high structure). It is already known that imposing too much structure can constrain learner agency; however, we should also remember that a lack of structure does not equal agency. At this point, we should begin to think about agency and structure not as separate, but as mutually-reinforcing concepts. In this way, we can find out ways that in-school and non-formal activities can support each other. Therefore, a significant percentage of tools in the marketplace provides resources for teachers to help them incorporate these tools into their classrooms in the most effective way. In order to achieve the ideal combination of agency and structure, teachers need greater support to re-conceptualize their roles in a way that enables the changes that 21st century brings– including classroom support, institutional support and emotional support. Classroom support and institutional support provided for teachers by coding tools take different forms: • Lesson plans and activities: The most common resources provided for teachers. These try to help educators use the coding / computational thinking tool when teaching children in classroom. Some 80 platforms have many resources that they divide them based on the experience level and needs of teachers. For instance, ScratchED, educator platform of Scratch, categorizes a vast variety of educator resources based on grade level, content type, curricular area and language (“ScratchEd” n.d.) On the other hand, some platforms offer a very practical teacher “kit” that involves step by step guides for teachers to use in each class. For instance, Stencyl (J. Liu et al. 2014) provides a free educator’s kit that contains two weeks of lessons, student activities, a final project and setup guide: http://community.stencyl.com. • Online courses to teach educators how to use the tool: Some tools provide online, mostly free, courses to train teachers. For instance, Kodu has an “Introduction to Kodu” online course for teachers included in Microsoft Educator Community. • Certification programs for educators: Although not common, some platforms that can be used for advanced programming provide courses and then a certification program for teachers. For instance, Stencyl provides three different kinds of certification exams for educators and schools who want to develop a structed game design and programming classes. The four available certifications are Stencyl Game Design Specialist, Stencyl Game Programming Specialist, Stencyl Game Design Expert and finally Stencyl Game Programming Expert. Another example is the “Blue Ribbon Educator” program of Tynker. The program selects a certain number of educators each year to provide exclusive training to help them become coding experts and then awards a Professional Development Certificate for the selected teachers. (https://www.tynker.com/school/training/) . • Teacher training workshops: Some developers of programming tools provide face-to-face training workshops for teachers upon request. Gamefroot, a game creation platform for children developed by a New Zealand based company, offered workshops for teachers on how to use Gamefroot in an educational context and incorporate Gamefroot lesson plans in the classroom. • Classroom management tools: Although classroom management tools generally come with a price, they provide assessment frameworks for teachers to track student progress, compare progress of students to class averages and grade students as needed. Tynker, Codemonkey and Gamestar Mechanic are some of the tools providing classroom management tools along with teacher training materials. Apart from providing above classroom and institutional support resources, some platforms also try to offer “emotional support” to teachers by creating a community among them, similar to those communities for children. These communities are generally in two types: • Community forums for teachers: These forums encourage teachers educators to share stories, exchange resources and ask questions. Scratch, Stencyl, MIT Inventor and Greenfoot are some of the tools with community forums for teachers. • Email groups for teachers: Email groups can be used as an alternative to community forums to allow teachers to ask questions and interact with each other. For example, Alice and Bitsbox have email groups for teachers. Along with teacher support, some coding tools provide support for parents as well. This support generally is to help parents track their children’s learning progress. Among the tools we examined, Tynker provides “Parent Dashboard”, where parents can view their children’s progress, the projects they have created and the concepts they have learned. Tynker’s Parent Dashboard even allows parents to share their children’s projects with friends and family. 81 3.3.5. Dimension 5: Special Considerations The previous four dimensions help us understand main characteristics of products aimed at improving coding and computational thinking skills of children in a practical way. Apart from these, we have found that there are some “special considerations” that teachers, parents and educators should take into account when selecting the right tool for their students or children as explained in the following pages. Access For children to be able to use technological tools at different environments, including home, school and non-formal education settings, the tools must be easily available, in terms of both affordability and compatibility with a wide range of commonly used, average hardware. Therefore, access dimension includes two considerations: 1) whether the platform is open source or requires paid membership; and 2) whether the tool requires specific hardware/software to work with or can be deployed in commonly available tools. The Product Reference Guide Table presented in the Annex includes information on which tools are free/open source and which require a fee to get access to the tool. Some of the tools were marked as both “free” and “fee based” in the Product Reference Guide Table. These tools deploy a “freemium” model – which offers a limited content of the tool for free, while charging a fee for more advanced content. From a hardware- and software-compatibility perspective, we examined whether the tool can be deployed on any type of hardware (i.e. laptop computer, desktop computer, tablet, phone) and software system (i.e. iOS, Windows, Linux, etc.). While most tools are compatible with any hardware/software, some can be deployed only a specific platform. For instance, Hopscotch application is available only on iPad and iPhone. Availability in Russian Some of the tools that we examined were available in several languages, including Russian. Because the main goal of this research is to contribute into improved coding skills of children in Russia, we included “availability in Russian” as a stand-alone special consideration to help the readers find out tools in Russian easily. In addition, our research covered the tools that were originally developed in Russian speaking countries. From the compiled list of products, as of the date of writing, at least 13 of the tools originally developed in English are also available in Russian. This provides an opportunity to use a variety of tools in Russia in addition to 20 products that were already developed in Russia or Russian speaking countries. Gender dimension The gender gap in science, technology, engineering and mathematics (STEM) fields is alarming all around the world. Girls’ under-representation in STEM education is deep rooted and puts a detrimental brake on progress towards sustainable development (UNESCO 2017) . In response to this issue, several researchers and educational technology companies have started to develop tools to encourage girls in coding. For instance, researcher Caitlin Kelleher and her team developed a new version of Alice, Storytelling Allice, to test the gender dimension of the tool (Kelleher and Pausch 2007). In Storytelling Alice, programming was presented as a means to the end of storytelling. The environment was designed to make the kinds of stories that middle school girls envision approachable. On the other hand, “Generic” Alice presents programming as the end goal and enables users to write programs that control the motions of objects in a 3D environment. 82 In an experimental study conducted with 88 middle school girls in the US, it was found that girls who used Storytelling Alice spend 42% more time programming than girls who used Generic Alice and are more than three times as likely to allocate extra time to programming. The results suggest that the storytelling focus made learning to program more engaging for middle school girls (Kelleher and Pausch 2007). Considering potential impact of design factors on girls’ engagement in tools, gender dimension highlights the tools that are tailored to girls. Our research identified several tools targeted towards girls in mainly English-speaking countries, mostly US; however, we have not come across with any tools with a gender focus in Russia yet. According to International Computer and Information Literacy Study 2013, which is the only available international assessment of students’ achievement in computer and information literacy, in Russia, girls in Grade 8 scored better than boys in computer and information literacy; however, their perceived self-efficacy in advanced ICT skills was lower than boys (Fraillon et al. 2014). Accordingly, the lack of coding resources targeted towards girls could be an issue to be addressed in Russian education system in order to encourage girls in coding and improve their self- efficacy. Among the 71 tools in English-speaking market, seven (around 10%) tools were found to be having a specific focus on encouraging girls for coding. However, we could not find any coding tool in Russian market that explicitly considers the gender dimension. Age dimension Duncan and colleagues have collected a list of 47 tools that can be used for teaching programming and refer to these tools as Initial Learning Environments (ILEs). They classify an ILE according to a Level between 0 and 4 (Duncan, Bell, and Tanimoto 2014). Level 0 - Age range 2-7 years. Drag-and-Drop or simpler. Teaches planning (sequence) only. Requires no abstraction. Contains no significant use of: functions, variables, iteration, indexed data structures, conditional execution. Examples: Daisy the Dinosaur, Lightbot Junior, Scratch Junior, PictoMir Level 1 - Age range 5-10 years. Drag-and-Drop. Requires no abstraction (or small amounts). Contains none or few of: functions, variables, iteration, indexed data structures, conditional execution. Examples: Scratch Junior, PictoMir, Lightbot, Kodu, Blockly, HopScotch, Scratch, Tynker. Level 2 - Age range 8-14 years. Drag-and-Drop or text based. Includes some abstraction. Contains some or most of: functions, variables, iteration, indexed data structures, conditional execution. Examples: Kodu, Blockly, HopScotch, Scratch, Tynker, NetLogo, Alice, AppInventor, Looking Glass, Snap! Level 3 - Ages 12 years and up. Drag-and-Drop or text based. Includes abstraction. Contains all of: functions, variables, iteration, indexed data structures, conditional execution. Examples: Scratch, Tynker, NetLogo, StarLogo Nova, Snap!, Alice, AppInventor, Looking Glass, StarLogo Nova, BlueJ, KidsRuby Tools that can improve 3D Fluency 3D animation assists children in providing stronger object visualization and a meaningful sense of reality by helping them to “see” the codes they write (Cooper, Dann, and Pausch 2003). In spite of this additional benefit of 3D animations, including 3D objects and environments in a programming tool may imply an additional challenge for children since they start worrying about the precise look, size, orientation and locations of objects in 3D space or how objects need to be animated when they move (Repenning and Ioannidou 2006). 3D environments typically provide increasing levels of complexity. 83 • The first level is allowing children to program in 3D virtual environments, with no modeling tools built in to make new 3D models from scratch. For instance, Alice enables novice programmers to create animations and games in a 3D world; without letting the child to create their own 3D models. • The second level is allowing users to create virtual 3D environments/games by also making 3D models from scratch. For example, AgentCubes is the leading tool in the marketplace enabling users to inflate 2D objects into 3D objects, so that children move along well-defined stepping- stones from 2D to 3D applications. Although this level provides engaging and positive experiences for students, student may become almost too excited about creating 3D shapes and allocate less time for programming tasks (Repenning and Ioannidou 2006; Repenning et al. 2012). Figure 3.14: Two levels of 3D fluency supported by programming tools Idea generation support As mentioned under “Creativity and Confidence” component of the Positive Technology Development Framework, students who are novice in coding generally do not know exactly what they want to build, what is possible, or how challenging coding is. In order to prevent possible frustration of the kid, some tools provide friendly idea generation support in the form of templates or ready-made games. Because this consideration may be important especially for novice programmers, idea generation support was included among Special Considerations in our Product Reference Guide. 3.4. Product Reference Guide The Product Reference Guide table presented in the annex lists all products/tools against the five dimensions. The product list is not meant to be exhaustive or comprehensive. The market for coding and computational thinking products is highly dynamic as entry does not have a high barrier to entry or exit. With the rapid feedback effects possible through social media, some products become popular very quickly. A perusal of startup funding sites like http://www.kickstarter.com and http://www.indiegogo.com will indicate ongoing fundraising campaigns for products that teach coding or computational thinking to children. Some of these products are oversubscribed by many times, others fail to reach their fundraising goals. The product reference guide presented in Appendix 3 is meant to be illustrative of the kind of products that existed in the year 2018 and the features that were on offer. Interested readers may also wish to look at an excellent review of free coding and robotics products available online at https://www.intechopen.com/books/simulation-and-gaming/an-evaluation-of-open- 84 digital-gaming-platforms-for-developing-computational-thinking-skills (Eguíluz, Garaizar, and Guenaga 2018). For children seven years old and younger, see the paper presented at the 2018 Interaction Design and Children (IDC) Conference: https://dl.acm.org/citation.cfm?id=3202738 (Yu and Roque 2018). 3.4.1 Representation of Multitudinous Market using repertory grid This section present an experimental conceptual map (Figure 3.15) of the market of coding products. To keep the conceptual map readable, attention is limited to a list of thirty products for which information was readily available online, either through promotional material from creators or through academic research related to the use of the products. The purpose of this map is exploratory, to provide a possible option for researchers to develop further in the future to track the evolution of this dynamic market. Figure 3.15 Focus cluster analysis of programming tools The method used to generate a conceptual map is based on the Repertory Grid developed by George Kelly in the 1950s from a field called Personal Construct Psychology which is related to the psychology of constructionism (Raskin 2002). Conceptual grids were originally utilized as a method of representing an individual’s conceptual model of a domain by eliciting the bipolar constructs through which the 85 individual differentiated significant elements in that domain. The application of the Repertory Grid became popular with the advent of easily accessible software, and for the purpose of this section, the WebGrid5 software is used (Gaines and Shaw 2012). Kelly’s grid method has found favor in the strategic management literature and the Repertory Grid is recognized as powerful tool for eliciting knowledge from domain experts Today, such grids are used across various domains ranging from clinical psychology to marketing. The focus algorithm of the Repertory Grid sorts the rows and columns of the grid display to bring similar elements and similar constructs closer together, and also shows the hierarchical structure of similarities that results from sorting the grid in this way (Figure 3.15). There are eighteen bi-polar sub-dimensions or constructs around which each of the thirty products are rated on a rating scale, from one to five, based on the information collected during the compilation of the product reference guide. The focus algorithm identifies constructs which are closer together based on the correlation of the rating measures (Shaw 1981). The construct clusters (in blue color at the top) in Figure 3.15 appear to be split into four main groups. There appears to be a connection between "Intrinsic Motivation", "Agentivity" and "Making" against "Extrinsic Motivation", "Control Structure" and "Problem Solving". The fourth cluster indicates an intuitively expected link between "Open Software" and "Free learning" against "Commercial software" and "Paid training". The clusters of products (in red color at the bottom of Figure 3.15) also appear to be divided into four groups. 3.4.2. Representation of Learning Environments using Semantic MediaWiki Semantic MediaWiki extension allows for annotating semantic data within wiki pages, thus turning a wiki into a semantic wiki. In the Russian website, http://letopisi.org, users can construct new pages containing additional information about learning environments, educational practices, educational standards, and other themes. The descriptions of learning environments for teaching programming are presented as separate wiki pages in the category of "Learning Environment" - http://letopisi.org/index.php/Category:LearningEnvironment The description of programming languages was edited using a form in which the necessary description properties were listed. For example, for the Alice language, the form captures the following properties: Age: 14 Field of Activity: Empower Learner, Computational Thinking, Innovative Designer Dimension: 3D Purpose: Mini-Language Visual Text: Visual Blocks Openness: Open Address: http://www.alice.org/ Ancestors: Descendants: Storytelling Alice, Looking Glass ACTIVE Now: Yes Remixing: No The description of a programming language using its properties allows users to further specify semantic queries on the pages. 15 15 Semantic search refers to search based on meaning as opposed to regular searches that look for matches of words or word patterns without any relation to the meaning of the query. Semantic searches allow for context such as geography. The syntax for semantic searches used here can be learnt at https://www.semantic-mediawiki.org/wiki/Help:Inline_queries. For example, if someone wants to know which languages are best used for teaching children at the age of 7 years in the field of design, then she/he can write the following semantic question on the page.{#ask: [[Category:Learning Environment]] [[Age::<8]] [[Activity::Creative Designer] }}. 86 Take-aways from Chapter 3: Multitudinous Market • Positive Technology Development (PTD): A Framework for Analysis: The framework provides a way of thinking about the relationship between technology and the development of values and skills, developed at the DevTech research group led by Mariana Umaschi-Bers at Tufts University in Boston, USA. The framework reinforces the premise that any particular product or tool cannot be evaluated meaningfully without its placement in context – how the tool is used determines how impactful it can be. The framework posits a relationship between behaviors such as content creation which leads to assets such as confidence. • PTD Instruments for Children, Environment and Facilitators: The DevTech group has generated a set of two instruments that can be used to determine the extent to which PTD is enabled in a certain context through observational studies. The benefit of using this checklist is that an empirical research program has already validated its construct, but experimentation and adaption may be useful, if backed by a similar research program. The checklist regarding children seeks to determine how often “Children are observing and/or engaging each other’s work” or “Children are playing with each other or talking to each other” The checklist for facilities seeks to find out the extent to which “the arrangement of the space allows for multiple children to work on one project.” Whichever platform or product is chosen, the PTD framework would be a very useful to gauge whether the implementation is adequate – note that children observing and/or engaging each other’s work is expressly forbidden in many a traditional classroom. • Five Dimensions for Evaluation of Products and Online Database of Products: We use a practitioner oriented set of five dimensions: (i) visual, text-based or hybrid programming; (ii) nature of content (storytelling, game development, art, etc.); (iii) opportunities for remix – this one is vital to engage children who are already immersed in what David Shapiro calls the global agora; (iv) support for teachers and parents; and (v) special considerations – including availability in Russian language versions, consideration of gender and inclusion and affordances for 3-D design thinking. The database of products presented in the Annex, with the corresponding main text summaries is intended to be provided online as a searchable database. 87 88 4. Creative Computing in Russia 4.1 Early origins of constructionism in the Russian Federation A far-sighted computer scientist with access to the levers of power in the Kremlin through the 1970s and 1980s, Andrei Petrovich Ershov, referring to the constructivist ideas of Seymour Papert, propounded the notion of programming as a ‘second literacy’, perhaps half-a-century ahead of its time (Ershov 1981). The study of the development of science and scientific discovery in the erstwhile Soviet Union is a vast contemporary research field, and the study of the thoughts and actions of Andrei Ershov are an important part of this field. Perhaps this is owed to the high productivity of Ershov and his high visibility and networking with Western scientists, supported by a meticulous note-taking habit (Krainev and Cheremnykh 2011). While much of the literature focused on the study of Soviet science is highly specialized and not of great relevance to the topic of modern computing in present day Russia, it is useful to understand the historic context. An accessible account regarding the “Soviet Information Age” details how the policies regarding development of computational thinking for all students, substantively prepared by Andrei Ershov were empowered by Mikhail Gorbachev as a part of the “Perestroika” reforms (Afinogenov 2013). Afinogenov outlines the importance of the development of cybernetics – dealing with control of systems, such as the centrally planned social system which was the Soviet Union. Afinogenov recounts how Ershov first tried to create awareness and support to reform the education system to incorporate the subject known as ‘informatics’ but failed, and then took another route: Although his efforts to promote an evolutionary model of school informatics gained the support of state and party authorities, by 1985 it was clear to Ershov that the “infiltrationist model,” as he called it, had failed: “It turned out that this strategy was incapable of overcoming inertia and an inadequate level of social consciousness, as well as the subsequently revealed ‘braking mechanism’ of social development in general.” A “frontal assault” was now needed. At any rate, in late 1984 (after Ershov had become a full member of the academy), the Ministry of Education, after considerable work on the part of Ershov and others, ordered that a course on “Foundations of Informatics and Computing Technology” be introduced in all ninth and tenth grade classes everywhere in the Soviet Union the very next school year. This was not enough, however: a “firm” and “abrupt” “political decision” was going to be necessary. Ershov appealed to the Politburo, which decreed an even more large-scale deployment of school informatics on 9 March 1985. Gorbachev himself wrote the mandate. (Afinogenov 2013) As reported in Khenner and Semakin 2014, in 1985, a course titled “Foundations of Informatics” was introduced in grades 9–10 of all schools in the Soviet Union with an aim to strengthen algorithmic thinking and computer literacy of students. The following course components were identified: 1. The concept of the algorithm and its properties, means and methods of describing algorithms, the program as a form of representation of the algorithm for computers; 2. Foundations of programming in a programming language; 3. Practical skills with computers; 4. Principles of computer functionality and its basic elements; 5. Computer applications, their role in different sectors of human activity. Source: (Khenner and Semakin 2014) Afinogenov reports that a textbook was co-authored by Ershov for the purpose of teaching “algorithmic thinking”, but the program suffered grievously on account of the severe lack of actual computers in 89 schools, even in Moscow city, not to mention rural areas and poorer republics. Even though some of the rhetoric regarding all students learning programming was couched in ideological terms of social control and intellectual creativity in a highly abstract notion of man-machine interaction, it appears that Ershov’s ideas evolved over time. While earlier he thought of programmers as an especially important set of high status individuals vital to the Soviet enterprise, according to Afinogenov, the advent of personal computers led Ershov to revise his views towards a vision of mass literacy. It is quite interesting to note the importance attributed in the early days of children learning computing to the views propounded by Seymour Papert and the Logo computer language. An interesting account of the revolutionary ideas of Papert and the resistance they generated – “setting the teeth of educational administrator’s on edge” – is provided in (P. Blikstein 2013). Papert sought to revolutionize education with the introduction of the “Logo” language – the “powerful idea” was largely unsuccessful in its original incarnation, and it is only with the advent of the internet that Papert’s students have been able to carry out his vision of children using the computer instead of computers using the children. The scholarship on the early era of teaching computer programming to children in Russia shows how similar the experience was on both sides of the “Iron Curtain”, in the case of Russia compounded by the low availability of computers in schools. Ideas and things designed by Papert influenced education all over the world including the Russian Federation, though it is possible that the effect was stronger in Russia than many other countries. We focus on the influence of Papert along two dimensions. The first dimension is a difference between the feeling of dependence vs. the feeling of agency for all the agents in an educational system. The second dimension comes from the difference between individual activity vs. collaborative activity. 4.1.1. Logo Turtle as an actor for student’s control The easiest way to trace the impact of Papert’s ideas on Ershov is to analyze the text "Programming, the Second Literacy", where Ershov twice refers to Papert. In both instances, Ershov mentioned Papert when he discussed the problem of the student's agency. In the first instance, Ershov relied on Papert’s authority to support the strong statement that "Learning" = "Capacity to do things" = "Programming". Take learning, i.e., acquisition of knowledge, or rather, of a capacity to do things - it is also programming. Prof. Seymour Papert, who was among the first psychologists and educationalists to have adopted a programming-oriented approach, convincingly argued in a series of his publications, of a decade ago, that a child learns to do something only after he has fully comprehended how this is to be done. As long as such comprehension has not been achieved, there is no point in repetitive training. Significantly enough, this applies not only to sequences of logically motivated reactions to previously identified stimuli, but also to real-time programs, including all kinds of motor actions (i.e., sports, music, games, etc.). -(Ershov 1981) In the second instance of Ershov citing Papert, he mentions the growth of students' agency as a positive side-effect of the spread of computers. Prof. Papert predicts a total invasion of the child's world by the computer, which is to become an intellectual tool manipulated by the child as spontaneously as a pen or pencil, but with an infinitely greater variety of purpose. Interpreting the observations made by Prof. J. Piaget, which indicate that a child makes most of his intellectual findings individually, provided his environment is rich enough, Prof. Papert points out that once the environment is computerized, this unprecedented change in operational setting will call for new concepts in developmental psychology. Prof. Papert mentions, by way of example, alphabetic language acquisition being noticeably speeded up, and an earlier development of combinatorial abilities, which will make these fundamental skills available to children virtually before 90 adolescence. Among other positive effects triggered by this shift, is that it may help overcome the infantilism and feeling of dependence, which is so widespread in modern urban societies. -(Ershov 1981) Ershov was writing in the first instance about the student as a programmer. In order to understand the significance of this comparison, it is necessary to recall the deepest respect that Ershov had had for the profession of a programmer. Ershov had written in 1972: The programmer plays a full trinity of roles in this familiar miracle. He feels himself to be the father- creator of a program, the son-brother of the machine on which it runs, and the carrier of the spirit which infuses life into the program/machine combination. This triumph of intellect is perhaps the strongest and the most characteristic aspect of programming. (Andrei P. Ershov 1972, 504) In the second instance, Ershov contrasts the student's agency vs. a feeling of dependence. And here he rightly singles out agency as the core of constructionism, because in this regard, the productive agency is akin to constructionism (Schwartz 1999). It is also connected with what in the field of cultural studies appears as “non-agentivity” in the Russian cultural outlook: it is a tendency to resignation and submissiveness, a lack of emphasis on the individual as an “achiever”, especially in the material, “external” sense. Non-agentivity would be the feeling that human beings are not in control of their lives and that their control over events is limited; a tendency of fatalism, resignation, submissiveness; a lack of emphasis on the individual as an autonomous agent, "achiever", and controller of events (Wierzbicka 1992). Papert took part in a joint project of MIT and a company called “Bolt Beranek & Newman” which involved the creation of a computer-controlled robot, which at a certain stage was called the Turtle. Knowledge and experience in child psychology and pedagogy helped Papert to understand how important such a simple and predictable-in-behavior object can be for learning. Importantly, the simplest commands were similar to commands given to a person — forward, backwards, right, left, repeat, etc. Over time, these simple procedural equivalents of Lego bricks gradually formed more complex microcosms, which modeled physical, chemical, or biological phenomena. But entry-level simplicity and the comprehensibility of basic commands and procedures made the world of learning more accessible. Logo was not designed especially for the purpose of teaching programming. However, Logo turtle graphics had a huge impact on the mini-language and sub-language approach. The Logo turtle-graphics set can be considered the first example of a mini-language. Mini-languages have a small syntax and simple semantics. A student, even a very young one, can thus come to grips with the entire mini- language and employ it with interesting results. A second important advantage is that mini-languages are built on metaphors that are intrinsically engaging and visually appealing. In a sense, all languages with a graphic executive are descendants of Logo. As Peter Brusilovsky wrote - in most of the existing mini-languages “a student learns what programming is by studying how to control an actor, which can be a turtle, a robot or any other active entity, acting in a microworld” (P. Brusilovsky et al. 1994). Although an actor can be a physical device, the student usually deals with a program model of such a device and observes the behavior of the executive on a screen. The actor can perform a small set of commands and answer several value-returning queries. Usually the student controls the actor, first by giving isolated commands and then by writing small programs in a special miniature programming language. Several mini-languages were designed with influence of Logo and used widely in the USSR, e.g. Wayfarer, Turingal and Tortoise (Peter Brusilovsky et al. 1997). The set of problems concentrated on the task of controlling a simple actor ‘Wayfarer’ moving on a checked field with walls. Formal concept of an executive was developed by Russian researchers Zvenigorodsky and Kouchnirenko. The executive 91 consists of an actor working in a microworld and a small set of commands and value returning queries that the actor can perform. The concept of an executive makes possible the use of several executives within the same programming language. The basic philosophy that governs KuMir is that the language has a compact core that can be dynamically extended by loading one or more separately prepared modules, i.e. executives providing new microworlds and actors, or even new numerical packages and abstract types of data. This approach allows easy customization of the system. (P. Brusilovsky et al. 1994). Numerous Turtle Logo descendants were created in Eastern European countries. Comenius Logo - a powerful version of Logo was written in the Slovak republic (Blaho, Kalas, and Tomcsanyi 1993). KIDLOGO, a compact microworld for kindergarten and special education was developed in Hungary (Turcsányi-Szabó 1997). Geomland - a version of Logo which incorporates a Euclidean geometry toolkit, was developed in Bulgaria (Sendov and Sendova 1995). IconLogo was developed at the Institute of New Technologies of Education, in Russia. IconLogo, developed at the Institute of New Technologies of Education (INT), Moscow, by Dr. Sergey Soprunov and his group, includes a word processor, graphics editor and music synthesizer (Soprunov and Yakovleva 1999). Other Russian software aimed at teaching algorithms and programming such as MicroMir, Algoritmica, and Robotland (Parmentier and Pervin 1992) also used the concept of an of an executive. As Claude Lévi-Strauss wrote "natural species are chosen not because they are "good to eat" but because they are "good to think" (Levi-Strauss 2016). Today we can say that all these numerous descendants of Logo Turtle were created not only because they are "good to code" but because they are "good to control". 4.1.2. Logo project as an object for collaboration and sharing Further efforts of Papert and his group (Media MIT Lab) were aimed at transporting the controlled performer Turtle to a computer environment and developing a high-level language designed for learning — Logo, Logo for Children, and LogoWriter. LogoWriter was the first kind of Logo descendant that really changed the students' programming environment; the user interface was made more intuitive, and the package had been translated into many spoken languages (Guzdial 2004). LogoWriter was a combination of programming language, word processor, graphics, animation. LogoWriter was definitely a good instrument for the realization of the project based approach and it was promoted and supported Logo in Russia promoting and supporting in Russia the Institute of New Technology in Education (Soprunov and Yakovleva 1999). An interesting feature of the tool was that it allowed students to share their work and merge LogoWriter pages in a joint project. To illustrate this further, let us consider the case study of the building of hypermedia conceptions in children in a summer computer school program in 1990. This will serve as a context for the comparison of the creative potential of different environments. During the summer school program students worked inside a special microworld environment designed in LogoWriter language to support children’s efforts at translating from plain narrative text into animated cartoon films. Working inside this environment, each student was responsible for constructing a one-page story about one of the characters in the microworld. In advance they were told that the characters being developed by other students would have an opportunity to visit the LogoWriter pages each student was developing on their assigned character. Through the initial implementation of this activity it was found that students developed more interesting and profound content on their LogoWriter pages whenever other characters from the microworlds were mentioned. On the other hand, in the instances where the LogoWriter page was dedicated to only the description of the assigned character – without connection to other characters – the LogoWriter pages tended to result in a kind of dead page with no links to other pages. Later on, students' attitude to the texts changed. Each participant tried to make his or her story richer by integrating contents of the common project. As a result, students became more attentive to their peers’ activities. A 92 similar technique of mixing and merging LogoWriter pages was used in the “Project Ten" (1994-1996). The participants created animals to form a stable community in a limited space - an island, a desk, or a computer screen. Through creative activities children acquire basic notions of ecological balance and intricate interconnections between different species. Every participant has done the following things: he or she drew an imaginary living organism (plant or animal); made a plasticine sculpture of the animal or plant; wrote a story about the relations between the different non-existent species; made a LogoWriter page with text and animation (E. Patarakin and Visser 2016). A network of Russian teachers using the Logo language and its variants such as LogoWriter, Splash LogoWriter, LogoExpress, and MSWindows Logo began to form in the early 90s and was associated with summer computer schools and the information-and-educational network UCHCOM established in 1992 by the Institute of Program Systems of the Russian Academy of Sciences. UCHCOM BBS focusses on many different facets of education: Physics and Mathematics, Cognitive Psychology, Multimedia. However, Logo Media was the most advanced activity in UCHCOM because LogoWriter has actively been used in telecommunication projects: "Space Voyager" (idea of "chat" was implemented); "The Computer Theater (Teleconference idea was implemented); "MicroWorld" (Correspondence idea was implemented); "Fantastic World" (Mention idea was implemented) (E. D. Patarakin 1993). The project was aimed at studying educational opportunities of telecommunications in the Logo environment and building a telecommunication association of Russian Logo users. In July 1993, project participants from different Russian cities (Moscow, St. Petersburg, Cherepovets, Yaroslavl, Nizhny Novgorod, Saransk, Omsk, and Norilsk) took part in a two-week workshop of the International Computer School in Pereslavl-Zalessky. The School had telecommunication access to the Internet and could distribute its materials via TV-INFORM educational network. Logo telecommunications and LogoNet are the terms used to describe the ability to communicate between groups of students and teachers at various locations on the Internet via both a LogoExpress and LogoNet software interface (Dickinson 1995). LogoWriter text, graphics, and digital video still Images, formatted as LogoWriter files, are exchanged between participants on the network. Therefore the students in Pereslav-Zalessky were able to "talk" with students in Omsk and share stories, graphics, and pictures with one another (E. D. Patarakin 1993). The impact of Logo on Russian education was not only a separate programming language and its descendants, but also the Logo international culture of sharing your joy of learning, of harnessing your mistakes in a creative context, of working with students and teachers as your partners in a research team. The Logo Turtle at the end of the twentieth century was an attractive boundary object (Wenger 1999) around which people from different countries and different professional communities united. Of the many existing examples of interaction, we will focus on two, kindly provided by Evgenya Sendova. In the early 80s, while visiting School 119 in Sofia, Bulgaria, a Russian educator and social philosopher Simon Soloveychik asked Evgenya Sendova to describe Logo Culture and the Research Group on Education’s experiment in one sentence without using the word computer. She said: “Our children love going to school”. The immediate answer was: “Thank you, this is absolutely sufficient” (Sendova 2014). Another great Russian educator and psychologist Vasily Davydov visited one of the Logo implementing schools in the town of Blagoevgrad, Bulgaria, a day earlier than announced. When entering the school, he smiled and said: “I know that you would show the best you have to a guest, but I want a realistic picture.” The response is recorded below: The teacher looked at me slightly surprised, but I encouraged her to carry out her plan for the day – the lesson was exploring procedures for drawing spirals with parameters (for the angle of the turtle turn and the size of the initial segment). The self-similarity of the construction naturally led the 5th graders to writing a recursive procedure. By experimenting with various values for the ANGLE parameter the students found interesting patterns, they were able to create spirals with the shape of regular polygons and with a specific number of branches switching left or right. They modified the procedure by first 93 introducing a parameter for the increment of SIZE and then by changing the rule of augmenting it (SIZE*2). Then the students decided to check what would happen if they fixed the SIZE and increased the ANGLE. The latter idea was born with the help of the teacher who was thus preparing the ground for experiments in science with processes depending on several parameters. Prof. Davydov was genuinely surprised admitting that he would suspect a preliminary setting hadn’t he changed the date of his visit. Little did he know that such a creative atmosphere was typical for the Language and Mathematics classes. -(Sendova 2014) The history of the Logo language and its descendants, of which Scratch is the most popular and successful, can be seen as the network of constructionism built and gradually involving more and more participants. The Logo international community gained informational support through printed periodicals (LogoExchange, LogoUpdate) and remote face-to-face conference EuroLogo conferences, where each time was presented a lot of work from Russia Dublin (1987), Gent (1989), Parma (1991), Anavyssos (1993), Birmingham (1995), Budapest (1997), Sofia (1999), Dublin (2001). Thus, the emergence and spread of the Scratch language was in Russia an expected event, for which many teachers and researchers were ready. We now provide a sketch of the context provided by current federal standards and official rules, before explaining further the development of Scratch. 4.2 Informatics: Deployment of Federal Standards In 1990s, the “Informatics” subject and its contents were reviewed. During this period, the core subject of “Informatics” was moved from High School to Middle School. There was a partial transition from programming to operating a PC as a user. Finally, in 2010-2012, the Russian Federation released a revised version of Federal Educational Standards (Khenner and Semakin 2014). According to these standards, Informatics became a compulsory subject in Middle School, and any school is able to choose Informatics in the High School curriculum at a basic or advanced level. Khenner and Semakin estimated in their 2014 article that at the time around 50% of students at high school studied the baseline version of Informatics while around 10% took the advanced Informatics course. In elementary school, elements of Informatics are taught within the core subjects “Mathematics” and “Technology.” Furthermore, each elementary school has the right to make subject “Informatics” part of its curriculum (Khenner and Semakin 2014). Upon school completion, the number of those who chose to take the Unified National Exam in Informatics in 2017 was 12% and this increased to 14% of the participants in 2018 (http://gia.edu.ru). Table 4.1 illustrates the state of Informatics education in Russian Federation as reported by Khenner and Semakin: Table 4.1 Current state (as of 2014) of Informatics education in Russian Federation Level Description Elementary School (age 7-10) Study of elements of informatics is compulsory inside the subjects “Mathematics” and “Technology” Middle school (age 11-15) Compulsory subject “Informatics” High school (age 16-17) Optional subject “Informatics” (baseline or advanced levels) Unified national exam Compulsory for entrance to universities to the programs connected with Informatics (Adapted from Figure 1 in Khenner and Semakin, 2014) 94 4.2.1 Federal Education Standards pertaining to Information and Communication Technology The federal education system manifests how it values computer science, allocating time to Informatics in school courses and sections in state educational standards. Current Federal Educational Standards pay special attention to computational activities of students. The standards for Primary General Education (Grades 1-4); Basic General Education (Grades 5-9) and Complete General Education (Grades 9-11). The sections pertaining to information and communication technology (ICT) are reproduced below, this term is used as being more generic than computational science. Computational thinking is not mentioned specifically in the standards. FEDERAL STATE EDUCATIONAL STANDARDS FOR PRIMARY GENERAL EDUCATION (approved by the order No 1897 of the Ministry for Education and Science of Russia issued 6 October 2009 № 373; as revised 26 November 2010 № 1241, and 22 September 2011 № 2357) 12.2. Mathematics and Information Science: 1) use elementary mathematical knowledge to describe and explain real-world objects, processes and phenomena, and to identify their quantitative and special relationships; 2) develop basic logical and algorithmic thinking, spatial imagination and mathematical language, basic skills related to measurement and calculation, rough estimate and evaluation, visual representation of data and processes, recording and execution of algorithms; 3) gain initial experience of applying mathematical knowledge to solve cognitive and practical problems; 4) an ability to perform mental and written arithmetic operations with numbers and numerical expressions, solve text problems, an ability to act according to the algorithm and construct simplest algorithms, explore, discern and draw geometric figures, work with tables, charts, graphs and diagrams, chains, sets, represent, analyze and interpret data; 5) develop a basic understanding of computer literacy. Although Federal State Educational Standards for primary general education do not explicitly declare the need for coding, modern understanding of computer literacy implies self-expression through programming digital stories and animation. Currently, for such activities there is a huge variety of actors that young kids can manage. Computer literacy plays a special binding role among transdisciplinary learning outcomes in the educational standard for basic general education. It can be argued that the skill of computational participation makes a huge contribution to the ability to organize collaborative learning and joint work with teacher and peers. However, it would be ill-advised if computational literacy is only restricted to the basic use of software applications like Microsoft Word, Excel and PowerPoint. FEDERAL STATE EDUCATIONAL STANDARDS FOR BASIC GENERAL EDUCATION (approved by the order No 1897 of the Ministry for Education and Science of Russia issued 17 December 2010 № 1897) 10. Transdisciplinary (or meta-subject) learning outcomes set out for the core curriculum of the basic general education should reflect: 7) an ability to create, apply and transform signs and symbols, models and patterns to solve academic and cognitive problems; 9) an ability to organize collaborative learning and joint work with teacher and peers; work individually and in a team: find a common solution and resolve conflicts by reconciling standpoints and accommodating interests; formulate, give reasons and defend their opinion; 11) building up and developing the competence in Information and Communication Technologies (hereinafter referred to as ICT competencies) 95 During the discussion of the Federal State Educational Standards for primary general education, experts emphasized that knowledge of the programming language is not important in itself, but in connection with the study of all topics of the school course of informatics. In addition, the ability to program greatly expands the range of tasks that can be solved in physics, chemistry, biology, and other school subjects. 11.3. Mathematics and Information Science 10) foster information and algorithmic culture; develop the views of computer as a universal tool for processing information; develop basic skills in using computer devices; 11) develop a view of the key concepts learned: information, algorithm, model and their properties; 12) develop algorithmic thinking important for professional activity in the modern society; develop the ability to construct and write an algorithm for a specific addressee; develop knowledge about algorithmic constructions, logical values and operations; get familiar with one of programming languages and key algorithm structures – linear, conditional and cyclic; 13) develop an ability to formalize and structure information, an ability to choose a mode of data presentation according to the set goal – tables, schemes, graphs, diagrams – using respective programming tools of data processing; 14) develop safe and rational behavior skills in working with computer programs and in the Internet, the ability to comply with the norms of information ethics and law. Among the learning outcomes that the Federal State Educational standards for secondary (complete) general education highlights, the greatest attention is paid to the ability to build and use computer models. Students who are able to create and use computer models for analyzing data and testing hypotheses have the opportunity to participate in sophisticated activities that were previously restricted to specialized professionals. FEDERAL STATE EDUCATIONAL STANDARD FOR SECONDARY (COMPLETE) GENERAL EDUCATION (approved by the order No 413 of the Ministry for Education and Science of Russia issued 17 April 2012 № 413) Computer Science (basic level) – the requirements to subject-specific learning outcomes for the basic course of Computer Science should reflect that students: 5) develop views of computer-aided mathematical models and the importance of analyzing the correspondence of the model to the modeled object (or process); methods of data storage and simple data processing; database concepts and tools for database access, the ability to work with them; Computer Science (advanced level) – the requirements to subject-specific learning outcomes for the advanced course of computer science should include the requirements to the learning outcomes for the basic course and in addition reflect that students: 9) have the experience of building and using computer-aided mathematical models, conducting experiments and statistical processing of data using a computer, interpreting results obtained during the modeling of real processes; the ability to estimate the numerical parameters of modeled objects and processes, use databases and reference systems 4.2.2 Teacher preparation Informatics teacher preparation in the Russian Federation takes place in three different ways: • Pedagogical Degrees in Informatics: Teachers can choose from two different degrees: i) a four-year Bachelor’s program with a single specialization in Informatics -Teacher Education (“Informatics”, "Informatics") - Code of the program -is 44.03.01 ; or ii) a five-year Bachelor’s 96 program with a dual specialization, for example, Teacher Education (“Mathematics and Informatics”, "Informatics and Technology") - Code of the program is 44.03.05 • Training for Professionals: Many graduates from other fields start teaching Informatics after completing professional courses offered by a variety of teacher-training institutions. Among these learning courses are Intel “Teach To The Future” and "Teach Essentials Course". Intel Teach to the Future (2004 - 2014 http://www.iteach.ru/ ) addresses teacher professional development through the introduction of technology-based applications to support project-based learning. The wiki platform Letopisi supporting collaborative projects of teachers and students has been operating since 2006 and is available online today at letopisi.org • In-service training: Refresher courses for Informatics teachers are provided to in-service teachers by pedagogical institutes, universities, and special institutes of professional training for teachers. Letopisi promotes the use of new technology has established “hubs” in more than 30 regional institutes of professional training for teachers (E. Patarakin and Visser 2012) 4.3 Scratch Later, this trend produced environments that helped students to create and control multiple agents. In the mid-1990s, Mitch Resnick and his team designed StarLogo with multiple turtles (Resnick 1996, 1997). The product was meant to study patterns and phenomena involving multiple agents. The synthesis of StarLogo ideas and Squeak capabilities produced the Scratch language. Scratch stems from and further promotes the ideas Papert embedded in the Logo environment. Scratch teaches us to build a project from bricks and share results with others. These skills are essential not only in special programming environments, but also in modern online communities. Modern Web 2.0-based websites have been increasingly demonstrating that creating, searching for, and storing information bricks form one process. The metaphor of building blocks children and adults use to build simple and very complex constructions lives not only in educational projects, but also in most modern Web 2.0 network services meant to support organizations and online knowledge-sharing communities. Constructionism — and educational environments such as Logo and Lego-Logo — took advantage of the metaphor of bricks each student uses to build his or her intelligence structures. Numerous multi-user learning worlds were also based on simple objects and simple actions participants could perform (A. S. Bruckman 1997; A. Bruckman and Jensen 2002). All these powerful pedagogical ideas were sidelined by the first wave of World Wide Web development, when the possibility to put educational materials on the Web overshadowed for a little while productive activities of students. But, as Web2.0 services progress, they are here again, and we see powerful ideas and technologies of parallel actions and information exchange available for education. 4.3.1 Collaboration Tools in the Scratch Environment With Scratch, you can create a new project online using blocks in a browser window. There is no need to download the project to see how it is arranged, which sprites it is made of, and how each sprite’s behavior is coded. To see the internal structure, just click See Inside and see all the sprites and codes of control programs. When a reader reviews project code, he or she can create own project version. To do so, just click Remix. The Scratch environment encourages its members to create remixes. For example, the Most Frequently Used section — http://scratch.mit.edu/latest/remixed — collects projects that social network members used most often as a basis for new projects. The Scratch network values such projects even more than those favored by the majority of members. 97 The Scratch environment enables authors to self-organize in special interest group studios. In such studios, members can collect theme-specific projects. For example, it can be projects related to specific games, subject-related models and stories, etc. The creator of the Scratch studio automatically becomes its manager and can not only add projects to the studio, but also authorize other members to do so by granting studio curator rights. The creation and re-use principle can be defined as follows: “create objects — sprites and projects — that others will not only review and study, but also use.” On the other hand, the social network has an opposite rule: “digital objects — sprites and projects created by others — can and should be taken and used.” This practice of digital material re-use is most praiseworthy. The Scratch 2.0 social network further supports this re-use rule. The system made it possible not only to review other people's projects, but also to choose certain favorite sprites and drag them in a virtual backpack. The backpack — a temporary code storage — is another collaboration tool available in the Scratch portal that helps to borrow an appropriate sprite or sprite code when a project is reviewed. Surfing through projects, users can drag sprites or scripts that caught their interest in virtual backpacks, and then, when they edit their projects, get these components from their backpacks and use them as they see fit. The backpack facilitates collaboration and helps to shape various scripts in a shared studio, as partners develop project branches and create sprites and scripts that at the end of collaboration are collected in the backpack and form final project version. All community members share their projects and recipes. There are no secret recipes; all recipes are open to everyone. Each recipe can be used and modified. Each registered community member can publish his or her project on the community server. To publish, the author adds a brief description and keywords — tags — to the project. Other community members can mark the project as favorite, mark the project with their own tags, comment on the project, and add the project to galleries of similar topics. Members can download the project, if they want to have a look at its script on their computer. The downloaded project can be changed and supplemented. After that, the project can be re-published on the server as someone’s own. The server software will identify the project as a variation of another project and will add “This project is based on”  Link to the parent project in project description. Automatic links to parent projects help to analyze project-to-project relations and track project reuse with behavior and looks of certain sprites being drawn and programmed by different members. We have behavior level for certain sprites in the program. And we have a remix mechanism and a studio to collect materials for a project. In broad terms, we have a command to create a new block and we have blocks created by members. 4.3.2 History of Scratchers’ Network in Russia As the international Scratch community developed, the Scratch environment and contents of the website hosting Scratch projects were translated into Russian in 2006. In addition, this environment was enriched with objects familiar to Russian schoolchildren, which help them to create games and stories with characters representing Russia’s nature, history, and literature. It means they can not only see and read, but also play with objects and use them for their own projects. And here children can crack digital collections of Russian universities, which is extremely useful. For example, collections of Novgorod Pedagogical University’s Astronomy Museum were used to create sprites and scenes. 98 Figure 4.1 Sprites from the Museum’s collection Wizard: “I will tell about each of these objects!” A lot of plants and animals found their way in Russian Scratch libraries from identification guides and digital Red Books created by environmental experts from Nizhny Novgorod. Once embedded into open Scratch galleries, collection objects can be used by students and schoolchildren to create new presentations, multimedia stories, and games. Figure 4.2 Butterflies from the collection of insects Scratch teaches us how to build a project using bricks and share results with others. These skills are essential not only in special programming environments, but also in modern online communities. The 99 network of Scratch programmers, or scratchers, was featured in Russia by a close wiki-Scratch connection. It so happened that Letopisi.org, the Russian wiki-project with the international participation, supported Russian scratchers from the very beginning. The Letopisi.org wiki-environment was adjusted so that members could store there their projects and specific sprites. Images of plants and animals were included in wiki-articles and at the same time were used as part of Scratch project sprites (Fig. 4.3). Figure 4.3. Connection of wiki-articles and Scratch projects in Letopisi.org Summer computer schools took advantage of parallel activities and the possibility to save intermediate results of Scratch projects in wiki (E. Patarakin and Yarmakhov 2011). In 2008 and 2009, “1 student: 1 computer” summer schools in the Staraya Pustyn village used Scratch as the major tool to create student projects, which competed with PowerPoint in presenting project 100 results. 16 The Scratch language has an important feature that helps to arrange such work — specific objects, i.e. sprites, can be saved as separate files. Later, these files can be brough together to form a common project. In 2010, wiki and Scratch sharing was extended with MediaWiki that made it possible to embed Scratch projects in texts of wiki articles. Today, the Letopisi project supports Russian scratchers and helps to develop Russian-language Scratch-wiki associated with the Scratch platform. See http://www.mediawiki.org/wiki/Extension:Scratch and https://scratch-ru.info/wiki/. Both platforms use wiki-scratchblocks — https://github.com/tjvr/wiki-scratchblocks — which automatically translate the text of Scratch commands into visual blocks. For example, the following text block of commands will be translated and displayed on a wiki page as graphics: when [up arrow v] key pressed if on edge, bounce move (n1) steps Figure 4.4 Scratch blocks on wiki pages This feature helps teachers not only to discuss emerging variants of learning activities on wiki pages, but also to remix learning activities with specific examples of Scratch-program code included. 4.3.3 Intel Corporation and Google (Alphabet Corporation) Initiatives In 2008, Russia welcomed the first competition of individual projects created by students in the Scratch environment. The competition started on January 20, 2008. The jury members reviewed two types of works: games and videos. More than 500 people took part in the initial (distance) round. The initial round was followed by onsite semifinals. They were arranged in Nizhny Novgorod, Moscow, Novosibirsk, and St. Petersburg. More than 80 children took part in the onsite semifinals. The winners of regional semifinals from Novosibirsk, Angarsk, Nizhny Novgorod, Sarov, Magnitogorsk, Moscow, the Yaroslavl region, and Yakutia participated in the next, final round held on June 20, 2008 in St. Petersburg. Young programmers competed for four hours to see who can create the best computer games in the Scratch environment. The teenagers were given various scripts and a special library of objects and backgrounds. 17 16 Photos from summer school available at https://www.flickr.com/photos/patarakin/albums/72157617516398180. In 2009, a group of schoolchildren develop the Bouns project https://scratch.mit.edu/projects/652601/ as a real group of programmers, where each member was responsible for his or her sections and sought to contribute. 17 Works of the winners were collected in the gallery https://scratch.mit.edu/studios/17369/ 101 Figure 4 5. Gallery of winners In 2010, Intel’s Teach to the Future program arranged a competition of animated stories called Once Upon a Time for school teams from various regions of Russia and the CIS (made up of teachers and children). Each territory and each region have its own unique stories — legends, myths, fables, tales, and sayings. These are the stories passed on from generation to generation, unique stories of this particular area or corner of the world. The competition organizers asked the teams to tell these stories in animation. Of 195 works submitted to competition, 29 projects were made as a digital story in the Scratch environment. Links and descriptions of these projects are available on the wiki Letopisi - http://letopisi.org/index.php/Scratch:Once_upon_a_time The growing interest of teachers to a new learning environment prompted the opening of a Scratch distance school in the spring of 2010, which welcomed more than 100 teachers from various regions of Russia. All the school’s materials were open and posted in several formats: blog, wiki, and Google documents — https://groups.google.com/forum/#!forum/scratch_ru In addition to training, presentation of materials, and skills monitoring, the Scratch school was designed as a step to build a Russian network where members could exchange their results, collect and build mental constructs together. In the school, members should have signed up on the Scratch website and in the Google group. Completed tasks were posted on the website, and challenges the teachers faced in doing the tasks were discussed in a task group. Not everyone could find time and resources to complete all the tasks, but the majority planned to use the skills they gained in classroom activities. The distance school achieved the main objective and recruited new members in the network of children’s design tools. The next step is to further joint activities, where the teachers could exchange experience and guidance. A collective book environment was chosen as a platform for such exchange, because it can embed not only project images or scripts, but also ready-made projects into pages. Co-authors of the book can add completed tasks to lesson texts. Russian teachers of the Galaxy educational network took part in several network projects shaping and studying the culture of remixes. The first network project was called “Journey of the Little Prince” and 102 brought together 12 teachers. The project’s idea was to create an interactive quest game, where the main character was moving in virtual space to find and visit a given number of cosmic planets. Figure 4.6 The Little Prince remix project The project participants were asked to create planets and their inhabitants. Each participant could take a planet and fit it out at own discretion. The project was based on simple cooperation, when each participant added new characters to the project and made the game more and more intensive. Although the final result was quite interesting, the project itself was too complicated and, having won the competition, we failed to meet tactical targets related to the development of participant – digital object relations and links. The graph of project remixes spoke volumes about the organizers having constantly helped and supported the participants not letting them do everything on their own. The next network project, Scratch Day in Russia 2012 was simpler and had to do with a single scene, where participants added their images, texts, and audio records 18. The simple project structure made it possible to address network challenges — to bring together as many people as possible and connect them with tools they would further use in training. The project was much more successful both in the number of participants networked (28) and in the number of remixes made (20). The graph of project remixes shows that the participants successfully passed the project from one another and established links between themselves and between digital 18 https://scratch.mit.edu/projects/2466633/ 103 objects. The next network project had to do with a collective ABC book and included the following stages: • Participants were given a project to go on. It was the script of The House that Jack Built project. • The participants discussed possible ways to develop the project. • The participants made several suggestions and their own project prototypes to start cooperating. • The participants independently chose to create a collective ABC book, where each participant added his or her own sprite related to a new letter of the alphabet. • The participants had problems with duplication — the same letter had several sprites. The problem was discussed and successfully resolved. • The project was completed, and its final version had all the letters. More than 30 remixes were added to the original project. Figure 4.7 The ABC remix project The final version is shown as Figure 4.7. When completed, the project was discussed and debated on; the participants analyzed progress they made and challenges they had. Over 200 comments were made on the topic of the project, when it was discussed. The participants mentioned successful self- organization, their ability to choose the topic and the project script, and build working relations in the group without help from the outside. Among the skills used and practiced during networking, the participants mentioned: • teamwork skills, negotiating skills, and task-sharing abilities; • ability to take advantage of network communications for real-time interaction; • creative thinking; 104 • ability to understand, accept and develop others’ ideas; • ability to work in a given manner pursuing a single policy and strategy; • basic programing skills, ability to create simple algorithms and scripts. The problems detected while the project was developed were as follows: • The problem of successive actions. It was difficult to plan the sequence of actions as required in network cooperation, when participants performed actions with digital materials one after another. • The problem with willingness to do as much as possible and add to the project an excessive amount of own digital materials. A lot of participants were willing to do so and broke the rules and arrangements. • Reluctance to use social capabilities of the Scratch network — the projects were discussed and networks between participants were built in the Galaxy educational network, not in Scratch. • The problem with open content available in galleries of the Scratch social network. A lot of sprites already in the social network were not used. The project results suggest that teachers have no idea that the Scratch social network can be used as a simple and open source of objects to be re-used. The participants yet failed to take advantage of the educational design strategy of the Scratch social network, when you can and should take digital objects created in the network. As a result, a lot of digital objects presented in the project are based on foreign cartoon characters. It is a shame, because the Scratch social network has collections of projects that bring together birds, animals, fish, snakes, and insects found in Russia. Authors of these collections would be happy to share their digital objects with the participants, but the participants did not look for an easy ride. All the projects submitted were very simple in terms of programming and dealing with digital materials. The challenge is to organize collective actions and cooperation. All the projects used common tactics: the participants were given a task to be collectively solved and offered possible ways to solve it using the original digital object. Collective efforts to solve the task involve the participants in the social network, where new objects are added, new participant – digital object links are established, and new relations are shaped between the participants based on joint project activities they participate in. 4.4. Scratch Collab 2018 In 2018, Moscow City University and the National Society for Technology in Education joined their efforts with the World Bank team as part of a Russian network to experiment with new learning activities shaping 21st century skills. It should be noted that the network organizers had years of experience in arranging social and educational projects at the interface of educational policies and learning activities. This project was focused on digital literacy of all the 21st century skills, and in digital literacy the focus was on collaboration skills. The organizers decided to find and form learning activities that would shape students’ ability and willingness to share results of their activities, to work as a team, and to distribute tasks. They chose Scratch as an environment that already had tools to arrange and monitor such activities. 4.4.1. Remixing of learning activities It should be noted that the Scratch environment affected the strategy of collecting project guidance materials, which were shaped like Scratch projects. Learning activity is a student(-s)-environment 105 interaction (including content resources, tools and instruments, computer systems and services, real- world events and objects) performed in response to a task with an expected learning outcome. Learning activity includes a range of tasks a student performs in a specific educational context to reach pre- determined learning outcomes. Examples of learning activities are as follows: search for and generalization of Internet resources, data processing in spreadsheets, a collective report written in wiki, a digital story created in Scratch, a 3D computer game created in StarLogo TNG or Alice. New learning activities are the subject of educational design as social management of joint activities based on educational tools. International standards to describe and present learning activities have been actively developed and clarified since the beginning of the 21st century. There are different ways to present learning activities (descriptions, patterns, diagrams, etc.). The sequence of actions in learning activities can be translated into the Scratch logic (Fig. 4.8). The project brought together Scratch hackathons and schoolchildren’s Collaborative Challenge competitions. Hackathons and competitions use templates — prototypes of learning activity scripts. The first educational script is a description of learning activity, which includes a sequence of actions. Each act is described as an answer to the How to… questions: How to create and use a teacher account? How to register participants? How to create a studio to work on a shared project? How to invite members of your team to the studio? How to create a new sprite for a new character? How to make a character move on the screen? How to calculate how many steps a character made? How to make characters interact? How to create a project remix? How to use a remix tree? How to make a correct description of a project? How to evaluate code quality independently? How to use Dr. Scratch? How to evaluate the jointness of activities? This script already includes a Scratch project that the author of the learning activity script operates on behalf of a student(-s) — this is a task he or she sets to students, tries to solve it on their behalf and understand how well the process is arranged. Figure 4.8. Educational practice as a Scratch project/ Guidance as a Scratch project 106 There were a number of initial author’s learning activity scripts. All of them were posted on Letopisi.org in the ScratchHackathon section. A learning activity script is not just an abstract description; it always describes a specific object, i.e. a Scratch project. 19At the next stage, the hackathon organizers discussed and finalized the initial scripts of training activities. Some building blocks used to construct learning activities were modified or replaced by entirely new building blocks. For example, in a Roly-Poly tale script, character interaction was tested, discussed, and then completely changed to a simpler mechanism managed by analyzing the value of a variable storing the number of the main character’s steps. As a result, the entry category combining learning activity scripts had new blocks that could be used to create modified learning activity scripts. Efforts at this stage are reflections of Scratch remixes. When a learning activity script changes, the Scratch project shaping this script changes too. All remix entries, including code snippets and links to Scratch projects, were combined in one entry — a collection of learning activity guiding materials 20. At the third stage the teachers being organizers of school workshops and hackathons were given ready-made guidance materials in the form of a document and a collection of wiki articles. When the teachers arranged school and extracurricular activities, some of them additionally tested proposed training scripts and created their own remixes of learning activities. When we met with assistants and discussed how to work with children having all skill levels and help Scratch newbies, we realized that it was very important to get the teachers in front of computers and work on every step that children would make to create a project. The teachers divided in three-person teams, tried to do everything on their own, and then highlighted challenges children might face. For example, kids may find it difficult to wait for each other. Therefore, we need to bear in mind such issues, when we develop criteria for different age groups. -An excerpt of the interview with Oksana Petrova, team work organizer from Pskov. Moscow and other Russian cities welcomed hackathons, where students mastered new learning activities meant to develop network collaboration skills. Hackathons were chosen as the most appropriate format to find innovative solutions. Totally, there were more than 90 hackathons with more than 4,000 schoolchildren as participants. The hackathons were focused on collaboration skills and tools. During testing, the teachers revealed weaknesses and uncertainties in a proposed learning activity and amended the pattern. This work was conducted mostly on-site — in schools and centers of additional education. The hackathons and workshops gave most emphasis to the use of collaboration tools. Unfortunately from a research and data measurement perspective, the teachers mostly created remixes either in Google documents or on regional wiki pages rather than within the Scratch platform. However, Scratch-hackathon organizers reported multiple collaboration activities including the use of studios and Scratch projects based on learning activity scripts the teachers developed. At the end of the hackathon, we made a feedback board, where the kids put stickers. We wrote a few questions on the board, e.g., Which part was difficult? Did they get everything they wanted from this hackathon? The kids wrote their replies on stickers, which then were put on the board. Eventually, the entire board was covered with stickers. It was very interesting to look at these replies afterwards. After that hackathon, I felt the urge to hold similar events in the region and perhaps even arrange something bigger. Many schools got interested in this experience. I alone had fifty persons who learned about Scratch, and almost everyone was excited to work with this platform. -Discussing the specifics of learning activity organization in Novosibirsk with Mikhail Molchanov 19 The scripts were described and the list of links to the scripts was posted in the summary entry at http://letopisi.org/index.php/Scratch/HowTo/Hackathon. 20 This collection is available online both as wiki and PDF: http://letopisi.org/index.php/Scratch/HowTo/Hackathon/Manual. 107 Several code portions from the projects teachers created to hold hackathons were borrowed from Scratch, posted in wiki as visual code and included in a general collection of learning activity guiding materials. During the hackathons and workshops, the schoolchildren switch to their own learning activity, which takes some elements from an educational script and tests it for real. 339 teams of participants managed to finish the work and implement the entire learning activity sequence. The teachers that prompted collaboration between the teams rated the proportion of teams that managed to finish the work and submit it to competition to the total number of participants at appr. 60%. Basically, the losses were due to teamwork complexity, the participants found it difficult to come to terms, to divide their roles and responsibilities. And were there any children who did not want to cooperate with other kids and tried to do everything on their own? Of course. And eventually, they failed. In such cases, there was a project with one remix, where the creator did all the work. Such projects were not submitted to competition. If we take the Novosibirsk hackathon studio, I think there were 60 projects submitted to competition. The most interesting thing was that children do not know how to negotiate. It was the first challenge for me: how to teach them to interact with each other. To this end, we developed a plan for them to work on. I tried to make sure they always adhered to this plan and acted accordingly. This was the only way to quiet them. -An excerpt of the interview with Mikhail Molchanov, teamwork organizer from Novosibirsk 4.4.2. Assessment of Scratch projects At the final stage, the jury members assessed not only the final project, but also studio materials, remix trees, i.e. to what extent team members’ activities complied with the developed learning activity script. To assess the projects, the experts used a criteria-based rating table (Table 4.2) Table 4.2. Criteria-Based Table to Rate Projects Project address CRITERION (see criteria description below). COMPLIANCE ADDITIONAL Low Medium High COMMENTS OR (1,2,3) (4,5,6) (7,8,9) EXPLANATIONS AUTHENTICITY (own sprites, backgrounds, music, idea) CODE QUALITY (the project should correctly use the Scratch language) COLLABORATION (the team used all collaboration tools — studio, backpack, remix) PUBLIC ESTEEM (how the team drew attention to their project) FINAL TOTAL OVERALL SCORE (max 36) To recommend or not to recommend as a winner (put X in a proper box) Yes No The criteria-based rating table was accompanied by the following explanations of how to use the criteria: Project authenticity Authenticity means authentic sprites, backgrounds, music, and idea. When rating, take a look at libraries of ready-made sprites, backgrounds, and sounds — participants could simply take ready-made materials 108 from Scrtatch libraries or other digital storages. Or they could paint, take photos and make audio records. The idea of the project could be fully or partially borrowed from a well-known game or fairy tale or it could be invented independently. • Low level, if the team used libraries of ready-made Scratch sprites, backgrounds, and sounds or found ready-made images and sounds on the Web. • Medium level, if the team modified ready-made images in the Scratch editor or in an external editor. • High level, if the authors created new sprites, backgrounds and sounds. How to assess authenticity? In project descriptions, authors often specify which images they painted, which images and animations were made with their moms and dads, and which images they found on the Web. An image was found on the Web and was not modified — 1–3. An image was animated with own hands and with the mom’s help — 4–6. An image was painted — 7–9. Check the authenticity of sprites and backgrounds in the Enter Project mode. Code quality Code quality (Control, Data Representation, Abstraction, Interactive Communication, Synchronization, Parallel Actions, and Logical Operators). When rating, focus on how cycles and conditions were used, how data are stored in variables and lists, how own blocks and clones were created, how control events were used, how sprites exchanged messages, and how logical operators were used. • Low level, if the program is made up of one long block of code with all the commands. • Medium level, if the program uses repeat blocks, logical operators, control by messaging. • High level, if the program has blocks and clones and sprite behavior is controlled by conditional tests. How to assess code quality? We assess code in the Enter Project mode and note, what constructions the authors used. Collaboration Jointness (the team used all collaboration tools — studio, backpack, and remix). When rating, see if the team has a studio, where the authors could collect materials for their project. Check the number of remixes and remix tree graphics. Read comments the team members exchanged to develop and improve intermediate project versions. • Low level, if the work represents a single project, there are no remixes and no studio. • Medium level, if there is a studio and/or the number of remixes preceding the final project is 4 to 5. • High level, if there is a studio and a tall and branchy remix tree. How to assess collaboration? Check, whether the participants created a studio to collect intermediate projects. Take a look at the number of remixes. Click View Remix Tree. Public esteem When rating by this criterion, check the number of views, likes and comments. Likes on a remix tree are especially eye-catching. 109 • Low level, if there are likes and comments from team members only. • Medium level, if the project has more than 20 views and a few likes and comments from external viewers, not from the competition organizers. • High level, if viewers actively comment on and assess the project (more than 5 likes and comments) Public esteem is measured by how many viewers bookmarked this project, how many viewers liked the project, and how many comments it got. Competition Results Junior grades: • Invasion https://scratch.mit.edu/projects/216184554/ • Underwater World https://scratch.mit.edu/projects/214725535/ • World Cup FIFA 2018 https://scratch.mit.edu/projects/216199396/ • Four Seasons https://scratch.mit.edu/projects/213470130/ • Escape the Room https://scratch.mit.edu/projects/219007916/ • Train https://scratch.mit.edu/projects/216277723/ • History of the House of Goncharov https://scratch.mit.edu/projects/219634556/ Middle grades: • Music Encyclopedia https://scratch.mit.edu/projects/216055569/ • Interactive Story https://scratch.mit.edu/projects/215946147/ • Retro-Car Museum https://scratch.mit.edu/projects/218295696/ • Windows XP Pro https://scratch.mit.edu/projects/214724397/ • The Wolf Catches Eggs! https://scratch.mit.edu/projects/163288952/ • Music Lover https://scratch.mit.edu/projects/211179557/ • Snake https://scratch.mit.edu/projects/219395515/ Senior grades: • Adventure Space https://scratch.mit.edu/projects/218050874/ • Ben the Miner https://scratch.mit.edu/projects/216166616/ • Castle Protection https://scratch.mit.edu/projects/219442699/ • FIFA 2018 Symbol https://scratch.mit.edu/projects/214645815/ • Monopoly https://scratch.mit.edu/projects/214737116/ • Red Ball https://scratch.mit.edu/projects/219457475/ • Bulls & Cows https://scratch.mit.edu/projects/219454275/ 110 Figure 4.9. Screenshot of the Underwater World project Initially, the kids just wanted to make it so that the submarine could shoot, then they decided that it should overcome obstacles — these are all their ideas. Their mom really helped with sprite animation. She photoshopped the suits, but the kids wrote the code. And they learned in the process, asked how to do something, and eventually wrote everything themselves. When the parents were overly involved in the project, they did a disservice to their children, because they learned nothing in the end. Discussing the specifics of learning activity organization in Novosibirsk with Mikhail Molchanov 4.4.3 Discussion of Learning Activities with Activity Organizers The learning activities that helped the students to get the best competition results were discussed with the teachers who arranged them. It is interesting that the organizers focused on various aspects of collaboration tools. For example, the organizers of the winners’ works in the senior age category from Pskov gave the highest priority to the remix tree tool. All high school students from Pskov used remixes in their works and tracked partners’ activities via remix tree. The winning project tree is shown in Figure 4.10. 111 Figure 4.10 Project tree https://scratch.mit.edu/projects/218050874 The team of high school students from Pskov managed to build the most branched remix tree. How did you manage to build such a wonderful tree with your students? How active the children were in using the tree? I believe, the predefined criteria were the most important for the students. High school students clearly grasped what can help them to win. During the preview, we presented a remix tree example and told how it was built. The children realized that a remix tree was needed to have a high teamwork rating. However, it was not that simple, because everyone was doing his or her part and a participant needed to wait for another member of his or her team to move on. The children proceeded at own pace, they had to coordinate their actions, but they did a great job and came off with flying colors. -An excerpt of the discussion with Oksana Petrova, teamwork organizer from Pskov Another project created by Pskov high school students had an even more branched remix tree, but the jury members’ scores were quite low. 112 Figure 4.11 Project tree 216681957 (Pskov) You had another team with a more "branchy" remix tree, but they did not win. How did the children handle it? It was hard. In fact, they were a real team, and they really wanted to win. The children from the second team were more creative, in my opinion. They know what was wrong. The thing is, they chose a project where it was very difficult to build a tree. Regarding their teamship, there were children familiar with Scratch and those for whom it was the first time. To collaborate, the children took worksheets and wrote their roles based on competition tasks, criteria and abilities of each member, so that the team members rounded each other out. As a result, the children supported each other to produce a beautiful result. -An excerpt of the discussion with Oksana Petrova, teamwork organizer from Pskov In the junior age category, the emphasis was given to the shared studio that collected all the works of the participants. It was an important change in the original script. Several teams from this studio became winners. The modified wikigram-based method was used to analyze the social structure of the studio — links between participants and projects were established based on the participants’ actions related to projects collected in this studio. Solid lines in the figure suggest a participant is the project author. Dotted lines suggest a participant commented on the project. To be successful in the 21st century, students must have a fundamental knowledge of complex networks which allows them to explore the interconnectedness of our world. Networks are pervasive across all aspects of life: biological, physical, economic, and social and our society continues to become ever more connected through the use of social media tools. This inherently interdisciplinary makes network science 113 the perfect tool to engage students in STEM fields. Components of networks have been used as a tool for teaching math and computer science for many years. Scientists have expanded these efforts by developing and sharing materials to demonstrate how network science can successfully be used to engage students in STEM fields (Harrington et al. 2013; Sánchez and Brändle 2014; Sheetz, Dunham, and Cooper 2015). The network perspective allows us to address deep questions about different systems. Inside the Scratch community, the group reflection process is supported by the remix tree tool. This tool allows viewing developed projects as modified copies of each individual project. Figure 4.12 shows a remix tree for the projects of the educational Travel to Somovka studio. Figure 4.12 Remix tree of the Travel to Somovka studio Actors may both jointly modify objects and record these changes in the modification log; the log data may be used for mapping students network collaboration. Such maps help assess the educational sociotechnical system based on the network collaboration indicators. Student network collaboration is a complex adaptive system, the understanding of which requires special tools. Such tools for mapping or building diagrams of relationships among network collaborators are network models founded on data about collaborators' actions and modifications in collaboration objects. Various types of modern sociotechnical systems, within which the participants' collaboration is implemented, are registered in the participants' action logs. Generally, a history preserved in a log may be viewed as a record of a game with a large number of moves each comprising three mandatory elements: Actor | Activity object | Activity type. Various forms of network collaboration (joint document editing, blog creating and commenting, wiki article creation and co-editing, etc.) may be reduced to a single scheme that allows analyzing and comparing the participants' activities. Rephrasing Bruno Latur, we may state that with each instance of wiki page editing; with each program remix and modification in Scratch, Alice, StarLogo Nova and NetLogo; accompanied with a record in an e-log, all teachers get an opportunity to improve the learning process. The option of criteria-based network collaboration assessment with sociograms had been implemented before for the Letopisi.org educational wiki system (E. D. Patarakin 2017). The matrix of criteria-based network collaboration assessment was based on the following criteria: productivity, connectedness, cohesion and sustainability. 114 Since all productive networking systems have common principles, we assume that a similar apparatus may be used for building sociograms based on an analysis of the actions performed by the Scratch community members (scratchers) within studios built for their collaboration. We also believe that the functions of Scratch studios are similar to Media Wiki categories. The quality criteria and indicators of group activities in a Scratch studio are shown in the table (Table 4.3). Table 4.3 Criteria-based assessment of a Scratch studio structure Criterion High Level Middle Level Low Level Productivity The chart comprises a The number of objects is The number of objects is large number of objects approximately equal to much less than the created by the members. the number of members. number of members. Connectedness All actors and activity The actors and activity The studio chart is objects are consolidated in objects are consolidated broken down to a large one chart. in a small (3-4) number number of unconnected of components. components. Cohesion The sociogram shows one The members form The sociogram shows consolidated group/clique several small groups. almost no groups, which with all members indicates a lack of correlated throughout the interaction. pages. Sustainability The sociogram shows The sociogram shows 2 The sociogram has one several key players, whose – 3 members; if they are key player central to all relations ensure removed, the graph will information processes. If collaboration fall apart into that hub is removed, the sustainability. unconnected network will be broken components. up. For experiment purposes, we have gathered data on member activities in a number of Scratch studios and generated collaboration sociograms based on the data. An example of such sociograms is shown in Figure 4.13. The human shapes refer to members/scratchers, code sheets – projects. A solid line from a scratcher to a project means that the scratcher is the project author. A dotted line means that the scratcher has commented on the project. Figure 4.13 Sociogram of a Scratch studio 115 As we can see in the sociograms, the studio is characterized by average productivity, high connectedness and cohesion, and low sustainability. The removal of the central scratcher and his projects will entail the studio chart disintegration into unconnected members. Initially, when teams were formed, I suggested that the kids should think out a plan. We wrote in detail what they wanted to do and what game to have in the end, and specified the number of sprites they would have in their game. They made a demo themselves and then defended their plan to me: they explained what they would do, how many sprites there would be, and what interface the game would have (i.e. they made sketches). After they drew up the plan — and a plan, as you know, is half the battle — they started to develop the project. Thus, they shared the work: e.g., one programmer was responsible for a certain part of sprites, another one — for another part, or one member designed and another member wrote the code. The kids divided their duties, which made it easier for them to work in studios. -Discussing of learning activity organization in Novosibirsk with Mikhail Molchanov 116 Take-aways from Chapter 4: Introduction: Creative Computing in Russia • Early origins of constructionism in the Russian Federation: While much of the literature focused on the study of Soviet science is highly specialized and not of great relevance to the topic of modern computing in present day Russia, it is useful to understand the historic context. Ideas and things designed by Papert influenced education all over the world including the Russian Federation, though it is possible that the effect was stronger in Russia than many other countries. We discuss in some detail how Logo and variants of Logo had a rich life in the early period of children learning computation. In spite of the cold war, there was a strong level of interaction between experts on either side of the “Iron Curtain”. Papert’s ideas were revolutionary in their own time, and perhaps continue to be revolutionary, though the internet and the collective consciousness in its wake has made some of the wildest ambitions possible, such as Papert’s idea of learning taking place in the mode of a Samba school in Brazil. • ICT in Federal Education Standards: While Papert was feted and celebrated in real life as well as through many followers in the early period of children learning coding, later developments in the Russian Federation appear to have followed a more conventional route, stressing general use of computer applications such as Microsoft Word and PowerPoint rather than programming and computational thinking. The current Federal Standards do not mention coding or programming as an explicit part of the curriculum for the primary level, but the standards do mention the ingredients or elements that constitute computational thinking. • Scratch in the Russian Federation: Scratch, created by Mitch Resnick and other followers of Seymour Papert at MIT, is highly popular around the world. The first version of Scratch was developed in the period 2003-2006. As the international Scratch community developed, the Scratch environment and contents of the website hosting Scratch projects were translated into Russian in 2006. In addition, this environment was enriched with objects familiar to Russian schoolchildren, which help them to create games and stories with characters representing Russia’s nature, history, and literature. It means they can not only see and read, but also play with objects and use them for their own projects. Various stories about Scratchers in Russia are related in this section. • Scratch Collab 2018: In 2018, Moscow City University and the National Society for Technology in Education joined their efforts with the World Bank team as part of a Russian network to experiment with new learning activities shaping 21st century skills. The project brought together Scratch hackathons and schoolchildren’s Collaborative Challenge competitions. The network of organizing partners developed and used templates — prototypes of learning activity scripts. The idea of the Bank team support was to be able at first hand to generate awareness regarding the ideas presented in the book. In total there were more than 90 hackathons with more than 4,000 schoolchildren as participants, and the links to some of the projects generated by participants are provided in the text. 117 118 5. Policy Recommendations This book has covered a large territory in terms of themes and topics and provided a lot of information for policy-makers as well as practitioners. This concluding chapter presents the key policy recommendations that emerge from the various pieces of information presented in the first four chapters. 5.1 Development of Computational Thinking through the learning of coding needs to be included as a key educational objective for children of all ages throughout the Russian Federation. At the entrance to a metro station in a relatively low-income neighborhood of the Washington, D.C. metro area, a local organization has put up a banner with a picture of a smiling pre-teen girl with a stack of books at her side. The inspirational message says, “If you can read, you can go anywhere!” Without detracting from the critical importance of reading, a banner more appropriate for the 21st Century for a metro station anywhere from St. Petersburg in the Russian Federation to Christchurch in New Zealand, may say “If you can read, you can go anywhere. If you can code, you can do anything!” This is no exaggeration – with ubiquitous computing and networking affecting every aspect of life, digitization will continue to transform the world. As Jordan Shapiro has written, we need to prepare children for “a different way of thinking, a different way of living, learning, and loving” (Shapiro 2019). The argument about computational thinking through coding as an education objective is not an argument about software programming jobs. Though sometimes the argument is invoked about impending gaps between demand and supply of programmers, this argument is not very convincing as many of the programming jobs are being automated or turned over to machines. It is quite possible that children entering pre-school today will grow to be adults in a world of quantum computing and instantaneous connectivity and other barely imagined possibilities. It is difficult to tell what computer language proficiencies will be in high demand two years from now, leave alone ten years from now. However, the accelerating level of digitization is a certainty, as is the increasing importance of computational thinking concepts such as algorithms and pattern matching in all manners of jobs. If a jobs argument is to be made for the imperative to teach coding to children, it is that all jobs will require some form of computational thinking skills, and those with such skills will be better able to advance their careers. But the key argument in favor of teaching coding is not even for all jobs, it is about something quite basic – literacy. Coding as a new literacy is explained through studies regarding literacy of reading and writing. History tells us how it came about that first reading, then writing, came to be regarded as a common necessity for everyday life. Research conducted by Annette Vee and others demonstrates the parallel development in two phases of reading and computational literacy – an initial phase where computers became part of the infrastructure. In the Soviet Union, there was a big push for universal computer literacy that emanated from the highest levels of authority. The visionary Seymour Papert and the Logo language found resonance in a country that had been at the forefront of mathematical development. The ideals of universal computational literacy proved to be premature at the time. Now, thanks to the connectivity of the internet and the collaboration enabled through open source instruments, the development of computer literacy is accelerating as more countries adopt coding as part of the curriculum and the development of computational thinking as a key educational objective. Within the concept of literacy, there are various practical aspects related to coding and computational thinking. Foremost among them are the skills of critical thinking and problem solving, especially collaborative problem solving, where individuals work together in teams. Abstraction is an important element in developing thinking abilities and learning computer programming provides young children with an ability to develop abstract thinking abilities – “objects to think with” as famously popularized by Seymour Papert, the founder of the pedagogical idea of “constructionism”. Especially with visual 119 programming platforms such as “Scratch”, it is possible to see a thought represented or manifested on the screen, and it is then possible to manipulate it quite easily. This has an important equity aspect with important implications for the meaning of education. Indeed, as coding and computational thinking becomes more widespread in early grades, there will likely be two corollary effects on democratizing or equalizing educational performance: creative or language arts becomes accessible to those who earlier may have been deemed as lacking in talent; and through concepts such as “Scalable Game Design”, proficiency in coding will lead to quicker and easier understanding of mathematical and scientific concepts. 5.2 Learning of coding needs to be done in a collaborative and project-based setting, as part of both curricular and extra-curricular education. In the Russian Federation, it will be easier to implement programs through extra-curricular education. This recommendation is based on a very long history of research and development, starting with the pioneering work of Amy Bruckman with MOOSE Crossing, and extended through the work of the Computer Clubhouse and Scratch creators and researchers at the MIT Media Lab’s “Lifelong Kindergarten” project led by Mitchel Resnick. The work of practitioners and researchers like Karen Brenan, Ricarose Roque and Maria Umaschi-Bers has been mentioned at various places in the book. The best summary of the thinking can be found in the title and content of Resnick’s book “Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers and Play.” We use Resnick’s framework of these “4 P’s” to communicate the recommendation of how coding needs to be taught. The purpose of learning coding is not merely to learn how to use a programming language like Java or C+, Python or Ruby. As explained in the book by Computer Scientist Martin Erwig, there are two parts of computation – the algorithm, and the language or languages used to execute the algorithm (Erwig 2017). It is of crucial importance to understand that learning computational thinking through coding – learning to devise or design a suitable algorithm and then to execute it through code, is unlike most of learning of traditional education subjects as taught in the traditional way by an instructor. Communication of facts through lecture and note-taking or reading will only get a student so far. Also, “do as I do” demonstrations of a process are not useful because individual variations need to be boundless to have meaning and for students to understand what they are doing and know why they are doing it. Project-based learning has a number of good things going for it, but the most important is motivation. Especially if the student or group of students are allowed to choose or devise the project they will work on, it has a tremendous positive impact on motivation. Learning then becomes self-driven, as a student tries to acquire the skills or knowledge needed to make progress in the project. Knowledge itself is turned on its head – rather than knowledge being something that exists in pre-defined configurations that students have to learn whether or not they are interested, the students get to define their interests and make motivated choices. This makes being a teacher more challenging, something discussed in the next recommendation. Passion is only an extreme form of motivation, and project-based learning is only an aspect of this motivation. Slowly but surely, the old industrial revolution model of schooling, with students of same age, seated in rows and learning a set curriculum, then “promoted” en masse to the “next grade” will give way to 21st century learning where self-expression and collaboration will dominate. Self-expression refers to the meaning that a child may find and the identity the child creates for herself in engaging with “objects to think with”. A child, engaged in a project where she is able to bring to bear her favorite things at the point in time, whether dinosaurs or witches or heavy trucks, would be learning in the “flow” zone as described by Mihaly Csikszentmihalyi. 120 Peers or the idea of learning in collaboration is the third of Resnick’s 4P’s. Peers fulfil myriad functions in the psychological and emotional development of a child. For coding the objective of acquiring cognitive and non-cognitive skills also becomes something for which peers play a central part at all stages, from helping define what project the child wants to do, what is the role the child will play in that project, how the group will handle problems and conflicts when they arise, and how the group will celebrate accomplishments and move on to the next project. Play is the last of the four P’s, but perhaps the most important. In a sense, Play brings the other three P’s together. Play implies sharing while having fun. Scratch, and other tools like Alice, Pencil Code and many of the others mentioned in this book, are “low-threshold programming environments”, which means it is easy for novices to learn quickly and develop games and interactive stories that can be shared with each other. As children grow older, their patience also grows, but it is important to be able to do something personally meaningful as soon as possible. Boring instruction where one is supposed to learn something only the teacher knows why it is important, has very little place in effective learning of computational thinking through coding. While there is no fixed condition that rules out collaborative, project-based learning as part of the traditional education system, there is likely very high inertia that makes such a change too difficult to implement. It is more feasible to implement as part of after-school or weekend and holiday time extra- curricular education, where these elements are already typically in place, especially for craft or hobby groups. 5.3 The challenge with regard to teachers is to encourage a new mindset rather than the provision of training to become skilled computer professionals. This mindset transformation will be best brought about through a community of dedicated and already committed teachers in the Russian Federation, who can connect through the Letopisi network. The biggest challenge to implementing an effective program of children learning computational thinking through coding is the traditional mindset of the teacher. The idea that the teacher is the all-knowing expert who has to transmit in some way impart her knowledge or skills to the students through imitation or listening and comprehending. In order to deliver 21st century education, many realize the importance of converting the role of teacher from the so called “sage on the stage” to a “guide on the side”. It is easier said than done with regard to traditional subjects, though there are models such as Emilio Reggio and Escuela Nueva that are based on collaborative and participative learning. It is possible that with not so much of history behind the teaching of coding, it may be less difficult to teach coding in the modern way. With the proliferations of tools and methods and the steep increase in popularity of sites such as http://StackExchange.com, there are many avenues to find alternative solutions to a given problem. Learning computational thinking necessarily involves the process of de-bugging of problems and is an essential task for the student to learn. The teacher should not provide a solution to the student with a problem, but help the student to learn strategies or approaches to solve problems. It is difficult for a traditional teacher to be comfortable with a situation where the teacher is not “the smartest person in the room” to tackle a certain issue. Coding provides an opportunity for the teacher to access many different new kinds of mindsets. The teacher can select the appropriate one that fits with their own preferences and strengths. Amongst the alternative mindsets available are: “maker mindset” – the idea that it is possible to make anything with creativity regarding design and materials and an openness to learn from others and to share ignorance, rather than to try and discover solutions on one’s own; “can-do mindset” – the infectious enthusiasm that depends on the ability to persevere in the face of setbacks – sometimes there do exist intractable problems, but the identification of such problems can only happen after multiple failures, and “failure” 121 itself is overturned as a concept because the teacher displays to the students how to generate learning out of failure to make a specific approach work; “ecological thinking” mindset or decentralized mindset refers to the understanding that complex behavior or structures may not be based on a central decision making authority, but can be an outcome of empowered decision making by decentralized units – as evidenced in an colonies, bee hives and coming soon to a neighborhood theatre near you – swarms of repair drones; “agentivity mindset”- the idea related to ecological thinking that providing “agency” to a group of individuals may be the best way to solve problems, when conditions for self-organization are engineered – no committees that have to decide, no hierarchy to navigate for approval, and no external conditions places on the teacher’s interest – which in turn provides the teacher with opportunities for her students to exercise their own agentivity. Computational thinking through coding can scarcely be taught through traditional pedagogy. Similarly, the traditional model of teacher training may also not function effectively. By the traditional model is meant the idea that teachers can be taught a course or two on teaching computational thinking, and then they can go forth and train in the way they were taught in the course. There is nothing wrong with courses for teachers, if they are conducted in the participative and collaborative way that teachers will be expected to teach. However, such a training course is highly unlikely to lead to a change of mindset. A community of enthusiastic and committed teachers is more likely to fulfil that function. In a way, this is an application of what Resnick terms as ecological thinking. Teachers are a part of a complex system, with multiple interactions and adaptations between the elements of the system. In the complex system approach as compared to the linear approach, the job is to provide a support system for all teachers – the example of the South Fayette township school district outside of Pittsburgh provides a very interesting case of this approach. Letopisi - http://letopisi.org is a national educational wiki project which has been active since 2006. In 2019, the project had over 82 thousand registered participants. Letopisi (which means chronicle) promotes the use of wiki technology and networked open-access web services in Russian education and has established “hubs” in more than 30 regions. It is easy to transport materials from one wiki to another with such tools like export and import of pages. Thanks to this mechanism, educational wiki-sites can easily share their materials. Initially, the network Letopisi.org was regarded as a field for creative productive learning where learners create common stories about their teachers, schools and cities. However, later in 2008 Letopisi supported the first competition of individual projects created by students in the Scratch environment. In 2010, a collection of Scratch animated stories “Once Upon a Time” was showcased on Letopisi. The Scratch “Collab Challenge” 2018, carried out as part of the preparation for this book, is also available on Letopisi. In the past few years, collections of educational standards, descriptions of learning environments and educational practices have all been published in Letopisi. These materials can be successfully used in community activities thanks to special wiki extensions. Letopisi.org incorporates several extensions (Scratch-block, Semantic MediaWiki, CollaborativeDiagram) that turn this site into augmented publishing tools. The augmented publishing approach by itself demonstrates the importance of coding to teachers and other users. Everyone will be able to assemble a book much faster and more fully if she is able to communicate with the system in the language of code. 5.4 Coding in the curriculum will best be included in an integrated and transversal way. There is no single coding language like Python or JavaScript that students need to learn, rather the focus should be on learning and applying computational thinking to the regular study of subjects like Physics, History, or Language. A clear articulation of the approach to extend learning of computational thinking to other subjects is through “scalable game design” though other means are also quite relevant, such as activities around “making”. In order for game design activities to be considered educational in a broader sense than the learning of computational thinking skills, they need to enable students to transfer skills to science 122 simulations or mathematical models; be based on concepts that are easy to be recognized and used, and are automatically measurable (A. Basawapatna et al. 2011). Baswapatna et al provide examples of how gaming concepts can be translated to concepts in learning science – from collision of agents to the collision of molecules, from transportation of one agent by another agent in a game to a simulation of how red blood cells carry oxygen molecules to different parts of the body. The learning tools like AgentSheets and Scratch make it feasible for students to experiment with code to discover the meaning and truthfulness of scientific truths in a genuine discovery mode. An animation about the inverse relationship between pressure and volume as represented by Boyle’s law, especially when one has constructed the animation oneself, affords an insight into the working of nature that is personal and memorable. As explained by Andy Ko in his blog “Papert further argued that the very scientists and engineers who depend on Newton’s formula (F=ma) also didn’t learn it by absorbing it directly into their minds, but rather, they had to develop their own personal understanding of the formula’s meaning by building upon their prior knowledge, such as their physical experiences with bicycle riding or playing billiards.” 21 A natural way of linking coding to science and arts is through the creation of specialized microworlds intended for the study of science, technology and art. Many of today's learning environments support these features. For example, there are a number of StarLogo TNG educational units (Biology, Chemistry, Physics, Math) each of which includes lesson plans, teacher guide, and student worksheet - https://education.mit.edu/project/starlogo-tng/ The same approach is used in the NetLogo library of models in physics, chemistry and biology - http://www.netlogoweb.org/ The Scratch “Collab Challenge” 2018 utilized Russian language Scratch studios in physics, mathematics and literature. https://scratch.mit.edu/studios/4614548/ 5.5 Assessment for computational thinking needs to be considered in an entirely different manner from traditional assessment. Coding provides its own immediate feedback, assessment needs to provide support to the learner and the teacher about the best suited learning process. The very purpose of assessment is completely different with coding for computational thinking as compared to other subjects. In traditional subjects, tests are administered to students to check if they have learnt or memorized a certain material, or if they can solve certain pre-defined problems. Tests usually serve an external function, to inform others about a student’s measured ability, with some delayed feedback possible to the student, for instance by ranking the students and motivating the student to study harder and improve her rank. Traditional tests are administered using a paper and pencil, or through a computer interface, where the student answers a series of multiple-choice or open-ended questions. Questions themselves are of differing levels of difficulty – in an iterative process, by examining how students answer such questions – only the easy ones or also the difficult ones correctly, the examiner can provide an estimate of the student’s ability on the domain of testing. This kind of testing has no place in assessment of children learning coding. Utilizing the terminology devised by Lorna Earl, there are three kinds of assessment: assessment of learning, assessment for learning, and assessment as learning – it is the third kind of assessment that makes sense when discussing computational thinking and coding. A piece of code written or put together (as in the case of colored blocks with visual programming) provides its own instant feedback – either the algorithm works and fulfills its function, or it does not – if it does not, the students debugs the code; if it does, the student moves to the next step. Motivation is intrinsic to the task and the student. In “assessment as learning”, the focus shifts to the learning process – the student herself is curious about 21 https://medium.com/bits-and-behavior/mindstorms-what-did-papert-argue-and-what-does-it-mean- for-learning-and-education-c8324b58aca4 123 what kind of knowledge or skills she needs to be able to move to the next step and assessment needs to fulfill that function. Since assessment has for so long been an assessment of learning, to check if learning has been achieved or not, it is an area in learning coding where either there has been no attempt at assessment, or the wrong kind of assessment has been applied – for example, multiple choice tests with answers about the next steps in a sequence of code. Automated assessment is a way forward, but it requires investment in research. Tools like Dr. Scratch do not impose any additional burden on the student, but are able to provide feedback about the level of complexity of a project. In a “low-floor, high-ceiling” environment like Scratch, such feedback is useful as it provides the student with an indication about progress or the lack of progress in a series of projects. Work on Computational Thinking Pattern Analysis (CTPA) has promise with regard to supporting a student’s progress in the “zone of proximal flow”, but further research is required in different domains and platforms to enable mainstreaming. Marina Umaschi-Bers’ “Positive Technology Development” or PTD engagement checklist is another kind of assessment which is very useful in this realm. These checklists are referenced again in the recommendation regarding marketplace of products. Essentially, the idea is to determine whether the facilities, the instructors and the processes being used are in conformity with what is known about effective deployment of learning of computational thinking. While the PTD checklist is meant to be filled on the basis of human observation, there is also great promise in the use of automated wearable technology. Whether teamwork and collaboration is taking place, and how it may be improved can be supported by a kind of assessment with technology such as the MIT Media Lab’s Open Badge. The badge can capture the dynamics and quality of interaction within a group. 5.6 Parents and other family members have enhanced opportunities to contribute to the development of computational thinking skills – programs need to be established through extra- curricular centers such as Kvantoriums and Techno-parks to provide knowledge and skills to parents. The accelerating pace of technological change creates a fair amount of anxiety amongst parents who realize that their children are growing up in a world vastly different from their own childhood – this has always been the case over centuries, but the acceleration of technological change has sharpened the anxiety that most parents face. Parents worry that children are spending too much “screen time”, and not enough time in outdoor physical activity. Some parents, themselves bent over their smart phone and perusing their social network feed, worry that their children may be spending too much time playing video games, rather than play games that do not involve screens. Adherents on both sides of the technophobe and technophile debate sharpen their electronic pencils and fire up the blogs in support of their position. Some experts seek the middle ground, acknowledging the inevitability of technological change. One expert, Devorah Heitner, seeks to differentiate between children consuming and creating - “when we label all technology use as ‘screen time’, we fail to make a crucial distinction between creativity and consumption” (Heitner 2016). She goes on to suggest that parents can do better by mentoring rather than monitoring children, and suggests other methods to become a “tech-positive parent”. Another expert, Jordan Shapiro does not provide any apology for children playing video games as consumers. Indeed, he invokes philosophy dating back to Socrates’ resistance to the written word in his favor – “Plato would’ve been a Gamer” (Shapiro 2019). It may be easier for parenting advisors to suggest the need to empathize with children and join in the fun, but this comes easier to some parents than others. Learning how to code may take place in classrooms, libraries, museums, after-school or community settings that have been pedagogically transformed into places for making digital artifacts. For parents who have had no experience with 124 coding, it may be a real revelation to play along with their children when they are exploring creating an animation in Scratch or similar tool. Ricarose Roque investigated in depth the issue of parental participation in coding as part of “Family Creative Learning” or FCL (Roque 2016). Her findings have important implications for Kvantoriums, Techno-parks and other venues where children learn coding as part of extra-curricular activities. Especially for low-income parents who may not have direct access to support from relatives or friends who might be familiar with coding, Roque’s detailed study lead to a series of recommendations. They are especially important because the prevailing practice in some of the Russian coding and robotic classes do not involve parents at all, which may be a big opportunity lost. Rather, as Roque suggest, opportunities should be provided to make family projects and to provide opportunities to create and share together. 5.7 The market for computational thinking products is booming and growing, and the government can take many steps to support this market development through institutional and financial support to start-ups, as well as support universities to conduct research and provide information to prospective customers. It is a good time to be an entrepreneur, with support available from all sides – whether it is university courses or business incubators which provide start-ups with workspaces and services like legal and accounting. Financing from a range of sources - angel investors, venture funds and crowd-funding, together with traditional private investing appears to be pouring in for digital enterprises and products such as robotic kits and other learning platforms for children to learn coding. With the market thriving and growing like that, the question of what public policy and state intervention can do is very important – not just to do the right thing, but also to avoid doing the wrong thing. The scenario regarding appropriate public intervention is complicated because of a particular phenomenon regarding digital products, especially platforms, that depend on connections between people – the so called “preferential attachment” effect (Barabási and Albert 1999). When the success of a product depends on how many connected users there are, which is important for children learning coding, because of the importance of models such as “use, modify, create”, it is very important for a product to scale quickly. Especially in commercial terms, with margins per user usually quite low because of the intense competition, the only way to make money is by having a large number of users. Economic theory advises against the government “picking winners” or otherwise interfering with the market. In this context, there are at least three sets of actions that are advisable for government. Research and Development: The series of brilliant products that have come out from the MIT Media Lab have benefited significantly from National Science Foundation (NSF) grants. Supporting Universities to carry out R&D has dual benefits – at the same time as product development is supported, the capacity of universities is strengthened, and universities are well-placed to provide support to schools and teachers. In the case of the Russian Federation, where a particular university may not be as strong as MIT which consistently ranks amongst the top five universities in the world, a case can be made to support a consortium of universities. Government support can be directed at open-source initiatives, which enable others to work on further development. Platforms such as Scratch have been able to build up an enormously large following with millions of users, in large part helped by the fact that it is free to the user. In addition to supporting university consortiums, the government can also support consortia of firms working together and with universities. In this way, the government helps in the provision of a public good, without interfering with the market. With regard to public procurement, it is advisable to let schools and teachers make the decisions at a decentralized level – changes are too rapid for a fair centralized process to work effectively and efficiently. Assessment: The assessment of student performance in a logical and meaningful way is a pending task for children learning coding to acquire computational thinking skills. Especially important is the imperative to avoid burdening children with meaningless multiple-choice examinations that mimic testing of traditional subjects. However, “assessment as learning” is still in its infancy, especially with 125 regard to the development and deployment at scale of automated analysis of computational thinking patterns to guide the learning process. Similarly, the use of wearable computing devices such as the open badges developed by MIT Media Lab has only taken place in isolated experimental settings, and it is an area where agencies of the Ministry of Education can support in line with similar support for traditional testing and test development. Information: Finally, with a wide range of extra-curricular options available to parents, the government can capitalize on existing services like https://bus.gov.ru/pub/home that provide information about the quality of facilities and the personnel. Rather than provide ratings of individual products, which would become too complex a task because of the intensely dynamic nature of the market, the local government can support the development of ratings along the lines of ‘positive technology development’ or PTD as presented in the appendix, covering facets of communication, collaboration, community building, content creation, creativity and choice of conduct. The federal government can support the development of these rubrics, possibly in conjunction with university departments with a strong track record of research in the field of technology development for children. 126 References Abelson, Harold, Gerald Jay Sussman, and Julie Sussman. 1996. Structure and Interpretation of Computer Programs. Justin Kelly. Adkins, S. 2016. “The 2016-2021 Global Game-Based Learning Market.” In Serious Play Conference. Afinogenov, Gregory. 2013. “Andrei Ershov and the Soviet Information Age.” Kritika: Explorations in Russian and Eurasian History 14 (3): 561–84. https://doi.org/10.1353/kri.2013.0046. Akcaoglu, Mete, and Matthew J. Koehler. 2014. “Cognitive Outcomes from the Game-Design and Learning (GDL) after-School Program.” Computers & Education 75: 72–81. Anand, Bharat. 2016. The Content Trap: A Strategist’s Guide to Digital Change. Random House Inc. Balanskat, Anja, and Katja Engelhardt. 2014. Computing Our Future: Computer Programming and Coding-Priorities, School Curricula and Initiatives across Europe. European Schoolnet. Bales, R. F. 1965. Interaction Process Analysis: A Method for the Study of Small Groups. University Microfilms. https://books.google.com/books?id=MX9_vQEACAAJ. Barabási, Albert-László, and Réka Albert. 1999. “Emergence of Scaling in Random Networks.” Science 286 (5439): 509–12. Basawapatna, Ashok, Kyu Han Koh, Alexander Repenning, David C. Webb, and Krista Sekeres Marshall. 2011. “Recognizing Computational Thinking Patterns.” In Proceedings of the 42nd ACM Technical Symposium on Computer Science Education, 245–50. ACM. Basawapatna, Ashok R., Alexander Repenning, Kyu Han Koh, and Hilarie Nickerson. 2013. “The Zones of Proximal Flow: Guiding Students through a Space of Computational Thinking Skills and Challenges.” In Proceedings of the Ninth Annual International ACM Conference on International Computing Education Research, 67–74. ACM. Bau, David, and David Anthony Bau. 2014. “A Preview of Pencil Code: A Tool for Developing Mastery of Programming.” In Proceedings of the 2nd Workshop on Programming for Mobile & Touch, 21–24. ACM. Bau, David, Jeff Gray, Caitlin Kelleher, Josh Sheldon, and Franklyn Turbak. 2017. “Learnable Programming: Blocks and Beyond.” Commun. ACM 60 (6): 72–80. https://doi.org/10.1145/3015455. Bers, M. 2007. “Positive Technological Development: Working with Computers, Children, and the Internet.” MassPsych 51 (1): 5–7. Bers, Marina, Alicia Doyle-Lynch, and Clement Chau. 2012. “Positive Technological Development: The Multifaceted Nature of Youth Technology Use towards Improving Self and Society.” Constructing the Self in a Digital World, 110–136. Bers, Marina U. 2010. “The TangibleK Robotics Program: Applied Computational Thinking for Young Children.” Early Childhood Research & Practice 12 (2). https://eric.ed.gov/?id=EJ910910. Bers, Marina Umaschi. 2017. Coding as a Playground: Programming and Computational Thinking in the Early Childhood Classroom. Routledge. Blaho, A., I. Kalas, and P. Tomcsanyi. 1993. “Comenius Logo: Environment for Teachers and Environment for Learners.” In Proceedings of the EUROLOGO. Vol. 93. Blannin, Joanne. 2017. Coding in the Classroom. https://pursuit.unimelb.edu.au/articles/coding-in-the- classroom. Blau, Ina, and Nurit Benolol. 2016. “Can Designing Self-Representations through Creative Computing Promote an Incremental View of Intelligence and Enhance Creativity among At-Risk Youth?” Interdisciplinary Journal of E-Skills and Lifelong Learning (IJELL) 12: 267–278. Blikstein, P. 2013. “Seymour Papert’s Legacy: Thinking about Learning, and Learning about Thinking.” Seymour Papert Tribute at IDC 2013. Blikstein, Paulo, and Dennis Krannich. 2013. “The Makers’ Movement and FabLabs in Education: Experiences, Technologies, and Research.” In Proceedings of the 12th International Conference on Interaction Design and Children, 613–616. IDC ’13. New York, NY, USA: ACM. https://doi.org/10.1145/2485760.2485884. 127 Bocconi, Stefania, Augusto Chioccariello, Giuliana Dettori, Anusca Ferrari, Katja Engelhardt, P. Kampylis, and Y. Punie. 2016. “Developing Computational Thinking in Compulsory Education.” European Commission, JRC Science for Policy Report. Bogost, Ian. 2016. Play Anything: The Pleasure of Limits, the Uses of Boredom, and the Secret of Games. Basic Books. Bond, T., and C. M. Fox. 2015. Applying the Rasch Model: Fundamental Measurement in the Human Sciences, Third Edition. Taylor & Francis. https://books.google.com/books?id=i13LCQAAQBAJ. Brennan, Karen. 2014. “Social Dimensions of Computing Education.” NSF Future Directions in Computing Education Summit. Brennan, Karen Ann. 2013. “Best of Both Worlds: Issues of Structure and Agency in Computational Creation, in and out of School.” PhD Thesis, Massachusetts Institute of Technology. Brennan, Karen, Andrés Monroy Hernández, and Mitchel Resnick. 2009. “Scratch: Creating and Sharing Interactive Media.” In Proceedings of the 9th International Conference on Computer Supported Collaborative Learning - Volume 2, 217–217. CSCL’09. International Society of the Learning Sciences. http://dl.acm.org/citation.cfm?id=1599503.1599576. Briscoe, Gerard. 2014. “Digital Innovation: The Hackathon Phenomenon.” Briscoe, Gerard, and Catherine Mulligan. 2014. “The Hackathon Phenomenon.” Bruckman, Amy, and Carlos Jensen. 2002. “The Mystery of the Death of MediaMOO.” Building Virtual Communities: Learning and Change in Cyberspace, 21. https://www.google.com/books?hl=ru&lr=&id=GY195ZNrLZ0C&oi=fnd&pg=PA21&dq=Th e+Mystery+of+the+Death+of+MediaMOO,+&ots=UJt04Z2aqp&sig=U6RWUKpJWVfhmU8 9OD_Hnhvv2Xc. Bruckman, Amy Susan. 1997. “MOOSE Crossing: Construction, Community and Learning in a Networked Virtual World for Kids.” Massachusetts Institute of Technology. Brusilovsky, P., A. Kouchnirenko, P. Miller, and Ivan Tomek. 1994. “Teaching Programming to Novices: A Review of Approaches and Tools.” In , 103–9. Vancouver, BC, Canada. Brusilovsky, Peter, Eduardo Calabrese, Jozef Hvorecky, Anatoly Kouchnirenko, and Philip Miller. 1997. “Mini-Languages: A Way to Learn Programming Principles.” Education and Information Technologies 2 (1): 65–83. https://doi.org/10.1023/A:1018636507883. Brusilovsky, Peter L. 1993. “Towards an Intelligent Environment for Learning Introductory Programming.” In Cognitive Models and Intelligent Environments for Learning Programming, 114–24. Springer. Budd, Jim, Krystina Madej, Jenna Stephens-Wells, Janice de Jong, Ehren Katzur, and Laura Mulligan. 2007. “PageCraft: Learning in Context a Tangible Interactive Storytelling Platform to Support Early Narrative Development for Young Children.” In Proceedings of the 6th International Conference on Interaction Design and Children, 97–100. ACM. Buss, Alan, and Ruben Gamboa. 2017. “Teacher Transformations in Developing Computational Thinking: Gaming and Robotics Use in After-School Settings.” In Emerging Research, Practice, and Policy on Computational Thinking, edited by Peter J. Rich and Charles B. Hodges, 189– 203. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-319-52691-1_12. Chawla, Kunal, Megan Chiou, Alfredo Sandes, and Paulo Blikstein. 2013. “Dr. Wagon: A 'stretchable' toolkit for Tangible Computer Programming.” In Proceedings of the 12th International Conference on Interaction Design and Children, 561–64. ACM. Choi, Hyungshin, and Jeongmin Lee. 2018. “Promoting Computational Thinking and Collaborative Skills in Primary Robotics Classes.” Proceedings of the International Conference on Computational Thinking Education 2018. Hong Kong: The Education University of Hong Kong., June. Cooper, Stephen, Wanda Dann, and Randy Pausch. 2003. “Teaching Objects-First in Introductory Computer Science.” In ACM SIGCSE Bulletin, 35:191–195. ACM. 128 D’Alba, Adriana, and Kim C. Huett. 2017. “Learning Computational Skills in UCode@ UWG: Challenges and Recommendations.” In Emerging Research, Practice, and Policy on Computational Thinking, 3–20. Springer. Dasgupta, Sayamindu, William Hale, Andrés Monroy-Hernández, and Benjamin Mako Hill. 2016. “Remixing As a Pathway to Computational Thinking.” In Proceedings of the 19th ACM Conference on Computer-Supported Cooperative Work & Social Computing, 1438–1449. CSCW ’16. New York, NY, USA: ACM. https://doi.org/10.1145/2818048.2819984. Davidson, C. N. 2017. The New Education: How to Revolutionize the University to Prepare Students for a World In Flux. Basic Books. https://books.google.com/books?id=BEnTDQAAQBAJ. Delcker, Jan, and Dirk Ifenthaler. 2017. “Computational Thinking as an Interdisciplinary Approach to Computer Science School Curricula: A German Perspective.” In Emerging Research, Practice, and Policy on Computational Thinking, edited by Peter J. Rich and Charles B. Hodges, 49–62. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-319-52691-1_4. Dickinson, Sarah. 1995. “Logo Telecommunications: Crossing Boundaries and Opening Minds,” 16. DiSessa, A. A. 2001. Changing Minds: Computers, Learning, and Literacy. MIT Press. https://books.google.com/books?id=DfNaW4zvJVgC. Dodds, Colin, Ahmed Kharrufa, Anne Preston, Catherine Preston, and Patrick Olivier. 2017. “Remix Portal: Connecting Classrooms with Local Music Communities.” In Proceedings of the 8th International Conference on Communities and Technologies, 203–212. C&T ’17. New York, NY, USA: ACM. https://doi.org/10.1145/3083671.3083679. Dougherty, Dale. 2013. The Maker Mindset: Design, Make, Play. Routledge New York, NY. Duncan, Caitlin, Tim Bell, and Steve Tanimoto. 2014. “Should Your 8-Year-Old Learn Coding?” In Proceedings of the 9th Workshop in Primary and Secondary Computing Education, 60–69. ACM. Earl, L. M. 2012. Assessment as Learning: Using Classroom Assessment to Maximize Student Learning. SAGE Publications. https://books.google.com/books?id=XKhl7I01o6MC. Eduardo Navas, Owen Gallagher, and xtine burrough, eds. 2014. The Routledge Companion to Remix Studies. The Routledge Companion to Remix Studies. Routledge. https://doi.org/10.4324/9781315879994. Eguíluz, Andoni, Pablo Garaizar, and Mariluz Guenaga. 2018. “An Evaluation of Open Digital Gaming Platforms for Developing Computational Thinking Skills.” In Simulation and Gaming. InTech. Ershov, Andrei P. 1981. “Programming - A Second Literacy (In Russian).” Novosibirsk, USSR Academy of Sciences. http://oberon2005.oberoncore.ru/classics/ae1981.pdf. European Union, Innovation. 2014. Communication from the Commission to the European Parliament, the Council, the European Economic and Social Committee and the Committee of the Regions. Brussels. Fowler, Allan, and Brian Cusack. 2011. “Kodu Game Lab: Improving the Motivation for Learning Programming Concepts.” In Proceedings of the 6th International Conference on Foundations of Digital Games, 238–40. ACM. Foxall, Sarah, and Rosalind Mist. 2018. “Computing Education - 1 Year on | Royal Society.” November 20, 2018. https://royalsociety.org/science-events-and-lectures/2018/11/computing-education-1- year-on/. Fraillon, Julian, John Ainley, Wolfram Schulz, and Tim Friedman. 2014. Preparing for Life in a Digital Age: The IEA International Computer and Information Literacy Study International Report. Springer. Gaines, Brian R., and Mildred L.G. Shaw. 2012. “Sociocognitive Inquiry.” In Social Network Mining, Analysis, and Research Trends: Techniques and Applications, edited by I-Hsien Ting, Tzung- Pei Hong, and Leon Shyue-Liang Wang, 35 – 55. IGI Global. http://services.igi- global.com/resolvedoi/resolve.aspx?doi=10.4018/978-1-61350-513-7. Gawande, A. 2010. The Checklist Manifesto: How to Get Things Right. Henry Holt and Company. https://books.google.com/books?id=x3IcNujwHxcC. 129 Gee-Spillane, Sharyn. 2018. “Participants’ Views on the Effects of Digital Technologies on Their Teaching/Learning in Food and Textiles Technology Education.” The University of Waikato. Gelfand, L., and E. C. Freed. 2010. Sustainable School Architecture: Design for Elementary and Secondary Schools. John Wiley & Sons. https://books.google.com/books?id=rGgqN5F3oAAC. Gerristen, John. 2017. Kids to Learn How to Code before High School. https://www.radionz.co.nz/news/political/333999/kids-to-learn-how-to-code-before-high- school. Glendening, M. L. 2016. From Video Games to Real Life: Tapping into Minecraft to Inspire Creativity and Learning in the Library: Inspiring Creativity and Learning in the Library. ABC-CLIO. https://books.google.com/books?id=6ebvDAAAQBAJ. Guzdial, Mark. 2004. “Programming Environments for Novices.” Computer Science Education Research 2004: 127–54. Hameed, S. S., Chee-Wah Low, Poh-tin Lee, N. I. N. Mohamed, Wuay-boon Ng, P. Seow, and B. Wadhwa. 2018. “A School-Wide Approach to Infusing Coding in the Curriculum.” Proceedings of the International Conference on Computational Thinking Education 2018. Hong Kong: The Education University of Hong Kong. Hammond, Michael. 2010. “What Is an Affordance and Can It Help Us Understand the Use of ICT in Education?” Education and Information Technologies 15 (3): 205–17. Harms, Kyle J., Jordana H. Kerr, Michelle Ichinco, Mark Santolucito, Alexis Chuck, Terian Koscik, Mary Chou, and Caitlin L. Kelleher. 2012. “Designing a Community to Support Long-Term Interest in Programming for Middle School Children.” In Proceedings of the 11th International Conference on Interaction Design and Children, 304–307. ACM. Harrington, Heather A., Mariano Beguerisse-Díaz, M. Puck Rombach, Laura M. Keating, and Mason A. Porter. 2013. “Commentary: Teach Network Science to Teenagers.” Network Science 1 (2): 226–47. Heines, Jessie M. 2016. “Converting MIDI Notes to ABC Notes in Pencil Code.” ACM Inroads 7 (2): 84–84. Heitner, D. 2016. Screenwise: Helping Kids Thrive (and Survive) in Their Digital World. Taylor & Francis. https://books.google.com/books?id=wEuiDQAAQBAJ. Hiltunen, Tuomas. 2016. Learning and Teaching Programming Skills in Finnish Primary Schools-The Potential of Games. Oulu: University of Oulu. Horn, Michael S., and Robert JK Jacob. 2007. “Tangible Programming in the Classroom with Tern.” In CHI’07 Extended Abstracts on Human Factors in Computing Systems, 1965–70. ACM. Hu, Felix, Ariel Zekelman, Michael Horn, and Frances Judd. 2015. “Strawbies: Explorations in Tangible Programming.” In Proceedings of the 14th International Conference on Interaction Design and Children, 410–13. ACM. Hung, Ya-Xuan, Pei-Chen Huang, Kuan-Ta Chen, and Woei-Chyn Chu. 2016. “What Do Stroke Patients Look for in Game-Based Rehabilitation: A Survey Study.” Medicine 95 (11). Ioannidou, Andri, Alexander Repenning, and David C. Webb. 2009. “AgentCubes: Incremental 3D End- User Development.” Journal of Visual Languages & Computing 20 (4): 236–51. Jenkins, H. 2008. Convergence Culture: Where Old and New Media Collide. NYU Press. https://books.google.com/books?id=HZgUCgAAQBAJ. Kafai, Yasmin B., and Quinn Burke. 2014. Connected Code: Why Children Need to Learn Programming. MIT Press. Kallinikos, Jannis, Aleksi Aaltonen, and Attila Marton. 2010. “A Theory of Digital Objects.” First Monday 15 (6). http://firstmonday.org/ojs/index.php/fm/article/view/3033. Kane, Shaun K., and Jeffrey P. Bigham. 2014. “Tracking@ Stemxcomet: Teaching Programming to Blind Students via 3D Printing, Crisis Management, and Twitter.” In Proceedings of the 45th ACM Technical Symposium on Computer Science Education, 247–52. ACM. Kay, Alan, and A. Goldberg. 1988. “The Dynabook: Past, Present, and Future.” In A History of Personal Workstations, 249–64. ACM. 130 Kelleher, Caitlin. 2009. “Barriers to Programming Engagement.” Advances in Gender and Education 1 (1): 5–10. Kelleher, Caitlin, and Randy Pausch. 2005. “Lowering the Barriers to Programming: A Taxonomy of Programming Environments and Languages for Novice Programmers.” ACM Comput. Surv. 37 (2): 83–137. https://doi.org/10.1145/1089733.1089734. ———. 2007. “Using Storytelling to Motivate Programming.” Commun. ACM 50 (7): 58–64. https://doi.org/10.1145/1272516.1272540. Khenner, Evgeniy, and Igor Semakin. 2014. “School Subject Informatics (Computer Science) in Russia: Educational Relevant Areas.” ACM Transactions on Computing Education (TOCE) 14 (2): 14. Klopfer, Eric, and Hal Scheintaub. 2008. “StarLogo TNG: Science in Student-Programmed Simulations.” In Proceedings of the 8th International Conference on International Conference for the Learning Sciences - Volume 3, 59–60. ICLS’08. Utrecht, The Netherlands: International Society of the Learning Sciences. http://dl.acm.org/citation.cfm?id=1599936.1599964. Klopfer, Eric, Hal Scheintaub, Wendy Huang, Daniel Wendel, and Ricarose Roque. 2009. “The Simulation Cycle: Combining Games, Simulations, Engineering and Science Using StarLogo TNG.” E-Learning and Digital Media 6 (1): 71–96. Knobel, Michele, and Colin Lankshear. 2011. “Remix: The Art and Craft of Endless Hybridization.” Journal of Adolescent & Adult Literacy 52 (1): 22–33. https://doi.org/10.1598/JAAL.52.1.3. Koh, Kyu Han, Ashok Basawapatna, Vicki Bennett, and Alexander Repenning. 2010. “Towards the Automatic Recognition of Computational Thinking for Adaptive Visual Language Learning.” In Visual Languages and Human-Centric Computing (VL/HCC), 2010 IEEE Symposium On, 59– 66. IEEE. Kölling, M. 2015. Introduction to Programming with Greenfoot: Object-Oriented Programming in Java with Games and Simulations. Pearson. https://books.google.com/books?id=_Ce5oQEACAAJ. Koushik, Varsha, and Shaun K. Kane. 2017. “Tangibles+ Programming+ Audio Stories= Fun.” In Proceedings of the 19th International ACM SIGACCESS Conference on Computers and Accessibility, 341–42. ACM. Krainev, Irina, and Natalia Cheremnykh. 2011. “Academician Andrei Ershov and His Archive.” In Perspectives on Soviet and Russian Computing, 117–25. Springer. Krauss, Jane, and Kiki Prottsman. 2016. Computational Thinking and Coding for Every Student: The Teacher’s Getting-Started Guide. Corwin Press. Lerner, Reuven M. 2014. “Agent-Based Modeling as a Social Activity.” Northwestern University. Levi-Strauss, Claude. 2016. Totemism. Beacon Press. Liu, Chen-Chung, Wei-Chen Chen, Hung-Ming Lin, and Yun-Yin Huang. 2017. “A Remix-Oriented Approach to Promoting Student Engagement in a Long-Term Participatory Learning Program.” Computers & Education 110 (July): 1–15. https://doi.org/10.1016/j.compedu.2017.03.002. Liu, Jiangjiang, Cheng-Hsien Lin, Joshua Wilson, David Hemmenway, Ethan Hasson, Zebulun Barnett, and Yingbo Xu. 2014. “Making Games a Snap with Stencyl: A Summer Computing Workshop for K-12 Teachers.” In Proceedings of the 45th ACM Technical Symposium on Computer Science Education, 169–74. ACM. Lotman, Yuri M. 2001. Universe of the Mind: A Semiotic Theory of Culture. I.B.Tauris. Lye, Sze Yee, and Joyce Hwee Ling Koh. 2014. “Review on Teaching and Learning of Computational Thinking through Programming: What Is next for K-12?” Computers in Human Behavior 41 (December): 51–61. https://doi.org/10.1016/j.chb.2014.09.012. Maloney, John, Mitchel Resnick, Natalie Rusk, Brian Silverman, and Evelyn Eastmond. 2010. “The Scratch Programming Language and Environment.” ACM Transactions on Computing Education (TOCE) 10 (4): 16. McMahon, Michael. 2004. “The Jesuit Model of Education.” EDOCERE: A Resource for Catholic Education. Milne, Lauren R., and Richard E. Ladner. 2018. “Blocks4All: Overcoming Accessibility Barriers to Blocks Programming for Children with Visual Impairments.” In Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems, 69. ACM. 131 Monroy-Hernández, Andrés. 2013. “Designing for Remixing : Supporting an Online Community of Amateur Creators.” PhD Thesis. https://www.researchgate.net/publication/279815981_Designing_for_remixing_supporting_an _Online_community_of_amateur_creators. Navas, Eduardo. 2014. Remix Theory: The Aesthetics of Sampling. Birkhäuser. Okita, Sandra Y., and Daniel L. Schwartz. 2013. “Learning by Teaching Human Pupils and Teachable Agents: The Importance of Recursive Feedback.” Journal of the Learning Sciences 22 (3): 375– 412. Page, Scott E. 2007. The Difference: How the Power of Diversity Creates Better Groups, Firms, Schools, and Societies. Princeton University Press. Pan, Tien-Yo (Tim). 2017. “Reenergizing CS0 in China.” In Emerging Research, Practice, and Policy on Computational Thinking, edited by Peter J. Rich and Charles B. Hodges, 351–62. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-319-52691-1_21. Papert, Seymour. 1980. Mindstorms: Children, Computers, and Powerful Ideas. Basic Books. Papert, Seymour, and Idit Harel. 1991. “Situating Constructionism.” In Constructionism, 193 – 206. Ablex Publishing Corporation. http://www.papert.org/articles/SituatingConstructionism.html. Parandekar, Suhas, Futoshi Yamauchi, Andrew Ragatz, Elisabeth Sedmik, and Akiko Sawamoto. 2017. Enhancing School Quality through Participative and Collaborative Learning. Washington, D.C.: The World Bank. Parmentier, Christophe, and Yuri Pervin. 1992. “Les Nouvelles Technologies Informatiques Dans l’enseignement, Un Vecteur de La Perestroïka.” Bulletin de l’EPI (Enseignement Public et Informatique), no. 67: 209–219. Patarakin, Evgeny D. 1993. “New Educational BBS Established in Russia.” Internet Society News, 1993. ———. 2017. “Wikigrams-Based Social Inquiry.” In Digital Tools and Solutions for Inquiry-Based STEM Learning, 1:112–138. IGI Global. http://www.igi-global.com/chapter/wikigrams-based- social-inquiry/180861. Patarakin, Evgeny, and Lya Visser. 2012. “New Tools for Learning - The Use of Wiki’s.” In Trends and Issues in Distance Education 2nd Edition International Perspectives, edited by Lya Visser, Yusra Laila Visser, Ray Amirault, and Michael Simonsom, 287 – 299. Perspective Instructional Technology and Distance Education. Information Age Publishing. Patarakin, Evgeny, and Yusra Laila Visser. 2016. “Creativity and Creative Learning in the Context of Electronic Communication Networks: A Framework for Analysis of Practice and Research.” ResearchGate, August. https://www.researchgate.net/publication/253765711_Creativity_and_creative_learning_in_the _context_of_electronic_communication_networks_A_framework_for_analysis_of_practice_an d_research. Patarakin, Evgeny, and Boris Yarmakhov. 2011. “Wiki for Designing Games at Summer Camp.” In Proceedings of the 7th International Conference on Games + Learning + Society Conference, 268–271. GLS’11. Pittsburgh, PA, USA: ETC Press. http://dl.acm.org/citation.cfm?id=2206376.2206413. Patarakin, Yevgeny, and Olga Shilova. 2015. “Concept of Learning Design for Collaborative Network Activity.” Procedia - Social and Behavioral Sciences, Worldwide trends in the development of education and academic research, 214: 1083–1090. https://doi.org/10.1016/j.sbspro.2015.11.709. Pattis, R. E., and R. P. Pattis. 1994. Karel the Robot: A Gentle Introduction to the Art of Programming. John Wiley & Sons Australia, Limited. https://books.google.com/books?id=yhFjRgAACAAJ. Petri, Anja, Christian Schindler, Wolfgang Slany, Bernadette Spieler, and Jonathan Smith. 2015. “Pocket Game Jams: A Constructionist Approach at Schools.” In Proceedings of the 17th International Conference on Human-Computer Interaction with Mobile Devices and Services Adjunct, 1207–11. ACM. 132 Popat, Shahira, and Louise Starkey. 2019. “Learning to Code or Coding to Learn? A Systematic Review.” Computers & Education 128: 365–76. Price, Thomas W., Neil CC Brown, Dragan Lipovac, Tiffany Barnes, and Michael Kölling. 2016. “Evaluation of a Frame-Based Programming Editor.” In Proceedings of the 2016 ACM Conference on International Computing Education Research, 33–42. ACM. Raskin, Jonathan D. 2002. “Constructivism in Psychology: Personal Construct Psychology, Radical Constructivism, and Social Constructionism.” American Communication Journal 5 (3): 1–25. Repenning, Alexander, and James Ambach. 1997. “The Agentsheets Behavior Exchange: Supporting Social Behavior Processing.” In CHI’97 Extended Abstracts on Human Factors in Computing Systems, 26–27. ACM. Repenning, Alexander, and Andri Ioannidou. 2006. “AgentCubes: Raising the Ceiling of End-User Development in Education through Incremental 3D.” In Visual Languages and Human-Centric Computing, 2006. VL/HCC 2006. IEEE Symposium On, 27–34. IEEE. Repenning, Alexander, Corrina Smith, Robert Owen, and Nadia Repenning. 2012. “AgentCubes: Enabling 3D Creativity by Addressing Cognitive and Affective Programming Challenges.” In EdMedia: World Conference on Educational Media and Technology, 2762–2771. Association for the Advancement of Computing in Education (AACE). Resnick, Mitchel. 1996. “StarLogo: An Environment for Decentralized Modeling and Decentralized Thinking.” In Conference Companion on Human Factors in Computing Systems: Common Ground, 11–12. CHI ’96. New York, NY, USA: ACM. https://doi.org/10.1145/257089.257095. ———. 1997. Turtles, Termites, and Traffic Jams: Explorations in Massively Parallel Microworlds. MIT Press. ———. 2003. “Thinking Like a Tree (and Other Forms of Ecological Thinking).” International Journal of Computers for Mathematical Learning 8 (1): 43 – 62. ———. 2017. Lifelong Kindergarten: Cultivating Creativity Through Projects, Passion, Peers, and Play. MIT Press. Reynolds, Rebecca, and Idit Harel Caperton. 2009. “Comparison of Middle School, High School and Community College Students’ Wiki Activity in Globaloria-West Virginia:(Pilot Year-Two).” In Proceedings of the 5th International Symposium on Wikis and Open Collaboration, 29. ACM. Ritzen, Joe. 1999. “Looking for Eagles: A Short Guide to Bird Watching in a Educational Context.” The World Bank. Rogozhkina, Irina, and Anatoly Kushnirenko. 2011. “PiktoMir: Teaching Programming Concepts to Preschoolers with a New Tutorial Environment.” Procedia-Social and Behavioral Sciences 28: 601–5. Román-González, Marcos, Jesús Moreno-León, and Gregorio Robles. 2017. “Complementary Tools for Computational Thinking Assessment.” In Proceedings of International Conference on Computational Thinking Education (CTE 2017), S. C Kong, J Sheldon, and K. Y Li (Eds.). The Education University of Hong Kong, 154–159. Roque, Ricarose Vallarta. 2012. “Making Together: Creative Collaboration for Everyone.” PhD Thesis, Massachusetts Institute of Technology. ———. 2016. “Family Creative Learning: Designing Structures to Engage Kids and Parents as Computational Creators.” Massachusetts Institute of Technology. Ruberg, Laurie F., and Aileen Owens. 2017. “A Future-Focused Education: Designed to Create the Innovators of Tomorrow.” In Emerging Research, Practice, and Policy on Computational Thinking, edited by Peter J. Rich and Charles B. Hodges, 367–92. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-319-52691-1_23. Ruf, Alexander, Andreas Mühling, and Peter Hubwieser. 2014. “Scratch vs. Karel: Impact on Learning Outcomes and Motivation.” In Proceedings of the 9th Workshop in Primary and Secondary Computing Education, 50–59. ACM. Rushkoff, Douglas. 2010. Program Or Be Programmed: Ten Commands for a Digital Age. OR Books. Sánchez, Angel, and Cristina Brändle. 2014. “More Network Science for Teenagers.” ArXiv Preprint ArXiv:1403.3618. 133 Savoia, Alberto, and Patrick Copeland. 2011. “Entrepreneurial Innovation at Google.” Computer 44 (4): 56–61. Scherer, Ronny, Fazilat Siddiq, and Bárbara Sánchez Viveros. 2018. “The Cognitive Benefits of Learning Computer Programming: A Meta-Analysis of Transfer Effects.” Journal of Educational Psychology. Schwartz, Daniel L. 1999. “The Productive Agency That Drives Collaborative Learning.” In In P. Dillenbourg (Ed.), Collaborative Learning: Cognitive and Computational Approaches, 197 – 218. NY: Elsevier Science/Permagon. Sendov, Bojidar, and Evgenia Sendova. 1995. “East OrWest—GEOMLAND Is Best, or Does the Answer Depend on the Angle?” In Computers and Exploratory Learning, 59–78. Springer. Sendova, Evgenia. 2014. “You Do–You Understand, You Explore–You Invent: The Fourth Level of the Inquiry-Based Learning.” In Constructionism and Creativity, Proceedings of the 3rd International Constructionism Conference, 103–112. Senghas, Ann, Sotaro Kita, and Asli Özyürek. 2004. “Children Creating Core Properties of Language: Evidence from an Emerging Sign Language in Nicaragua.” Science 305 (5691): 1779–82. Shapiro, J. 2019. The New Childhood: Raising Kids to Thrive in a Digitally Connected World. Hodder & Stoughton. https://books.google.com/books?id=6KdnDwAAQBAJ. Shaw, Mildred LG. 1981. Recent Advances in Personal Construct Technology. Academic Press. Sheetz, Lori, Veronica Dunham, and Judith Cooper. 2015. “Professional Development for Network Science as a Multi-Disciplinary Curriculum Tool.” In Integrated STEM Education Conference (ISEC), 2015 IEEE, 178–82. IEEE. Silver, Jay Saul, and Eric Rosenbaum. 2010. “Twinkle: Programming with Color.” In Proceedings of the Fourth International Conference on Tangible, Embedded, and Embodied Interaction, 383– 84. ACM. Singer, Natasha. 2018. “How Silicon Valley Pushed Coding Into American Classrooms.” The New York Times. https://www.nytimes.com/2017/06/27/technology/education-partovi-computer-science- coding-apple-microsoft.html. Slany, Wolfgang. 2014. “Pocket Code: A Scratch-like Integrated Development Environment for Your Phone.” In Proceedings of the Companion Publication of the 2014 ACM SIGPLAN Conference on Systems, Programming, and Applications: Software for Humanity, 35–36. ACM. Smith, Anna, Stephanie West-Puckett, Christina Cantrill, and Mia Zamora. 2016. “Remix as Professional Learning: Educators’ Iterative Literacy Practice in CLMOOC.” Education Sciences 6 (4): 12. https://doi.org/10.3390/educsci6010012. Soprunov, Sergey, and Yakovleva. 1999. “The Russian School System and the Logo Approach: Two Methods Worlds Apart.” In Logo Philosophy and Implementation. Logo Computer Systems Incorporated. https://books.google.com/books?id=SVSkAAAACAAJ. Stolee, Kathryn T., and Teale Fristoe. 2011. “Expressing Computer Science Concepts through Kodu Game Lab.” In Proceedings of the 42nd ACM Technical Symposium on Computer Science Education, 99–104. ACM. Sullivan, Amanda A., Marina Umaschi Bers, and Claudia Mihm. 2017. “Imagining, Playing, and Coding with KIBO: Using Robotics to Foster Computational Thinking in Young Children.” Siu-Cheung KONG The Education University of Hong Kong, Hong Kong, 110. Suzuki, Hideyuki, and Hiroshi Kato. 1995. “Interaction-Level Support for Collaborative Learning: AlgoBlock—an Open Programming Language.” In The First International Conference on Computer Support for Collaborative Learning, 349–55. L. Erlbaum Associates Inc. Taleb, Nassim Nicholas. 2012. Antifragile: How to Live in a World We Don’t Understand. Vol. 3. Allen Lane London. techUK, Information Technology Telecommunications and Electronics Association. 2018. “National Centre for Computing Education Announced by DfE.” February 9, 2018. https://www.techuk.org/insights/news/item/14297-national-centre-for-computing-education- announced-by-dfe. 134 The Economist. 2013. “How Did Estonia Become a Leader in Technology?,” July 2013. https://www.economist.com/the-economist-explains/2013/07/30/how-did-estonia-become-a- leader-in-technology. ———. 2014. “A Is for Algorithm,” April 2014. https://www.economist.com/international/2014/04/26/a-is-for-algorithm. The Royal Society. 2012. Shut Down or Restart? The Way Forward for Computing in UK Schools. ———. 2017. After the Reboot: Computing Education in UK Schools. The Royal Society. https://royalsociety.org/~/media/policy/projects/computing-education/computing-education- report.pdf. Toikkanen, Tarmo, and Teemu Leinonen. 2017. “The Code ABC MOOC: Experiences from a Coding and Computational Thinking MOOC for Finnish Primary School Teachers.” In Emerging Research, Practice, and Policy on Computational Thinking, edited by Peter J. Rich and Charles B. Hodges, 239–48. Cham: Springer International Publishing. https://doi.org/10.1007/978-3- 319-52691-1_15. Trow, W. C., and P. D. Kalachov. 1934. Character Education in Soviet Russia. Ann Arbor Press. https://books.google.com/books?id=N7k2AAAAMAAJ. Turchin, Valentin Fedorovich. 1977. The Phenomenon of Science. Columbia University Press New York. Turcsányi-Szabó, Márta. 1997. “Approaching Arts through Logo.” In Proceedings of the Sixth European Logo Conference, 284–294. Turkle, Sherry, and Seymour Papert. 1992. “Epistemological Pluralism and the Revaluation of the Concrete.” Journal of Mathematical Behavior 11 (1): 3–33. UNESCO. 2017. Cracking the Code: Girls’ and Women’s Education in Science, Technology, Engineering and Mathematics (STEM). UNESCO. https://books.google.com/books?id=9YE0DwAAQBAJ. Uzunboylu, Hüseyin, Elanur Kinik, and Sezer Kanbul. 2017. “An Analysis of Countries Which Have Integrated Coding into Their Curricula and the Content Analysis of Academic Studies on Coding Training in Turkey.” TEM JOURNAL-TECHNOLOGY EDUCATION MANAGEMENT INFORMATICS 6 (4): 783–791. Vee, Annette. 2017. Coding Literacy: How Computer Programming Is Changing Writing. MIT Press. Weintrop, David, Heller Killen, and Baker Franke. 2018. “Blocks or Text? How Programming Language Modality Makes a Difference in Assessing Underrepresented Populations.” In Rethinking Learning in the Digital Age: Making the Learning Sciences Count, 13th International Conference of the Learning Sciences (ICLS). Weintrop, David, and Uri Wilensky. 2015. “To Block or Not to Block, That Is the Question: Students’ Perceptions of Blocks-Based Programming.” In Proceedings of the 14th International Conference on Interaction Design and Children, 199–208. ACM. Wenger, Etienne. 1999. Communities of Practice: Learning, Meaning, and Identity. Cambridge University Press. Wierzbicka, A. 1992. Semantics, Culture, and Cognition: Universal Human Concepts in Culture- Specific Configurations. Oxford University Press. https://books.google.com/books?id=6vdbt5bUI78C. Wilkie, John, and Judith Good. 2017. “Tica: An Environment for Exploring Tangible vs. Screen-Based Programming.” In 28th Annual Workshop of the Psychology of Programming Interest Group- PPIG 2017: Proceedings, 65–75. Psychology of Programming Interest Group. Wing, Jeannette M. 2006. “Computational Thinking.” Commun. ACM 49 (3): 33–35. https://doi.org/10.1145/1118178.1118215. Worker, Steven. 2014. “Bers’s Theory of Positive Technological Development.” Journal of Youth Development 9 (1): 170–74. Wyeth, Peta, and Helen C. Purchase. 2002. “Tangible Programming Elements for Young Children.” In CHI’02 Extended Abstracts on Human Factors in Computing Systems, 774–75. ACM. 135 ———. 2003. “Using Developmental Theories to Inform the Design of Technology for Children.” In Proceedings of the 2003 Conference on Interaction Design and Children, 93–100. ACM. Yadav, Aman, Chris Mayfield, Ninger Zhou, Susanne Hambrusch, and John T. Korb. 2014. “Computational Thinking in Elementary and Secondary Teacher Education.” ACM Transactions on Computing Education (TOCE) 14 (1): 5. Yadav, Aman, Chris Stephenson, and Hai Hong. 2017. “Computational Thinking for Teacher Education.” Commun. ACM 60 (4): 55–62. https://doi.org/10.1145/2994591. Yang, Hongji, and Lu Zhang. 2016. “Promoting Creative Computing: Origin, Scope, Research and Applications.” Digital Communications and Networks 2 (2): 84–91. Yu, Junnan, and Ricarose Roque. 2018. “A Survey of Computational Kits for Young Children.” In Proceedings of the 17th ACM Conference on Interaction Design and Children, 289–99. ACM. Zeeman, Malie. 2013. “To Scratch or Not to Scratch-a Reflection.” In International Conference on E- Learning, 425. Academic Conferences International Limited. 136 137 Annexes Annex 1: Computing Attitude Survey Category Questions Computational thinking is understanding how computers work Computational thinking involves thinking logically to solve problems Definition Computational thinking involves using computers to solve problems Computational thinking involves abstracting general principles and applying them to other situations I do not think it is possible to apply computing knowledge to solve other problems I am not comfortable with learning computing concepts I can achieve good grades (C or better) in computing courses Comfort I can learn to understand computing concepts I do not use computing skills in my daily life I doubt that I have the skills to solve problems by using computer applications I think computer science is boring The challenge of solving problems using computer science appeals to me Interest I think computer science is interesting I will voluntarily take computing courses if I were given the opportunity Computational thinking can be incorporated in the classroom by using computers in the lesson plan Classroom Computational thinking can be incorporated in the classroom by allowing students to problem solve Knowledge of computing will allow me to secure a better job My career goals do not require that I learn computing skills I expect that learning computing skills will help me to achieve my career goals Career I hope that my future career will require the use of computing concepts Having background knowledge and understanding of computer science is valuable in and of itself Source: (Yadav et al. 2014) 138 139 Created by the at Tufts University Appendix 2a: Positive Technological Development (PTD) Engagement Checklist: Children/Child What is the Checklist? The PTD Engagement Checklist is based on the theoretical foundation of Positive Technological Development (PTD). The PTD framework guides the development, implementation and evaluation of educational programs that use new technologies to promote learning as an aspect of positive youth development. The PTD framework is a natural extension of the computer literacy and the technological fluency movements that have influenced the world of education but adds psychosocial and ethical components to the cognitive ones. From a theoretical perspective, PTD is an interdisciplinary approach that integrates ideas from the fields of computer-mediated communication, computer-supported collaborative learning, and the Constructionist theory of learning developed by Seymour Papert (1993), and views them in light of research in applied development science and positive youth development. As a theoretical framework, PTD proposes six positive behaviors (six C’s) that should be supported by educational programs that use new technologies and innovations, such as the Eliot-Pearson Maker Space. These behaviors are: communication, collaboration, community building, content creation, creativity, and choice of conduct. More information about PTD can be found in Marina Umaschi Bers’ book Designing Digital Experiences for Positive Youth Development: From Playpen to Playground (2012). How is the Checklist used? The PTD Engagement Checklist is intended to be used in a variety of settings where children are engaging with technology. It is divided into six sections (each one representing a behavior described in the PTD framework) and measured using a 5-point Likert scale. The checklist is meant to evaluate a group of children or an individual child they work in a space. Adults may use the checklist as often as multiple times during each lesson, or as infrequently as once per unit. The goal of the PTD checklist is to provide a lens into how children are engaging with the space and experimenting with the behaviors described by the PTD framework. This work is licensed under the Creative Commons Attribution- NonCommercial-NoDerivatives 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by- nc-nd/4.0/. 140 Created by the at Tufts University 1 2 3 4 5 N/A Communication Never Almost Some- Often Always or Never times Not Children are observing and/or engaging each other’s work − Children watch as others work on a project − Children touch or play with each other’s projects while they work Children are playing with each other or talking to each other − Children speak or sign to each other − Children ask each other what they are doing, request tools to be passed, etc. Children engage in conversation (verbally or non-verbally) with adults − Children speak, nod their head, etc. when adults pause to let them respond Comments: 1 2 3 4 5 Not Collaboration Never Almost Some- Often Always Obser Never times vable Children share tools/materials. − Children to use materials and return them when done − Children do not “collect” tools that they are not using Children are working together on the same project. − Children are actively engaged in the same play/work activity − Children are adding elements to the same project Children seek assistance from peers − Children ask each other to hold things in place, help them move objects, etc. − Children make suggestions to each other, ask each other to show them how they made something, etc. Comments: 141 Created by the at Tufts University 1 2 3 4 5 Not Community Building Never Almost Some- Often Always Obser Never times vable Children share work with others − Children show work to peers or facilitators − Children place work on display somewhere in the space (or, they request/allow facilitators display their work) Children work on projects related to their local environment − Children make robots to help their school, plows for the winter snow in their neighborhood, etc. − Children read books, ask questions, or role play about local holidays, events, or locations Children are warm and friendly with each other − Children ask each other about home, or speak about each other’s personal details (e.g. “I saw your sister in the hallway”) − Children laugh and play together Comments: 1 2 3 4 5 Not Content Creation Never Almost Some- Often Always Obser Never times vable Children gather tools and materials without much assistance − Children reach for crafts or turn on computers without needing help − Children open boxes or bring tools out on their own Children show focus and sustained attention while working − Children build a tower, color and craft a flower, program a story − Children work steadily on this project over several minutes, Children iterate on projects − Children return to projects again and again, over one or more sessions − Children change their artifacts without starting a new one Comments: 142 Created by the at Tufts University 1 2 3 4 5 Not Never Almost Some- Often Always Obser Creativity Never times vable Children are observing, touching, or manipulating objects in the space − Children run their fingers over a plush cushion or hold glass beads up to the light − Children comment about the properties of an object (e.g. “this wood is rough”) Children use a variety of materials while they work − Children use wires, glitter, and cloth in a collage − Children mix materials from different areas (e.g. blocks with crafts) Children try a variety of approaches in the same task − Children try tape, paper clips, and hot glue guns to attach paper − Children try building a tower on a table, a chair, and a cushion Comments: 1 2 3 4 5 Not Never Almost Some- Often Always Obser Choice of Conduct Never times vable Children handle tools/materials with care − Children carefully hold/use scissors, glass, etc. − Children return dangerous tools safely after using them. Children show respect to the space − Children clean up materials after they are done working − Children use furniture, technology, etc. in safe ways Children show respect to each other − Children take turns, share materials, and give each other space − Children show signs of character (e.g. hugging someone who is crying, helping someone else clean up a mess) Comments: 143 Created by the at Tufts University Appendix 2a: Positive Technological Development (PTD) Engagement Checklist: Environment and Facilitator What is the Checklist? The PTD Engagement Checklist is based on the theoretical foundation of Positive Technological Development (PTD). The PTD framework guides the development, implementation and evaluation of educational programs that use new technologies to promote learning as an aspect of positive youth development. The PTD framework is a natural extension of the computer literacy and the technological fluency movements that have influenced the world of education, but adds psychosocial and ethical components to the cognitive ones. From a theoretical perspective, PTD is an interdisciplinary approach that integrates ideas from the fields of computer-mediated communication, computer-supported collaborative learning, and the Constructionist theory of learning developed by Seymour Papert (1993), and views them in light of research in applied development science and positive youth development. As a theoretical framework, PTD proposes six positive behaviors (six C’s) that should be supported by educational programs that use new technologies and innovations, such as the Eliot-Pearson Maker Space. These behaviors are: communication, collaboration, community building, content creation, creativity, and choice of conduct. More information about PTD can be found in Marina Umaschi Bers’ book Designing Digital Experiences for Positive Youth Development: From Playpen to Playground (2012). How is the Checklist used? The PTD Engagement Checklist is designed for use in a variety of settings where children are engaging with technology. It is divided into six sections (each one representing a behavior described in the PTD framework) and measured using a 5-point Likert scale. The checklist is meant to evaluate a learning environment and teacher/facilitator while children are working within the space. Adults may use the checklist as often as multiple times during each lesson, or as infrequently as once per unit. The goal of the PTD checklist is to provide a lens into how children are engaging with the space and experimenting with the behaviors described by the PTD framework. This work is licensed under the Creative Commons Attribution- NonCommercial-NoDerivatives 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by- nc-nd/4.0/. 144 Created by the at Tufts University 1 2 3 4 5 Not Communication Never Almost Some- Often Always Obse Never times rvabl The arrangement of the space allows for children to see one another’s work. − There are low or no barriers between activity spaces The arrangement of the space allows for children to talk with one another.  Workspaces are arranged so that children can facing one another  Children in different areas communicate at normal volume The Facilitator(s) is engaging children in two-way conversations − Facilitator asks children open-ended questions − Facilitator pauses to let children respond Comments: 1 2 3 4 5 Not Collaboration Never Almost Some- Often Always Obser Never times vable The arrangement of the space promotes sharing of tools/materials. − Materials are arranged in a central area for children to use and return − Tools are not designed for one child to use alone (e.g. heavy blocks that need two people, tools with many parts or steps) The arrangement of the space allows for multiple children to work on one project. − Workspaces include large floor areas, round tables with multiple chairs, etc. Facilitator invites children to work together − Facilitator suggests that children seek help from peers Comments: 145 Created by the at Tufts University 1 2 3 4 5 Not Community Building Never Almost Some- Often Always Observ Never times able There is evidence in the space of the children who use it − There are images of children using the space − There are objects labeled with the maker’s name, or the story of how it was made There is evidence in the space of the local location or context − There are images, maps, etc. that reference the neighborhood, school, or town where the space is located − There is material representing holidays, seasons, or activities of the local The Facilitator has a warm and friendly relationship with children − Facilitator carries personal conversations with children (e.g. asking a student about their new pet) − Facilitator provides support and encouragement as children work Comments: 1 2 3 4 5 Not Content Creation Never Almost Some- Often Always Observa Never times ble Tools and materials are visible and accessible to children − Materials are in clear containers, low baskets, or presented on tables − Materials are stored at children’s height and can be easily reached There are locations in the space to present or document children’s work. − There are pictures and explanations of children’s work i Th models Facilitator f content i creation kt t − Facilitator works on projects alongside children, or assists when asked − Facilitator shares mistakes openly and models how to cope with them Comments: 146 Created by the at Tufts University 1 2 3 4 5 Not Neve Almost Some Often Alway Observa Creativity r Never - s ble There are areas and materials within the space that encourage wonder − There are beautiful, colorful, or textured objects clearly located around the room Materials/Tools are presented that can be used in more than one way − There are bins of miscellaneous crafts − There is evidence of the same material/tool being used in many ways Facilitator encourages a diversity of approaches in children’s work − Facilitator models using criteria to compare work (e.g. “I see that this method is more X, but your other idea is more Y”) − Facilitator allows children to change ideas as they work Comments: 1 2 3 4 5 Not Never Almos Some- Often Always Observab Choice of Conduct t times le Tools/materials are offered that require children to use with care − Materials and containers that are breakable or delicate − Tools that have sharp edges, or require focused attention to use There is evidence in the space of the values of those who use it − There projects or wall art related to value words (e.g. Respect, Caring) − There are rule charts or images of behavior choices Facilitator engage children in non-judgmental conversation about choices − Facilitator moderates children having a disagreement to observe and converse with each other to reach a solution − Facilitator reinforces children’s sense of character, e.g., “You’re the kind Comments: 147 Appendix 3: Database of Tools for Children to Learn Programming 148 149 150 151