Teaching Computer Programming to Post-millennial Kids:
Overview of Goals, Activities and Supporting Tools
Christophe Ponsard
CETIC Research Centre, Gosselies, Belgium
Keywords: Education, Coding, Computer Science, Computational Thinking, Robotics, Flipped Classrooms STEM.
Abstract:
Post-millennial kids have experienced Internet technologies from their early age both at home and at school.
Although this familiarity can trigger interest in learning how to engineer software, the learning itself needs
teaching instruments that are adapted to their generation. In this paper, we focus on early steps where the
teenager is mainly in a discovery phase. Starting from key education goals and skills to develop as children
of the 21st century, we look how they relate with computer programming and computational thinking. We
also look how synergies can be established with other matters like Sciences, Technology, Engineering, Arts
and Mathematics (STEAM). We analyse how such goals can be met using different kinds of activities and
supporting tools. Our work is illustrated by practical experiences carried out in Belgium. Based on this, we
also propose a general roadmap for setting up education programs targeting those kids.
1 INTRODUCTION
In the last twenty years, Internet and computer tech-
nologies have grown and matured to the point of
becoming ubiquitous in our daily lives and also in
the lives of our children. Post-millennial kids (i.e.
born after 2000, also known as ”Generation Z”) are
now growing and are about to reach their majority.
They are totally familiar with using computers, smart-
phones, tablets and can quickly find and process in-
formation from the web and social networks. This
generation is different from the previous generation in
terms of multi-tasking, entrepreneurship and expecta-
tions. However this also comes at a price of less skills
for hand written work and more chances to be affected
by attention deficit disorder (Promethean, 2017).
Both primary and secondary school levels (also
referred to as ”K12”) have adopted digital technol-
ogy to support education by providing Internet access,
using specific learning software or hardware like in-
teractive boards. In contrast with ”learning through
digital means”, ”learning what digital means” is far
less developed and this fact is largely recognised: in
the US only 40% of U.S. schools offer C.S. classes
with computer programming (Gallup, 2016). In Eu-
rope, the situation varies a lot depending on country
specific policies. A survey carried out in 2014-2015
across 21 European countries showed that coding was
part of the curriculum in 16 of them (about 75%) un-
der some form which can be optional or integrated
within other courses. It is integrated at upper sec-
ondary school in about half of the countries and com-
pulsory in one third of the countries at specific (voca-
tional) level (Balanskat and Engelhardt, 2015).
Figure 1: A few initiatives for computer science education
1
.
In reaction to this situation, a number of com-
plementary initiatives in computer science education
have emerged, e.g. CoderDojo (Liao et al., 2011),
Devoxx4Kids (Devoxx4Kids, 2010), First LEGO
League (FLL) (Kamen, 1999) as depicted in Fig-
ure 1. Some are relying on a form of competition ei-
ther in teams like FLL or individually like Informat-
1
All trademarks, product names and logos appearing on
the figure are the property of their respective owners and are
shown for education information purposes only.
474
Ponsard, C.
Teaching Computer Programming to Post-millennial Kids: Overview of Goals, Activities and Supporting Tools.
DOI: 10.5220/0007755104740480
In Proceedings of the 11th International Conference on Computer Supported Education (CSEDU 2019), pages 474-480
ISBN: 978-989-758-367-4
Copyright
c
2019 by SCITEPRESS Science and Technology Publications, Lda. All rights reserved
ics Olympiad (IOI, 1989). In addition, many online
resources and tutorials for learning are also available
like Scratch (MIT, 2002), CodeCombat (Saines et al.,
2013) or Hour of Code (and beyond) (Partovi and Par-
tovi, 2013). They rely on simple to learn languages
based on visual block-based paradigms or high level
scripting languages like Python. Specific target do-
mains may be used as concrete support for devel-
oping coding skills like robotics (used by FLL, De-
voxx4kids) or mobile application programming, e.g.
MIT App Inventor (MIT, 2012).
The ICT industry is also sponsoring those initia-
tives in order to encourage students to engage in a
computer science curriculum given the current short-
age of skilled workers in this domain (D-Soul, 2013),
even though it might be in the first place for their own
interest (Tarnoff, 2017). Of course every kid will not
turn into a computer scientist. The goal of education
should be centred on providing kids with a consis-
tent education relying on the use of computers both
as an education support but also as a tool that can be
programmed for meaningful purposes, e.g. in rela-
tion with some specific courses or a transverse project
mixing Scientific, Technology, Engineering, Mathe-
matics (STEM) and which can also include artistic
dimensions (STEAM, with the extra ”A”).
The purpose of this paper is to look a bit more
into details in those kinds of goals and analyse how
the available activities and tools sketched hereabove
fit with them. Our work does not claim to be exhaus-
tive but to give what we believe is a representative
overview together with a useful roadmap. It is also
anchored in the author personal experience (both as
parent and volunteer) in Belgium where the evolution
of secondary school teaching is being discussed thor-
oughly, including about learning computational think-
ing and computer programming.
This paper is structured as follows. First Section
2 recaps the main goals and skills developed at sec-
ondary school in our 21st century. Section 3 explores
how Software Engineering can be taught in this con-
text. Section 4 discusses some related work. Finally,
Section 5 concludes and discusses some next steps.
2 EDUCATIONAL CONTEXT
2.1 General Goals and Skills
Defining education goals and skills is not an easy task
but this work has been tackled by different groups
considering the needs of our present world. For exam-
ple, the P21’s Framework (Trilling and Fadel, 2009)
organises the basic skills as follows:
core subjects including native/foreign language
skills, arts, geography, history, mathematics, sci-
ence, civics.
more specific 21st century themes like global
awareness, economics, health literacy, en-
trepreneurial literacy
In addition, many transverse skills have been iden-
tified. They cover innovation, ICT and ”soft” skills.
Those are summarised into ”7C” skills that come on
top of the above core skills:
Critical thinking and problem solving
Creativity and innovation
Collaboration, teamwork, and leadership
Cross-cultural understanding
Communications, information, and media literacy
Computing and ICT literacy
Career and learning self-reliance
2.2 Rationale for Teaching Kids to Code
The importance of learning to code is often empha-
sised nowadays because of the fourth industrial rev-
olution and its high impact on the computerisation
and automation of our personal and professional lives.
Computer programming has become a highly de-
manded skill and it can gives students a competitive
advantage when applying to colleges or for a job.
Figure 2: Typical goals of a computer curriculum.
Of course the perspective of professional opportu-
nities should not be reduced to job marketing. From
an educational point of view, several reasons have
been identified, e.g. (Bradford, 2016). Actually “pro-
gramming” is a complex activity involving the follow-
ing dimensions that can have educational benefits:
Computational thinking is a set problem-solving
methods that involve expressing problems and
Teaching Computer Programming to Post-millennial Kids: Overview of Goals, Activities and Supporting Tools
475
their solutions in ways that a computer could ex-
ecute (Wing, 2006). It covers concepts like de-
composition, pattern recognition, abstraction and
algorithms. This helps in developing mathemati-
cal, analytical as well as organisational skills.
Coding is the practical implementation of an al-
gorithm into a programming language which can
be a visual programming language like Scratch.
The early exposure to a computer language with
its own syntax and semantics is as rewarding as
learning a foreign language. In addition, com-
puter programming requires a high level of rigour
in order to be correctly executed.
Many soft skills are also involved as coding is cre-
ative process requiring a lot of communication to
understand the problem and collaboration to find a
solution. The process is also iterative and includes
the need of identifying and correcting errors with-
out falling into “trial an error” mode.
Those high level objectives can be further refined
into finer grained goals of a computer curriculum as
depicted in Figure 2 from (Baker, 2012). They can be
achieved in computer science classes directly or in the
context of other matters, e.g. through STEAM activi-
ties. Note also that many activities such as computa-
tional thinking, collaboration, communication relates
to the ”7C’s” presented in Section 2.1.
2.3 Teaching in the Digital Age
Traditional (or “victorian”) teaching has relied on the
“I Do” (teacher), “We Do” (in-class exercises), “You
Do” (homework) model for years. It does not foster
active participation and collaboration. The teacher is
also seen as the reference source of information which
is no longer true with several sources of information
(of various quality) available through Internet.
Figure 3: Traditional classroom vs flipped classroom.
In the last 20 years, different models have
emerged to address those issues and to use teaching
possibilities enabled by our digital age:
Inverted classrooms, depicted in Figure 3, com-
pletely reverts the paradigm by using a “You Do”,
“We Do”, “I Do” approach, i.e. students need to
discover instructional content outside of the class-
room, possibly through digital means like videos.
Then they collaborate through online discussions
and within classroom under the personalised guid-
ance of the teacher. This requires more engage-
ment but results in higher motivation and positive
reinforcement (Baker, 2000).
Problem based learning is one possible trigger for
an inverted classroom. It anchors the learning pro-
cess in an open problem. Teamwork is used to
identify and acquire the required skills to solve the
problem. It fosters autonomy and provide strong
learning rationales (Amador et al., 2006).
Online Courses either Massive Online (MOOC)
or Small Private (SPOC) can support a blended
form of education by providing high quality on-
line content together with collaboration means
(Kaplan and Haenlein, 2016).
3 A JOURNEY THROUGH CODE
RELATED ACTIVITIES
This section reviews different types of activities sup-
porting the development of programming skills in the
large from early phase of discovery to more specific
activities relating to computational thinking, cod-
ing and project-oriented challenges. Those activities
can be roughly structured according to the roadmap
sketched in Figure 4. We will illustrate some of them
with local experiments.
Figure 4: Roadmap for Teaching Coding.
CSEDU 2019 - 11th International Conference on Computer Supported Education
476
3.1 Discovery Activities
The main goal is to demystify what it means to pro-
gram in connection with some purpose, e.g. control-
ling a small robot, producing a simple animation or
game. The format is short, with no prerequisite, so it
relies on very intuitive tools and the presence of tutor
to help in this discovery.
Hour of code and more generally Coder Dojo
sessions propose various challenges of progressive
difficulty and at some point the learner can come with
its own project. This can be a small video game but it
can also be related to some science project, e.g. Fig-
ure 6. Volunteers are present to help in progressing
(typically 1 for 6 kids).
Figure 5: Nao programming session at Devoxx4Kids.
Devoxx4Kids are short activities quite directed
but exploring different technologies like Minecraft
(java code), Nao/EVC3 (both robotics, block-based)
or Scratch (possibly interactive using the webcam). A
volunteer is overseeing each activity. Figure 5 shows
a programming session with Nao.
3.2 Learning to Code
Visual programming using block-based languages is
widely used to teach coding to children because
blocks are easy to recognise through their shape,
colour and position in a palette. Those shapes are also
designed to only allow valid assembly which rules out
a large class of syntactic errors that are a main prob-
lem for beginners with a textual programming lan-
guage. Such languages come in different flavours but
most of them are now web-based, and Open Source.
Many also rely on the Blockly javascript framework
(Google, 2012). The most common are:
Scratch (MIT, 2002) emphasises on sharing,
reusing and combining code through its large
community. A large repository of code is avail-
able. An example of aquaponics simulation (dis-
cussed in section 3.3) is depicted in Figure 6.
MIT App Inventor (MIT, 2012) is directed to the
generation of mobile application. In addition to
blocks, it also includes a quite powerful yet simple
screen designer. It also supports project sharing.
Microsoft MakeCode (Microsoft, 2018) is a
framework for creating domain-specific program-
ming experiences for beginners. It brings com-
puter science to life for all students with fun
projects, immediate results, and both block and
text editors for learners at different levels.
Figure 6: An aquaponic serious game with Scratch.
Many robotics toolkits such as LEGO Mindstorms
or Nao also come with a block-based language for
programming a robot through specific blocks mapped
to the available sensors and actuators. Although of-
ten closed, Open Source alternative exists, e.g. Mind-
storms blocks are available in Scratch, App Inventor
and MakeCode. Figure 7 shows a typical FLL mis-
sion and the corresponding Mindstorms code at the
top. Note that in parallel to code the robot also needs
to be designed as part of a wider project activity (see
next section).
Figure 7: Shark mission: robot and corresponding EV3
code.
Teaching Computer Programming to Post-millennial Kids: Overview of Goals, Activities and Supporting Tools
477
Learning textual programming language is pro-
posed by frameworks like CodeCombat (Saines et al.,
2013) or CodeMonley (Schor et al., 2016) typically
for languages like Python and Javascript variants.
Both those visual and textual languages provide
progressive, usually game-based, challenges to teach
basic concept such as objects, function calls, argu-
ments, variables, arrays, loops, conditions and various
operators. They also typically rely on event-driven
programming for managing user interactions, driving
animations or controlling hardware (e.g. robot).
3.3 Project-driven Activities
Projects aim at making pupils work together on a
problem and on the design of its solution. In the pro-
cess, they will learn both technical and non-technical
skills. Such projects can be proposed in the scope of
a specific course (e.g. programming the robot in com-
puter course) but they are often best carried out in a
multi-disciplinary STE(A)M context even if this re-
quires more coordination between teachers.
Project-driven activities are proposed by FLL
challenges under two forms, both interesting from the
programming perspective:
the main FLL activity is to program a LEGO robot
to achieve a maximum of tasks (or missions) on a
thematic mat (e.g. help animal, manage rubbish,
living in space...) within 2:30 minutes. This re-
quires to program the EV3 LEGO brick controller
but prior to that, it is mandatory to design the
robot that will solve a mission so this requires far
more that programming skills.
a STEAM project related to the annual theme
must also be developed. A possible project, re-
lated to the water theme, is to build an aquaponic
system combining fishes, plants and bacteria. It
is primary related to biology and the nitrogen cy-
cle but analysing how such a system evolves re-
quires some modelling which can then be studied
using an existing simulator or by coding a simpli-
fied version. A nice simulator interface will also
mobilise artistic skills as depicted in Figure 8.
Actually proposing pupils to try to solve a prob-
lem will lead them across a very rich journey start-
ing by defining the problem, then analysing it, in-
vestigating possible solutions and finally producing
some code as part of the solution (see Section 3.3).
This process will trigger creativity and innovation but
also some research about what might have been done
by others. Different talents can express themselves
within such a team. Some might focus on under-
standing the problem, coding, designing user inter-
face, testing and enhancing, advertising,... But in the
Figure 8: Serious game showing an aquaponics simulator.
end, everybody should bring its contribution to the so-
lution. So having the opportunity to organise a project
will exercise far more skills than just learning a pro-
gramming language to code a well defined problem.
3.4 Computational Thinking Activities
Purely algorithmic challenges can be part of learn-
ing challenges proposed as part of code learning ac-
tivities but some more specific web-sites also pro-
pose dedicated activities such as the AlgoBot seri-
ous game (Fishing Cactus, 2018) or CSunplugged
(U.Canterbury, 2018) which has to specificity to per-
form activities without the use of a computer. Algo-
rithmic challenges are also proposed by the Informat-
ics Olympiad which are individual, although a spe-
cific coaching is organised in preparation and on-line
material is also available (IOI, 1989).
Project driven challenges require to analyse the
problem in order to elaborate a solution which can
take the form of a code or with some coding is in-
volved in the design of a solution. Looking back at the
robot design activity stated previously, it has to meet a
number of constraints such as the need to accomplish
many tasks in a short time, hence to combine differ-
ent tasks along a path in a given area. Moreover, the
availability of limited sensors and motors requires to
design and code the tooling in a modular and efficient
way, e.g. using an arm to grab different things or use
some clever passive mechanism triggered by contact.
A number of useful patterns can be learned and then
reused when designing new robot mission.
Most of the time, software is not the central part
of a project but using a computer is useful to under-
stand how the designed solution will behave given its
complexity. Typically, simulations can be carried out
based on a model. Modelling is an abstraction activ-
ity in computational thinking. It can rely on differ-
ent formalisms depending of the kind of system be-
CSEDU 2019 - 11th International Conference on Computer Supported Education
478
ing designed. Going back at the aquaponic example,
the biological system is driven by the biochemistry of
the nitrogen cycle and can be modelled using system
dynamics. A more naive simulation can be developed
using a few simple evolution rules using discrete time.
Figure 9: Modelling, simulating and 3D printing an
origami.
Figure 9 shows another project relating to the de-
sign of foldable solids that could be used in a spatial
context. A first abstraction with no thickness can rely
on the use of origami paper models. Those can actu-
ally be simulated using computer models very simple
to design as SVG files modelling the crease patterns.
Then using a simple online simulator can help to un-
derstand the folding behaviour and reveal the pres-
ence of distortions (Ghassaei, 2017). Some good can-
didates can then be checked further by building them
with ticker material or by using 3D printing.
4 DISCUSSION AND RELATED
WORK
Our work does not claim to be exhaustive but rather
representative of the kind of activities that can be
explored to teach various aspect of computer sci-
ence (including coding) to children and which makes
sense with other educational goals. The (Taccle3,
2015) project has carried out a more extensive survey
reviewing multiple applications and robotic toolkits
(Garc
´
ıa-Pe
˜
nalvo et al., 2016).
Computational thinking has also been criticised
because of its vagueness and the way it sees the world
as a series of problems that have computational solu-
tions (Easterbrook, 2014). The author argues that this
view is too narrow and that we need a wider system
thinking approach able to deal with a broader context
also including the human behaviour and environmen-
tal impact, e.g. for sustainability challenges. We are
convinced that a problem based approach can actually
provide such a perspective and that a computer can be
used to understand the dynamics of a system. How-
ever, such activities are already quite advanced and
reserved for college level, and it is less an issue for
younger kids who will enjoy discovering a range of
thinking styles and problem solving approaches.
The benefits of multi-disciplinary challenges like
the FLL have also been reported. Students involved
in such challenges usually improved their learning
about real-world applications, problem solving, en-
gagement, communication, and the technology/engi-
neering cycle (Chris, 2013). A more general em-
pirical study on the effect of educational robotics
on pupil’s capabilities indicates significant impact on
mathematics/scientific investigation, teamwork and
social skills as well as for technical and soft skills
(Kandlhofer and Steinbauer, 2015).
Finally, using gamification for teaching STEM has
been reported to encourage a reciprocated engage-
ment between instructors and students during the en-
tire length of the course (Machajewski, 2017). A spe-
cific study reviewed and compared how seven coun-
tries in Europe and the US are gamifying program-
ming education (Lindberg et al., 2018). It points out
that programming games are not a silver bullet capa-
ble of replacing Scratch-like tools. It also stresses
some learning strategies such as problem-based and
the current lack of social learning among players.
5 CONCLUSIONS AND
PERSPECTIVES
This short paper has surveyed different educational
goals with a focus on learning to program. We
have looked into the evolution of teaching paradigms.
Based on this, we have sketched a roadmap of activi-
ties from demystification to acquiring various coding
skills together with more general STEAM skills. We
have also illustrated different types of activities that
can help growing post-millennial kids to learn coding
but also a larger set of useful innovation, communica-
tion and collaboration skills. This can be organised at
school but requires coordination and involvement of
teachers across different disciplines. For now, in Bel-
gium, the approach is only being adapted by a limited
number of schools based on motivated teachers but it
is certainly a direction to promote for the future evo-
lution of teaching programs.
At this point, our experience is still limited and
the feedback is mostly qualitative regarding the ef-
fectiveness of the proposed activities. However, we
Teaching Computer Programming to Post-millennial Kids: Overview of Goals, Activities and Supporting Tools
479
believe this input is worth being shared and will en-
courage others to publish their own experience. This
kind of material could eventually be more systemati-
cally gathered, consolidated and published in order to
provide better guidelines, especially when it comes to
the training of teachers at school or volunteers.
ACKNOWLEDGMENT
Thanks to all the volunteers organising the reported
activities: Devoxx4kids, Confluent des Savoir (UNa-
mur), Technobel LEGO Studio, Coder Dojo Wallonia
and CS department of UCLouvain.
REFERENCES
Amador, J., Miles, L., and Peters, C. (2006). The Practice of
Problem-Based Learning: A Guide to Implementing
PBL in the College Classroom. JB - Anker. Wiley.
Baker, J. (2000). The ’classroom flip’: Using web course
management tools to become the guide by the side. In
In selected papers from the 11th Int. Conf. on College
Teaching and Learning, Jacksonville, US.
Baker, M. C. (2012). The little book of computational think-
ing. http://www.educationvision.co.uk/respaper.html.
Balanskat, A. and Engelhardt, K. (2015). Computer
programming and coding Priorities, school curricula
and initiatives across Europe. http://www.eun.org/
resources/detail?publicationID=661.
Bradford, L. (2016). Why every millennial
should learn some code. Forbes http:
//bit.do/learning-kids-to-code.
Chris, C. (2013). Learning with FIRST LEGO League
. In Proc. of Society for Information Technology &
Teacher Education Int. Conf.
D-Soul (2013). Tech Giants Promote Video with a Simple
Message: Kids Need to Learn Programmming. http:
//bit.do/kids-coding.
Devoxx4Kids (2010). Inspire children to programming,
robotics and engineering. http://www.devoxx4kids.
org.
Easterbrook, S. (2014). From computational thinking to
systems thinking: A conceptual toolkit for sustainabil-
ity computing. ICT for Sustainability 2014, ICT4S.
Fishing Cactus (2018). Algobot. https://www.algobot.be.
Gallup (2016). Research Study (commissioned by Google)
Trends in the State of Computer Science in U.S. K-12
Schools. http://csedu.gallup.com/home.aspx.
Garc
´
ıa-Pe
˜
nalvo, F. J. et al. (2016). A survey of resources
for introducing coding into schools. In Proc. of the 4th
Int. Conf. on Technological Ecosystems for Enhancing
Multiculturality, TEEM ’16. ACM.
Ghassaei, A. (2017). Origami Simulator. http://apps.
amandaghassaei.com/OrigamiSimulator.
Google (2012). Blockly, a javascript library for building vi-
sual programming editors. https://developers.google.
com/blockly.
IOI (1989). International olympiad in informatics. http:
//www.ioinformatics.org/index.shtml.
Kamen, D. (1999). First lego league. http://www.
firstlegoleague.org.
Kandlhofer, M. and Steinbauer, G. (2015). Evaluat-
ing the impact of educational robotics on pupils’
technical- and social-skills and science related atti-
tudes. Robotics and Autonomous Systems, 75.
Kaplan, A. M. and Haenlein, M. (2016). Higher education
and the digital revolution: About MOOCs, SPOCs,
social media, and the Cookie Monster. Business Hori-
zons, 59(4):441 – 450.
Liao, B. et al. (2011). The global network of free com-
puter programming clubs for young people. https:
//coderdojo.com/.
Lindberg, R. S., Laine, T. H., and Haaranen, L. (2018).
Gamifying programming education in K-12: A re-
view of programming curricula in seven countries and
programming games. British Journal of Educational
Technology.
Machajewski, S. T. (2017). Application of Gamification
in a College STEM Introductory Course: A Case
Study. ERIC, Ph.D. Dissertation, Northcentral Uni-
versity School of Business.
Microsoft (2018). Make code. https://www.microsoft.com/
makecode.
MIT (2002). Scratch. https://scratch.mit.edu.
MIT (2012). App inventor - learn to build android apps in
hours. http://www.appinventor.org.
Partovi, H. and Partovi, A. (2013). Bring computer science
to your school or district. https://code.org.
Promethean (2017). Teaching Generation Z: do kids
work better with pen and paper than any other
medium? https://resourced.prometheanworld.com/
teaching-generation-z.
Saines, G., Erickson, S., and Winter, N. (2013). The
most engaging game for learning programming. https:
//codecombat.com.
Schor, J. et al. (2016). Code monkey. https://www.
playcodemonkey.com.
Taccle3 (2015). Supporting primary teachers to teach cod-
ing. www.taccle3.eu.
Tarnoff, B. (2017). Tech’s push to teach coding isn’t about
kids’ success it’s about cutting wages. The Guardian
http://bit.do/coding-education-silicon-valley.
Trilling, B. and Fadel, C. (2009). 21st Century Skills:
Learning for Life in Our Times. Wiley.
U.Canterbury (2018). Computer Science without a Com-
puter V4. https://csunplugged.org.
Wing, J. M. (2006). Computational thinking. Commun.
ACM, 49(3).
CSEDU 2019 - 11th International Conference on Computer Supported Education
480