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.
In
our learning platform–app.code-it-studio.de–we created a free-to-use web-based
editor that links P5.js–the JavaScript-Version of Processing–with Blockly, the
block programming library used by Scratch and many others. The Processing
editor allows you to create impressive pictures with just a few blocks. With
every new block-type and every new programming concept, the creative
possibilities multiply. The participants in our workshops, girls,
and boys alike, are always enthusiastic about the pictures and animations they
create.
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”.
Get inspired
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.
Author: Andreas
Koch, Code it! Studios, Code for Afrika, (member, Institute of ICT
Professionals Ghana). For comments, contact andreas.koch@code-it-studio.de or richard.amanfu@iipgh.org