Working PaperPDF Available

Coding in K-8: International Trends in Computing Education with Primary-aged Children



The teaching of computing is becoming an essential addition to 21st-century learning. An important part of this new addition is the teaching of computing in earlier grades, starting as early as kindergarten in some countries. Yet, there is little research that reports on computing practices in earlier grades. The purpose of this study was to paint a broad picture of the teaching of computing in primary education from teachers' perspectives through a 20-minute snowball survey sent out to elementary computing groups. This study reports on the teaching of over 300 teachers who are responsible for teaching computing to nearly 60,000 primary-aged students. The results principally represented teachers in the US and the UK, though smaller samples of teachers from 23 total countries are included. We report on teachers' responses by analyzing quantitative data and open-ended responses to questions about their experiences in teaching computing to children. Results highlight teachers' level of preparation to teach computing, the most commonly taught programming languages, teacher successes and challenges, and observations on how learning to program has affected students.
Coding in K-8:
International Trends in Computing
Education with Primary-aged Children
Peter J. Rich, Samuel Browning, McKay Perkins, Timothy Shoop, Olga Belikov
Brigham Young University
Emily Yoshikawa
Purdue University
The teaching of computing is becoming an essential addition to 21st-century learning. An
important part of this new addition is the teaching of computing in earlier grades, starting as
early as kindergarten in some countries. Yet, there is little research that reports on computing
practices in earlier grades. The purpose of this study was to paint a broad picture of the teaching
of computing in primary education from teachers’ perspectives through a 20-minute snowball
survey sent out to elementary computing groups. This study reports on the teaching of over 300
teachers who are responsible for teaching computing to nearly 60,000 primary-aged students.
The results principally represented teachers in the US and the UK, though smaller samples of
teachers from 23 total countries are included. We report on teachers’ responses by analyzing
quantitative data and open-ended responses to questions about their experiences in teaching
computing to children. Results highlight teachers’ level of preparation to teach computing, the
most commonly taught programming languages, teacher successes and challenges, and
observations on how learning to program has affected students.
Key Words:
Computational Thinking, Coding, Elementary Education, Primary Education, Teacher
Researchers have long known about and promoted the benefits of learning computing in some
form (e.g., coding, programming, software-development). Multiple correlations have been
found between students’ mathematical ability and learning computer programming (Rich,
Leatham, & Wright; 2013). From the mid-1970s to the early 1990s, Seymour Papert
popularized programming in primary education through the use of the Logo programming
language. Research largely demonstrated that learning to program with Logo resulted in
improved geometric understanding, spatial ability, and logical reasoning (Clements, 2002;
Clements, Battista, & Sarama, 2001; Subhi, 1999). Furthermore, the benefits of learning to
program extend beyond correlations with mathematical thinking, including important 21st-
century skills such as creativity, problem-solving, the ability to break a problem into its parts
and the willingness to confront otherwise challenging tasks (Rich, Bly, & Leatham, 2014). Yet,
despite repeated positive findings, computing education never became compulsory in
mainstream education.
In 2006, Wing revived the notion of computational thinking (CT) that Papert had promoted with
Logo in the 1980s. She effectively argued that the way computer programmers solve problems
extends well-beyond the bounds of software development and that the skills and processes used
by computer programmers are relevant to and practiced in all fields. She positioned
computational thinking alongside the fundamental 3Rs—reading, writing, and arithmetic. Wing
summarized CT as the ability to abstract patterns and automate processes using technology. Her
message grew gradually, but reached a large audience once private businesses began to promote
the notion of computational thinking., founded in 2013, has since led hundreds of
millions of children worldwide to experience “an hour of code,” reaching populations
traditionally underrepresented in computing (see These efforts have
all led to the promulgation of computing products for kids and policy changes that make
computing education compulsory in many locales (Heintz, Mannila, & Färngvist, 2017).
Computational thinking is quickly becoming the key addition to a 21st-century education.
Increasingly, governments across the globe now require that educators teach coding from the
earliest years students enter school. In the 2014-15 school year, England began requiring that all
pupils learn computing starting in kindergarten (Furber, 2012). Finnish education now requires
that computing be integrated with all other subjects. Australia has included programming
starting in the 2nd grade as part of its new digital technologies standard (ACARA, 2016).
Greece also asks that students start learning to code beginning in 3rd grade. In South Korea,
software design will become mandatory in middle school in 2018 and elementary school by
2019 (Young, 2016). Over a dozen European countries have indicated that computing will
become compulsory at some level by 2020 (Balanskat & Engelhart, 2015). Autonomous regions
in Spain have made computer programming part of students’ core education (Valverde-
Berrocoso, Fernández-Sánchez, & Garrido-Arroyo, 2015). We see similar patterns in Hong
Kong (Wong et al., 2016), Belgium, Germany (Delcker & Ifenthaler, 2017), and the U.S.A.
(CS4RI, 2016; Ribeiro, 2013; Smith, 2015).
More and more teachers are being asked to teach computing to younger and younger children.
We need to know more about these teachers, what they’re teaching and how it’s being received.
Coding in K-8
The purpose of this study was therefore to better understand the profiles, practices, and
problems of those who are teaching coding to younger children.
Literature Review
A search on Google Scholar, EBSCO Host, ERIC, the IEEE and ACM databases for the term,
“computational thinking,” reveals that between 2006 and about 2012, the majority of
computational thinking (CT) manuscripts dealt with promoting the idea of CT and defining it
more clearly. While the precise definition is still being debated (Shute, Sun, & Asbell-Clarke,
2017), increasing research on CT has emerged in the past five years, to the point that there are
now several literature reviews available (c.f. Crick, 2017; Garneli, Giannokos, &
Chorianopolous, 2015; Kallia, 2017; Heintz, Mannila, & Färngvist, 2016; Lye & Koh, 2014;
Rich, Strickland, Franklin, 2017; Vivian, Falkner, & Falkner, 2014; Waite, 2017). These mostly
focus on pedagogy, curriculum, assessment, and students’ experiences. While the reviews are
increasing, the majority of research still derives from higher education, though research on
computing in K-12 is increasingly prevalent in the more recent reviews. Surprisingly absent
from these reviews, though, is a discussion of teachers’ preparation and experiences in teaching
computing—especially in K-12. We analyzed every single reference from each of these reviews
and found few such studies. Thus, while research on computing education is growing, we still
know relatively little about the experiences of those who are delivering this instruction.
We expanded our review to include chapters in books, conference reports and sources not
referenced in the mentioned reviews. We were able to identify 10 that focused on preparing
inservice primary teachers to teach computing. These can be categorized into face-to-face and
online experiences. In the following section, we briefly review the emerging research on how
practicing teachers are being prepared to teach computing in formative education and what these
experiences have revealed.
Face-to-Face Computing Teacher Preparation
Perhaps the most visible work to prepare inservice computing teachers is coming out of the
Computing at School group in England (Brown, Sentence, Crick, & Humphreys, 2014; Sentence,
& Csizmadia, 2017; Sentence, Dorling, McNicol, & Crick, 2012). In 2014, researchers issued a
report on the resurgence of computer science in UK schools. In it, they describe Computing at
School (CAS), a “national network of teaching excellence” (p. 9:1) set up to prepare and support
computing teachers, who would need to begin teaching computing from kindergarten nationwide.
CAS is split into over 200 regional centers called “hubs.” These 200 hubs are run by master
computing teachers, who in turn are trained by a coordinator in charge of several hubs. Hub
meetings occur monthly, though frequency and attendance both vary depending on the hub
leader. Sentence and Csizmadia (2017) surveyed over 1100 teachers through the UK to discover
challenges and strategies for teaching computing. While the majority of teachers’ responses
focused on students, the survey revealed a window into teacher preparation. Teachers reported
spending time “skilling up” on computing every day, through independent readings, workshops,
and local CAS hub meetings. On average, teachers reported spending over 100 hours on
learning computing. Despite this, most teachers still felt inadequately prepared to teach
computing with confidence. One drawback to this study for the present issue is that the majority
of respondents (over 77%) taught in secondary education.
Cutts, Robertson, Donaldson, and O’Donnell (2017) reported on similar efforts to prepare
Scottish teachers for the new computing curriculum. Like CAS, PLAN C was a teacher-to-
teacher hub-based network established to support computing teachers in the transition to
increased computing requirements. Funded by a government grant, lead teachers were paid both
to be trained (over 6-9 weeks) and to regularly host local meetings in pairs with another lead
teacher. At these meetings, they shared computing curriculum prepared by the Scottish
government, ideas for teaching, and demonstrated practices. They also posted these materials on
a popular CS teacher online forum. Because Scotland has a more spread-out geography than
England, PLAN C was less successful in rural areas as it was in urban centers. By its second
year, about two thirds of the hubs remain active, but there is increasing activity within these,
indicating that, where successfully attended, hubs have begun to create a stable and regular
meeting of the minds for Scottish computing educators. Nearly 90% of educators indicated
positive experience through participation in hub meetings, with a high degree of teacher
reflection on practice. Through participation in regular hub meetings, teachers reported
increased confidence to teach computing.
In another study, Rich, Jones, Belikov, Yoshikawa, and Perkins (2017) taught all the faculty at a
single K-6 elementary school (N = 26) over the course of a year to prepare to teach both
computing and engineering in their everyday lessons. Researchers met weekly for an hour with
all teachers during their planning and preparation time. During the first semester, all teachers
participated in the same engineering design or computing lessons. These focused on unplugged
activities and basic engineering challenges that demonstrated the engineering design process.
During the second semester, teachers broke into grade bands (K-2, 3-4, 5-6), chose units each
grade level wanted to learn and spent 5-7 weeks learning each unit. Two units focused on
engineering while one focused on computing. Researchers measured teachers’ beliefs about and
self-efficacy for all STEM subjects individually with the faculty and compared these with the
faculty at a school with similar student demographics in the same city. While teachers from both
schools compared similarly in their beliefs about and self-efficacy for science and mathematics,
there was a statistically positive difference in computing and engineering confidence for teachers
who participated in the professional development (PD). Teacher interviews revealed further
insights into how weekly PD affected teachers. Although teachers were not required to actually
implement these lessons in their classrooms during the first training year, many teachers did,
finding that students were very receptive to both engineering and computing lessons. While
teachers believed in the importance of teaching engineering and computing more than in their
own ability to teach it, this study demonstrated that continuous professional development,
coupled with a willingness to experiment with these subjects could help teachers feel prepared to
integrate them into their teaching.
Finally, Hester-Croff (2017) worked with a local college to prepare inservice teachers in a rural
setting to teach computing. Community college professors spent a 3-4 day summer training
teaching scalable game design to middle and high-school teachers. Throughout the year,
teachers participated in an online course via Adobe Connect to continue their training and
generate ideas for how they might foster computational thinking through their courses. In
addition, college interns from computer science received class credit for assisting teachers in
Coding in K-8
their classrooms and teaching game development. Researchers surveyed teachers at the end of
the experience to see to what extent they were teaching computational thinking in their classes.
Results indicated that more than half of the teachers had moved beyond the training content and
were using original game-creation ideas germane to their own subject matter. Due to the rural
geography of these teachers, researchers found that many teachers wore multiple hats, and had to
teach computing in addition to other subjects. Participants reported that they would prefer to
work in groups with other teachers, but that their geography made this difficult. Rural teachers,
perhaps more than others, found ways to integrate computational thinking in a variety of
Online Computing Teacher Preparation
Similar to Hester-Croff (2017), Buss and Gamboa (2017) worked with teachers in rural areas.
They used a completely online mode of delivery to train teachers to incorporate computing
through game-creation. Teachers participated in two courses: the first dedicated to gaming and
the second to robotics. Though teachers were dispersed geographically, they were all in the
same time zone. As such, they were able to meet synchronously once per week for 8 weeks
(note: the second iteration doubled the course length). This enabled screen and file sharing
wherein instructors could demonstrate computational principles and teachers could share their
creations. Participants learned computing through AgentSheets, AgentCubes, Scratch, and Lego
EV3. Participants first developed a simple Frogger-like game. The final game teachers created
was a Pac-Man-like game. Teachers were able to learn simple algorithms, problem solving and
persistence. Survey results revealed that teachers’ attitudes toward computational thinking were
positive. Furthermore, while teachers used open-ended pedagogies as they became more
comfortable with programming, participants reported it was useful to first start with guided
instruction and move to more open-ended projects.
Beginning in the 2016-17 school year, the Finnish national curriculum began requiring that
coding and computational thinking be integrated with all other subjects starting in 1st grade. In
order to prepare teachers for this change, a group of academics and educators created a free
community-style massively open online course (cMOOC). The course took roughly a semester
to complete, consisting of asynchronous online discussions and demonstrations. Teachers were
recruited simply through social media and word of mouth. Over 500 teachers (38.5%)
completed the MOOC, which is nearly 6.5 times the normal completion rate for MOOCs. Early
elementary curriculum focused on learning computing through Scratch Jr.; late elementary
curriculum focused on Scratch; and middle school lessons focused on Dr. Racket, a functional
programming language. Similar to other studies, teachers began by mimicking pre-made
lessons and graduated to modifying and creating their own computing lessons. These were
shared through the course online, creating a database of possible projects and lesson ideas for
teachers. While the computing mandate is new to Finnish teachers, they demonstrated an
overwhelmingly positive attitude toward its importance, 74.1% agreeing that it’s important to
teach programming in primary school. By the end of the experience, teachers’ apprehensions
about teaching coding had all but disappeared, with many teachers commenting on how
surprised they were that it was more accessible than they had assumed it would be.
Marcelino, Pessoa, Vieira, Salvador and Mendes (2017) similarly ran a teacher preparation
course online with Portuguese teachers. They also used Scratch as the platform of choice for
teaching computing. Elementary teachers spent 54 hours in the course, beginning with eight
hours learning the fundamentals of computing, followed by six hours exploring Scratch example
projects and practices. Teachers spent an additional 26 hours completing various projects in
Scratch, utilizing the remaining 14 hours to complete a course project. The course utilized both
synchronous and asynchronous discussions. Teachers’ final projects were assessed using Dr.
Scratch (Moreno-León, Robles, & Román-González, 2015), with teachers’ projects scoring
between 11 and 18. This indicates that all teachers’ programs were at least of medium difficulty,
with some in the advanced range. Overall, teachers reported that they were able to learn
computational thinking concepts and that they would begin incorporating these into their classes.
In summary, research on primary computing teachers’ experience is nascent, but positive.
Continuous professional development or local teacher-led meetings appear to increase teachers’
confidence to teach computing, while also providing them with materials and a network of
colleagues to rely on. Both online and face-to-face networks are emerging, though these are
geographically and linguistically bound. In general, teachers feel more comfortable when
starting with direct instruction and strictly guided lessons, but by the end of their training modify
these to create their own unique lessons that can be integrated in different subject areas. Scratch
appears to be one of the more common platforms for teaching programming to teachers of
younger children, though several other platforms are being used in different situations. Teachers
are receiving between 10 and 54 hours of preparation in computing education.
While these findings reveal a portion of primary computing teachers’ experience, they leave
many questions unanswered, such as what actually happens when they teach computing to
children? What challenges do they face? What are their successes? What are their
backgrounds that have lead them to teach computing in the first place? When do they teach
computing? And for how long? The purpose of this study was to answer these and other
questions to provide a broader and more in-depth picture of primary computing teachers’
experiences. We hope that by describing current practices, we might better understand the
different approaches to teaching computing, learn what helps these teachers succeed, provide
insight into overcoming challenges surrounding computing in primary education, and
understand what activities young students engage with to learn computing.
We constructed an in-depth survey that was sent out to teacher computing groups using a
snowball sampling method. Biernacki and Waldorf (1981) identified three distinct phases in
using snowball sampling: initiation, progression, and termination. Initiation deals with
identifying where to start the sampling, indicating that any start point must be with a verifiably
valid population for the research question. We distributed the survey through known computing
teacher groups, user-groups and listservs for elementary computing products. These could be
categorized as private companies, public schooling organizations, and non-profit organizations
with the aim of promoting elementary computing (see Table 1). Additionally, we asked
respondents if they knew of a colleague who would be a good candidate to take this survey.
Coding in K-8
Respondents could either provide us with the colleague’s name and email or personally send
their colleague a link to the survey. When a name and email were provided, we personally
contacted the individual, noting their colleague had recommended we contact them about
completing the study.
Table 1
Launch Points for Distributing the Coding in K-8 study
Organizations Public Schooling Non-Profits
Code Academy
Hello Ruby
The Foos
Chicago Public Schools (n = 22)
Australian Digital Technologies (n = 11)
CodeABC MOOC (Finland)
Computers for Creativity
Exploring Computer Science
Computing at School (n = 220)
The Mind Lab (NZ)
CodeWeek Ambassadors (35
Khan Academy
Progression, the second consideration in snowball sampling, ensures that respondents are
actually valid participants who have experienced the phenomenon in question. One of the first
survey questions sought to establish the scope of interest to only those who are teaching students
in K-8, or roughly the equivalent of students that were 5-14 years of age. While it would
certainly be valuable to understand current efforts in high school (or its equivalent), the teaching
of computing in high school has persisted for many more years and was outside the scope of the
current study. The survey was programmed to direct those not meeting these criteria to the end
of the survey and thank them for their time.
The final consideration with snowball sampling regards knowing when to terminate the chain.
In the case of this research, we left the survey open for over four months, at which time we were
receiving no new responses. Two months later, while analyzing the data, we received an
overdue response from a smaller country that indicated they would like to participate in the
survey, asking if it were too late. We re-opened the survey for a week and received 8 more
responses, all from this same country, which data we proceeded to incorporate into the analysis.
To ensure that all respondents shared the same understanding, we clarified at the beginning of
the survey what was meant by computing/coding, with the following explanation:
There are many interpretations of what "computing" means. For the purpose of this
survey, we will use the terminology computing/coding to refer to the practice of
teaching children to program computers or other machines for the purpose of
solving problems (either authentic or contrived). This may involve the teaching of
"unplugged" activities that seek to help children understand the logic of some of the
computer science behind computer programming. It may also involve the intentional
teaching of computational thinking.
The survey contained 32 top-level items, soliciting teacher demographics, teaching patterns, and
opinions. We recognize that the length of the survey was likely a deterrent to participation. To
encourage responses, participants were informed that their name would be entered into a
drawing for an iPad mini 4 if they were to complete the survey. We indicated that respondents
would have a 1 in 200 chance of winning an iPad. We only included the names of those who
had provided at least a minimal amount of usable information by answering several questions.
When all the data were analyzed, we coded a simple lua-based program that separated
respondents into even groups and randomly selected a single person from each group to receive
the prizes. Efforts were made to seed the random number selector for each group as near to true
randomness as the programming language would allow. We recognize that it is difficult to
generate truly random numbers in most programming languages, but followed common
practices to try to accommodate for this fact.
The fact that the questions were provided only in English may have deterred non-native English
speakers from responding to the survey. Thus, while the survey garnered responses from
individuals in nearly two-dozen countries, we highlight to the reader that the majority of
responses represent individuals in predominantly English-speaking countries of the United
States, the United Kingdom, and Australia. The one exception to this was Finland, with 29
teacher responses (3rd most overall).
Once all response data were collected, we downloaded the data in a .csv format, eliminated
useless responses (e.g., only a name was provided), and transcoded the data using python scripts
that would convert the data to a long-data format. Questions consisted of Likert-type items
(e.g., “how has coding been received by your students?”), single-response items (e.g., “in
general, how long are your lessons on computing?”: 5-30 minutes; 31-60 minutes; 61-90
minutes; 90+ minutes), and open-ended questions (e.g., what challenges have you encountered
in teaching computing/coding?”).
Quantifiable data were analyzed using descriptive statistics. For example, raw counts of those
teaching different technologies, average time teaching computing, length of class time,
background/training in computing, etc. Open-ended responses were coded using a cross-
comparative analysis as described in Rich (2012). Each initial response was openly coded with
a descriptive text. We then grouped similar descriptions into common categories. At that point,
a second researcher coded the data with the generated codes to ensure consistency of results.
Discrepancies between codes were discussed with the research team until we could agree on a
categorization. Sub-codes were then generated for each of the codes and, in some cases,
multiple levels of sub-codes were generated.
Once all open-ended codes were generated, we used Tableau, a data visualization and analysis
software package, to explore the descriptive results. This enabled us to create interactive
visualizations that revealed specific patterns across different questions. For example, one
question asked whether teachers were required to teach computing at school or if it were
optional. We were able to then use these criteria to filter results and show only those who
Coding in K-8
matched one or the other criteria (e.g., required teachers by length of class time). Common
filtering criteria we used were country, required/optional, and age taught.
Statistical Analyses. On questions with ordinal and categorical data, we sought to
determine if the differences observed were statistically significant. We compared responses
between groups on factors that applied to all respondents, such as whether teaching computing
was required or optional. To make comparisons between these two groups, we conducted
independent sample t-tests using SPSS v.24, with a determined significance level (alpha) of .05.
We only considered assumptions of this test met after checking for at least moderate normality
and significant homogeneity of variances using Lavene’s test.
We also sought to compare responses from different countries. However, we only received
enough responses from four countries to be able to perform such an analysis without threat to
reliability (US, UK, Finland, and Australia). We considered collapsing all other countries into
an “other” categorization, but reasoned that the individual cultural and political climates in these
countries varied sufficiently that we would be uncomfortable treating all their responses as a
single group. Thus, significance tests were only performed on questions where we had enough
responses from these four countries (US, UK, Finland, and Australia).
In the case of measures with continuous data (e.g., number of students taught, years teaching
computing/coding), we typically used a one-way ANOVA to determine if there were differences
between means for different countries. When a significant difference was found, we utilized
Bonferroni’s method as a post-hoc test, which allows for multiple comparisons to be made while
maintaining a reasonable confidence coefficient. Additionally, Bonferroni’s method allows for
pairwise comparisons to be made even with uneven sample sizes, which was the case with these
In some cases, we wanted to determine if there were a difference between countries based on
categorical data. For example, we looked at whether or not teachers were required to teach
computing/coding or whether it was optional. To make such comparisons, we conducted Chi-
Square tests of independence.
Results & Discussion
Results fit into three major categories: general descriptions of teaching computing/coding,
teacher preparation and personality, and teacher experiences with computing/coding. We
present the remainder of the results by grouping responses to questions into each of these
overarching categories1.
General Descriptions of Teaching Computing/Coding
1 RESEARCH NOTE: In order to allow others to freely explore these data as we did, we have
provided a link to some interactive visualizations and the entire anonymized dataset
Overall, we gathered usable responses from 313 teachers representing 23 different countries (see
Table 2; note that 3 teachers didn’t indicate a country). Not all teachers responded to every
question, meaning that for some questions we ended up with fewer responses (~280). Given the
relative newness of teaching computing/coding to younger children, we were surprised to find
that the average years teaching computing to kids (including the current year) was 4.6 years,
although this varied from as low as 1 year to as much as 15 years (United Arab Emirates). In
countries where computing/coding has become compulsory at the primary level (the UK,
Finland, and Australia), the average years teaching computing/coding was 6.3, 1.9, and 6.9,
respectively. Clearly, those teaching computing/coding to children in Finland have less
experience than those in the UK and Australia. Post hoc tests comparing the average years
teaching between US, UK, Finnish, and Australian teachers revealed that U.S. and Finnish
teachers have statistically significantly less computing teaching experience than UK and
Australian teachers (p < .001). Of the countries with at least 10 responses, Bulgaria’s teachers
had the most experience, at 8 years, with Hungary’s teachers close behind (7.8 years). This may
be due to the fact that the teachers who responded to the survey from these countries voluntarily
taught computing/coding with an out-of-school organization. We reasoned that such individuals
are likely to hail from a computing background as compared to teachers who may have begun
their careers in another subject area and only more recently moved to teach computing.
Respondents were asked to indicate whether teaching computing/coding was required or
optional. Overall, we ended up with roughly a 3-2 ratio between those who choose to teach
computing/coding and those required to do so for their jobs. This ratio differed in countries
where the teaching of computing in primary education is not yet compulsory, such as the United
States, where the ratio was 3 to 1. Contrast this with the UK, where those required to teach
computing were represented in this survey at a 1 to 5 ratio. Curiously, Finnish teachers who
responded to this survey had a completely opposite representation. Perhaps this is because they
were not required to start integrating computing/coding until the school year after they
completed this survey. Thus, Finnish teachers who responded to this survey may have been
early adopters who self-selected into teaching computing.
On average, class sizes tended to represent an average school class size, with 22 students per
class. Finnish teachers taught statistically significantly fewer students at a time than UK, US, or
Australian teachers (p < .001). We also asked teachers how many total students they taught,
with the option to indicate their response using a slider from 1-500 students. Overall,
respondents reported they are teaching 58,218 students. However, 34 respondents indicated
they taught 500 total students, which suggests to us that we may not have allowed a high enough
threshold and that in reality this group of 310 teachers is responsible for teaching computing to
more than 60000 students overall.
Coding in K-8
Table 2
Basic descriptive data of those teaching coding in K-8
Overwhelmingly, computing/coding classes currently last 31-60 minutes. A greater percentage
of teachers who optionally chose to teach computing/coding tended to teach shorter lessons
(29.1%) than those who were required to teach it (10.7%), which Chi-square test revealed was a
significant difference (p < .001). In regards to frequency, we found a fairly normal distribution
ranging from ‘rarely’ to ‘all the time’. The majority of teachers reported that they are teaching
computing/coding once a week, though 119 respondents are teaching more frequently than that
(see Table 3). This normal pattern generally represented the frequency of teaching
computing/coding in most countries except for the UK, which demonstrated an increasing
pattern toward ‘all the time’ (33% all the time, 31.6% 2-3 times/week).
Table 3
Frequency Computing/Coding Taught
We asked teachers to identify which age of students they taught: pre-K, K-2, 3-5, or 6-8 (see
Table 4). The majority of respondents are teaching 9-11 yr. old students, though there were
nearly as many teachers working with 5-8 yr. old children. The way we asked this question is
important to understand how we did and did not analyze subsequent data. We assumed that
many teachers likely taught more than one group of students. Thus, we enabled teachers to
indicate that they taught multiple groups. As figure 1 demonstrates, there were more teachers
who taught more than a single group than those who only taught coding to a single group of
students in these age categories. We did not ask the remaining questions on the study in relation
to this question. Thus, it was impossible for us to compare responses to subsequent questions
based on the age group taught (e.g., was the software taught to for 5-8 yr. olds different than for
12-14 yr. olds). As Table 4 demonstrates, there were many teachers who teach 9-11 yr. old
students as well as 12-14 yr. old students. Future research may seek to split questions on this
factor, as we assume there would likely be differences in teacher preparation, time spent, and
tools used depending on the age group taught.
Table 4
Distribution of student ages to which teachers teach coding in K-8
Ages taught Younger than 5 years old 5-8 yrs 9-11 yrs 12-14 yrs
Younger than 5 years old 16
5-8 years old 16 140
9-11 years old 15 110 214
12-14 years old 4 44 109 179
Totals 51 294 323 179
Figure 1. Distribution of how many age groups taught per respondent
Coding in K-8
What’s being taught?
The Scratch programming language was easily the most taught computing/coding language,
more than doubling the next closest language (see Figure 2), accounting for nearly 26% of
languages reported as being taught in K-8 (256/990). We collapsed all languages that were
reported as being taught five or fewer times into a single “other” category, which captured 24
different languages. It may also be worth noting that we separated Lego Mindstorms languages
into different categories because of the difference in these languages. From these descriptions,
we might conclude that the most common languages to teach kids to code involve using visual
blocks, as represented by Scratch,, and Lego Robotics. This finding agrees with de
Araujo, Andrade, and Serey-Guerrero’s (2016) findings, who found that the top three languages
used to introduce programming were Scratch, App Inventor and Alice.
Figure 2. Computing languages taught by frequency.
We noted a difference between countries in the languages taught. The top-5 languages account
for more than 2/3 of the languages taught in each country. While in every case, Scratch was the
most taught language, 2nd-5th places changed in interesting ways. For example, in the U.S.,
nearly as many people use Blockly as Scratch, which speaks to the popularity of the
curriculum. The UK is the only of these countries that has an actual textual language (python)
in second place, though python is a close third in Australia. This may be due to the UK’s
connections with Raspberry Pi, which promotes programming with Python. It could also be
related to the fact that in the UK, by the end of key stage 3 (roughly the equivalent of 8th grade
in the US), all students “must use two or more programming languages, at least one of which is
textual” (Department for Education, 2013, p. 190). In all likelihood, Scratch is being taught at
the lower primary levels, while python and javascript are taught to older students. In fact, in
each of these countries, we note that there are generally three visual and two textual languages
represented in the top-5 languages taught. This suggests that primary students are probably
progressing from visual to textual languages as they learn to code, perhaps putting at rest
concerns that children are only being taught in block-based computing/coding languages and
that doing so prevents them from transitioning to “real” programming languages.
Table 5
Top 5 languages taught (in order) in countries with more than 15 individual responses.*
U.S. (N=324) the UK (N=300) Finland (N=52) Australia (N=59)
1. Scratch (N =73)
2. Blockly (N=70)
3. Tynker (N=27)
4. Javascript (N=25)
5. BASIC (N=24)
1. Scratch (N=82)
2. Python (N=58)
3. Logo-based (N=29)
4. Javascript (N=20)
5. Blockly (N=19)
1. Scratch (N=26)
2. Lego EV3 (N=6)
3. Dr. Scheme (N=4)
4. Java (N=3)
5. Lego NXT (N=3)
1. Scratch (N=15)
2. Lego NXT (N=8)
3. Python (N=6)
4. Lego EV3 (N=5)
5. Tynker (N=4)
5. Logo-based (N=4)
5. Blockly (N=4)
* N = total languages taught
We were surprised to see BASIC make it so high up on the list. Although not represented in
Table 5, BASIC was the 6th-most taught language in the UK (N=17). Logo and BASIC were
two of the commonly taught languages in the early days of teaching computing in primary
education (Rich et al., 2013). It’s curious to see that they have persisted in some form in
classrooms around the world.
We asked teachers if they taught computing/coding as a standalone subject or integrated with
other topics. If integrated, we sought to understand what subjects they integrated
computing/coding with. In terms of the former question, teachers reported that they taught
computing/coding as a standalone subject nearly twice as often (N = 212) as an integrated
subject (N = 108). When teachers taught computing/coding as an integrated topic, we found,
perhaps expectedly, that computing/coding is most often integrated with mathematics (see
Figure 3), followed by science, language arts, engineering, and social science. This pattern
holds true for most countries, though the order switches a bit in the U.S., with engineering
(N=17) being integrated slightly more often than language arts (N=15). Teachers who only
reported teaching after school (and not during school) made up the largest portion of this
population, which suggests that after-school computing integration mostly happens in STEM-
centric groups. Curiously, optional teachers reported integrating computing/coding with social
science slightly more than engineering (N = 18 vs. N = 17, respectively).
From these reports, we might conclude that teachers are attempting to integrate
computing/coding with most subjects, thus supporting claims that computing/coding is a literacy
that can be applied in any domain (Barr & Stephenson, 2011; Wright, Rich, & Leatham 2012).
Coding in K-8
Figure 3. Subjects teachers integrate computing/coding into, when integrated
Teacher Preparation and Personality
In this section, we present questions about teachers’ own training and how they came to teach
computing/coding. We also discuss some reported concerns teachers faced prior to teaching
computing/coding. Responses in this category represent data from closed and open-ended
On average, more than 55% of teachers had no or very little training with computing/coding
prior to deciding to teach it in the classroom (see Figure 4). When taken together with the
average years teaching computing/coding, this suggests that most teachers are very new to this
profession when they begin teaching it. Thus, even though they may average nearly 5 years
teaching computing/coding, that experience represents the whole of the time over half have been
engaged with computing/coding at all, signifying a relative newness with the content of
Figure 4. Teachers’ Prior Experience with Coding
Perhaps equally important is to note how different this statistic plays out for teachers in different
countries. For example, when we look just at the UK, the majority of teachers (50.65%)
actually reported having a degree/certification that required coding, coding as a hobby, or they
were paid to code for their job. The two lowest categories drop by nearly 20 points to 37.67%.
In contrast, over 75% of U.S. teachers who responded to the survey had no experience or just a
crash course in computing. Initially, we thought this difference might be representative of the
fact that computing is now a required topic in the UK. However, that policy has only been in
place since the beginning of the 2014-2015 school year. Thus, there appear to be other factors at
play that have led those teaching computing/coding to have pursued it as a degree. Perhaps
these were people already interested in the topic who found themselves also interested in
teaching and made the switch when the new computing/coding curriculum was established.
Curiously, Finnish teachers represent a similar profile as U.S. teachers, with 62% of teachers
reporting they had little or no experience with coding prior to deciding to teach it in the
classroom. It appears that UK teachers who are teaching computing/coding are more prepared
to teach the topic than those in the U.S. and Finland.
This is not to say that those teaching computing/coding are not motivated to do so. In fact, we
found that the majority of teachers (50.1%) sought it out on their own. Another 28.2% of
teachers were introduced to computing/coding by a teacher/instructor, and 8.9% were introduced
to it by a colleague. This seems to suggest that most respondents are those with the initiative to
seek out computing/coding on their own.
Teacher attitudes toward computing/coding
Despite seeking out computing/coding training, teachers reported a variety of apprehensions
with teaching computing/coding in the classroom. We asked teachers to provide an open-ended
response detailing what their apprehensions were before teaching computing/coding to begin
with. Teachers could provide several apprehensions in a single response, or may have focused
on a single concern (e.g., “would it be beyond my students’ capabilities”). We used an open-
coding grounded theoretical approach to coding this and other open-ended responses, as
described in Rich (2012). Five main categories of apprehensions emerged: (a) external, (b)
instructional, (c) personal, (d) student, and (e) no concerns. Personal concerns far outpaced any
other concerns we noted (see, Figure 5).
Figure 5. Five main categories of teacher apprehensions about teaching computing/coding
Personal concerns dealt primarily with insecurities regarding teachers’ abilities, often
concerning computing/coding knowledge, the aptitude to learn new skills, or knowing less than
their students. Overwhelmingly, within personal apprehensions, teachers’ greatest concern was
their own knowledge about computing/coding (72.2%) or their ability to learn
computing/coding (12.18%) (see Figure 6). That this was teachers’ main concern is perhaps
Coding in K-8
unsurprising considering that over half of the teachers had little to no prior computing/coding
experience. What is perhaps more surprising is the fact that the second most frequent category
of concerns were none at all. In 55 cases, teachers intentionally responded, “None” to this open-
ended question, suggesting that a good portion (~21%) of teachers were well prepared
psychologically to begin teaching computing/coding.
Figure 6. Teacher apprehensions about teaching computing/coding by theme.
This theme of teacher confidence persisted throughout several questions and actually provided
some surprising insights. We presented teachers with 5 Likert-type items and asked that they
rate their confidence to accomplish each of the following (see Figure 7):
Figure 7. Teachers’ confidence to perform tasks related to teaching computing/coding
As noted in Figure 7, teachers demonstrated increasing confidence in their ability to help
students find answers to their computing/coding challenges, with nearly 70% of teachers
reporting somewhat or full confidence. They were likewise nearly as confident in their ability to
teach computing/coding. These two questions tend to deal with teacher efficacy, or a teacher’s
confidence in their teaching ability in general. Questions that related more to a teacher’s
personal knowledge showed a much more even spread, from little to full confidence.
Coding in K-8
Where results became surprising is when we filtered responses by those who were required to
teach computing vs. those who taught computing voluntarily. We would have expected teachers
who choose to teach computing without compulsion to be more confident in their
computing/coding abilities. The opposite was the case, however. Compared on the same
measures, required teachers consistently demonstrated higher confidence than optional teachers.
Table 6
Teachers’ confidence to somewhat or fully teach computing/coding
How confident are you in your ability to ... Required Optional p-value
code my own programs 56.9% 31.46% < .001*
debug student-generated code 68.96% 43.82% < .001*
help students to find resources to learn computing/coding 76.73% 66.29% .021*
integrate computing/coding with other subjects 56.74% 46.07% .031*
teach students computing/coding 75% 62.92% .007*
understand how to read others’ code 62.06% 40.45% <.001*
* significant at α = .05
These differences vary from ~10%-22% fewer teachers indicating higher confidence in each
category. The greatest difference appeared in areas of personal computing/coding knowledge
and ability. Independent samples t-tests revealed that these differences were statistically
significant on each measure (p < .05), with the greatest significance occurring in areas of teacher
coding knowledge; that is, the ability to code, to understand others’ code, and to debug others’
code. When considered together with data on teachers’ backgrounds and apprehensions, we
might surmise that the teachers who choose to teach computing/coding are not those who have
previously been successful with it, but rather those who, for some reason or another, recognize
computing/coding as being important and seek to teach it despite a lack of computing
knowledge. We found this characteristic to curiously go against our expectations. Fortunately,
other questions we asked revealed their motivations for teaching computing/coding to begin
We asked teachers whose idea it was to teach computing/coding. The results confirm what we
have seen from other questions—that these teachers are overwhelmingly the initiators. When
looking at all the data, we find that 71% of teachers overall reported it was their own idea to
begin teaching computing/coding. While we might expect these numbers to drop in countries
where computing/coding is now compulsory, these results persisted as we looked at this
question by country. In the UK, for example, we found that teachers reporting it was their idea
to start teaching computing/coding only dropped to 62.34%, while in Australia (81.25%) and
Finland (89.66%) this proportion actually rose. We further looked at those who were required
(57.63%) vs. those who chose to teach computing/coding (80.43%). Chi-square tests revealed a
statistically significant difference (p < .001), and that those who were required to teach
computing did so at the behest of their administrators more often than those who chose to teach
it. However, we note the majority of teachers who are required to teach computing/coding still
indicated that it was their idea to do so in the first place.
The picture that forms from looking at all the whole of these data is that this group of teachers is
motivated to teach computing/coding, even if they have little training to do so. Teachers
provided qualitative insight into why they believed students should learn to code through open-
ended responses. Responses emerged in over a dozen different categories. We categorized
these into three major themes: “A Better Life,” “Dispositions,” and “Thinking skills.” Better
life comments made reference to: improved job opportunities, the essential nature of
computing/coding, and the ability to better understand or control the future world. Dispositions
referred to computing/coding’s ability to develop particular attitudes, such as: resilience,
empathy, confidence, increased motivation for schoolwork, and collaboration. Thinking Skills
referred to aspects of cognitive development, such as: problem solving, logical thinking,
analytical reasoning, transfer to other subjects, and generally improved thinking abilities.
While over a dozen sub-categories emerged, two motivations dominated teachers’ reasons for
why they believe students should learn to code (see Figure 8): job skills (38.8%) and problem
solving (23.2%). Any time a teacher referred to the acquisition of computing/coding skills for a
student’s economic well-being, we qualified it as relating to “job skills.” For example, the
following responses commonly appeared:
1. It helps them problem solve and encourages them to pursue computer programming as a hobby
or career.
2. It will also give students a leg up in any competition science career.
3. I am a computer scientist and I know how critical it is for future jobs!
4. Makes them more aware of the possibilities that coding gives them, i.e. possible job
5. Future high paying jobs.
6. Just about everything we do involves some sort of computer coding. This is such a highly
sought after skill, we need to prepare our students for this field and give them opportunities to
discover if they have a passion for it.
7. Supermarket checkouts are getting replaced by self-checkouts and many manual jobs will soon
disappear, making way for more skilled jobs. For many roles in this industry, coding skills will
be extremely important.
8. It is a skill that will help them get ahead.
9. for them making more confident and above all for their future. I believe they all will be better
ranked on the work market as adults.
10. Is the time for people to understand the basic of technology around them, because it make the
life easy and find more opportunities.
Coding in K-8
Figure 8. Teachers’ reported reasons for why kids should learn computing/coding
The second-most frequently provided reason for teaching kids to code was problem-solving.
Problem-solving skills referred specifically to the notion that learning computing/coding enables
students to become better problem solvers, either by teaching them to break a problem into its
parts, look at problems in new ways, or develop the resilience and “grit” to stick with problems.
Some representative problem solving reasons for learning computing/coding were:
1. Helps in problem solving. Also to realize there is more than one way to solve something and get
the same result. You must follow steps to get to the end result you want.
2. I have often told students to program their brain like they write code. Sometimes it helps
students to look at problems in a different way.
3. Coding develops deductive thinking skills, as it requires one to break down the steps and put the
parts in order.
4. It teaches grit to solve problems
5. The basic problem solving that kids learn through coding is a valuable lifetime educational skill.
6. We need to promote higher level thinking and problem solving, which seems to be decreasing as
students become more dependent on information being given to them.
7. General problem solving; logical approach to difficult situations (decomposition, etc.).
8. Problem solving and doing so independently is a huge skill that many kids with disabilities have
difficulty developing. I think coding and computing can benefit them by teaching these skills.
9. Basic problem solving skills are learnt, which can be applied to life
10. Problem solving is an essential discipline required in the future of every student. Computational
thinking can be used to develop these skills.
Experiences Teaching Computing/Coding
In this final section, we look at teachers’ actual experiences with teaching computing/coding.
This includes how it has been received by others, teachers’ challenges and successes, and
finally, advice from teachers for others who might be interested in teaching computing/coding.
How is the teaching of computing/coding going?
We asked teachers to rate how well computing/coding has been received among the different
stakeholders, including students, colleagues, administrators and parents. Teachers reported what
might be considered a very positive view of how computing/coding has been received amongst
the different stakeholders (see Figure 9).
Figure 9. Teachers’ perception of how computing/coding has been received by different
Teachers reported an upward trend of positive reception for every stakeholder except for
colleagues, which tended more toward “cautious enthusiasm” than “loving it.” Teachers
perceive students as positively receiving computing/coding the most, and by a large majority at
that, with over 70% of teachers reporting that students have loved computing/coding. Including
those who report that students are cautiously enthusiastic accounts for over 90% of students. In
practical terms, this represents a positive reaction to computing/coding for over 54,000 students.
Additionally, 70% of teachers report that their supervisors are equally enthusiastic about
computing/coding, with parental support not far behind. Even though teachers reported that
their colleagues were more cautious, they still reported over 50% being at least cautiously
Coding in K-8
enthusiastic. We are curious if the introduction of any other subject in school would have such a
positive response by students, teachers, supervisors and parents alike (as interpreted by their
This leads us to question, if the reception to computing/coding has been so positive, what
successes have teachers noticed? And what have students produced to warrant this positivity?
We asked teachers to provide open-ended responses to these questions. Even though we worded
the question in such a way that teachers could report personal successes (“what successes have
you noted in teaching computing/coding?”), nearly all responses were centered on successes
with students, rather than personal or professional successes of the teacher. Teachers’ qualitative
explanations of success triangulated clearly with the results we saw in reception, with student
interest and fulfillment accounting for over 42% of the provided responses (185/438). By
comparison, the next most frequent response (problem solving) appeared 8.68% of the time. We
categorized a response as ‘student interest’ if the teacher indicated student enthusiasm or interest
as a measure of success for computing/coding. Typical responses were:
1. Enthusiastic pupils
2. Children very enthused.
3. Seeing pupils’ enjoyment of the course
4. Kids are highly engaged
5. Kids are excited to learn
6. Kids enjoy it and want to do it in free time.
7. The kids love it and it is a challenge they embrace.
8. I’ve had many students go on to high school and take more programming classes because they
were excited about learning programming in the middle school.
9. Large numbers of students enjoy their own successes in solving problems, thus computing can
be very rewarding. Generally students are very interested in computing.
10. Mainly in robotics, it is helpful, that pupils have real things and real-world problems to solve
with computer. It is for many more fascinating, than text only codding. But "scratchers" are
motivated too.
Consistent with a grounded theoretical analysis as described in Rich (2012), we identified
student interest varying along different dimensions, from comments about simply liking coding
to comments about student satisfaction and fulfillment, to receiving awards or improved
accomplishments. Comments at this higher end of the spectrum emphasized how learning
computing/coding led to noted change in student behavior, as evidenced through a few examples
1. GCSE results (Researcher’s note: GCSEs are national exams that are taken annually by students
in most of the UK)
2. Children creating wonderful programs and winning awards. My team won the highest robot
game award with the highest points in the FIRST Lego League, which is a competition for
3. The sense of satisfaction when you encourage a student to solve their own problems and they
stick at it until they do, at which point they get a huge amount of satisfaction.
4. Children who have struggled in other subjects and perform well on computing bloom, they
become more confident, and are able to help others changes their place in the social grouping in
5. Many parents informed me that their children stopped playing computer games at home and
they dedicated a lot of time to code their own games and apps.\Many girls discovered a new
way to express their creativity and loved coding.\Timid children have experienced the feeling of
success and the recognition from their peers\It was revealed that several children had special
talent in programming and computational thinking; a new talent, which until then was not
perceived by the teachers of other subjects nor in their performance in other school subjects.
6. Kids are proud of their work and do more than they originally thought possible. One student
received NCWIT recognition.
7. Major changes in attitudes to learning. Pupils have great fun and solve real problems. They are
highly motivated in creating code that works correctly. Rewarding students results sometimes
even for students who have difficulties in other areas of the curriculum.
8. When students have extra time they go back to the coding activities instead of playing games.
9. The uptake of pupils going on to GCSE Computing.
10. There are many students that I have taught, especially my 8th grade students who have found
their strength in coding. They may lack interest or skill in Reading or Math, but find natural
talent in coding. The students are able to problem solve and think in different ways that standard
teaching does not teach.
In addition to these, comments, there were a handful of teachers who reported students winning
awards and other recognitions for their efforts in computing/coding challenges. We noticed that
answers to the question, “what changes, if any, have you noted in students since you started
teaching computing/coding” could similarly be categorized into dispositions and thinking
abilities, which demonstrated further evidence of some of teachers’ claims of success. As
before, the most frequent response (23.72%) dealt with students simply showing more interest—
both in computing/coding specifically and in school more generally. Perhaps the most exciting
observations, however, come from the next 3 most frequent observations: problem-solving
(13.48%), student attitude (12.94%), and resilience (11.86%).
As we read through comments in these three areas, we noticed a common thread among
problem-solving, attitude and resilience. Problem solving comments addressed students’ ability
to approach, break down, and work through difficult and open-ended problems. For example,
teachers reported that students, “have become more confident with problem solving,” and “they
can break problems down into smaller chunks more easily.” This feeling, that students, “are
more capable to see every aspect of a problem,” was frequently repeated. Attitude dealt with
student dispositions beyond interest and more in line with confidence and the courage to try new
things. Comments about resilience indicated increased persistence in the face of difficulty.
Although we see problem solving as being related to thinking skills, it was clear in teachers’
responses that the changes they noted in students as they approach problems have also been
dispositional. Specifically, teachers repeatedly pointed to increased “resilience” among students
as they approached problems. As one teacher put it, “They realize it's okay to fail when coding
because you just try again.” Another stated, “They have become more comfortable in making
mistakes, that it is a natural step in thinking and creation.” Yet another described this as
Coding in K-8
students having a “willingness to try and not give up.” One teacher provided a more balanced
observation, noting “Some become more resilient and deal with setbacks well, but some do just
give up.” Overall, however, the preponderance of teachers’ comments about students persisting
more (over 10% of all comments about student changes) and gaining confidence to try new or
difficult things (another 10+%) raises interesting questions about the nature of failing and
“trying again” in computing/coding. Research has long shown that failure has led to decreased
effort and learned helplessness (Brown & Inouye, 1978). In fact, failing is the precise opposite
of mastery experiences, the most influential source of self-efficacy (Bandura, 2010). Teachers’
responses to “what changes have you noticed in students since you began teaching
computing/coding” appears contrary to this research. It would appear that computing/coding
seems to offer students a safe environment in which failure is not only OK, but expected. The
fact that debugging protocols and programs are built into coding software suggests that even the
most capable programmers fail and are in need of tools to productively deal with failure. This
window into “resilience” and confidence is something that ought to be further studied to better
understand how computing/coding might increase resilience and how students themselves view
and deal with failure while coding.
Although we have highlighted many positive effects that teachers have observed from teaching
computing/coding, it is not without its struggles. As with success, we asked teachers to indicate
what challenges they have encountered in teaching computing/coding. While the vast majority
of successes and changes focused on students, the most oft-cited challenges for teachers were
actually personal (20.45%), followed closely by resource problems (19.19%). Student
knowledge was the 3rd-most cited problem (15.66%), followed by attitude (10.86%) and time
(9.6%). Teachers’ personal challenges largely support the already-highlighted lack of personal
knowledge about computing, represented by the following responses:
1. Being new to it myself.
2. Often the children are more computer literate than I am.
3. I am very weak in understanding coding.
4. I don’t have the skills myself and it is hard to help.
5. I have a hard time looking at the code and seeing why it isn't working.
6. Keeping up with the students!
7. learning about OOP and implementing them, at a 'complex' / 'advanced' level.
8. I don't know everything- the kids, especially higher grades are more advanced than I am.
9. Finding a balance between extending and challenging those who have surpassed my own
expertise and keeping those who don't understand moving along is a challenge.
10. Not having a background myself in coding it's been difficult to always be able to relate what we
do back to real-world applications and languages.
Resource problems also were a prominent challenge that teachers deal with when teaching
computing/coding. Resource challenges typically fell into 4 categories: quantity, connection,
functionality, and teaching. Quantity resource problems refers to whether or not teachers
possessed the necessary amount of equipment needed. For example, some teachers complained
they didn’t have “enough equipment,” “enough pads or computers.” As some teachers
mentioned, “cost is also a factor,” which may prevent them from acquiring the needed
equipment. Connection problems were prominent and dealt with network capacity and speed
limitations. Inasmuch as many programs that teachers are using are online today, a reliable and
fast internet connection is necessary for a productive learning experience. Teachers mentioned
that they had problems with “slow networks,” or “occasional technology issues with internet.”
One teacher mentioned that “usually connection fails as a result of poor connection in schools,”
which more or less summarized this type of issue as described by many teachers. Functionality
challenges indicated that there was a problem with technology not working (e.g., “computers
not working.”). A teacher who uses robots indicated that they “were not 100% reliable,” which
made teaching with them difficult. One facet of functionality dealt with times when teachers
possessed the computers and the software, but were unable to “get software onto machines,” for
one reason or another. This was further reflected in a lack of “site licenses” for proprietary
software or coding curricula. Finally, teaching resource problems dealt more specifically with
the need for lesson plans, knowing what content to teach, or a lack of resources indicating how
to integrate computing/coding with other subjects.
Related to the notion of challenges is how teachers solve problems when they occur while
computing/coding. For this question, we provided teachers with a list of resources and asked
them to mark which resources they used. Specifically, we asked: When you encounter questions
or problems that you don't immediately know how to resolve in computing/coding, how do you
go about solving the problem?
Figure 10. Strategies that teachers use to solve computing/coding problems
Figure 10 presents the percentage of teachers that indicated they used each type of resource.
Nearly 4 out of 5 teachers indicated that they used, “online resources” to solve these problems,
with nearly half of teachers indicating they used a friend/colleague to solve their problems.
Perhaps surprisingly, more than a third of teachers use the official coding documentation to
solve problems, while nearly a fifth indicated that they just work around the problem. Possibly
the most revealing response to this question came from the option to indicate something “other”
than the sources we included in this list. When a respondent indicated, “other,” they were then
prompted to write a novel response. Over 7% of teachers wrote that they actually would solve
Coding in K-8
their computing/coding issues by asking students for help. Given that “ask students” was not
one of the original choices provided, we wonder if this number isn’t actually under-represented
and that in reality a greater proportion of computing/coding teachers actually solve their
problems by asking for help from students. As with our earlier observations on reception to
computing/coding, we are curious if this response is unique to computing/coding among
teaching subjects. After all, we hardly imagine that 7% of teachers admit to asking students for
help in solving problems in their normal language arts, science, social studies or math courses.
On the one hand, this is likely reflective of teachers’ lack of computing knowledge. The
willingness to ask students for help may also signal a shift in the teacher’s role when it comes to
computing. The degree to which teachers rely on students for problem solving in
computing/coding certainly warrants further consideration and research.
Doing it “right”
Benjamin Franklin (one of the founders of the United States) is credited for stating, “Experience
is a dear teacher, but fools will learn at no other.” In other words, there is wisdom in learning
from others’ experience. We asked teachers to provide recommendations on how to best teach
computing/coding in K-8, what they wish they had to make their jobs easier, and what they
would do differently if they could start over. In this section, we provide teachers’ feedback on
these questions as general advice for others who might be interested in teaching
computing/coding to kids.
Advice offered by respondents fell into three different categories: things to know, actions to
take, and resources to use (see Table 7). The most common type of advice focused on actions to
take. Far and away the most frequent action (and indeed, any piece of advice), was a message to
teachers who might be hesitant or might be caught fretting over personal apprehensions dealing
with a lack of personal computing knowledge. Nearly a third of all teachers (32.23%)
recommended to other teachers that they “jump in,” “have a go,” or “Just start!”. As one
respondent put it, “What are you waiting for?”
The encouragement to start does not indicate that there is no work involved in teaching
computing/coding. The second-most oft-repeated imperative was to learn to code for
themselves. To “try, try, and try some more,” to “take a class,” or to “make sure you are
confident in the language before you teach it to others.” However, there were several teachers
(15) that suggested others should learn “little by little” or stay “one step ahead” of the students.
What’s more, there was a large contingent of teachers (37) who clearly stated that it was not
necessary to know all the code themselves and instead indicated that teachers should be willing
to learn with and from their students. This role reversal has interesting implications for teaching
and supports the imperative to “just start.” As opposed to other well-known school subjects,
teachers are suggesting that it’s ok to not possess all the knowledge they want their students to
gain and instead become the students themselves with their own pupils becoming the teachers
(or at least co-learners). While some have long promoted that teachers learn along with their
students, the preponderance of computing/coding teachers that suggest they learn the content
from their students has interesting implications for elementary computing education that ought
to be further explored.
Table 7
Advice from computing/coding teachers to other teachers about coding in K-8
Things to know Actions to take Resources to use
Capacity (39)
(18) Students are capable
(15) You don’t need to know
(2) You’ll learn as you go
(2) It gets easier
(1) You know more than you realize
(1) Students learn slowly
Attitude (37)
(11) it’s ok to fail
(11) It’s fun/valuable
(7) Not so bad, once you try
(4) Students love it
(3) Students share your attitude
(1) Students need encouragement
Teaching Computing (9)
(6) There are lots of resources
(1) Computing changes
(1) Coding and teaching coding are
(1) Figure out assessments early
Pedagogical ideas (94)
(28) Start simple and teach basics
(24) Make it fun/relevant to kids
(19) Use available resources
(12) Teach at students’ level
(8) Let students teach students
(2) Integrate with other subjects
(1) small groups
Learn the code (93)
(41) Learn first
(37) Learn from your students
(15) As you go
Just start (88)
“Be” attitudes (41)
(13) Be brave
(11) Be excited
(8) Be patient
(7) Be flexible
(2) Be confident
Get support (18)
(16) from colleagues
(1) from administrators
(1) from community
Don’t teach it (1)
Software (28)
(12) Scratch
(3) Scratch Jr.
(1) Hour of code
(1) Tynker
(1) Daisy the Dino
Teaching (9)
(8) Unplugged Activities
(1) Bootstrap
Human (5)
(2) Colleagues
(2) Computing at School
(1) Google CS First
Learning (3)
(2) workshop
(1) Take a Course
(1) How to Design
Physical (2)
(1) Beebot
(1) Code Master
One theme that appeared across all three types of recommendations dealt with resources.
Respondents seemed to assure other teachers that there are lots of resources, admonished them
to use what’s available, and in many cases shared the specific resources that were the most
useful to them. These resources were not always software-specific. For example, a number of
teachers indicated that colleagues are a great place to go for both training or general pedagogical
ideas on how to approach the teaching of computing/coding. Furthermore, resources ranged
from things that teachers might teach with, software for kids to learn to code, as well as how
teachers themselves could learn more about coding. These focused on taking courses to
improve one’s capacity, workshops designed to help teachers without any computing/coding
experience learn how to teach it to children, and even extended to an in-depth textbook on a
specific pedagogy used to teach programming even at the university level. Teaching-focused
resources centered on well-defined curriculum and curriculum support groups. In summary,
despite its nascent nature as a subject in K-8, teachers have found that there are actually a bevy
of resources to support the teaching of computing/coding to children.
Another way to find out how to “teach it right” is to ask teachers, if they could start over, what
would they do differently. Teachers’ responses to starting over fell into four general categories:
Coding in K-8
pedagogy, resources, learning, and when to start (see Table 8). Within these, pedagogical
recommendations were the most common. It is, however, important to note that the second-
most prominent response was to do nothing. Fifty-nine teachers (nearly 23%) reported that they
would do things the same way if they got a second chance. This seems to be very encouraging,
indicating that, despite some of the aforementioned challenges and personal doubts about ability,
many teachers are content with the way things seem to be going. Furthermore, the focus on
improving pedagogy is healthy and one that would be expected of any good teacher as they
begin to teach a new topic. As one teacher noted, “I am always changing my lessons so they are
improving (hopefully).”
Table 8
What computing teachers would do differently if they could start over
Pedagogy Nothing Resources Learn When to Start
(54) Pedagogical ideas
(14) Prepare more
(9) Integration with other
(8) Teach it more
(7) Reassess pedagogy
(7) Use more “unplugged”
(5) Have a project to work
toward/end goal
(3) Differentiate student
(59) Teachers
stated they
would do
differently if
they were to
start over
(27) Resource
(12) Get support
(7) Prepare more
(4) Get resources
(3) Used resources
(14) Learn before
(8) Get training
(5) Learn to code
(2) Learn together
with students
(8) Start in earlier
(7) Start sooner in
my career
(6) Start sooner in
the school year
(1) Start later in the
Teachers proposed a variety of pedagogical ideas that they might use if given a second chance.
These ideas coalesced around those dealing with fostering conceptual understanding (e.g.,
“learn the theory first” instead of starting with “straight coding,” “introduce more computational
thinking concepts rather than just code,” “teach the concepts before the code,”), focusing on
practical projects and application (e.g., I would seek practical applications of what they want to
learn,” “have all teachers solving a school-wide problem), changing the level of freedom given
to students (some indicated giving more freedom, while some suggested they’d provide more
structure), and allow students to experience and address failure (e.g., “provide more ‘code in
error’ opportunities to fix the code (logic and syntax) to really help develop confidence early
This study has provided a broad view of the teaching of computing/coding to 5-14 year-old
students from around the world. It is not without its limitations, however, which may largely be
boiled down to two things: sampling and data collection. Inasmuch as this was a voluntary
survey sent out using a snowball method, we do not know if the answers from this group of
respondents are representative of all of those who may be teaching computing/coding. There is
likely bias toward the positive perception of computing/coding in K-8. Furthermore, while the
way we asked questions sought to give voice to this group of teachers, the length of the survey
and the types of questions asked may have led some to leave their responses incomplete.
Despite these limitations, however, we feel we now have a picture of how computing/coding is
happening in K-8 where previously we only could rely on studies of limited geography.
Possibly one of the greatest limitations of our data is that there is insufficient space to explore it
fully in a single report such as this one. We encourage readers to download and explore the data
generated in this study for themselves (see
international-survey-initial-results/) and to share any further insights with the computing/coding
in K-8 community. The more we understand about how this subject is being taught, the better
we can teach it.
We set out to better understand the ways in which computing/coding is currently being taught to
young children around the world. Over 300 teachers from 23 different countries responded to
an open-invitation survey sent out to groups that might be connected to teachers who teach
computing/coding in K-8. These teachers showed us that on average they have more experience
than we expected (over 4 years), although such experience varies greatly by country. For every
three teachers who are now required to teach computing, there were two teachers who
volunteered to teach it. Time and again, teachers revealed that they don’t necessarily have a
high confidence in their computing/coding ability, but that seems not to be impeding them from
teaching it as a subject (even though this was their most prevalent apprehension and challenge).
Indeed, the majority of teachers indicated that it was their own initiative that led to their
teaching of computing. Teachers’ perceptions of how the teaching of computing/coding has
been received has likely encouraged teachers to continue on this path, with teachers indicating
that over 70% of students have “loved” computing/coding, and teachers perceive a positive
reception from their colleagues, administrators, and students’ parents alike. Teachers have seen
positive changes in students, ranging from simple excitement about computing/coding to a
reversal of roles for students who struggled in other subject areas succeeding in
computing/coding. Many even reported that students have won awards and competitions, with
this leading to behavioral and career path changes. These experiences have led most
respondents to encourage other teachers to who might be considering teaching
computing/coding to “just start.”
Perhaps some of the most surprising findings were role reversals and behavioral changes:
students who formerly struggled; overwhelming enthusiasm from teachers, students,
administrators, and parents; teachers asking students for help when they get stuck; and students
persisting through failure rather than giving up because of it. It’s possible that this positivity
and enthusiasm is in part due to the newness of the subject and that we may see it decline as
computing/coding becomes commonplace in the core. The teaching of computing/coding is
going to bring with it a whole new set of challenges that are different from those of other
subjects. This study provides a glimpse of how those challenges and successes differ from other
core subjects. As we push to make computing/coding compulsory in school, we need to better
understand how to take advantage of the positive effects reported herein so that we might better
address the challenges that will inevitably come with the teaching of a new subject. In the
words of so many of the teachers in this study, though, if we want to better understand the
teaching of computing/coding in K-8, we should, “jump in!”
Coding in K-8
ACARA. (2016). The Australian curriculum. Retrieved from
Balanskat, A., & Englehardt, K. (2015). Computing our future. Computing programming and
coding. Priorities, school curricula and initiatives across europe. European Schoolnet.
Bandura, A. (2010). Self-Efficacy the corsini encyclopedia of psychology. John Wiley & Sons,
Inc. doi:10.1002/9780470479216.corpsy0836
Brown, I., & Inouye, D. K. (1978). Learned helplessness through modeling: The role of
perceived similarity in competence. Journal of Personality and Social Psychology,
36(8), 900.
Brown, N. C. C., Sentence, S., Crick, T., & Humphreys, S. (2014, June). Restart: The
resurgence fo Computer Science in UK schools. ACM Transactions on Computing
Education, 14(2), Article 9. DOI:
Clements, D. H. (2002). Computers in early childhood mathematics. Contemporary Issues in
Early Childhood, 3(2), 160-181.
Clements, D. H., Battista, M. T., & Sarama, J. (2001). Logo and geometry. Journal for Research
in Mathematics Education. Monograph, 10(Logo and Geometry), i.
CS4RI (2016). Computer Science for Rhode Island. Retrieved from
Cutts, Q., Robertson, J., Donaldson, P., & O’Donnell, L. (2017). An evaluation of a professional
learning network for computer science teachers. Computer Science Education, 1-24.
de Araujo, A., Andrade, W., & Serey-Guerrero, D. (2016). A systematic mapping study on
assessing computational thinking abilities. In 2016 IEEE frontiers in education
conference (FIE) (pp. 1-9). IEEE.
Delcker, J., & Ifenthaler, D. (2017). Computational thinking as an interdisciplinary approach to
computer science school curricula. In P. Rich & C. Hodges (Eds.). Emerging Research,
Practice and Policy in Computational Thinking. Springer.
Department for Education (2013, July). The national curriculum in England. Framework
Garneli, V., & Giannakos, M. N. (2015). Computing education in K-12 schools: A review of the
literature. Proceedings from EDUCON, p. 543-551.
Furber, S. (2012). Shut down or restart? The way forward for computing in UK schools.
London: The Royal Society.
Heintz, F., Mannila, L., & Färngvist, T. (2016). A review of models for introducing
computational thinking, computer science and computing in K-12 education. In Frontiers
in education conference (FIE), 2016 IEEE. Erie, PA, USA: IEEE.
Kallia, M. (2017). Assessment in Computer Science Courses: A Literature Review. Retrieved
Lye, S. Y., & Koh, J. H. L. (2014). Review on teaching and learning of computational thinking
through programming: What is next for K-12? Computers in Human Behavior, 41, 51-61.
Ribeiro, R. (19 Dec. 2013). Chicago makes computer science a core subject. EdTech
Magazine. Retrieved from:
Rich, K., Strickland, C., & Franklin, D. (2017). A Literature Review through the Lens of
Computer Science Learning Goals Theorized and Explored in Research. Proceedings
from SIGCSE ’17, p. 495-500. New York, New York, USA.
Rich, P. J. (2012). Inside the black box: Revealing the process in applying a grounded theory
analysis. The Qualitative Report, 17(49), 1-23.
Rich, P., Bly, N., & Leatham, K. R. (2014). Beyond cognitive increase: Investigating the
influence of computer programming on perception and application of mathematical
skills. Journal of Computers in Mathematics and Science Teaching, 33(1), 103-128.
Rich, P. J., & Hodges, C. (2017). Emerging research, practice, and policy on Computational
Thinking. Springer.
Rich, P. J., Leatham, K. R., & Wright, G. A. (2013). Convergent cognition. Instructional
Science, 41(2), 431-453. doi:10.1007/s11251-012-9240-7?LI=true#page-1
Robertson, J. (1998). Paradise lost: Children, multimedia and the myth of interactivity. Journal
of Computer Assisted Learning, 14(1), 31-39.
Román-González, M., Pérez-González, J. C., & Jiménez-Fernández, C. (2016). Which cognitive
abilities underlie computational thinking? Criterion validity of the computational
thinking test. Computers in Human Behavior.
Sáez-Lopez, J. M., Román-González, M., & Vázquez-Cano, E. (2016). Visual programming
languages integrated across the curriculum in elementary school: A two year case study
using "scratch" in five schools. Computers & Education, 97, 129-141.
Sentance, S., & Csizmadia, A. (2017). Computing in the curriculum: Challenges and strategies
from a teacher’s perspective. Education and Information Technologies, 22(2), 469-495.
Sentance, S., Dorling, M., McNicol, A., & Crick, T. (2012). Grand challenges for the UK.
Upskilling teachers to teach computers science within the secondary curriculum.
Proceedings from the 7th Workshop in Primary and Secondary Computing Education,
New York, New York, USA.
Shute, V. J., Sun, C., & Asbell-Clarke, J. (2017). Demystifying computational thinking.
Educational Research Review. doi:10.1016/j.edurev.2017.09.003
Smith, D. F. (22 Sept. 2015). The ‘Grand Experiment’ behind NYC schools’ new computer
science program. EdTech Magazine. Retrieved from:
Subhi, T. (1999). The impact of LOGO on gifted children's achievement and creativity. Journal
of Computer Assisted Learning, 15(2), 98-108.
Valverde-Berrocoso, J., Fernández-Sánchez, M. R., Garrido-Arroy, M. C. (2015). El
pensamiento computacional y las nuevas ecologías del aprendizaje. RED, Revista de
Educación a Distancia, 46(3), retrieved 1 May 2017 from
Vivian, R., Falkner, K., & Falkner, N. (2014). Addressing the challenges of a new digital
technologies curriculum: MOOCs as a scalable solution for teacher professional
development. Research in Learning Technology, 22(1), 24691. doi:10.3402/rlt.v22.24691
Coding in K-8
Waite, J. (2017). Pedagogy in teaching Computer Science in Schools: A Literature Review.
Retrieved from
Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33-35.
Wong, G. K., Cheung, H. Y., Ching, E. C., & Huen, J. M. (2015). School perceptions of coding
education in K-12: A large scale quantitative study to inform innovative practices. In
Teaching, assessment, and learning for engineering (TALE), 2015 IEEE international
conference on (pp. 5-10).
Wright, G., Rich, P. J., & Leatham, K. (2012). How programming fits with technology education
curriculum. Technology and Engineering Teacher, 3-9.
Young, S. H. (Feb, 2016). I have been a student of SW education since elementary school.
Retrieved from: