This Content Downloaded From 83.47.134.86 On Wed, 13 May 2020 09:00:31 UTC
This Content Downloaded From 83.47.134.86 On Wed, 13 May 2020 09:00:31 UTC
REFERENCES
Linked references are available on JSTOR for this article:
https://www.jstor.org/stable/10.2307/jeductechsoci.19.3.47?seq=1&cid=pdf-
reference#references_tab_contents
You may need to log in to JSTOR to access the linked references.
JSTOR is a not-for-profit service that helps scholars, researchers, and students discover, use, and build upon a wide
range of content in a trusted digital archive. We use information technology and tools to increase productivity and
facilitate new forms of scholarship. For more information about JSTOR, please contact support@jstor.org.
Your use of the JSTOR archive indicates your acceptance of the Terms & Conditions of Use, available at
https://about.jstor.org/terms
International Forum of Educational Technology & Society is collaborating with JSTOR to digitize,
preserve and extend access to Journal of Educational Technology & Society
ABSTRACT
Adding computer science as a separate school subject to the core K-6 curriculum is a complex issue with
educational challenges. The authors herein address two of these challenges: (1) the design of the curriculum
based on a generic computational thinking framework, and (2) the knowledge teachers need to teach the
curriculum. The first issue is discussed within a perspective of designing an authentic computational thinking
curriculum with a focus on real-world problems. The second issue is addressed within the framework of
technological pedagogical content knowledge explicating in detail the body of knowledge that teachers need to
have to be able to teach computational thinking in a K-6 environment. An example of how these ideas can be
applied in practice is also given. While it is recognized there is a lack of adequate empirical evidence in terms of
the effectiveness of the frameworks proposed herein, it is expected that our knowledge and research base will
dramatically increase over the next several years, as more countries around the world add computer science as a
separate school subject to their K-6 curriculum.
Keywords
Computational thinking curriculum, Pedagogical content knowledge, Technological pedagogical content knowledge,
Teacher preparation, K-6
Introduction
In a world in which digital technology plays an important role in carrying out essential daily-life tasks, it is
imperative individuals have the education, knowledge, and skills to critically understand the technological systems
they use, as well as to be able to troubleshoot and problem solve when things go wrong (Wing, 2006; Czerkawski,
2015; National Research Council, 2010). Czerkawski (2015) argues the knowledge that individuals need to have in
order to competently respond to the challenges of the 21 st century goes beyond the acquisition of mere skills with
immediate application, to knowledge with long-term value that will enable them to understand the basics of
computer structures and practices. In essence, the society needs citizens who understand the true affordances of
computers in terms of what they can and cannot do, so they themselves become effective authors/creators of
computational tools. Wing (2006) broadened the idea of computation, and proposed that computational thinking
should be considered as a basic skill taught across the curriculum. She defined computational thinking as the thought
process of formulating and solving problems with the use of computers. According to Wing (2006), the teaching of
computational thinking, as a basic skill across the school curriculum, will enable K-12 students to learn abstract,
algorithmic and logical thinking, and be prepared to solve complex and open-ended problems.
How do we then prepare our students to develop the knowledge they need to survive and effectively cope with the
technological challenges of the 21st century? As many educators strongly argued, this educational goal can be
achieved by integrating computer science as a distinct discipline and a school subject in the K-12 curriculum (Barr &
Stephenson, 2011; Fluck, Webb, Cox, Angeli, Malyn-Smith, Voogt, & Zagami, 2016; Goode, Chapman, & Margolis,
2012; Hazzan, Lapidot, & Ragonis, 2011; Tucker, Deek, Jones, McCowan, Stephenson, & Verno, 2003). Fluck et al.
(2016) stated that there is a strong case for integrating computer science in the K-12 curriculum with arguments from
both the educational and economic sectors. Succinctly, the educational case asserts that computer science: (a)
develops and promotes a unique way of thinking about problems, namely computational thinking, that uses the
power of logic, algorithm, abstraction, and precision; (b) empowers individuals to create new artifacts and to move
from being consumers of technology to producers of technology; and (c) redefines the way learners think about other
disciplines, and, this can have a major impact on teaching practices, such as, for example, interdisciplinary teaching
in school. The economic case stresses the critical shortage of applicants in IT-related jobs, especially in Europe,
ISSN 1436-4522 (online) and 1176-3647 (print). This article of the Journal of Educational Technology & Society is available under Creative Commons CC-BY-ND-NC
47
3.0 license (https://creativecommons.org/licenses/by-nc-nd/3.0/). For further queries, please contact Journal Editors at ets-editors@ifets.info.
Adding computer science as a separate school subject to the core K-12 curriculum is, however, a complex issue that
involves many legislative, administrative, political, and educational challenges. The latter are the focal point of this
paper. In particular, there are two major educational challenges related to: (a) what computer science content to teach
across different educational levels, and (b) what body of knowledge do teachers need to have to be able to teach the
computer science curriculum. Over the years, a variety of computer science curricula, representing different views
about what is important to teach in computer science and when, have been proposed in the literature and or enacted
in different countries, such as UK, USA, Austria, Germany, Mongolia, Israel, Greece, Cyprus, and recently Australia.
Well-known efforts in the United States are, amongst others, the Computer Science Principles, Exploring Computer
Science, Beauty and Joy of Computing, Project Lead the Way (PLTW), and Code.org. Computer Science Principles is
part of a larger national effort in the United States, namely the CS 10K Project that aims to develop effective high
school computing curricula enacted in 10,000 high schools taught by 10,000 well-prepared teachers by 2016.
Computer Science Principles constitutes a framework of standards from which high school computer science courses
can be built (Astrachan & Briggs, 2012). The framework is specified through a set of six Computational Thinking
Practices (i.e., connecting computing, developing computational artifacts, analyzing problems and artifacts,
abstracting, communicating, and collaborating), and a set of seven Big Ideas of computer science (i.e., creativity,
abstraction, data and information, algorithms, programming, Internet, and global impact), and has been adopted by
several high schools in the United States for developing computer science courses, such as the Beauty and Joy of
Computing, Code.org, and PLTW (Astrachan & Briggs, 2012; desJardins, 2015). The Beauty and Joy of Computing
course focuses on the Big Ideas of computing, and its main objective is to expose students to the beauty and joy of
programming by engaging them in meaningful projects using the Snap! programming language. Similarly, Code.org
is a high school course with lessons and programming projects around the seven Big Ideas of computing as well,
whereas, the PLTW uses Python as its primary programming environment to expose students to different
computational thinking projects.
Analogously, in various other countries similar initiatives have also been undertaken for introducing computer
science to high school students (van Diepen, Perrenet, & Zwaneveld, 2011; Micheuz, 2008; Furber, 2012).
Undoubtedly, during the last two decades, a lot of work has been done by the computer science education community
in promoting computer science as a school subject in secondary education. Unfortunately, the same conclusion
cannot be reached about the status of computer science in the elementary school curriculum (grades K-6,
approximately from 6 to 12 years old).
A number of computer science education researchers have written about their concerns in regards to teaching
computer science in K-6 (e.g., Armoni, 2012). These concerns are primarily linked to the incompatibility between
abstraction, an essential process in computer science, and children’s weakness to understand abstraction because of
their very young age. Armoni (2012) explained that abstraction is an inherent component of computer science that is
always encapsulated during the process of thinking about and automating a solution to a problem. From a Piagetian
perspective, children before the age of seven cannot really understand concrete logic, whereas children between
seven and eleven years old can solve problems that apply to concrete objects, but not problems that apply to abstract
concepts or phenomena. Conversely, Gibson (2012) argued that high school is too late for exposing students to
computer science for the first time, and stated that early exposure during kindergarten is necessary. In his research,
Gibson (2012) found that young children can think abstractly when concrete reference systems are used to situate
their thinking.
Recently, there has been much impetus in bringing computer science experiences to elementary school children
(Kumar, 2014). Kumar (2014) wrote about the proliferation of app development startup companies that have targeted
“early childhood computing education as the next emerging frontier” (p. 52), and about formal deliberative
initiatives for developing computer science curricula for K-6 students. Succinctly, we acknowledge the effort by
Prottsman (2014) who reported on the development of the Thinkersmith curriculum in 2011, which introduced a
stand-alone set of unplugged activities for K-8 specifically designed to provide students with strong computer
science foundations without using computers. Lessons in this curriculum, such as Binary Baubles, used materials
found in games and crafts to teach authentic computer science concepts. In 2013, Code.org expanded on what
ThinkerSmith created, and offered a 20-hour unplugged curriculum for grades K-8. After the wide adoption of this
curriculum, in 2015 Code.org developed further the existing 20-hour unplugged curriculum, which now includes
48
Clearly, early computing education is now at the forefront, and, studies toward this line of research are urgently
needed in order to develop an informed body of knowledge about learning and teaching computer science in K-6.
Accordingly, the authors propose a curriculum framework with a focus on promoting computational thinking skills
for ages 6 to 12. While computational thinking is just one element of computer science, albeit an important one
(Fluck et al., 2016), the authors suggest a curriculum for K-6 with an explicit focus on computational thinking,
before covering more theoretical and applied concepts of computer science in secondary education. Particularly, this
study sought to address the following questions: (a) what computational thinking skills should a curriculum promote
in K-6? and (b) what knowledge do teachers need to have to be able to teach a computational thinking curriculum in
K-6?
Succinctly, the 2010 National Research Council’s report differentiated computational thinking from computer
literacy, computer programming, and computer applications (i.e., games), and broadened the term to include core
concepts from the discipline of computer science, such as abstraction, decomposition, pattern generalization,
visualization, problem-solving, and algorithmic thinking.
Similarly, Furber (2012) offered a concise definition of computational thinking as “the process of recognizing aspects
of computation in the world that surrounds us, and applying tools and techniques from computer science to
understand and reason about both natural and artificial systems and processes” (p. 29).
CSTA and ISTE, in collaboration with leaders from higher education, industry, and K-12 education, developed an
operational definition of computational thinking as a problem-solving process that includes, but is not limited to, the
following elements: (a) Formulating problems in a way that enables us to use a computer and other tools to help
solve them; (b) Logically organizing and analyzing data; (c) Representing data through abstractions, such as, models
and simulations; (d) Automating solutions through algorithmic thinking (i.e., a series of ordered steps); (e)
Identifying, analyzing, and implementing possible solutions with the goal of achieving the most efficient and
effective combination of steps and resources; and (f) Generalizing and transferring this problem-solving process to a
wide variety of problems.
Despite the fact that currently there is not one unanimous definition of computational thinking, it seems fair to
conclude that, based on the literature reviewed in this study, researchers have come to accept that computational
thinking is a thought process that utilizes the elements of abstraction, generalization, decomposition, algorithmic
thinking, and debugging (detection and correction of errors). Abstraction is the skill of removing characteristics or
attributes from an object or an entity in order to reduce it to a set of fundamental characteristics (Wing, 2011). While
abstraction reduces complexity by hiding irrelevant detail, generalization reduces complexity by replacing multiple
entities that perform similar functions with a single construct (Thalheim, 2000). Abstraction and generalization are
often used together as abstracts are generalized through parameterization to provide greater utility. Decomposition is
the skill of breaking complex problems into simpler ones (National Research Council, 2010). Algorithmic thinking is
a problem-solving skill related to devising a step-by-step solution to a problem and differs from coding (i.e., the
technical skills required to use a programming language) (Selby, 2014). Additionally, algorithmic notions of
sequencing (i.e., planning an algorithm, which involves putting actions in the correct sequence), and algorithmic
notions of flow of control (i.e., the order in which individual instructions or steps in an algorithm are evaluated) are
49
Table 1 shows the elements of computational thinking as these have been discussed and defined in this section.
Accordingly, this conceptual framework is the one that was adopted for developing the computational thinking
curriculum framework for K-6 presented in the next section.
5. Debugging The skill to identify, remove, and fix errors (Selby, 2014).
A holistic design approach attempts to “deal with complexity without losing sight of the separate elements and the
interconnections between those elements” (van Merriënboer & Kirschner, 2007, p. 6). It is the opposite of an
atomistic design where complex contents and tasks are reduced to simpler elements, promoting this way content
compartmentalization and fragmentation. Compartmentalization and fragmentation support the separation of a whole
51
With regard to the first design step, it is argued that the sources of the computational thinking curriculum ought to be
problems, issues, and concerns directly related to life itself. A curriculum of this kind will result in usable knowledge
- that is, knowledge that can be applied directly in the context of real life, problems and concerns at hand - and not in
inert knowledge (Voogt, Fisser, Good, Mishra, & Yadav, 2015; Webb, Fluck, Cox, Angeli-Valanides, Malyn-Smith,
Voogt, & Zagami, 2015). Educational researchers have found that a curriculum that is focused on problem solving
around real-world problems can result in greater intellectual curiosity, motivation, improved attitude toward
schooling, and higher achievement in college (Wolf & Brandt, 1998). Consequently, a curriculum designed around
real-life problems can be a way to make computational thinking relevant to students’ lives, and, thus, a way to keep
them interested in the subject matter. Ultimately, this may end up in increasing substantially the number of students
who will eventually pursue computer science as their major field of study later in college.
From an implementation point of view, a curriculum designed around real-life problems demands a wider range of
content, simply because authentic real-world problems are usually multidisciplinary in nature. As a consequence, a
curriculum from this perspective poses new demands on teaching often requiring close collaboration among teachers
with different content expertise. It should be noted that real-life problem-solving tasks constitute challenging design
endeavors, and, a curriculum designer may approach the design process through the means of rapid prototyping
before designing an entire educational program, course, or module.
With regard to the sequencing of the problem-solving tasks, a sequence from simple whole tasks to more complex
whole tasks is recommended. It is made clear that each problem-solving task, irrespective of complexity, engages the
learner in whole-task problem-solving experiences. In the context of computational thinking, this means that each
learning task, simple or complex, confronts the learner with all or almost all of the constituent computational
thinking skills for a real-life computational thinking experience. All tasks are meaningful, authentic, and relevant to
children’s life. A sequence of tasks constitutes the backbone of the computational thinking curriculum. It is also
evident that children may need guidance and support as they start working on more challenging tasks. Support may
be provided in the form of external reference systems to help students gradually develop abstractions. Students may
also need guidance with the problem-solving process itself.
In the early 2000s, though, a number of educational researchers undertook systematic efforts for extending and
enriching the concept of PCK by adding Technology Knowledge as another essential category of teachers’
knowledge base (Angeli & Valanides, 2005; Koehler & Mishra, 2008; Niess, 2005). From this perspective, the
introduction of Technology Knowledge in the existing framework of PCK successfully expanded PCK to TPCK -
that is, Technological Pedagogical Content Knowledge (Angeli & Valanides, 2005; Angeli & Valanides, 2009;
Koehler & Mishra, 2008; Niess, 2005). A conceptualization of the framework of TPCK is proposed by Angeli and
Valanides (2005; 2009) as shown in Figure 1. According to Figure 1, TPCK is conceptualized as a unique body of
knowledge that is formed by the contribution of five distinct knowledge bases, namely, content knowledge,
pedagogical knowledge, knowledge of learners, knowledge of the educational context, and technology knowledge
(Angeli & Valanides, 2005; Angeli & Valanides, 2009). This body of knowledge grows when teachers are engaged
systematically in useful educational practices, either in their own classrooms or teacher professional development
programs.
Figure 1. Technological Pedagogical Content Knowledge (adopted from Angeli & Valanides, 2005)
TPCK is an important body of knowledge for the field of computer science, because technology is at the center of the
computer science domain, either, as a means in itself (i.e., to learn to use the technology as a goal), or as a means for
achieving or teaching something else (i.e., to use technology in order to solve a problem or to teach a computer
science concept). For the purposes of this study, the authors provide a conceptualization of TPCK for the construct of
computational thinking, as it is defined in Table 1, in order to better explain what teachers need to know to be able to
teach a computational thinking course aligned with the framework proposed in Table 2.
53
Learner knowledge for computational thinking (LK ) includes knowledge about learners’ difficulties in (a)
CT
developing abstractions that are beyond of any particular programming language or tool, denoted as LK , (b)
CT(A)
generalizing from one solution to another by identifying common patterns, denoted as LK , (c) decomposing
CT(G)
complex problems to simpler ones, designated as LK , (d) thinking algorithmically to solve a problem (including
CT(D)
difficulties in understanding relevant concepts, such as sequencing, loops, flow of control, conditions, etc.), denoted
as LK , and (e) debugging, denoted as LK
CT(Algo) CT(Debug).
Pedagogical knowledge for computational thinking (PK ) includes the general pedagogical knowledge applicable to
CT
all other content domains (i.e., the use of questions to promote understanding, use of examples, explanation,
demonstration), in addition to knowledge about subject-specific pedagogical practices pertinent to computational
thinking. PK is defined in terms of the following teaching tactics: (a) model how to problem solve or think about a
CT
problem in iterative and incremental ways, (b) present or explain a solution to a problem in terms of a series of steps,
(c) model decision making based on conditions, (d) do something based on (and expanding) what others or you have
done (reuse and remix), (e) show how a complex problem can be decomposed into simpler problems and develop a
solution in increments, (f) show how to design a model before writing a computer program for solving the problem,
and (g) try things out as you go and make revisions based on what happens.
Technology knowledge for computational thinking (TK ) includes knowledge and skills about how to (a)
CT
operate/use a variety of technologies, (b) invent new technologies/tools, (c) solve a task using technical processes,
methods, and tools, and (d) learn and adapt to new technologies.
Context knowledge for computational thinking (CX ) is defined from the point of view explicated by Porras-
CT
Hernández and Salinas-Amescua (2013) who proposed to regard context knowledge along two important
dimensions, namely (a) scope (macro, mezzo, and micro level context) and (b) actor (students’ and teachers’ inner
and external context). Macro context is defined by social, political, technological, and economic conditions at a
global level that influence the value and worth of adding computer science and computational thinking to the school
curriculum. Mezzo context is defined by the social, cultural, political, organizational, and economic conditions
settled in the local community and the educational institution about the value of computational thinking in children’s
lives. Finally, micro context is the level that deals with in-class conditions for learning (e.g., available resources for
computational thinking, available technologies, norms and policies, beliefs, expectations, teachers’ and students’
goals about computational thinking). In addition, Porras-Hernández and Salinas-Amescua (2013) argued that in order
to comprehend teachers’ uses of technology, it is important to consider teachers’ and students’ (actors’) unique
characteristics, as they are brought in the context as separate objects of knowledge with internal (e.g., students’
needs, preferences, misconceptions, learning difficulties, prior knowledge, teachers’ self-efficacy, pedagogical
beliefs) and external contexts (e.g., ethnicity, culture, community, and socioeconomic background).
Lastly, TPCK for computational thinking (TPCK ) is defined as knowing how to: (1) Identify a range of creative
CT
and authentic computational thinking projects; (2) Identify a range of technologies with an appropriate set of
affordances in terms of providing the necessary technological means for practicing/teaching the whole range of
computational thinking skills with each project; and (3) Use the affordances of technology to transform CK and
CT
PK using representations that make the overall computational thinking experience comprehensible for all learners.
CT
54
The course instructor initially engaged the teachers in authentic problem solving by asking them to think about the
city/town they were living and identify ways of how people’s lives in those places could be improved. The teachers
explained their thinking about possible improvements and then the instructor asked them to think about how computers
could be used for solving some of the problems they identified. A brainstorming activity resulted in ten different ideas
that constituted the real-life tasks that the course instructor used to teach the teachers about computational thinking. The
ten tasks were sequenced from simple to complex based on the involvedness of the solution.
For each problem, teachers were taught how to create a model first before writing a computer program for solving the
problem. Creating a model proved to be extremely difficult for the teachers and often times they asked their
instructor for help. Early attempts in creating models resulted in models containing lots of unnecessary information,
but, gradually teachers, with the help of the course instructor learned that models are abstractions of something free
from inessential detail. The teachers were taught how to create models through a process that was explicitly taught to
them and involved identification of the important entities of the model, their characteristics (parameters in the
model), and relationships, either quantitative or qualitative, between the parameters of the entities. The teachers
showed commitment in developing the best models they could possibly create, and, often times they exhibited lots of
creative ideas of how to make them better.
In regards to teaching teachers computer programming, the course instructor used systematically the following
pedagogical strategies: (a) decide what sprites are needed for your project, (b) decide what scripts are needed for
your project, (c) organize the scripts in meaningful ways for you and others, (d) develop some code, try it out, then
develop some more, (e) test and debug, and (f) build or extend on existing projects or ideas. During the programming
tasks, computational concepts such as, data, processing, information, sequencing, loops, parallel processing, events,
conditions, operators, variables, and dataflow of control, were explicitly explained and illustrated with lots of
programming examples. Teachers had no difficulties with understanding programming concepts, even though they
found the concepts of variables and conditional logic more challenging than the others.
Concluding remarks
In conclusion, the authors in this paper presented a computational thinking curriculum framework for designing a
curriculum for K-6, an area of research that is still in its infancy, described design guidelines for enacting the
curriculum framework, and defined TPCK as the body of knowledge that teachers need to have to be able to teach
CT
the curriculum in K-6. In addition, the authors provided an example of a teacher preparation course that was
specifically designed to promote teachers’ TPCK . It is recognized that more empirical evidence in the form of rich
CT
educational cases is needed in terms of further investigating the effectiveness of the frameworks proposed herein in a
variety of contexts. It is expected that with the gradual adoption of computer science as a distinct school subject in
the K-6 curriculum of countries around the world, our knowledge and research base regarding the issues discussed in
this paper will dramatically expand over the next several years.
55
56
57