could make lists, tables, family trees,
Venn diagrams, and data models to
capture key information from the
problems they are working on.
Learners will use their skills in language to create descriptions of processes that can be used by other people. For example, a computer program
is a great way to describe a process.
Learners will understand how to
read, write, and translate between
different representations such as between English statements, planning
representations, and actual computer
code. For example, developing skills
in writing code could be scaffolded
by studying worked examples or by
giving learners jumbled lines of code
and asking them to put the lines into
an appropriate order.
Although solutions can be created in many ways, it is expected that
all learners will experience creating
solutions on computers. This shows
learners that computers implement
exactly what they—the learners—have
written, which is often not what they
intended, as well as giving them practice in debugging.
We have presented a curriculum that
explicitly connects computational
thinking with the more mechanical
aspects of computing, with particular
concentration on the explicit modeling
of computational domains by computational mechanism. Not everyone
needs to become a software engineer
or computer scientist; the curriculum
provides valuable learning at all levels, including the essential foundations for those who wish to study the
subject further. While our curriculum
is informed by previous educational
computing research, we emphasize
quite different learning outcomes via
our three-point framework.
Richard Connor ( Richard.Connor@strath.ac.uk) is a
Professor of Computer Science at the University of
Quintin Cutts (Quintin. Cutts@glasgow.ac.uk) is a
Professor of Computer Science Education and Director
of the Centre for Computing Science Education at the
University of Glasgow, Scotland.
Judy Robertson (Judy. Robertson@ed.ac.uk) is a
Professor of Digital Learning at the University of
Copyright held by authors.
pects. Here we outline how they are
presented to non-computer scientists—see the detail at http://www.
teachcs.scot. The vocabulary and concepts used are accessible to those who
need to read them; the difficulty of
this should not be underestimated, it
is hard for an academic computer scientist to communicate with a teacher
of early years computing.
Each of our three main aspects persists through the five defined levels of
the curriculum, from ages 3–15; the
text here is mostly aimed at teachers of
the lower levels.
Understanding the world through
computational thinking. The first aspect looks at the underlying theory in
the academic discipline of Computing Science. Theoretical concepts of
Computing Science include the characteristics of information processes,
identifying information, classifying
and seeing patterns.
This aspect is about understanding the nature and characteristics of
processes and information. These can
be taught through Unplugged activities (fun active learning tasks related
to computing science topics but carried out without a computer) and with
structured discussions with learners.
There is a focus on recognizing computational thinking when it is applied in
the real world such as in school rules,
finding the shortest or fastest route
between school and home, or the way
objects are stored in collections.
Learners will be able to identify steps
and patterns in a process, for example
seeing repeated steps in a dance or
lines of a song. In later stages, learners
will begin to reason about properties
of processes, for example considering
whether tasks could be carried out at
the same time, whether the output of a
process is predictable, and how to compare the efficiency of two processes.
Learners will identify information,
classify it, and see patterns. For example, learners might classify and group
objects where there is a clear distinction
between types or where objects might
belong to more than one category.
Understanding and analyzing com-
puting technology. This aspect aims to
give learners insight into the hidden
mechanisms of computers and the
programs that run on them. It explores
the different kinds of language, graphi-
cal and textual, used to represent pro-
cesses and information. Some of these
representations are used by people and
others by machines, for example, a ver-
bal description, a sequence of blocks
in a visual programming language
such as Scratch, or as a series of 1s and
0s in binary.
In this aspect, learners will learn
how to ‘read’ program code (before
writing it in the next aspect) and describe its behavior in terms of the
processes they have learned about in
the first aspect, processes that will
be carried out by the underlying machinery when the program runs. For
example, learners could read a section
of code and predict what will happen
when it runs or if lines of code change
order. Learners will learn and explore
different representations of
information and how these are stored and
manipulated in the computing system
Designing, building, and testing
computing solutions. The third aspect is about taking the concepts and
understanding from the first two aspects and applying them. Learners
will create solutions, perhaps by designing, building, and testing solutions on a computer or by writing a
computational process down on paper. In doing so, they will learn about
modeling process and information
from the real world in programs, and
what makes a good model to represent
or solve a particular problem.
Learners will create representations
of information. For example, learners
can be created
in many ways,
it is expected
that all learners