Can Everybody Learn To Code
Can Everybody Learn To Code
Computer science
community perceptions about learning the fundamentals
of programming
Rebecca Vivian Katrina Falkner Claudia Szabo
School of Computer Science
The University of Adelaide
South Australia, Australia
firstname.lastname@adelaide.edu.au
ABSTRACT 1. INTRODUCTION
Recently, we have seen a wave of initiatives that encourage The ‘learn to code’ movement has emerged with initiatives
everybody (from children to adults) to learn to code and many targeted at women and girls (She++, Girls Who Code,
countries implement new K-12 computing curricula. However, She.Codes), children (Scratch, Code Clubs, Code.org, Code
research has identified the numerous challenges experienced by Avengers) and adults (edX, Khan Academy, Code School, Code
students learning to code. With much of the literature focused on Academy), founded on inspirational videos, celebrity
student perceptions and capabilities, what insight might the endorsements, idols in digital technologies development,
computer science (CS) community offer about learning to code gamification and competitions, among others. The intention is to
that may guide future directions in K-12 practice and research? empower individuals to be more than consumers and users of
digital technologies, by providing them with the opportunity to
We invited the CS community to respond to an online survey develop skills to be creators of digital technologies and software.
about learning to code. This survey forms a pilot to determine Additionally, we have seen a wave of reports urging the
whether the topic warrants further exploration. We explore the introduction of computing curriculum into schools along with
responses in light of the introductory programming literature and some countries implementing new computing curriculum [1, 4,
Mindset Theories to identify perceived capabilities required, the 17, 36, 38, 39, 44]. However, it is known that introductory
challenges and potential barriers to learning to code. programming courses at university are challenging for many and
Our results were based on a small sample, mostly from Australian that while some students excel, others struggle with mastering
academics and IT professionals. A majority perceived that programming skills and development processes [19, 20, 22, 25,
anybody could learn to code, with effort and motivation, however, 31]. First year students in introductory programming courses
that more advanced levels of programming require mathematical reportedly drop-out for a number of reasons, including difficulties
logic, a desire and ability for problem-solving and abstract in understanding course topics, a lack of motivation, poor time
thinking. A variety of challenges were identified, which may have management, course arrangements and a preference for other
implications for CS education and research. The findings warrant courses [19, 20]. Teachers of introductory courses also recognise
further exploration into the area of CS community perceptions, the difficulties that students face, citing theory and computer
particularly with educators of introductory programming courses. science concepts as well as the ability to apply knowledge to be
most challenging for students [19].
Categories and Subject Descriptors With a global movement that encourages everybody to learn to
K.3.2 [Computers and Education]: Computer and Information code, what can we learn from the challenges identified in
Science Education – computer science education. introductory programming literature and how might this drive
future research and practice? Currently much of the existing
General Terms literature is based on students’ experiences and perceptions, but
can the CS community offer insight, in terms of learning to code
Computer Science Education and learning.
in the scope of a learn to code movement? In order to explore the
topic, we conducted an online open-ended survey and sought CS
Keywords community participation. We asked the participants to share their
Introductory programming, university students, perceptions. perceptions about the ease of learning to code and what they
perceive to be the required capabilities and challenges of learning
the fundamentals of programming. We drew on the literature
Permission to make digital or hard copies of all or part of this work for
about introductory programming and applied a lens of Mindset
personal or classroom use is granted without fee provided that copies are Theories, such as Attribution Theory [42, 43] and implicit theories
not made or distributed for profit or commercial advantage and that copies of intelligence [5, 11] as a guide to interpret participant responses.
bear this notice and the full citation on the first page. Copyrights for
components of this work owned by others than ACM must be honored. To begin, we provide an overview of the ‘learn to code’
Abstracting with credit is permitted. To copy otherwise, or republish, to movement and new computing curricula. We review findings
post on servers or to redistribute to lists, requires prior specific permission about learning to code from existing introductory programming
and/or a fee. Request permissions from Permissions@acm.org. research. Following, we present the literature on mindset theories
Koli Calling '14, November 20 - 23 2014, Koli, Finland Copyright 2014 and how they assist us to understand learning new subject areas,
ACM 978-1-4503-3065-7/14/11…$15.00 before moving on to present the findings obtained through our
http://dx.doi.org/10.1145/2674683.2674695 pilot survey into CS community perceptions of learning to code.
41
2. LITERATURE experiences at the university level as a guiding point. While such
courses are starkly different to early years and primary years’
2.1 The ‘learn to code’ movement visual programming applications, such findings may be applicable
New computing curricula are being introduced around the world, to the middle and upper year levels when students encounter
with a number of countries in Europe considering their adoption general-purpose programming environments as well as for the
or already implementing curriculum into schools. Two examples teachers implementing learning activities. However, CT and
include UK [4] and Australia [1], which have introduced programming in the early years is a new area and so it cannot be
computer science concepts and programming to children in the ruled out that young children, although using a different context,
primary and high school year levels. From Stage 1 in the UK do not experience the same challenges or require similar skills.
curriculum (5 years of age), students learn about algorithms and
are expected to apply logical reasoning to create and debug simple In university-level introductory programs, a number of students
programs. In Australia, students begin by developing the struggle with mastering programming skills and development
fundamentals of computational thinking (CT) and an processes [19, 20, 22, 25, 31, 33]. It is unusual for learners to
understanding of algorithms and start to apply their skills to visual write robust and perfect code on their first attempt in introductory
programming from Year 3 (8 years of age). From Year 7 onwards, programming, however, some students seem determined to persist
children start using general-purpose programming languages. In longer than others and while some learners become quickly
these contexts, as will be the case for many others, countries face frustrated and lose confidence, others persist without complaint.
the challenge of preparing teachers in terms of new discipline The reason as to why some are more determined than others is
knowledge, skills in programming, the availability of resources relatively unknown [33]. Some argue that how learners
and the ability to confidently implement learning activities [7]. cognitively approach and experience learning tasks influence
motivation toward the task and persistence [5].
Currently, a number of tablet and browser-based applications are
available to teach 5-7 year olds the fundamentals of programming. Studies have found that prior programming experience plays a
These programs typically involve the use of colourful pre-literate part in a student’s learning experience and that as students
symbols that children drag and drop (e.g. ScratchJr, Tynker) as progress through computing degrees self-efficacy in programming
well as tangible programmable robots such as the Beebot. The increases [29]. Ultimately, an experience of poor performance in
goal of using such tools is to develop skills in navigational introductory programming may have a negative influence on a
language, following and providing instructions, and logical student’s emotional state and desire to persist at learning to code.
thinking. In the primary years (7- 12 years old) students begin to A negative attitude towards programming was something
use applications and software that involve combining colourful experienced by students at the University of Cape Town. The
text-blocks by drag and drop. The blocks represent programming Information Systems (IS) department developed a course where
statements and children use the blocks in ways that involve students, not majoring in computer science, were introduced to
iteration, branching, input and output to create digital solutions problem-solving, coding, and testing issues through an action
(e.g. Scratch, Alice, Pencil Code) or to solve problems (e.g. learning cycle and that, by third year, required students to develop
Blockly, Lightbot). In the middle primary to high school years, a project from conception to readiness to implement [31].
students can begin to use general-purpose programming languages Through a phenomenological approach of interview data, the
that involve writing and de-bugging programs. There are still researchers identified that the mention of programming evoked a
child-friendly environments where youth undertake tasks or strong sense of fear, anxiety, apprehension and stress and this was
challenges while learning a programming language or by applying projected through dialogue when the students spoke about
knowledge to create their own solutions. For example, students programming. The fear invoked by learning to program and the
can learn the basics of JavaScript while creating digital drawings challenge of the act reportedly affected the participants’
(Khan Academy) or by creating a game (Code Avengers), or enjoyment and created feelings of self-doubt, apprehension, and
moving a character (Karel the Dog). For the adult years, face-to- lack of confidence.
face programming courses may exist, or individuals can
It is suggested that negative experiences, where students attribute
participate in free (or paid) online or face-to-face courses, such as
failure to ability can potentially cause students to perceive that
those offered through edX, Coursera, Khan Academy, among
programming is attributed to innate abilities beyond their control
others. Of course, adults can still learn the fundamentals of
[33]. Perceptions of performance and the causes for success and
computer science concepts and programming statements through
failure may impact on future performance and decisions to
children’s visual programming environments such as Blockly and
continue with programming. Emotions and perceptions play a role
Scratch. While these are just a few suggestions, numerous
in learning to program, as it was found that students who
applications and instruction-led courses are emerging.
demonstrated optimistic attributions to learning were found to
While there are a number of visual and general-programming perform better than those with less optimistic views and, further,
opportunities available, little is known about how students students who reasoned that positive events were attributed to the
experience programming in the K-12 year levels, as a majority of self (internal factors) and unchangeable (e.g. ability) had better
the existing research across K-12 is based on the impact of grades than students with pessimistic attributions [14].
outreach initiatives on student and engagement and interest in
The transition from novice to expert programmer is said to be
computer science career pathways [7]. Further, as the coding
assisted by reflecting on previous success and failures and finding
movement is new, little research is available that explains how
ways to improve performance [32].When reflecting on strategies
adults undertaking online self-paced or instructional-based
for success, programming students have been found to focus on
introductory courses experience learning code and outcomes.
describing non-discipline specific strategies [12] such as those
2.2 Introductory programming research focused around self-regulation. This is similar to a study of
While we know little about the K-12 experience of programming, students’ self-reflection on their learning process where many
we can learn from what is known about introductory programming voluntarily attributed causes of success and failure to non-
discipline specific strategies such as time management, effort and
42
planning [41]. However, discipline-specific strategies were also Students who are weak at tracing and/or explaining cannot write
identified by students as causes for success or failure, such as the systematically and it is suggested that code writing ability can be
adoption (or lack of) design strategies, pre-assessment of improved through extensive practice until tracing and explaining
programming tasks and understanding of concepts. Further, some skills are strong enough to support a systematic approach [22].
notable challenges mentioned by students that impact on the Further, understanding the conceptual framework of algorithms
success of their performance are lack of study, the difficulty in and the ability to construct and debug a program has been
tasks, the teaching approach as well as lack of effort, exam identified as playing a role in successful programming [2]. Many
anxiety, cheating, and lack of time [13]. Whilst effort, attitude and concerns arise about students frantically experimenting with their
other internal factors are recognised by participants, persistence – code [22] by ‘hacking a solution’ and these findings suggest that
although not unique to programming – is a quality that is focusing learning activities in introductory programming to hone
recommended if students are to succeed at programming [31]. thinking skills and translating why this skill development is
necessary to learners is important. Such findings have
Research ought to investigate whether students working with implications for instruction-based online introductory
visual programming environments and online self-paced courses programming courses – to what extent do they provide
encounter similar emotions, challenges and difficulties as learners opportunities for developing thinking skills as opposed to practice
operating in introductory programming courses at university. in writing code, and further, is skill development important to
While research has reported students identify a range of discipline learning the fundamentals?
and non-discipline specific strategies that are perceived to
influence learning to program, the follow section considers the While the purpose of integrating CT into learning activities and
extent that thinking skills play a role in learning to code. curriculum is to develop individuals’ skills to systematically and
efficiently process information and tasks, some express concerns
2.3 Thinking skills over the pedagogical challenges and the role programming has to
An early overview of the literature about learning to program and play [23] as well as call for more empirical research, theoretical
learning to think by Mayer et al. [24] identified that many studies, and practical understanding of CT competencies [9], particularly
such as work by Papert [27] and Nickerson [26], discussed the in K-12. The inclusion of CT into schooling and tertiary
link between the two, but that originally much of this conversation computing curriculum provides opportunities to assess and
was founded on anecdotal evidence, self-reflection or thought. monitor development and impact on programming performance.
While particular disciplines are said to require the development of
particular skills and some philosophers, such as Gardener [40] 2.4 Mindset Theories
argue that some people have a tendency toward particular
‘intelligences’, what skills and thinking are required for successful
2.4.1 Attribution Theory
performance in programming? Are there some capabilities that The literature so far identifies that students reported a range of
successful programmers demonstrate over less successful factors that contribute to success and failure in learning to
programmers? Mayer et al. [24] began investigating this area and program, such as effort, ability, time management, planning and
found that through their work with non-computing majors, pre- task difficulty [12, 13, 29, 41]. These can be referred to as causal
training in comprehension skills, problem representation and attributions [42, 43] and can be sorted into factors pertaining to
procedural comprehension were factors likely to influence the causal locus (internal or external), which are factors associated
success. However, they also cautioned that required skills are with the self (e.g. ability, effort or time management) or external
likely to be particular to the programming language, which was factors to the person (e.g. task difficulty, teaching method, or
Basic in their studies. luck). The attributions can be further defined according to the
causal stability (stable or unstable) that identifies whether a causal
Although previous authors had began discussing the links between attribution can change with time or is fixed. For example, effort
thinking and programming, it was in Wing’s 2006 article, that can be improved and is therefore unstable. On the other hand, task
thinking, applicable to computing, was labelled as computational difficulty is perceived as fixed and something that is
thinking [45]. Wing provides examples of CT represented as unchangeable. The table below (Table 1) is adapted from
everyday activities as a way to convey the concepts, the relevance Weiner’s [43] work and presents the causal attributions: local of
and application of this thinking to the everyday activities of causal locus and causal stability as a quadrant.
everyday people. However, are some people naturally better at CT
and the application of thinking skills to perform introductory
programming, or is it that CT skills require specific development? Table 1: Weiner's [43] representation of the four main causal
When participants talk about the nature of programming in attributions of behaviour
interviews, they refer to having to think or learn differently in this Causal locus: interval VS external
discipline [31]. This type of thinking was described as being
logical and sequential, similar to findings by Mayer et al. [24] and Causal Internal – Stable External – Stable
were described as there being ‘a logical step-by-step process stability: (e.g. ability) (e.g. task difficulty)
which enables programmers to translate goals into code, until this stable VS
process is mastered, students are faced with a challenge which unstable Internal – Unstable External – Unstable
some find very hard to meet’ (p. 156). Such findings have (e.g. effort) (e.g. luck)
implications for how children are taught to program as in Piaget’s
work, he theorised that young children struggle with logical
thinking and abstract thought [28]. Perceptions by students learning to program perceived as internal
In studies of programming learners, those who trace code and stable factors, such as ‘ability’, may be problematic because if
successfully are said to enhance their ability to write and explain a student feels they have a low ability, this is perceived as being
code [22] and problem-solving and programming skills [2]. something unchangeable and therefore they may perceive their
43
performance in programming can never improve. Whereas causal students reflect on their successful programming peers as ‘[t]hey
attributions to internal and unstable factors, such as effort, are think in code” or ‘[it’s] [s]omething internalized. They just knew
perceived as being something one can change and improve on in how to figure all that stuff out’ [31].
the future. External factors on the other hand are perceived as Scott and Ghinea [33–35] have undertaken work in the area of
being out of one’s control and instil feelings of helplessness, in self-theories and undergraduate programming students and
the present moment and for future events. Causal attributions may discovered that, students’ (n=94) beliefs toward aptitude are
influence an individual’s motivation toward future tasks. Weiner distinct to that of beliefs about intelligence among the cohort [34].
[43] developed his initial theory (table 1) to include influence on As a result they suggest that when self-theories are applied in
motivation, yet encountered many variables and contrasting specific domains alternate self-traits, to intelligence, should be
findings in the literature; suggesting this area is in need of further considered and that a mindset based on intelligence as a single
exploration. Ideally, one would hope that students learning to trait may not be appropriate for computer programming [35]. In
program perceive they have control over their situation and their survey, programming students who had a fixed mindset for
responsibility over learning, and attribute causations toward programming aptitude had an incremental view of intelligence,
internal and unstable factors. But is it that internal and stable suggesting that students may not associate programming aptitude
factors, such as one’s ability, have greater precedence over with intelligence and that aptitude may have a greater influence
learning to code than we would like and how do educator or over programming practice [35]. We have seen this as in studies
learner perceptions about intelligence influence how one perceives that apply attribution theory perspectives where ability is
learning to code? commonly a trait students express as the reason they enrol in
2.4.2 Implicit Theories of Intelligence computer science [21] or as a factor contributing toward
One way of understanding why some may have a tendency to performance [14, 41]. Although based on a single context and two
attribute causes of failure or success to ‘ability’ or ‘intelligence’ is classes, a concerning finding was that over the course of a
through the lens of implicit theories of intelligence [5, 6]. This semester, while programming students’ perception of intelligence
theory puts individuals as having one of two worldviews when it had not changed, nearly one third of respondents came to believe
comes to intelligence and that individuals hold a particular more strongly that programming aptitude was a fixed trait [35].
mindset, which is fixed or malleable. Someone who perceives This is somewhat at odds with findings that suggest self-efficacy
intelligence (or ability) as a fixed trait and innate are said to hold improves over time when learning to program [29].
an entity theory of intelligence. This view perceives intelligence It is known that computer science lack females studying in the
as something that cannot change within us, which is similar to discipline and that computing courses fail to retain female
attributions that are stable and internal. Students who hold this students who pursue IT careers. In an example of gender
viewpoint often worry about the level of intelligence they have differences, and although computing engineers only made up
and have a preference toward easy, low-effort tasks and some of the total sample (n=238 total), 72% of females held a
outperforming others [5]. Whereas, someone who believes fixed entity view of engineering aptitude compared to 46% of
intelligence is expandable and developed through effort holds an males. Of those females who reported dropping a class due to
incremental theory view. Someone with this view perceives difficulties, 100% held a fixed entity view, compared with 61%
intelligence, not to be a fixed trait, but something that they can who did not drop out [15]. This finding, although conducted in
develop through learning experiences. Students with this trait will 2002, warrants further exploration into perceptions held by males
select challenging tasks, which they are motivated to complete, and females and the impact on learning programming. Is it that
that enable them to develop toward mastery [5]. female adults or children learning to program in school or through
The perceptions of those who are learning introductory self-paced courses will share similar perceptions that influence
programming may impact firstly, on the way that they approach persistence?
learning tasks, but also in the way that they react to failure or There is promise that perceptions can be changed or influenced. In
challenges in learning to code. People who hold an entity theory a PhD study, Bergen (1991, cited in [6], p. 279), induced students
view failure as beyond their control – a catastrophe – and to adopt one of the two implicit theories of intelligence by
ultimately feel helpless, as they believe they have no control over presenting a ‘scientific paper’ with an argument in favour of one
improving in the area [5]. Those holding an incremental theory or the other. Participants who read the entity article displayed
have a resilient approach to failure, believe that setbacks are ways more of a helpless reaction to failure. Such findings demonstrate
to improve and so they engage in mastery-oriented behaviour that by manipulating perceptions of implicit theories may
patterns to achieve master the skill or task. In Dweck’s [5, 6] influence judgements and reactions and it is suggested that
substantial work in this area, the authors found that even the most through pedagogies that reinforce incremental thinking students
skilled people can fall apart at the face of failure and often can change their perceptions about programming requiring a fixed
question their own intelligence when challenged. As a result such trait [33]. Scott and Ghinea suggest that simply using grades may
feelings can impact on student well-being and overall school convince some that programming is based on aptitude, whereas
experience [18]. Such theories are important for guiding the integration of detailed informative feedback that helps learners
introductory programming because, as a review of the literature overcome weaknesses may instil an incremental perception.
has found, many students struggle with mastering programming
skills, while some are determined to persist and excel. 2.4.3 Impact of educator perceptions
Perceptions of intelligence are not only relevant to understanding
Too often learners encountering introductory programming learners, but the way that educators perceive intelligence can
believe that an inherent aptitude is required to be a programmer potentially impact on a student’s experience and the learning and
[33] and it is not uncommon to hear whispers about a teaching context. It is recommended that understanding the
‘programmer gene’ whereby someone requires a natural ability in behaviours and contexts that form the links between adults’ and
order to be a successful programmer. It may not be uncommon for children’s gendered math attitudes is critical for understanding
students to share this perception, with research reporting that how to minimise negative influences and enhance positive
44
attitudes [10]. There are limited research in terms of the role of Additionally, a section invited participants to respond to questions
teachers’ theories of students’ intelligence and its impact on about their gender, location, birth year, profession, programming
practice and student learning [37], and further studies that do exist confidence and programming education. These details allowed for
focus primarily in the discipline of mathematics [3, 10, 30]. comparisons between perceptions and background.
In a three-stage study of undergraduate math courses, teachers The survey was shared at the end of July via a number of different
with an entity theory view were more likely to diagnose students avenues to attract interest from the CS education community
as having low ability, comfort students on their low ability and locally and internationally. The survey was shared across the
engage in pedagogical practices that could reduce engagement researchers’ and research group’s social media, as well sent to two
with the subject, than people with incremental view. For example computer science education conference mailing lists. The survey
a line such as ‘It’s okay, not everybody can be good at math’ was open for 1 week. Participants had to be 18 years of age or
would be a comforting statement. Further, teachers who held an over to respond. The survey was approved by the university
entity theory view of students’ performance based on low ability, survey committee and was exempt from human research ethics
reported that they did not expect to see further improvement in the approval, as it did not contain personally identifiable information.
student [30]. The type of feedback that educators provide can
impact on students; students who received comforting feedback 3.2 Analysis
were less motivated and expected lower final grades. Further, a The survey data were imported into NVivo 10 and automatic
study of in-service teacher perceptions of their students, coding was used to code the demographic details to each of the
researchers found that the beliefs that teachers hold about responses. Conventional content analysis [16] was applied to the
students’ potential intellectual development are also likely to open-text responses based on researcher deductions and
impact on the predominant goal structures within a classroom interpretation of the responses [8]. The researcher began by
[37]. Mathematics and computing are often banded in the same coding each participant’s response as either being in agreement,
area (e.g. ‘STEM’) and findings that teacher perceptions and disagreement or conditional about whether anyone can learn the
feedback influence learners [3, 10, 30], suggests this is an fundamentals of programming. Following, the researcher coded
important area to be explored in K-12 and tertiary computing. fragments of the text to nodes pertaining to attributes or traits,
which were sorted into categories. The theory of multiple
2.5 Motivation for the study intelligences and attribution theory was used as a guide to sort the
The studies presented in the literature review suggest that learning nodes and interpret the community responses. The following
to program is a complex experience, which is unique to many, and section presents the results of the participant demographic details
that perceptions about causes for performance and theories of and experience with programming.
intelligence do play a role to some extent. This is a review of
introductory programming learners at the tertiary level and it is 3.3 Sample
expected that learners engaging in learn to code courses and A total of 35 responses to the survey were received, however, two
software are also encountering a range of experiences. were removed because one participant was under the age of 18
and another was a duplicated response. The mean age was 34.2.
While, rightly so, much of the literature focuses on the student 12 participants were over 50, 11 were between 30 and 49 years of
experience and their perceptions, we have seen that in disciplines age and 6 were 18-29 years old (3 data missing).
such as mathematics, that educators can influence the classroom
experience of learners [3, 10, 30], warranting further investigation
into how educators of computer science perceive learning to Table 2: Location and gender
program. Those in the CS community, with experience in learning
and/or teaching programming, may offer valuable insight into the Location Female Male Total
challenges of learning to code and the perceived capabilities Australia 9 11 20
required to learn to program and how this translates to the global
Romania 3 3
‘learn to code movement’. The purpose of this paper was to pilot a
survey to determine if the topic attracted a response from those in Netherlands 2 2
the CS community and to identify some key viewpoints to Singapore 1 1 2
determine if the topic warrants further exploration. Guyana 1 1
3. RESEARCH METHODOLOGY Italy 1 1
3.1 The survey instrument Sweden 1 1
A survey was developed, using Google Forms, with three open- Turkey 1 1
ended questions, which asked: United Kingdom 1 1
1. Can everybody learn to code? Consider someone with no Total 10 22 32
previous experience in coding - can they master the
fundamentals of programming? Why might some learners
be more successful than others?
2. List three characteristics or qualities that might describe Most participants were from Australia (n= 20), where the
someone who succeeds at learning to code. researchers are located (Table 2). Table 2 demonstrates there were
3. What do you think might be some key challenges or barriers more males but a reasonable number of females responded (n=10)
for someone learning to code? according to the total number of respondents. Additionally, most
were academics or IT Professionals (or were previously), but we
Open-ended questions, with probes, were used as a way to invite also received responses from high school educators, computing
participants to share their experience and perceptions [16]. By researchers and students (Table 3).
inviting text responses, we were able to apply content analysis.
45
Table 3: Participant professions and gender Most believed that everyone could learn the fundamentals (n=14),
with some people believing that people could learn to program to
Profession Female Male Total
a certain extent (n=13). Some thought that not everyone has what
University Educator 2 9 11 it takes to be a programmer (n=5). There was a similar divide
IT Industry/ Professional 2 7 9 among gender within this sample (Table 5). University educators
and IT professionals held similar views (Table 6) and high school
Researcher (IT/CS specialisation) 1 3 4
teachers perceived that everyone could learn the basics of
High School (secondary) Teacher 2 2 programming, to some extent.
Student (non-IT related degree) 1 1 2
Manager 1 1
Table 6: Perception of learning to code by profession
PhD student (IS and Education) 1 1
Researcher (other specialisation) 1 1 Profession No To an extent Yes
46
When examining the reasons as to why people thought anyone spurred by motivation. This was also sometimes explained in a
could learn to code or not, we were able to divide these into stable way that people who achieved mastery and moved beyond the
(fixed) and unstable (or malleable factors) [43]. The range of fundamentals were people with particular personal traits, such as
reasons presented in Table 8 demonstrate the complexity of being pedantic, patient, or an effective problem-solver.
factors that may contribute to reasons why people may or may not
be able to achieve a basic level of understanding of programming. ‘Everyone can learn the basics. Not everyone can learn to be an
expert programmer. Pedantic people are likely to be more
4.1.1 Anyone can learn to code … definitely successful, as you need to be precise... The major obstacle …. is
It was identified that factors such as interest, passion, motivation fear. People who are afraid of making a mistake and breaking
and a desire to learn played a large role in people’s reasoning for something...’ (Female, HS teacher, Australia).
why people could learn to code if they wanted to. Participants who In the above example, the teacher discusses how something such
fell into this category believed that with these internally driven as fear can be a barrier to advanced programming. A lack of
factors, people could achieve the fundamentals. motivation or persistence was also attributed as a factor toward
‘.. they can if they want to, have the interest, or have the drive to being a beginner and someone who moves toward mastery.
learn and create something. Some people like me have totally no
‘Like every subject area, newbies can learn to master a new area
interest in programming but forced to do a unit on it’ (Male, CS
if they are sufficiently motivated. Mastering the fundamentals of
Student, Australia).
programming is easy. However, mastering the development of
Interestingly motivation was perceived as something that could be complex solutions to problems might take longer.
someone’s downfall in learning to code, for example: ‘I think the Motivation is a big factor’ (Male, University Educator, Guyana).
key is motivation. Without it students easily fail to learn. With it,
Interestingly, many commented ‘thinking’ as being a crucial
even if they find it very hard, they can be successful’ (Female, CS
factor that distinguishes between a learner being at the beginner
Researcher, Australia).
level and moving toward mastery. ‘Everybody can learn basics,
Three people also likened learning to code to learning other but cannot master, i think being coder and being good about it
subject areas or skills, such as learning to cook for example: requires mathematical intelligence’. (Male, IT Industry, Turkey).
‘Everyone should be able to learn coding, as much as everyone
While some thought that beginners could achieve the
should be able to learn basic engineering or embroidery’ (Male,
IT Professional, Romania). fundamentals without these certain capabilities, others felt that
they were crucial to learning the fundamentals of programming
People believed that anyone could learn to code with the right and that without them, people would not necessarily be able to
type of thinking skills, with persistence and patience. However, pass the basic level.
while some people said that anyone could learn the fundamentals
of programming due to the mentioned reasons, there were 4.1.3 Not everyone can learn to code
different levels of understanding and skill involved. Primary reasons for a perception that not all could learn to code
were attributed to thinking skills and problem solving ability.
4.1.2 Anyone can learn to code… to an extent
‘Yes, everybody can learn a bit, but not everybody will succeed. ‘…not everyone can learn to code. It is a way of thinking, but
Some might get stuck at "drawing lines" and others will go all the more than that it has to do with whether you like to solve/find
way to object-oriented programming and other complex concepts’ problems.’ (Female, University Educator, Australia)
(Male, University Educator, Australia).
While some describe this as a ‘way of thinking’, others
These participants made a distinction between the ‘fundamentals’ specifically refer to a level of mathematical intelligence,
of programming and achieving mastery or the capability to systematic thinking and ability that allows one to be able to apply
abstract and apply what was learned to solve different problems or the concepts of programming to successfully code.
to create valuable programs that met particular needs.
No… The key attribute required is to think methodically, logically
I don't think that everyone can learn to code, but I do think that and systematically, with great attention to detail. Not everyone
the great majority of people can learn to use the fundamentals of can do this. And note that there is no shame in not being able to
programming, the basic ideas of sequence, iteration and decision. do this - it is just that different people have different attributes.
That said, that is not the same as mastering the fundamentals, (Male, University Educator, Australia)
mastery to my mind includes being able to take the concepts and
It was perceived that individuals able to identify and decompose
be able to apply them in completely different situations to new
problems and the required functions to solve problems and write
problems (Male, University Educator, Australia).
code was what differentiated those who passed and could not pass
This perception was often reasoned with people being driven, the basic levels of coding. Interestingly, effort, was also a factor
interested or motivated to learn at a level beyond the described that people who pass have that kept them persisting at
fundamentals. the task when others were struggling.
‘Everybody can learn how to do basic coding in at least one ‘…to be able to translate a goal from the real world into code and
simple language. Me and my friends in university learnt to split different functionality into different code parts is
programming starting from zero knowledge, this shows anyone something that one person can do without effort and others keep
can code. But not everyone can achieve mastery. Mastery in any having troubles with it’. (Male, Previous IT Professional,
subject requires keen interest that makes you want to study it Netherlands)
deeper’. (Female, IT Industry, Singapore).
When explaining reasons as to whether everybody can learn to
The above response is an example of how participants perceived code, participants alluded to traits that made people successful or
mastery of programming required a different depth of study, unable to grasp the fundamentals of programming. In the
47
following section we describe the specific traits that participants
listed in response to the second survey question.
48
and personal characteristics and associated challenges. We use particular to the programming language, is this still the case or can
mindset theories as a lens to explore the survey responses. Our CT be developed and applied to any programming language?
findings show that of the 34 responses by IT professionals,
university educators and high-school teachers, 12% thought that This survey is based on a small sample and so generalisations
not everybody can learn how to code, 38% thought that everybody cannot be made. A majority of the responses were from academics
can learn how to code to a certain extent, and 50% thought that and IT professionals within Australia but future work will expand
everybody can learn how to code. The majority of respondents this reach. The purpose was to invite the CS community to
that held formal education thought that everybody could learn respond to determine if there would be a range of reactions and a
how to code, either completely or to a certain extent. The variation between perceptions. We invited participants to share
participants also identified a wide range of dynamic and complex their experiences and opinions about learning to code and
challenges, with the vast majority of challenges (72% of 48 perceived capabilities required, however, these are based on
challenges) being stable, and thus un-changeable. In alignment respondent opinions and cannot be said to be necessarily true.
with other literature, many of the traits, justifications and Nonetheless, respondents who have (mostly) had some form of
challenges identified by the respondents relate to factors identified experience in learning and teaching of programming can offer a
by students in previous studies [19-20], [22], [25], [31]. perspective and contribute to initial understandings of this area.
Regardless of whether people agreed anyone can learn to code or Previous research has found that educator perceptions and
not, most in this sample generally believed that mastering feedback influence learner experiences and self-perceptions in the
programming skills and developmental processes requires discipline of mathematics [3], [10], [30] and it was evident that
thinking skills, motivation, persistence and a level of problem participants in the survey held different views that could be
solving. Building on previous work [33-34] that suggested that considered entity or incremental theory views – that programming
there seemed to be more than factors of intelligence and that is tied to an innate ability or something that can be developed with
programming specific aptitudes may play a role, these findings effort and skill development. This suggests that the influence of
suggest that there is also more to learning to program than only educator, peer and parent perceptions on learning to code could be
ability or intelligence – many individuals discussed various an interesting area to explore further as well as the types of
thinking skills, abstraction, mathematical ability, and an innate feedback people provide to learners (through online instruction or
sense of passion and motivation as playing a role in learning to face to face) and the impact it has on learner experiences and
persistence.
program. The mention of motivation featured prominently
suggesting that exploring ways to increase learner motivation in Content analysis requires that the researcher makes deductions
K-12 and online may be important for curriculum developers and and judgments [8] about participant perceptions and the
educators to consider. anonymous nature of the survey meant that cross-checking
interpretations with participants for accuracy was not possible.
Persistence has been found to play a role in learning to program This offers opportunities for more in-depth discussions with
[5] and similarly teachers also mentioned this as having an educators, students and industry personnel to learn about their
influence on whether one can achieve fundamentals or progress to perceptions and experience, with an opportunity to follow-up and
a level of mastery. Whether it was described as ‘drive’, or ‘focus’ check researcher interpretations for accuracy. Nonetheless, this
there seemed to be some common perceptions that this may play a study forms the basis for more exploration in this area, in terms of
role in overcoming the challenges of learning to program. This educator perceptions and their impact on student self-efficacy.
idea rests closely with having an incremental theory view [5, 6]
and perhaps it is that those who are able to perceive challenges as 6. CONCLUSION
‘learning’ points and focus on mastery-oriented programming As new computing curricula are introduced over the world and are
strategies will be able to overcome early barriers. Perceptions of targeted at increasingly younger students, the question of CS
intelligence can be changed [33], [36] and developing learning community perception of the traits and characteristics required in
tasks that encourage incremental thinking and strategies in order to learn how to code becomes crucial. This refers not only to
learning to program to overcome the fear of learning to code [31] the learner’s perception, but also to the educators, as educators,
appears to be an important avenue for CS education research. through their language, encouragement, and assessment have a
Mayer [24] suggested that thinking skills were useful for learning drastic influence over the learner’s perception of various tasks.
programming and many of the factors expressed by participants in However, this survey is based on the responses of a small sample
this sample related to various thinking skills, whether it be and therefore generalisations cannot be made. What is evident
problem-solving, systematic thinking, abstract thinking, logical or though is that there is a range of reactions and a large variation
mathematical. While some expressed that they perceived these within identifying challenges in learning how to program. This
thinking skills are fixed traits, others alluded that these could be warrants an in-depth exploration in this area, to include in-depth
developed with experience and persistence. Either way, both has discussions with educators, IT professionals, and students to
implications for young learners as children are said to struggle discuss their experiences and thoughts.
with logical thinking and understanding abstract ideas until
adolescence [28]. Computational thinking [44] is about teaching
problem solving skills based upon logical thinking and concepts
7. REFERENCES
fundamental to programming such as iteration, sequencing, [1] ACARA 2013. Draft Australian Curriculum: Technologies.
abstraction and decomposition and developing these skills play a ACARA, Canberra, Australia.
large part in the Australian curriculum [1]. Is there something [2] Affandy et al. 2011. A study of tracing and writing
magical about learning to code – that certain individuals naturally performance of novice students in introductory
are better at this type of thinking or can CT be taught and what programming. Communications in Computer and
impact does the development of CT have on learners when they Information Science, 557–570.
encounter visual or general-programming environments?
Although Mayer [24] believed that certain thinking skills were
49
[3] Beilock, S. et al. 2010. Female teachers’ math anxiety [26] Nickerson, R.S. 1982. Computer programming as a vehicle
affects girls’ math achievement. Proceedings of the for teaching thinking skills. Thinking: The Journal of
National Academy of Sciences. 107, 5, 1860–1863. Philosophy for Children. 4, 3/4, 42–48.
[4] Department for Education 2013. The National Curriculum [27] Papert, S. 1972. Teaching Children Thinking. Innovations in
in England: Framework Document. Crown. Education & Training Teaching Children Thinking
[5] Dweck, C. et al. 1995. Implicit Theories and Their Role in Teaching Children Thinking. 9, 5, 245–255.
Judgments and Reactions: A Word From Two Perspectives. [28] Piaget, J., & Cook, M.1952. The origin of intelligence in
Psychological Inquiry. 6, 4, 267–285. children. International University Press, NY.
[6] Dweck, C.S. 2000. Self-theories: Their role in motivation, [29] Ramalingam, V. et al. 2004. Self-efficacy and mental
personality, and development. Psychology Press, NY. models in learning to program. ITICSE ’04, Leeds, United
[7] Falkner, F., Vivian, R., & Falkner, N. 2014. The Australian Kingdom, 171–175.
Digital Technologies Curriculum: Challenge and [30] Rattan, A. et al. 2012. “It’s ok — Not everyone can be good
Opportunity. In ACEC, Auckland, New Zealand. at math”: Instructors with an entity theory comfort (and
[8] Forman, J. and Damschroder, L. 2007. Qualitative Content demotivate) students. Journal of Experimental Social
Analysis. Advances in Bioethics. Emerald Group. 39–62. Psychology. 48, 3, 731–737.
[9] Grover, S. and Pea, R. 2013. Computational Thinking in K- [31] Rogerson, C. and Scott, E. 2010. The Fear Factor: How It
12: A Review of the State of the Field. Educational Affects Students Learning to Program in a Tertiary
Researcher. 42, 1, 38–43. Environment. Journal of Information Technology
[10] Gunderson, E.A. et al. 2011. The Role of Parents and Education. 9 , 147–171.
Teachers in the Development of Gender-Related Math [32] Salajan, F. et al. 2010. Student and faculty inter-
Attitudes. Sex Roles. 66, 3-4, 153–166. generational digital divide: Fact or fiction? Computers &
[11] Haigler, V.F. et al. 1995. Parental Attachment and gender- Education. 55, 3, 1393–1403.
role identity. Sex Roles. 33, 3-4, 203–220. [33] Scott, M. and Ghinea, G. 2013. Educating programmers: a
[12] Hanks, B. et al. 2009. Cs1 students speak: advice for reflection on barriers to deliberate practice. HEA
students by students. SIGCSE’09, Chattanooga, 19–23. Conference on Learning and Teaching in STEM
[13] Hawi, N. 2010. Causal attributions of success and failure Disciplines, Birmingham, UK.
made by undergraduate students in an introductory-level [34] Scott, M. and Ghinea, G. 2013. Implicit theories of
computer programming course. Computers & Education. programming aptitude as a barrier to learning to code: are
54, 4, 1127–1136. they distinct from intelligence? ITiCSE, Canterbury, 347–
[14] Henry, J.W. et al. 1993. Attributional style as a predictor of 347.
success in a first computer science course. Computers in [35] Scott, M.J. and Ghinea, G. 2014. On the Domain-Specificity
Human Behavior. 9, 4, 341–352. of Mindsets: The Relationship Between Aptitude Beliefs
[15] Heyman, G.D. et al. 2002. Gender and achievement-related and Programming Practice. IEEE Transactions on
beliefs among engineering students. Journal of Women and Education. 57, 3, 169–174.
Minorities in Science and Engineering. 8, 1, 41–52. [36] Seehorn, D. et al. 2011. CSTA K-12 Computer Science
[16] Hsieh, H.-F. and Shannon, S.E. 2005. Three approaches to Standards. CSTA, UK.
qualitative content analysis. Qualitative health research. 15, [37] Shim, S.S. et al. 2012. Goal Structures: The Role of
9, 1277–88. Teachers’ Achievement Goals and Theories of Intelligence.
[17] Informatics Education: Europe Cannot Afford to Miss the The Journal of Experimental Education. 81, 1, 84–104.
Boat: 2013. http://europe.acm.org/iereport/ie.html. [38] Royal Society. 2012. Shut down or restart? The way
[18] King, R. et al. 2012. How you think about your intelligence forward for computing in UK schools.
determines how you feel in school: The role of theories of https://royalsociety.org/education/policy/computing-in-
intelligence on academic emotions. Learning and Individual schools/report/.
Differences. 22, 6, 814–819. [39] The New Zealand Curriculum. 2014.
[19] Kinnunen, P. 2009. Challenges of teaching and studying http://nzcurriculum.tki.org.nz/.
programming at a university of technology - viewpoints of [40] Tropman, J. and Gardner, H. 1985. Frames of the Mind: The
students, teachers and the university. Helsinki University of Theory of Multiple Intelligences. Journal of Policy Analysis
Technology. and Management. 4, 3, 476.
[20] Kinnunen, P. and Malmi, L. 2006. Why students drop out [41] Vivian, R., Falkner, K., & Falkner, N. (2013). Computer
CS1 course? ICER ’06, New York, USA. science students’ causal attributions for successful and
[21] Lewis, C. et al. 2011. Deciding to Major in Computer unsuccessful outcomes in programming assignments. In
Science: A Grounded Theory of Students’ Self-Assessment Koli Calling, Koli, Finland.
of Ability. ICER ’11, 3–10. [42] Weiner, B. 1985. Attribution Theory. Human Motivation. B.
[22] Lister, R. et al. 2004. A multi-national study of reading and Weiner, ed. Springer New York. 275–326.
tracing skillls in novice programmers,”. SIGCSE Bulletin. [43] Weiner, B. 2010. The Development of an Attribution-Based
36, 4, 119–150. Theory of Motivation: A History of Ideas. Educational
[23] Lu, J. and Fletcher, G. 2009. Thinking about computational Psychologist. 45, 1, 28–36.
thinking. ACM SIGCSE Bulletin. 41, 1, 260. [44] Wilson, C. and Guzdial, M. 2010. How to make progress in
[24] Mayer, R.E. et al. 1986. Learning to program and learning computing education. Communications of the ACM. 53, 5,
to think: what’s the connection? Communications of the 35–37.
ACM. 29, 7, 605–610. [45] Wing, J.M. 2006. Computational thinking. Communications
[25] McCracken, M. et al. 2001. A multi-national, multi- of the ACM. 49, 3, 33.
institutional study of assessment of programming skills of [1]
firstyear cs students. SIGCSE Bulletin. 33, 4, 125–140.
50