Code to Learn in a Primary School: the COGITO Project

Alessandro Ricci1, Angelo Croatti1, Laura Tarsitano1, Paolo Venturi1,
Giuseppe Messina2, Arminda Iavarone2, Renata Righi2, Maria Capizzi2, Bruna Borgognoni2, Flavia Persico2, Manuela Pollini2, Andrea Vaccari3

1 DISI – CRIAD – ISI – Università di Bologna, Campus di Cesena
2 Direzione Didattica III Circolo Didattico Cesena – Scuola Primaria “Carducci”
3 FabLab Romagna

Abstract. In this article we describe and discuss the COGITO project, an initiative promoted and implemented in an Italian primary school by a multi-disciplinary team composed by University researchers and primary school teachers. The focus of the project is code to learn besides learn to code, framing the principles of Computational Thinking and Coding as a meta-competence and exploring its value in relation to the other competences and curricular activities, bringing together computational and pedagogical thinking.

1. Introduction

Today never as before Computational Thinking (CT) and coding are at the center of initiatives anywhere schools worldwide, aimed at introducing principles and practices of information technology and programming as fourth basic skills. In the scientific community, the concept of TC has passed into the limelight with an article by J. Wing of 2006 [17] and is still the subject of debate within the community, in terms of definitions and characterizations, both in relation to the school [1, 8], and more generally in the reflection on information technology as fundamental competence [3,4,9].

Besides the scientific community, initiatives such as and Computing at School (CAS) are bringing a main concrete impact on society and schools, “to promote and support excellence in computer science education“. In Italy, the main initiative aimed at increasing digital skills and disseminating computational thinking is “Programma il Futuro”( This initiative is supported  by the MIUR in collaboration with the National Inter-university Consortium for Computer Science (CINI), to encourage the dissemination of coding in primary and secondary schools, having the material as a reference.

A main motivation driving the initiative – as directly reported on the web site –  is about the importance of computer science and technologies as strategic competence for jobs and for tackling the complexity of future society. This vision is pushed also by CAS initiative. Indeed, this is not the main motivation according to the broader vision about computational thinking and coding introduced by pioneers such as Seymour Papert [11], Cynthia Solomon [16], Alan Kay [7] and the Constructionist School [6], starting from end of the 1960s. This vision, which has been carried on then by Mitchel Resnick and colleagues at MIT Lifelong Kindergarten, is well summarised by the motto learn to code, code to Learn, which focuses on the role of coding and CT as conceptual and operational tools to build learning environments and processes, to empower creativity and problems solving capabilities of kids and people to construct their knowledge and understanding of the world, through projects, peers, passion and play. This is much more related to what other Italian schools pioneers were pushing on, such as Montessori, Malaguzzi, Zavalloni and Milani. The COGITO project, described in this paper, is rooted on this perspective.

The project started in 2015, as a three-year initiative in a Primary School involving the cooperation of a multi-disciplinary team composed of teachers, professors and researchers of the University (Department of Computer Science) DISI, UniBO and part of CRIAD, Center for Research and Studies on Information Technology applied to Teaching) and FabLab. The innovative key of the project – compared to the national and international panorama – has been to put in place and experiment from the beginning a synergistic vision between computational thinking and psycho-pedagogical thought, in which to explore the role of coding as a meta-competence, as well as fourth basic skills, to be applied to other competences.

In this paper, after a brief account about COGITO background (Section 2), we describe the essential features of the project (Section 3), discussing the aspects that we consider more innovative and therefore its evaluation and critical discussion (Section 4). We conclude the work with a reflection about the vision of schools that we look forward, which is the main direction of our future initiatives (Section 5).

2. Background: Papert and Constructionism

The approach to computational thinking is invaluable for every student and not just for professional enthusiasts and programmers. Its principles can in fact be applied not only to school subjects, but also to everyday behavior. The main promoter of this vision was Seymour Papert, the father of constructionism, a multidisciplinary learning theory that sees the school as a place of construction and not just the transmission of knowledge [2]. School in which children must discover the knowledge they need on their own. The pivotal point of constructionism is the rethinking of the role of the computer in the school: ‘the role of the computer is like that of clay with which to build a sculpture’ [10]. The computer must not be in the computer lab but on the counter, thus becoming a tool to manipulate, learn, discover and build, and not just information management; through the computer, students become creators of their own process of growth and learning. With Papert, the computer becomes an active means of schooling by shifting learning control over the student, allowing them to explore new models and build their knowledge [2]. Papert refers to forms of active learning: “the child should be programming the computer and not the computer programming the child” [2].

The LOGO language, created and conceived by Papert himself, allows us to apply these concepts by constructing, manipulating, making mistakes, reconstructing and testing. In LOGO, Papert lays the groundwork for understanding the concept of error (bugs and debugging). According to Papert, the right / wrong distinction is counterproductive and can even block the process of learning in the child, who, before an error, tends to remove it and to forget it [12]. Error correction is part of the process of understanding: the child who programs must be encouraged to study the bug and not to erase it quickly from his memory. The debugging phase guides the discovery of what did not go as planned, and, through understanding, how such behavior can be corrected. To be wrong means to explore, study the malfunctioning of a program and identify alternative solutions to the problem.The goal of LOGO is not to train generations of computer programmers, but to create an environment for “learning to learn”; programming is the expression of oneself through cognitive artifacts [2].

Starting from the work of Papert, the Building School has developed with numerous contributions [6]. Among others, today a key role is given by the MIT Lifelong Kindergarten, led by Mitchel Resnick. It is the creator group of the Scratch platform / universe, an environment based on visual block programming, used to introduce the concepts of computational thinking and coding by millions of young people all over the world and a reference for schools of all levels. The motto learn to code, code to learn [13] summarizes in a nutshell the importance of programming as a useful tool to implement learning strategies and problem solving, to design projects and communicate ideas, skills useful not only for programmers .

In the Media Lab new technologies and strategies are developed to support creative learning (creative learning). The approach is based on four principles (the 4 P) [14]: Project (Projects), one works and learns better when working on projects rather than on single exercises; Peers (Collaborate between peers), When you collaborate and exchange ideas, you work better; Passion (Passion), If you work on something that you like and that excites you work better, you concentrate more and you are determined to complete the work; Play (Play), Learning can be playful: experimenting with new things, testing the limits by trying and trying again.

3. The COGITO Project

Starting from the methodological reference of the construction school, from the work of Papert and MIT Lifelong, the COGITO project was born with four main objectives.

The first is to build a learning path to make the children fluent about coding, where being fluent in this case means the ability to know how to use it effectively as an operative tool to solve problems, build artifacts, communicate and express themselves. From a constructionist point of view, for this learning to code incremental learning was privileged through the realization of projects, without exposing the children to the exposition of theoretical and formal principles and bases. To this end, the Snap! Visual platform and block language has been chosen . . Born as an extension of the best known and widespread Scratch, the Snap! it was originally chosen for the flexibility that allowed it to be used on the Tablet as a web-app, therefore usable through a browser.

The second objective is to develop the idea of ​​computational thinking and coding as meta-competence, whereby the projects referred to above – called micro-worlds, taking up the term introduced in [11] – have been conceived and developed in close collaboration between teachers and researchers at the same time as the activities and contents that the pupils saw in parallel in the other curriculum subjects. Conceptually, a microworld represents a computational environment designed to facilitate the exploration and learning (co-built) of interdisciplinary concepts and skills, where to represent and solve problems, design, build, execute, test, simulate, which can evolve to be extended. hand-an operational incubator of knowledge. Technically, in the case of COGITO, a micro-world is a program in Snap !, often only partially implemented, with a set of basic blocks chosen in relation to the skills and contents to be explored. An example is given in Fig.1a: a mathematical micromondo introduced during the project, conceived as an environment to represent and implement the solution of arithmetic problems.

Fig. 1 (a) – Examples Didactic Micromondi – Mathematical Example

Another example is given in Fig. 1b: in this case the context is Italian, a microworld that allows you to explore, combine elaborate letters, words, grammatical elements. The code to learn was then implemented by implementing and exploring micro-worlds by children, working co-operatively in groups and with teachers, using coding and micromondiking to the computer as a means to reason, understand, explore problems and curricular contents, as well as imagine and create.

Fig. 1 (b) – Teaching Micromondi Examples – Italian Example

The third objective is to exploit these projects and technologies – and in particular the effect they have on children – to arouse interest in the subjects themselves and to promote group work, exchange of ideas, discussion, and to create learning environments and situations. that favor the possibility for boys with more difficulty to express themselves and ‘free’ their creative energies.

Finally, the fourth objective – related to the second – is the design of projects / micromondi that promote the implementation of projects that allow to relate the virtual world and the physical world, thus promoting a vision in which computational thinking, coding and ‘computer’ they are not only confined to the creation of ‘virtual worlds’ but are useful to support creations and activities in the physical world.

3.1 Organization and development

The project involved four classes in three years – respectively two second and two third in the first year of the project – a total of about eighty students. Theater of the Project was the 3.0 classroom named Li2Lab, a TEAL classroom specially opened to host the project activities (Fig. 2). Equipped with an interactive whiteboard, modular tables that can be organized into islands and an Internet connection that is always present, the Li2Lab has enabled the creation of two macro categories of activities: (1) through the use of Tablet and the language / platform Snap! coding for the construction of interactive and dynamic micromonds and oriented to educational themes of interest side by side (2) to unplugged activities for the consolidation of contents and the enhancement of additional skills such as, for example, the capacity for cooperation / interaction and the value of error. In Li2Lab, from the first year, each class has always seen the double supervision of the “code wizards”, the coding experts, and of the respective teachers, whose presence and role was fundamental. Starting from the second year, activities in Li2Lab were also supported by activities directly in the classroom, during (some) curricular subjects – mathematics and Italian in particular.

Fig. 2 – TEAL 3.0 “Li2Lab” classroom, at the “Carducci” Primary School – Cesena

In the following we report the features characterizing the approach used. The detailed description of the activities carried out and the micro-worlds developed during the three years is available on the project portal .

3.2 Characteristic aspects

Learn to Code, Code To Learn – Methodological contribution

The implementation of the virtuous cycle learn-to-code-code-to-learn leads to applying methods and practices promoted by computational thinking and constructivist approach transversally to support and benefit the learning of the curricular subjects themselves. In this, the computer as an execution technology plays a strategic, fundamental role – as already highlighted in [11].

On the one hand, the design, development and analysis of microwaves involves the application of methods such as decomposition / abstraction / generalization in a key that is not confined to the code and IT elements, but is immediately projected onto the domain of which the microworld is subject , therefore the problem / curricular competence. On the other hand, the construction of micro-worlds promotes an incremental and iterative approach in solving problems or in creating more generally artifacts, and therefore in addressing the problems and challenges that are the subject of the micro-worlds themselves.

This becomes a concrete tool to manage the indeterminacy [2] and avoid disorientation in the face of problems whose complexity is such that it can not immediately frame the resolution. The ability to try, perform incomplete portions, to study the behavior obtained becomes a concrete tool to support both problem solving and design. In this process, the error becomes a positive fundamental element, since it allows the pupils to reflect on the reason why the behavior obtained is different from the expected one. The possibility of re-executing a program several times and debugging become tools not only on the coding side, but on the domain object of the program, on the related knowledge and skills.

Narrative Keys and Principles of Computational Thinking

The metaphors and narrative keys are fundamental to allow students fasting any programming concept to have a general reference framework to gradually interpret the various concepts that are introduced and concretely used in the construction of the microworlds. The most general metaphor and narrative key used was the theatricalization, or the vision of a program (on Snap!) As a theatrical show to be staged. Similarly to a theatrical show, a program in Snap! (and in Scratch) is built by a set of Sprite (actors), of which the programmer (director) must establish and specify the script (Script), using a language to describe the script comprehensible to the actor himself (the whole of the blocks). The description of a script includes sequences of instructions, which typically the actor must perform in the face of certain events that occur during the performance of the show.The instructions can also include actions with which the actors interact with the show’s environment, other actors (through the exchange of asynchronous messages) and with the public itself (as I / O forms). In addition to the actors, a show is characterized by a stage (Stage) that acts as a background to the action of the actors, of which the director can define behavior and image – modifiable during the show by the actors themselves.

This metaphor allows the students to become immediately operative – by analogy – in the formulation of programs of a certain complexity, which see more competing actors that compute and communicate, from reactive behavior. In this we find the main elements of high-level programming paradigms, such as the object-oriented paradigm, to actors, and to agents – beyond then procedural programming.

Microworlds as Abstraction Level and Language

An important aspect of the micro-worlds is the choice of the initial blocks, with which to compose the scripts and define new blocks. This – in the hands of a teacher – allows you to define the level of abstraction with which you want to develop the learning activity, ie the set of first-class concepts that must be used and composed in the reasoning and design and then, dually , the aspects from which to abstract, as not significant for the objectives of the activity. Consequently, defining a level of abstraction and the set of blocks means also defining language that the pupils will use to represent the problem and to think about the solution or the project to be developed. This language – therefore the set of blocks – can therefore be flexibly designed in relation to age, skills, and more generally to the specificities of the pupils.

Snap! In this case it provides an essential functionality – not provided by Scratch: the ability to hide blocks, as well as – like Scratch – to create new ones.

Hybrid micromonds – the snap2ino tool

The idea of ​​microworld so characterized allows you to have a flexible tool to design experiences that range from totally virtual environments to hybrid environments, which also include elements and things of the world
physical, using embedded / wearable technologies and the Internet of Things. In support of this vision, a tool called snap2ino has been developed, a transpiler that allows you to translate a microworld executable on Snap! In a Wiring program directly executable on embedded platforms such as Arduino or ESP8266. Unlike already available tools – es: Snap4Arduino – snap2ino allows to consider open and possibly complex micromondi, to more sprites. snap2ino not only introduces specific blocks for the control of sensors / actuators, but allows you to flexibly define new blocks, eventually mapping them – once translated – on procedures / objects in C / C ++ to use libraries present on Wiring. An example of a hybrid micro-world introduced in the third year of the COGITO Project is given by the microworld Smart T-Shirt (Fig. 3a).

Fig. 3 (a) – Matrice di Led – Smart T-Shirt – Micromondo MatriceLed

The microworld consists of a t-shirt with a matrix of 8 × 8 RGB LEDs, virtual. The characterizing blocks (in addition to the basic algorithmic basic ones) allow to turn on / off the LEDs, or – in the virtual version – to color the dots of the specified color. Through this microworld it is possible to create animations, implementing appropriate algorithms (in the figure the one to make a red square pulsate). In Fig. 3b, on the other hand, the physical version is shown, a kit created in collaboration with FabLab – which supports the COGITO project – consisting of a laser cutter-cut box containing an Arduino and a WS2812B led matrix. By using snap2ino the microworld that runs on Snap! It is translated and sent in a standalone manner on the kit.

Fig. 3 (b) – Matrice di Led – Smart T-Shirt – BoxMatrice

This kit has allowed to carry out activities in which the guys in 2/3 groups have invented, designed and implemented a show involving more T-shirts, with animations first designed and developed in the virtual then performed on physical kits.

4. Discussion

The COGITO project has intrigued and fascinated teachers from the beginning, although there was not the full awareness of the path that was gradually being invented. Surely he asked the group of adult professionals involved to find harmony, which meant agreeing on our differences to bring out every individuality. The constant comparison between the adults themselves was essential, to guarantee the search for effective and transversal actions. Being able to coexist and contaminate activities and highly innovative paths that use technological instruments with traditional study proposals has been the challenge for a school where curiosity, creativity, commitment and innovation can find balance.

The ideation and the human programming that accords to digital machines has transmitted to the teachers and the children its charm. He has thrilled the possibility of reconciling the disciplines to tell and tell paths that do not open doors while others close, but that keep the possibilities of crossing thresholds, advancing, returning, repeating, in a learning game that gives the sense of being there and to be worth. COGITO was also characterized by the serenity of facing every path, sometimes tiring, but stimulating and in which we find ourselves each time. The project highlighted the integration at various levels of the digital / computational world with practical and material activities of the physical world, in order to promote a framework where a virtuous and harmonious balance between these two worlds is pursued. This is through the creation of activities and projects that make it possible to use computational thinking and coding as conceptual and operational tools to create physical objects, crafted with a digital soul, or digital elements that enrich their functionality or aesthetics in a creative way ( example: t-shirts with programmable led matrixes) Harmony therefore and balance of times and spaces: where, whether child or adult, teacher or learner, I do not
I feel tight and where I do not get bored, where I can think, ask, try. Where even the error finds its balance because it is not judgment but awareness and possibility of rearrange; balance not as absence of forces and contrasts but as an agreement between them.

The activity conducted in the classroom was certainly useful for observing the students while they were trying to experiment and learn about new environments of thought development. The teachers were able to confirm or modify the knowledge we had of each of them and their abilities.The observation has provided them with important new elements of reflection, some students in difficult difficulty compared to normal school performances, placed in different contexts, have been able to bring out different skills and abilities, managing to achieve the required goal with a significant positive impact on self esteem. The responsibility and pride of being in a school novelty has made them really protagonists and co-builders of a space of thought other, in which to recognize and get involved. The skills in COGITO are built through activities based on and starting from problems, contexts and projects whose value is clearly recognizable by teachers and pupils in other disciplines and curricular activities. In this case the notion of microworld is used to define programs (and related languages, environments) built incrementally by pupils, in cooperation at various levels with teachers and experts, to study, explore, exercise skills and objectives in the various curricular disciplines (both scientific , both humanistic). The micromondi were also the object of design (analysis / evaluation) for teachers. In fact, the teacher can build microworlds as environments useful for the exploration and constructive / computational learning of skills and content related to the subjects. The set of micro-worlds developed during the activities is part of the “micromondoteca”, as a place in the net where the students can keep track and show what they have done, share, copy, reuse.

Proposing learning paths in which students are put in a position to create, mobilizing the skills acquired and overcoming any difficulties, activates a virtuous circle: knowingly aware of competent generates a strong motivation and supports the creative and divergent thinking, which is the basis of computational thinking to which the coding naturally tends. Even the error becomes a powerful opportunity for growth, providing new possibilities for analysis and consequent revision of the strategy used, like the computer scientists involved in debugging: tolerating frustration and transforming it into self-control and reflection. Furthermore, collaboration between peers aimed at creating a common product naturally contributes to renewing the spirit of belonging and cohesion.In the proposed activities there has always been the attention to work in group and small group and the word, for us precious, has found the right place to translate ideas, share hypotheses, reformulations, make decisions.

Compared to the learning related to the curriculum subjects, teachers have been able to observe that the cross activity carried out through coding, strengthens and broadens skills that make a more aware acquisition of specific disciplinary contents possible: reading, understanding, writing, measuring, calculating. Moreover, during the working sessions, the mobilization of logical skills has always been an indispensable condition: in formulating and applying logical constructs, in consolidating planning and procedural thinking, in developing solutions to paths. We have noticed that the procedures experimented in COGITO have positively contaminated the learning styles of the children, the strategies implemented in the organization and in the individual study and also in informal areas such as free play.

Given the positive aspects, it is important to underline how the project can not be considered exhaustive in its didactic experimentation. In fact it does not even have the requisites for a scientific verification with the criteria that are proper to it. However, the efficiency of artefacts in their usability and functional correctness has been validated. The programming skills have become verified replicable skills and the right reconstruction / reordering of processes, algorithms. COGITO did not use a control group for which teachers sometimes questioned about an important problem, that is to say if the competences achieved would in any case become the personal heritage of the children. Surely the path can be ‘narrated’, a way that is most appropriate to us and the story’s plot is interwoven with key words like interest, passion, protagonist, collaboration, innovation.

5. Conclusions 

The COGITO project allowed to gain a clear conviction on the importance in the IT field for students to acquire skills that go beyond the simple management of the technical means. In the future they will have to use the technologies massively, both at work and personal level, so it is essential that the School provides them with the skills to manage and control them in a critical way. However, the technological devices with which they approached remain instruments, but they are the paths implemented with them that have allowed them to build knowledge.

The experience was added value in the scholastic path; pleasant, stimulating, engaging and last but very important in a school where wellness is a priority, fun for all the actors involved, adults and children. It was a great educational and didactic opportunity for adults and for that group of children who put into play, with many variables, in an intricate and intriguing intertwining able to broaden learning, creativity and creative construction skills, ensuring the achievement specific skills and knowledge of other disciplines included in the curriculum / curriculum.

In the future, there are three main lines that characterize the continuation of the project. The first concerns the experimentation of the project also with a Secondary Secondary School, trying to build and define a bridge regarding these activities in relation to schools of different degrees. Secondly, set up training activities for teachers, in order to share, refine what has been done in the project, as well as having a starting point so that it can be re-proposed – in different forms – independently by the teachers themselves. Thirdly, studying and experimenting forms of evaluation in harmony with the type of activities carried out, based – for example – on the incremental construction of a portfolio of projects / micromondi, which become baggage that accompanies the pupils from year to year, of degree able .

To conclude, we believe that at this moment in history the school must question and question society. A school really educational agency can not remain firm and immobile only on traditional parameters. Aristotle said that life is in the movement and certainly this project has advanced us, in research and action. The vision of the school on which the COGITO project was developed is a Creative School as evoked and defined by many parties [15], a School 4.0 that combines innovation with inclusion. In our country, the Creative School has a long pedagogical and mathematic tradition with many voices, ranging from Montessori to the Hundred Languages ​​of Malaguzzi and Reggio Children [5], to the Pedagogy of the Snail by Zavalloni [18]. It is a School that focuses on the “natural rights of children” [15,18,5] and builds a path in which innovation and inclusion go hand in hand, well beyond a pure work-oriented training discourse. A tradition that has been and still is in fact the same reference both for the Thought of Papert and for the 4P of Resnick [14].

Today we live an extraordinary moment, in which there is the opportunity to experiment projects – such as COGITO – in which to combine computational thinking and the most innovative actors / ideas / technologies in this regard, with a psycho-pedagogical and mathematical thought that has an important tradition, and this building it on the field, through the collaboration between people with different skills – teachers, IT, psycho-pedagogists, engineers, researchers.


1. Armoni, M.: Computing in schools computer science, computational thinking, programming, coding: the anomalies of transitivity in k-12 computer science education. ACM Inroads 7(4), 24–27 (2016)

2. Capponi, M.: Un giocattolo per la mente. L’informazione cognitiva di Seymour Papert. Morlacchi Editore (2009)

3. Denning, P.J.: Computational thinking in science. American Scientist 105(1), 13–17 (2017)

4. Denning, P.J.: Remaining trouble spots with computational thinking. Communications of the ACM 60(6), 33–39 (2017)

5. Edwards, C., Gandini, L., Forman, G.: I Cento Linguaggi dei Bambini: l’approccio di Reggio Emilia all’educazione dell’infanzia. Junior (1995)

6. Kafai, Y.B., Resnick, M.: Constructionism in practice: Designing, thinking, and learning in a digital world. Routledge (1996)

7. Kay, A.C.: A dynamic medium for creative thought. Xerox Palo Alto Research Center (1970)

8. Lodi, M., Martini, S., Nardelli, E.: Abbiamo davvero bisogno del pensiero computazionale? Mondo Digitale (72), 1–15 (2017)

9. Nardelli, E.: Informatica nella scuola: disciplina fondamentale e trasversale, ovvero “di cosa parliamo quando parliamo di pensiero computazionale”. Scienze e Ricerche (Aprile 2017)

10. Papert, S.: Bambini e adulti a scuola con il computer (1997)

11. Papert, S.: Mindstorms: Children, computers, and powerful ideas. Basic Books, Inc. (1980)

12. Papert, S.: The Children’s Machine. Rethinking School in the Age of the Computer. Basic Books, Inc. (1993)

13. Resnick, M.: Learn to code, code to learn. EdSurge, May (2013)

14. Resnick, M.: Lifelong Kindergarten. Cultivating Creativity through Projects, Passion, Peers, and Play. The MIT Press (2017)

15. Robinson, K., Aronica, L.: Creative Schools: The grassroots revolution that’s transforming education. Penguin Books (2016)

16. Solomon, C.: Computer environments for children: A reflection on theories of learning and education. MIT press (1988)

17. Wing, J.M.: Computational thinking. Communications of the ACM 49(3), 33–35

18. Zavalloni, G., Farinelli, F.: La pedagogia della lumaca: per una scuola lenta e nonviolenta. Emi (2012)