Two essential questions and challenges that the team of the Code it! learning platform continues to answer, and from experience in teaching computer science, are:
- How can we spark interest in computer science in all children?
- How do we ensure all children find programming meaningful?
Creative coding might be an answer, at least for us, it is.
In mandatory programming workshops in schools, for instance, it can be difficult to motivate all kids. To find a common ground in a group with vastly different interests can be tough. In our experience, there are three components that are important to spark interest for coding across the aisle. The access must be easy; it should be possible to create fast results with little coding and the projects must be meaningful for the kids–in the sense that they can relate to them or see some links to real life. To make coding meaningful is in our experience the key aspect to generate a long-term interest for computer science in kids.
In our school workshops, we worked for years almost exclusively with Scratch programming. Scratch is one of the greatest tools to get started with programming: it is easily accessible, and kids can create minor projects quickly. But there are also some weaknesses. It does not work well as a self-learning tool because the variety of blocks and the many elements of the interface are overwhelming for beginners and can lead to frustration. With many older students, Scratch has the image of a “coding environment for kids”, however, thrown out as a tool to create something meaningful or “cool”.
Building new programming tools
Based on these experiences, we developed tools that contain the strengths of Scratch and address some of its weaknesses. The general approach of Code it! is to combine block-based programming with different real-life applications. Applications that kids and youth often use like games or something they would like to use or create, like Apps or art objects. Besides that, we have created courses using a step-by-step teaching method. Referring to the cognitive load theory, the learners should have only those commands available which they need to solve the tasks at hand. Code it! provides an excellent introduction for self-learners.
The first application we built was a game - “The Duck Race”. We chose a game because almost all children love to play. Unfortunately, most games’ internal gameplay logic limits the student’s creative freedom. That is why we started looking for other applications to broaden the possibilities for the students.
In the search for other applications with great creative potential, we discovered Processing. Processing is a framework specifically designed for artists. The idea behind Processing is to provide non-programmers with a tool with which they can easily create images and animations of high visual and aesthetical quality. Processing stands for an old but long-time neglected field of programming - creative coding, the artistic expression through programming.
Creative coding made easy
Our editor does not include all Processing features. Following the didactic reduction method, we have limited the core functionality of the editor to the essential functions (e.g., shapes, loops, logic). In the future, we will provide more functions for experienced users that can be loaded as extensions - functions for photos, videos, sounds, and machine learning. The editor also allows an easy transition to text programming. The block program can be displayed as source code and can be exported to the Processing web editor.
In 2019 we published an “Hour of Code” course to introduce creative coding and the Processing-Blockly editor. Additionally, we are creating free teaching material–a collection of projects based on the concepts introduced in the “Hour of Code”.
On our learning platform, we provide the teaching material for our Processing editor like teacher handouts and tutorials. Besides our material, there are a lot of great teaching resources for Processing on the internet that can be adopted. The Processing Foundation actively promotes the use of Processing for educational purposes. There is also a variety of teaching material for introducing creative coding: e.g. the curriculum by CS4all (https://nycdoe-cs4all.github.io/units/1/lessons/lesson_1.1), the Khan Academy (https://www.khanacademy.org/computing/computer-programming/programming) or the excellent books and tutorials from Daniel Shiffman, who also runs one of the most entertaining programming YouTube channels “The Coding Train” (https://www.youtube.com/user/shiffman/). The large Processing community of artists, activists, and educators is an almost endless source of inspiration for new projects.
Processing is not only a great tool to teach programming, but it is also suitable for projects in many other areas. It can be used in art classes to teach about space, color, shape, perspective, proportion, or aesthetics; in math classes, one can use it for algebra and geometry; in physics classes, it can provide simulations and illustrations. There are countless projects on the internet that can serve as templates: Instagram filters, picture stories, video animations, art installations, or even machine learning applications.
In our experience, creative coding is an excellent starting point to get kids interested in coding. It allows fast results, provides almost endless creative possibilities, and as a “real world” application leads to high motivation right from the start, even with older students.