**1. Introduction**

According to the twenty-first century skills framework, digital literacy is an important skill for students to develop so as the ability to encode and understand code is becoming more and more a fundamental skill to master to participate actively to our digital society and economy [14]. National and European policies acknowledge the need to equip all citizens with the necessary competences to use digital technologies critically and creatively [28, 38]. As Wing [47] states "to reading, writing, and arithmetic, we should add computational thinking to every child's analytical ability" (p. 33). Hence, its integration throughout all educational levels, as well as the early ages, is considered valuable. Evidence shows that even children as young

as 4 years old can engage in core computational thinking skills, provided they work with a developmentally appropriate tool that supports such learning [21, 34, 42].

Yet, the introduction of computational thinking (CT) in compulsory education requires support measures to prepare teachers [9]. Teachers themselves often have no formal education in computing and cannot communicate to their students' enthusiasm or understanding about what happens inside a computer to make it work [46]. Many primary teachers are unlikely to have the appropriate skill set to teach this new technical subject [6, 22]. Ref. [5] highlights that one of the obstacles to incorporating CT activities into the early childhood classroom is that early childhood educators have had little or no experience with technology concepts and processes. If teachers are to help young children learn CT concepts as well as STEM subjects (science, technology, engineering, and mathematics), their professional development ought to help them to explore content and teaching methods [11, 29]. This is considered important as children's experiences of science even at primary school inform their decisions about studying science, which impacts on the supply of STEM professionals [24].

Therefore, there is a need for widespread professional development to support in-service and preservice teachers in gaining the necessary experience, technical skills, confidence, and understanding of suitable pedagogies to implement this new curriculum successfully [6]. For these reasons, CT and programming is taught in many parts of tertiary education that are not necessarily directly relevant to or focused on information technology or STEM. These faculties include pedagogical departments in which students have a first familiarity with CT and programming either for their direct educational use or to be able to produce interactive and multimedia learning materials [16]. Many researchers have already used Scratch at the university in introductory programming courses, and their experiences report on students' high motivation and sometimes also on higher performance [25].

The rest of the paper is structured as follows: in the next section, the advantages of choosing Scratch as an introductory programming environment are outlined; the second section presents the methodology of the Scratch course employed in this article; and the third section documents the results. The final section discusses the results obtained, outlining the limitations and recommendations for future research.

#### **2. The advantages of visual programming: Scratch**

The inclusion of programming topics in the initial grades of school gives rise to debates about the best ways to teach these contents [17, 30, 32]. In recent years, new programming languages have been designed to be visually programmed without the need to learn the syntax, as it is the case with traditional languages [26].

Visual block-based programming environments are increasingly being used in introductory computer science lessons across elementary school grades. These environments, and the curricula that accompany them, are designed to be developmentally appropriate and engaging for younger learners [45]. Within these rich environments, the experience of coding can become playful and creative. They offer many opportunities for learning and personal growth, exploration, and mastery of new skills and ways of thinking [8]. Block programming eliminates the frustrations of syntax errors which afflict novice learning traditional computer programming languages [35]. Visual programming involves dragging and dropping instruction blocks together to form a program in a graphical development environment. The advantages of visual programming are [12]:

• Students do not need to learn syntax and cannot create syntax errors.

**187**

**Image 1.**

*Key features of visual block-based programming environment (Adapted from [45]).*

*Evaluating a Course for Teaching Advanced Programming Concepts with Scratch to Preservice…*

The puzzle-like interface of these environments [10, 15, 33] allows novices to avoid syntax issues (e.g., semicolon use) and thus, allows them to focus on fundamental programmatic constructs (e.g., conditions, loops, variables). There is no typing error or misremembering of the syntax involved in the "bugs." The only possibility for an undesired outcome is the semantic error [43]. Since novices are not bullied by the compiler as they do not have to write codes following rigid syntactical rules, the programming is more meaningful and playful within Scratch [46]. This is a great relief for introductory programming and saves the learner much of the heartache traditionally forced on them by textual languages [46]. Given the large amount of software available and children-friendly programming environments such as Alice, Scratch, Greenfoot, and Kodu, teaching coding has become a more intuitive and engaging experience for young students [37] (see **Image 1**). In these graphical block-based programming environments, a novice programmer creates interactive applications by snapping together graphical pieces on the screen, like putting together a jigsaw puzzle. In addition, these environments are usually "low floor" and "high ceiling" and allow children to create their own complex computer programs, rich in sound and graphics [19]. On 15 May 2007, a revolutionary programming tool inspired by Logo (constructivist learning) was made available to the public. Scratch (https://scratch. mit.edu) is a free visual-based programming language environment especially developed for children and novices by the Lifelong Kindergarten Group of the MIT Media Lab. Like other visual block-based programming environments, Scratch presents a user-friendly visual language that encourages active methods, with a project-based learning and a role focused on student activity (see **Image 2**). Those

• Students can see what blocks (instructions) are available.

• Blocks often hide complex logic or operations in a single block.

*DOI: http://dx.doi.org/10.5772/intechopen.81714*

*Evaluating a Course for Teaching Advanced Programming Concepts with Scratch to Preservice… DOI: http://dx.doi.org/10.5772/intechopen.81714*


The puzzle-like interface of these environments [10, 15, 33] allows novices to avoid syntax issues (e.g., semicolon use) and thus, allows them to focus on fundamental programmatic constructs (e.g., conditions, loops, variables). There is no typing error or misremembering of the syntax involved in the "bugs." The only possibility for an undesired outcome is the semantic error [43]. Since novices are not bullied by the compiler as they do not have to write codes following rigid syntactical rules, the programming is more meaningful and playful within Scratch [46]. This is a great relief for introductory programming and saves the learner much of the heartache traditionally forced on them by textual languages [46]. Given the large amount of software available and children-friendly programming environments such as Alice, Scratch, Greenfoot, and Kodu, teaching coding has become a more intuitive and engaging experience for young students [37] (see **Image 1**). In these graphical block-based programming environments, a novice programmer creates interactive applications by snapping together graphical pieces on the screen, like putting together a jigsaw puzzle. In addition, these environments are usually "low floor" and "high ceiling" and allow children to create their own complex computer programs, rich in sound and graphics [19].

On 15 May 2007, a revolutionary programming tool inspired by Logo (constructivist learning) was made available to the public. Scratch (https://scratch. mit.edu) is a free visual-based programming language environment especially developed for children and novices by the Lifelong Kindergarten Group of the MIT Media Lab. Like other visual block-based programming environments, Scratch presents a user-friendly visual language that encourages active methods, with a project-based learning and a role focused on student activity (see **Image 2**). Those

**Image 1.** *Key features of visual block-based programming environment (Adapted from [45]).*

*Early Childhood Education*

as 4 years old can engage in core computational thinking skills, provided they work with a developmentally appropriate tool that supports such learning [21, 34, 42]. Yet, the introduction of computational thinking (CT) in compulsory education requires support measures to prepare teachers [9]. Teachers themselves often have no formal education in computing and cannot communicate to their students' enthusiasm or understanding about what happens inside a computer to make it work [46]. Many primary teachers are unlikely to have the appropriate skill set to teach this new technical subject [6, 22]. Ref. [5] highlights that one of the obstacles to incorporating CT activities into the early childhood classroom is that early childhood educators have had little or no experience with technology concepts and processes. If teachers are to help young children learn CT concepts as well as STEM subjects (science, technology, engineering, and mathematics), their professional development ought to help them to explore content and teaching methods [11, 29]. This is considered important as children's experiences of science even at primary school inform their decisions about

studying science, which impacts on the supply of STEM professionals [24].

**2. The advantages of visual programming: Scratch**

advantages of visual programming are [12]:

Therefore, there is a need for widespread professional development to support in-service and preservice teachers in gaining the necessary experience, technical skills, confidence, and understanding of suitable pedagogies to implement this new curriculum successfully [6]. For these reasons, CT and programming is taught in many parts of tertiary education that are not necessarily directly relevant to or focused on information technology or STEM. These faculties include pedagogical departments in which students have a first familiarity with CT and programming either for their direct educational use or to be able to produce interactive and multimedia learning materials [16]. Many researchers have already used Scratch at the university in introductory programming courses, and their experiences report on students' high motivation and sometimes also on higher performance [25]. The rest of the paper is structured as follows: in the next section, the advantages of choosing Scratch as an introductory programming environment are outlined; the second section presents the methodology of the Scratch course employed in this article; and the third section documents the results. The final section discusses the results obtained, outlining the limitations and recommendations for future research.

The inclusion of programming topics in the initial grades of school gives rise to debates about the best ways to teach these contents [17, 30, 32]. In recent years, new programming languages have been designed to be visually programmed without the

Visual block-based programming environments are increasingly being used in introductory computer science lessons across elementary school grades. These environments, and the curricula that accompany them, are designed to be developmentally appropriate and engaging for younger learners [45]. Within these rich environments, the experience of coding can become playful and creative. They offer many opportunities for learning and personal growth, exploration, and mastery of new skills and ways of thinking [8]. Block programming eliminates the frustrations of syntax errors which afflict novice learning traditional computer programming languages [35]. Visual programming involves dragging and dropping instruction blocks together to form a program in a graphical development environment. The

need to learn the syntax, as it is the case with traditional languages [26].

• Students do not need to learn syntax and cannot create syntax errors.

**186**

characteristics consist Scratch as one of the most popular tools used for introducing students to programming or better to CT (Evangelopoulou & Xinogalos, 2018). Scratch is designed to support children and novice learning through the process of experimenting and tinkering as it encourages learners to engage in creative learning experiences and express their ideas using code [44] enabling them to think creatively, reason systematically, and work collaboratively; all of which are essential skills required for the twenty-first century [20, 36].

Scratch can be used to program interactive stories, games, animations, music, and art [27, 31]. Those creations are called projects. A project is made up of sprites, which contain scripts, and they act on a stage [39]. The environment offers an online and an offline editor and an online community with millions of users sharing and remixing projects (Evangelopoulou & Xinogalos, 2018; [10]).

As Scratch has been developed with the aim of being very easy to use by anyone, regardless of age, background, or interests, it is being used by young people in schools, homes, and other learning environments around the world [44]. Only in August 2018, the Scratch website had almost 19 million visits with 115 million pageviews and 9 million unique followers! Also, Scratch is used at all levels of education across diverse fields, such as computer science, math, language, arts, social studies, and interdisciplinary projects (Evangelopoulou & Xinogalos, 2018; [10]). Even though it is claimed that Scratch appeals more to younger audiences [41], some universities (like Harvard, Berkley, and the University of California) have used Scratch as an introduction to programming [25, 43].

The next stage in the Scratch story is version 3.0. The beta version was released at https://beta.scratch.mit.edu/ on the first of August, and the official version will be available on January 2, 2019 [40] (see **Image 3**). Scratch 3.0 is written in HTML5. This means that with Scratch 3.0, the programmers will be able to play Scratch projects on their phone, create Scratch projects on their tablet, and control Scratch projects with their voice. There is also a version for kids for smart mobile devices, called ScratchJr (Scratch Junior) [10, 21, 22, 34, 42].

**189**

engineering [7].

*Evaluating a Course for Teaching Advanced Programming Concepts with Scratch to Preservice…*

Novice programmers who are not interested in traditional approaches to coding become motivated when coding activities are introduced as a way to tell a story, or in connection with other disciplines and interest areas, such as music and art [44]. One of the main issues in the realization of the workshop was the choice of the programming language and how much time to allocate to the programming part [1]. As it is desirable that the preservice teachers be exposed to CT, and to its related concepts so as to be able to apply them effectively in the classroom and in learning activities, we decided to adopt Scratch as the introductory programming language environment at the Department of Preschool Education in the University of Crete. The reasons behind conception and design of this project are: we supposed that preservice teachers had different programming backgrounds and/or experience, and we felt that using Scratch as an introduction could be motivating, as it provides novices in programming with a meaningful and playful learning environment to

Technology and digital tools have become ubiquitous, but they can be ineffective or distracting if they are not integrated into the learning process in meaningful ways [5]. This paper presents an innovative approach that is guided by the constructionist philosophy developed by Seymour Papert. In constructionist learning environments, new knowledge is built through the programs created by learners [45]. In those environments not only can novice programmers design, build, and program their own interactive artifacts while having fun, but they can also learn how to work in groups and develop socioemotional skills [7]. In the process, they encounter powerful ideas from the realms of math, science, technology, and

*DOI: http://dx.doi.org/10.5772/intechopen.81714*

**3. Description of the course**

**Image 3.** *Scratch 3.0 layout.*

**3.2 Objectives of the course**

**3.1 The choice of the programming language**

create interactive games, animated stories, and simulations.

**Image 2.** *Scratch 2 layout.*

*Evaluating a Course for Teaching Advanced Programming Concepts with Scratch to Preservice… DOI: http://dx.doi.org/10.5772/intechopen.81714*

**Image 3.** *Scratch 3.0 layout.*

*Early Childhood Education*

skills required for the twenty-first century [20, 36].

Scratch as an introduction to programming [25, 43].

called ScratchJr (Scratch Junior) [10, 21, 22, 34, 42].

and remixing projects (Evangelopoulou & Xinogalos, 2018; [10]).

characteristics consist Scratch as one of the most popular tools used for introducing students to programming or better to CT (Evangelopoulou & Xinogalos, 2018). Scratch is designed to support children and novice learning through the process of experimenting and tinkering as it encourages learners to engage in creative learning experiences and express their ideas using code [44] enabling them to think creatively, reason systematically, and work collaboratively; all of which are essential

Scratch can be used to program interactive stories, games, animations, music, and art [27, 31]. Those creations are called projects. A project is made up of sprites, which contain scripts, and they act on a stage [39]. The environment offers an online and an offline editor and an online community with millions of users sharing

As Scratch has been developed with the aim of being very easy to use by anyone,

The next stage in the Scratch story is version 3.0. The beta version was released at https://beta.scratch.mit.edu/ on the first of August, and the official version will be available on January 2, 2019 [40] (see **Image 3**). Scratch 3.0 is written in HTML5. This means that with Scratch 3.0, the programmers will be able to play Scratch projects on their phone, create Scratch projects on their tablet, and control Scratch projects with their voice. There is also a version for kids for smart mobile devices,

regardless of age, background, or interests, it is being used by young people in schools, homes, and other learning environments around the world [44]. Only in August 2018, the Scratch website had almost 19 million visits with 115 million pageviews and 9 million unique followers! Also, Scratch is used at all levels of education across diverse fields, such as computer science, math, language, arts, social studies, and interdisciplinary projects (Evangelopoulou & Xinogalos, 2018; [10]). Even though it is claimed that Scratch appeals more to younger audiences [41], some universities (like Harvard, Berkley, and the University of California) have used

**188**

**Image 2.** *Scratch 2 layout.*
