Learning Programming Fundamentals via Music

Learning Programming Fundamentals via Music

Ilana Lavy
DOI: 10.4018/IJICTE.2021040105
Article PDF Download
Open access articles are freely available for download

Abstract

This article describes a unique ongoing experience of learning programming via engagement in music programming of known melodies. Seventh and eighth graders participated in 10 lessons of weekly activity. Via the programming of melodies, using the Scratch 2.0 environment, they became acquainted with basic concepts of programming such as methods, variables, repetition and control commands, parallel processes, and more. The study was conducted in the form of an action research. The study units were designed in the spirit of the spiral learning method, in which the learning concepts are revisited several times while their level of complexity rises. From the data analyzed so far, four categories emerged: enjoyment, interest, gaining programming knowledge, and experiencing feelings of success. The students were enthusiastic during the learning lessons, and they were curious to learn and use advanced concepts. The music programming provided them with practical meaning for the learned programming structures and concepts.
Article Preview
Top

1. Introduction

There is now broad agreement that in order to prepare future generations to make the most of technological developments, we should introduce the teaching of programming to early grades of elementary school and even to preschool learning (Papadakis et al., 2016). This is especially important for the present generation of ‘digital natives’ that has to function in a digitized world in which technology is evolving rapidly, creating new fields of study and new forms of employment, requiring new skills and abilities (Yang et al., 2015). As the learners are exposed at a younger age to programming, it is easier for them to function more efficiently in a world where technology is gaining momentum and controlling almost everything in it. Learning programming structures and principles enhances problem-solving abilities, analytic thinking abilities, creative thinking, and computer literacy (White & Sivitanides, 2002; Thomas et al., 2007; Papadakis et al., 2016; Kalelioğlu & Gülbahar, 2014). Developing problem-solving skills involves developing cognitive abilities and high order thinking that help a person face thinking challenges. Analytic thinking and creativity are needed during the process of looking for an algorithm that solves a given problem (White & Sivitanides, 2002). In Mindstorms: Children, Computers, and Powerful Ideas, Seymour Papert (Papert, 1980). drew his vision of how children use a computer: “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 the art of intellectual model building” (p. 5). Papert believed that the learning of programming should be done through playful exploration in which children take control of their learning. He was the first researcher who paved the way to the idea that children will learn to code.

In the field of education, various teaching methods have evolved over the years. Among the effective ways of learning is the spiral method. Bruner (1960) proposed the spiral curriculum, a teaching approach in which each topic or skill area is revisited at intervals, at a more complex level each time (Takaya, 2008). First, the topic is taught on a basic level, followed by several rounds such that in each round more complexity of the topic is added, reinforcing principles that were previously discussed. This teaching method enables the establishment and solidification of the learning topic thoroughly. Spiral learning provides a gradual learning process from simplistic ideas to complicated ones (Johnston, 2012). In light of what is written above, I found the spiral learning method to be suitable for teaching programming principles to young students. To enable the students to invest their efforts in understanding the programming principles and the underlying logical ideas, I chose a simple programming language. The young students will be acquainted with programming principles via the Scratch environment. To avoid unnecessary syntax mistakes, Scratch commands are designed as blocks that can be dragged and executed. Scratch has been translated into many languages so that students can acquire programming principles in their native language. The Scratch environment is taught in some elementary schools in Israel using the Hebrew language. Despite the difficulty of programming in a language that is not one’s native language, I believe it is important to teach programming in English because it is the language of all the programming languages and students have to get used to it right from the beginning. To overcome the language barrier, I added a small dictionary at the end of each learning unit that includes the translation of the new English words in it. To ‘soften’ the rigid character of the programming commands and to raise the students’ curiosity as regards to their functionality, I decided to teach programming via music. Via the composing of familiar melodies, the learner will become acquainted with programming concepts such as variables, repetitive structures, conditional commands, methods, and so forth. Moreover, the teaching/learning process follows the constructivist theory in a way that the students will engage in personal exploration tasks. In the last fifteen minutes of each lesson, a class discussion will take place in which the new concepts will be discussed, and the students will share with the whole class the insights they gained during their explorations.

Complete Article List

Search this Journal:
Reset
Volume 20: 1 Issue (2024)
Volume 19: 1 Issue (2023)
Volume 18: 3 Issues (2022)
Volume 17: 4 Issues (2021)
Volume 16: 4 Issues (2020)
Volume 15: 4 Issues (2019)
Volume 14: 4 Issues (2018)
Volume 13: 4 Issues (2017)
Volume 12: 4 Issues (2016)
Volume 11: 4 Issues (2015)
Volume 10: 4 Issues (2014)
Volume 9: 4 Issues (2013)
Volume 8: 4 Issues (2012)
Volume 7: 4 Issues (2011)
Volume 6: 4 Issues (2010)
Volume 5: 4 Issues (2009)
Volume 4: 4 Issues (2008)
Volume 3: 4 Issues (2007)
Volume 2: 4 Issues (2006)
Volume 1: 4 Issues (2005)
View Complete Journal Contents Listing