If you programmed computers some decades ago, you were probably some sort of an expert or a very enthusiastic hobbyist. This has changed as in many countries coding is taught to children already on their first grade. Programming has become more mainstream and learning it doesn’t mean you would become a programmer in a traditional sense. Understanding something about programming can be handy for artists, product designers and everyday citizens as well. After this shift, the objectives of programming education have changed too. Besides technical problem solving, programming has become a tool for expression, design and social participation.
Before entering elementary schools, the most common context for programming education was the higher education and working life after that. In his doctoral thesis (2012), Finnish researcher Juha Sorva sums up the research about introductory programming courses in higher education from 80’s to present day. A key finding of the research has been that students don’t learn to write computer programs on the courses very well. There is a wide gap between learning objectives and the skills students actually gain. Researchers have suggested reasons for poor learning outcomes, one being that learning to program just isn’t easy. Teachers should split the learning path to clear paces and be cautious about not teaching many new concepts at the same time because it easily results in too much cognitive load.
On the second week of our Let Me Hack It online teacher training, the teachers created soundscapes by experimenting with self-recorded samples. In the Music Programming Track, we use Sonic Pi as a tool for coding.
If even university students have challenges in learning programming, why should we bother to teach it in elementary schools? One answer is that precisely because programming is hard, we should start taking small steps early. Another important angle is that writing complex programs should not be the only value of K12 programming education. If programming is part of ICT-studies in higher education, the goal is to be able to write functional and efficient programs for customers. In elementary schools, the goals can be more about learning digital literacy, design thinking and understanding the role of technology in society. If we emphasize these things, we have to see programming education from a bit different light.
Yasmin Kafai and Quinn Burke have suggested that instead of focusing on computational thinking and individual problem solving, we should make computational participation the guiding framework for K12 programming education. As the name of their book Connected code: Why children need to learn programming (2014) suggests, we should always connect coding to something that is meaningful to the students and bring personal expression, creative design and social engagement to the heart of programming lessons. Other authors have wanted to bring creativity and project-work to programming lessons as well. For example Mitchel Resnick from MIT Media lab has developed a pedagogical model consisting of four P’s to programming education: Projects, Peers, Passion and Play.
Solja Tiikkainen – Angry Bird
Torbjörn Granberg – Webpage updater
On the fourth week of Let Me Hack It online teacher training, the teachers created these installations by programming servo motors. In the Electronics and Programming Track, we use Arduino.
Connected coding education can result in more efficient coding education too. Think of those who aren’t so interested in mathematical problem solving but are more keen about handicrafts, music or arts, for example. Without showing the different contexts of programming these students wouldn’t get so involved with the subject. Diverse coding education includes more people and educates more solvers for a variety of problems too.
Mehackit promotes connected coding in the material as well: both teachers and students can learn about creative technology making through music, visual art and electronics programming. Try it out for free!
In this blog series, I’m going to discuss three paradigms of more connected programming education from a pedagogical and research based point of view. In the next post I will discuss project based learning. There will also be a post about creativity and programming, and about programming and social participation. As paradoxical as it may sound, programming is not just about writing computer programs. The idea of education is to grow widely thinking and ethical individuals who learn to make something meaningful with technology. The idea of these writings is to introduce how different educators and researchers have tried to make programming education more concrete, creative and inclusive.