ArticlePDF AvailableLiterature Review

Abstract and Figures

Computational thinking will influence everyone in every field of endeavour. This vision poses a new educational challenge for our society, especially for our children. In thinking about computing, we need to be attuned to the three drivers of our field: science, technology and society. Accelerating technological advances and monumental societal demands force us to revisit the most basic scientific questions of computing.
Content may be subject to copyright.
Computational thinking and thinking
about computing
BYJEANNETTE M. WING*
Computer Science Department, Carnegie Mellon University,
Pittsburgh, PA 15213, USA
Computational thinking will influence everyone in every field of endeavour. This vision
poses a new educational challenge for our society, especially for our children. In thinking
about computing, we need to be attuned to the three drivers of our field: science,
technology and society. Accelerating technological advances and monumental societal
demands force us to revisit the most basic scientific questions of computing.
Keywords: computational thinking; abstraction; automation; computing;
computable; intelligence
1. Computational thinking
Computational thinking is taking an approach to solving problems, designing
systems and understanding human behaviour that draws on concepts fundamental
to computing
1
(Wing 2006).
Computational thinking is a kind of analytical thinking. It shares with
mathematical thinking in the general ways in which we might approach solving a
problem. It shares with engineering thinking in the general ways in which we
might approach designing and evaluating a large, complex system that operates
within the constraints of the real world. It shares with scientific thinking in the
general ways in which we might approach understanding computability,
intelligence, the mind and human behaviour.
(a)Computing: abstraction and automation
The essence of computational thinking is abstraction. In computing, we abstract
notions beyond the physical dimensions of time and space. Our abstractions are
extremely general because they are symbolic, where numeric abstractions are just a
special case.
In two ways, our abstractions tend to be richer and more complex than those in
the mathematical and physical sciences. First, our abstractions do not necessarily
enjoy the clean, elegant or easily definable algebraic properties of mathematical
Phil. Trans. R. Soc. A (2008) 366, 3717–3725
doi:10.1098/rsta.2008.0118
Published online 31 July 2008
One contribution of 19 to a Discussion Meeting Issue ‘From computers to ubiquitous computing,
by 2020’.
*wing@cs.cmu.edu
1
By ‘computing’ I mean very broadly the field encompassing computer science, computer
engineering, communications, information science and information technology.
3717 This journal is q2008 The Royal Society
abstractions, such as real numbers or sets, of the physical world. For example, a
stack of elements is a common abstract data type used in computing. We would not
think ‘to add’ two stacks as we would two integers. An algorithm is an abstraction
of a step-by-step procedure for taking input and producing some desired output.
What does it mean ‘to interleave’ two algorithms, perhaps for efficient parallel
processing? A programming language is an abstraction of a set of strings each of
which when interpreted effects some computation. What does it mean ‘to combine’
two programming languages? These kinds of combinators are themselves
abstractions that take careful thought, perhaps an entire research agenda, to
define. Second, because our abstractions are ultimately implemented to work
within the constraints of the physical world, we have to worry about edge cases and
failure cases. What happens when the disk is full or the server is not responding?
What happens when a program encounters at run-time an error that should have
been caught at compile time? How do we get a robot to move down a hallway
without bumping into people?
In working with rich abstractions, defining the ‘right’ abstraction is critical.
The abstraction process—deciding what details we need to highlight and what
details we can ignore—underlies computational thinking.
The abstraction process introduces layers. In computing, we work simul-
taneously with at least two, usually more, layers of abstraction: the layer of interest
and the layer below; or the layer of interest and the layer above. Well-defined
interfaces between layers enable us to build large, complex systems. Given the
application programming interface (API) of a software component, a user need not
know the details of the component’s implementation to know how to interact with
it, and an implementer need not know who all the component’s potential users
might be in order to implement it correctly. The layered architecture of the
Internet, in particular the ‘thin waist’ Internet protocol layer, supports both the
incorporation of new computing devices and networking technology at the bottom
and the addition of new, unforeseen applications at the top.
In working with layers of abstraction, we necessarily keep in mind the
relationship between each pair of layers, be it defined via an abstraction function,
a simulation relation, a transformation or a more general kind of mapping. We
use these mappings in showing the observable equivalence between an abstract
state machine and one of its possible refinements, in proving the correctness of an
implementation with respect to a specification and in compiling a program
written in a high-level language to more efficient machine code.
And so the nuts and bolts in computational thinking are defining abstractions,
working with multiple layers of abstraction and understanding the relationships
among the different layers. Abstractions are the ‘mental’ tools of computing.
The power of our ‘mental tools is amplified by the power of our metal’ tools.
Computing is the automation of our abstractions. We operate by mechanizing our
abstractions, abstraction layers and their relationships. Mechanization is possible
due to our precise and exacting notations and models. Automation implies the need
for some kind of computer to interpret the abstractions. The most obvious kind
of computer is a machine, i.e. a physical
2
device with processing, storage and
2
The obvious physical devices are the mechanical or electrical of today. I also mean to include the
physical devices of tomorrow, e.g. nano and quantum computers; and even the biological devices of
tomorrow, e.g. organic, DNA and molecular computers, as well (cf. §2a).
J. M. Wing3718
Phil. Trans. R. Soc. A (2008)
communication capabilities. Yes, a computer could be a machine, but more subtly it
could be a human. Humans process information; humans compute. In other words,
computational thinking does not require a machine. Moreover, when we consider the
combination of a human and a machine as a computer, we can exploit the combined
processing power of a human with that of a machine. For example, humans are still
better than machines at parsing and interpreting images; on the other hand,
machines are much better at executing certain kinds of instructions far more quickly
than humans and processing datasets far larger than a human can handle.
Operationally, computing is concerned with answering ‘How would I get a
computer to solve this problem?’ where the computer could be a machine, a human,
the combination of a machine and a human, or recursively, the combination (e.g. a
network) of such computers. Implicit in answering this question is our identifying
appropriate abstractions and choosing the appropriate kind of computer for the
task. Unfortunately, it is all too easy to answer this question by not thinking very
hard about defining the right abstraction and then choosing a machine with lots of
horsepower to solve the problem using brute force. Computational thinking can
offer more than this simple use of mechanical computers.
(b)Computational thinking everywhere
‘Computational thinking is influencing research in nearly all disciplines, both in
the sciences and the humanities’ (Bundy 2007). Evidence of computational
thinking’s influence on other fields abounds: computational thinking is transform-
ing statistics, where with machine learning the automation of Bayesian methods
and the use of probabilistic graphical models make it possible to identify patterns
and anomalies in voluminous datasets as diverse as astronomical maps, functional
magnetic resonance imaging scans, credit card purchases and grocery store receipts
(e.g. Machine Learning Department 2008). Computational thinking is transforming
biology, first with the shotgun sequencing algorithm accelerating our ability to
sequence the human genome, and now with our abstractions representing dynamic
processes found in nature, from the cell cycle to protein folding (e.g. Fisher &
Henzinger 2007). Computational thinking is transforming economics, spawning a
new field of computational microeconomics, with applications such as advertise-
ment placement, online auctions, reputation services and even finding optimal
donors for n-way kidney exchange (Abraham et al.2007).
In other fields, computational thinking is still at the stage of simple
computational thinking: spending days’ worth of machine cycles to solve
problems. Many sciences and engineering disciplines rely on enormous computer
simulations of mathematical models of physical processes found in nature.
Aerospace relies on being able to simulate an entire aircraft or space mission. The
geosciences dare to want to simulate the Earth, from its inner core to its surface
to the Sun. In the humanities and the arts, digital libraries of books, collections
and artefacts create opportunities through computational methods such as data
mining and data federation to discover new trends, patterns and links in our
understanding and appreciation of humankind.
Looking to the future, deeper computational thinking—through the choice of
cleverer or more sophisticated abstractions—may enable scientists and engineers
to model and analyse their systems on a scale orders of magnitude greater than
they are able to handle today. Through the use of abstraction layers, e.g.
3719
Computational thinking
Phil. Trans. R. Soc. A (2008)
hierarchical decomposition, we look forward to when we can: model systems at
multiple time scales and at multiple resolutions of the three space dimensions;
model the interactions of these many complex systems to identify conditions for
tipping points and emergent behaviour; increase the number of parameters and
sets of initial conditions in these models; play these models backwards and
forwards in time; and validate these models against ground truth.
Deeper computational thinking will help us not only to model more and more
complex systems, but also to analyse the massive amounts of data we collect and
generate. Through deployment of distributed sensor nets, routine use of
monitoring and surveillance systems, the prevalence of digital cameras on
mobile (cell) phones, digitizing the world’s information, running simulations of
models of complex systems, and so on, we will be collecting and generating more
and more data to analyse. It will be through computational thinking—
abstractions for representing and processing the data—that we will be able to
extract the knowledge buried within or spread throughout the data. There is an
open feedback loop: this knowledge, piquing our curiosity, will lead us to ask new
questions that require collection of more data; and this knowledge will help us to
fine-tune our simulation models, thereby generating even more data.
Vision no. 1. I envision that computational thinking will be instrumental to
new discovery and innovation in all fields of endeavour.
(c)Computational thinking for everyone
If computational thinking will be used everywhere, then it will touch everyone
directly or indirectly. This raises an educational challenge. If computational
thinking is added to the repertoire of thinking abilities, then how and when
should people learn this kind of thinking and how and when should we teach it?
Let us assume that the trend of using computational thinking in research in all
fields is already happening, thereby already influencing the training of graduate
students. Let us further assume that universities have already begun to
incorporate computational thinking in their undergraduate curricula, thereby
recognizing how the next generation will have to be able to think in order to
succeed in modern society. Thus, let us focus this question at the elementary
through high school levels of education. In fact, if we wanted to ensure a common
and solid basis of understanding and applying computational thinking for all,
then this learning should best be done in the early years of childhood.
I pose the following as a challenge to the computer science, learning sciences
and education communities.
Challenge no. 1. What are effective ways of learning (teaching) computational
thinking by (to) children?
This question raises even more fundamental questions:
What are the elemental concepts of computational thinking? Educators in
computing have answered and continue to answer this question by creating
courses, typically for first-year undergraduates, that focus on the principles
of computing rather than just on computer programming skills. As the field of
computing continues to mature, it is worth revisiting this question again, with a
specific focus on earlier years.
J. M. Wing3720
Phil. Trans. R. Soc. A (2008)
Moreover, it is worth revisiting this question in collaboration with scholars in
learning science and education. For example, what, if any, computational
thinking concepts are as innate to human cognition as is the mathematical
concept of numbers? Human vision is parallel processing. What tasks do we most
naturally do or learn to do in parallel versus sequentially? Children experience
notions of infinity and recursion through mathematics and language; naming and
teaching these fundamental concepts early on in formal learning settings would
provide powerful building blocks for computational thinking.
What would be an effective ordering of concepts in teaching children as their
learning ability progresses over the years? By analogy, we teach numbers to
children in kindergarten (when they are 5 years old), algebra in junior high (12
years old) and calculus in senior high (18 years old). There may be many possible
ways to structure the progression of computational thinking concepts; which is
the most effective for which kind of learner?
How best should we integrate the tool with teaching the concepts? Here and
henceforth, let ‘the tool’ mean the computing machine (a particular ‘metal’ tool
of §1a). Our field of computing is in a unique situation since not only are there
computational concepts to teach but also there is a tool to teach. This tool
provides some challenges and opportunities.
One challenge is that we do not want the tool to get in the way of
understanding the concepts. We also do not want people just to be able to use the
tool but not have learned the concepts (a case in point: using a calculator versus
understanding arithmetic). Worse, we do not want people to come away thinking
they understand the concepts because they are adept at using the tool. A second
challenge is that we want to track the learning of how to use the tool with the
order of learning of concepts. At what point do we introduce each of the powerful
capabilities of a computing machine? At what point do we expose children to the
intricacies of how the machine works? These questions are analogous to choosing
the right abstraction where now the criteria are defined by learning ability.
One opportunity is that we can use the tool to reinforce the concepts we teach.
Computing is cool: it is all about making abstractions come alive! Through
effective visualization and animation, even at early grades we can viscerally show
the difference between a polynomial-time algorithm and an exponential-time one
or show that a tree is a special kind of graph; in later grades through acquiring
programming skills, students can automate their own abstractions. Indeed, this
tool can be useful for reinforcing not just computational thinking concepts but
also concepts in other fields. A second opportunity is that most children today
are facile with the mechanics of using the tool and are not afraid to explore and
play with it. We can take advantage of the routine exposure children have to
computational devices at home and in school today.
Given this last observation, we should also explore informal as well as
formal learning. Learning takes place in many ways and outside the classroom:
children teach each other; learn from parents and family; learn at home, in
museums and in libraries; and learn through hobbies, surfing the Web and
life experiences.
Vision no. 2. I envision that computational thinking will be an integral part of
childhood education.
3721
Computational thinking
Phil. Trans. R. Soc. A (2008)
Caveat. There are many cultural, economic, political and social barriers in realiz-
ing this vision, especially in countries where the education system is not centrally
controlled. Striving towards this vision could still yield worthwhile benefits.
2. Thinking about computing
The field of computing is driven by scientific questions, technological innovation
and societal demands. I remind us of this point for two reasons. First, in our field,
we are often so swept up by our technological advances or societal expectations
that we forget that there are deep scientific questions that underlie our field.
Second, for others outside of computing, it is important to explain that the
weight of each, and moreover the combination of our three drivers—science,
technology and society—make our field unique, indeed distinctive from other
sciences, mathematics and engineering. Why not celebrate this distinction?
Moreover, as shown by the bidirectional arrows in figure 1, there is wonderful
interplay—push and pull—among these three drivers: in the usual loop, scientific
discovery feeds technological innovation, which feeds new societal applications;
in the reverse direction, new technology inspires new creative societal uses, which
may demand new scientific discovery. An example of how society demands new
science: the spread of our own computing and communications machinery, from
mega-data centres of tens of thousands of servers to billions of mobile phones,
requires new advances in science to use energy more efficiently. An example of
how society demands new technology: the desire for higher fidelity and more
realistic virtual environments is straining our network capability for real-time
simultaneous transmission of multiple multimedia (audio, video and text) data
streams. Another example of technology pull is how a fundamental social desire
to express one’s identity and connect with likeminded others led to the unantici-
pated and rapid rise of social networks, such as Facebook, MySpace and
YouTube, which in turn added a new industry to our economy.
Our field most naturally anticipates technology trends and embraces the
demands and expectations of society, so let us start with the technology drivers,
then societal, and then scientific.
(a)Technology drivers
Beginning at the computing substrate level, we are predicting the end of
Moore’s law within the next 10–15 years (Engadget 2006). The immediate
consequence for silicon-based technology is the production of multi-core
technologyscience
society
Figure 1. Three drivers of computing: science, technology and society.
J. M. Wing3722
Phil. Trans. R. Soc. A (2008)
architecture machines; the challenge is understanding how to program them to
use their parallel processing capability effectively.
Beyond silicon, we look at nanocomputing, biocomputing and even quantum
computing. In some sense they have already arrived. Nano is here: IBM (2006)
announced that its researchers had built the first complete integrated circuit
around a single carbon nanotube molecule. Bio is here: Adleman (1994) solved
the seven-point Hamiltonian path problem with DNA computing; Benenson et al.
(2004) described in Nature the construction of a DNA computer. We are now
building molecular machines. Quantum is coming? The Swiss (Messmer 2007)
use quantum cryptography to secure ballots in their elections. The design of
nanocomputers and bio-inspired computers must already take into consideration
quantum effects (e.g. Heller et al. 2005).
At the device level, Strukov et al.(2008)announced that they can create a
memristor (Chua 1971), the missing fourth element along with the resistor,
capacitor and inductor. At larger scales, we see a growing use of mobile phones,
radio frequency identification tags, sensors, actuators and robots. Our automobiles
are laced with embedded computers: a BMW is ‘now actually a network of
computers’ (Economist 2007).
In terms of data, we are drowning in data (cf. §1b). Sensors are everywhere,
storage is cheap and we are in a constant state of information overload.
In terms of communication, Web 3.0 or the Semantic Web is an active area of
research. We will see more sophisticated virtual worlds; Second Life is today’s
Mosaic. The scientists and engineers of tomorrow will conduct their work
through virtual organizations, facilitating international collaboration.
In terms of far-reaching technological machines, people aspire to build machines
that model the human brain. The IBM and EPFL’s Blue Brain Project (2005) aims
to create a biologically accurate, functional model of the brain. The start-up
company Numenta (2005) is building a software platform for intelligent computing
modelled after the human neocortex.
These are just a few technology trends of today; it will be interesting to read this
section of this paper in 10 years to see where we were and how far we will have gone.
(b)Societal drivers
The success of our information technology, including computers and communi-
cations, has raised society’s expectations of us. People now demand availability,
24 hours per day, every day, 100 per cent reliability, 100 per cent connectivity,
instantaneous response, the ability to store anything and everything forever, andthe
ability for anyone to access anything from anywhere at any time.
The classes of users of our technology are not limited to scientists and
engineers. Rather, our users are young and old, able and disabled, rich and poor,
literate and illiterate.
Our technology must also support a range in the number of users: from
individual to groups to populations to the global society. Individuals want highly
personalized devices and services; search companies realize this desire by
tracking our queries and personalizing the advertisements we see. Cliques of
friends lead to larger acquaintance networks such as LinkedIn or social networks
such as Facebook. Different populations may use information and networking
technology to preserve their cultural heritage.
3723
Computational thinking
Phil. Trans. R. Soc. A (2008)
The Internet and the World Wide Web together is a great equalizer. On the other
hand, there remain scientific and technical challenges regarding accountability,
anonymity, identity management and privacy.
Challenge no. 2. How do we make our technology and the wealth of our
applications accessible to all? How do we balance openness with privacy?
(c)Science drivers
Wing (2008) presented five ‘deep questions in computing’, as a way to remind
ourselves that there are scientific challenges that underlie our individual research
pursuits or innovations in technology. I repeat this set (i.e. no ordering implied)
of questions for the sake of completeness in this paper. This set is meant to be a
starting point, with new questions added by the entire community.
Does P equal NP?
What is computable?
What is intelligence?
What is information?
(How) can we build complex systems simply?
Closing question. Given (i) the philosophy of §1a, which says that computa-
tional thinking is informed by our desire to automate abstractions, where the
computer can be human and/or machine, and (ii) the technological trends
outlined in §2a, which test the adequacy of Shannon’s information theory and the
Turing machine as the fundamental model of computation, we might even ask
the most basic question of all: what is a computer?
I thank the many people who read my Communications of the ACM March 2006 viewpoint or
heard me speak about computational thinking. The outpouring of support from everyone has been
gratifying. I also thank my colleagues at Carnegie Mellon and Microsoft Research who early on
supported my vision to make computational thinking commonplace, and my colleagues at the
National Science Foundation who have helped sharpen and deepen the ideas behind this vision.
This article was based on work partially supported by the National Science Foundation, while
working at the Foundation. Any opinion, finding and conclusions or recommendations expressed
in this material are those of the author and do not necessarily reflect the views of the National
Science Foundation.
References
Abraham, D., Blum, A. & Sandholm, T. 2007 Clearing algorithms for barter exchange markets:
enabling nationwide kidney exchanges. In Proc. 8th ACM Conf. on Electronic Commerce,
pp. 295–304. New York, NY: Association for Computing Machinery.
Adleman, L. M. 1994 Molecular computation of solutions to combinatorial problems. Science 266,
1021–1024. (doi:10.1126/science.7973651)
Benenson, Y., Gil, B., Ben-Dor, U., Adar, R. & Shapiro, E. 2004 An autonomous molecular
computer for logical control of gene expression. Nature 429, 423–429. (doi:10.1038/nature02551)
Blue Brain Project 2005 See http://bluebrain.epfl.ch/.
Bundy, A. 2007 Computational thinking is pervasive. J. Scient. Pract. Comput. 1, 67–69.
Chua, L. 1971 Memristor—the missing circuit element. IEEE Trans. Circuit Theory 18, 507–519.
J. M. Wing3724
Phil. Trans. R. Soc. A (2008)
Economist 2007 Quote from R. Achatz, Seimens, from ‘Revving up’. The Economist, 11 October
2007.
Engadget 2006 See http://www.engadget.com/2007/09/19/gordon-moore-predicts-end-to-moores-
law-in-10-years/.
Fisher, J. & Henzinger, T. A. 2007 Executable cell biology. Nat. Biotechnol. 25, 1239–1249. (doi:10.
1038/nbt1356)
Heller, M. J., Sullivan, B. & Dehling, D. 2005 Fabrication of photonic transfer DNA–quantum dot
nanostructures. In Technical Proc. 2005 NSTI Nanotechnology Conference and Trade Show,
vol. 1, ch. 12, pp. 769–772.
IBM 2006 See http://domino.watson.ibm.com/comm/pr.nsf/pages/news.20060324_carbonnano-
tube.html.
Machine Learning Department 2008 Research projects home page, Carnegie Mellon University. See
http://www.ml.cmu.edu/research/index.html.
Messmer, E. 2007 Quantum cryptography to secure ballots in Swiss election. Network World,11
October 2007. See http://www.networkworld.com/news/2007/101007-quantum-cryptography-
secure-ballots.html.
Numenta 2005 See http://www.numenta.com.
Strukov, D. B., Snider, G. S., Stewart, D. R. & Williams, R. S. 2008 The missing memristor found.
Nature 453, 80–83. (doi:10.1038/nature06932)
Wing, J. M. 2006 Computational thinking. Commun. ACM 49, 33–35.
Wing, J. M. 2008 Five deep questions in computing. Commun. ACM 51, 58–60. (doi:10.1145/
1327452.1327479)
3725Computational thinking
Phil. Trans. R. Soc. A (2008)
... Computational thinking is also seen as an approach to problemsolving that uses concepts and techniques from computer science to analysed and solve complex problems (Tedre & Denning, 2016). CT as a thinking process helps individuals deal with problems systematically and logically, by utilizing concepts such as abstraction, decomposition, pattern recognition, and algorithmic thinking (Wing, 2020). ...
... In addition, computational thinking is one of the competencies that must be possessed today. Computational thinking supports students' thinking patterns with various components (Wing, 2020). The purpose of computational thinking is to help students think mathematically, this mathematical process that allows students to learn. ...
... The instrument for KCT uses 4 indicators from (Koponen et al., 2019) including 1) Know different teaching methods and styles; 2) familiar with educational trends; 3) Favor varied teaching methods; 4) Base teaching on students' ideas. The instruments for CT use from (Wing, 2020) instruments from which include decomposition, pattern finding, abstraction, and algorithms. Data analysis was carried out by analysing the pre-service teacher's answers by finding coding in the answers. ...
Conference Paper
Full-text available
This research discusses the knowledge of content and teaching (KCT) and computational thinking (CT) of pre-service elementary school teachers on student work results. How much do pre-service teachers deepen students' thinking about the concepts of addition and subtraction? This research aims to get an overview of pre-service teachers' thinking about KCT and CT so that the results can be used to determine educational policies for developing human resource capabilities in elementary schools. The subjects of this research were three pre-service teachers at elementary school that selected by purposive sampling. The criteria for pre-service teachers are those who have taken basic concepts of mathematics, mathematics education, and mathematics development. The subjects in the low, medium, and high categories from state universities with A accreditation in Yogyakarta, Indonesia. The type of research is a case study. The research instruments namely the results of elementary school students ' work about addition and subtraction, then interview instruments to give an idea of how deeply they think about the material. The KCT’s findings are that pre-service teachers do not understand the Van De Walle concept of addition and subtraction, do not understand the prerequisites for addition and subtraction material, and pre-service teachers find unique ways of learning from students. In the CT component, there are two components that appear in them, namely pattern recognition and decomposition. An interesting finding was that pre-service teachers only learned about the Van de Walle technique after seeing the results of the work carried out by students. This means that previously they did not use those techniques at all. This picture shows that pre-service teachers' KCT and CT is still not optimal, so further, and in-depth research is needed to explore their understanding.
... Using 282 the foundation of modern life. Managing, cognitive activities and problem solving in a range of contexts is highly rewarded in many fields including computing disciplines [18,19]. Robotic educational applications and its features are mainly dedicated to computer simulations, robot programing, robot construction and artificial intelligence [8]. ...
... However, alternative solutions that embrace educational robotics exist [18,20] and can enhance problem-solving and computational skills as well as engaging learners with diverse interest and learning styles. Robotics can be used as a teaching assistant tool to assist students to assimilate complex scenarios as it engages them and therefore to increase their computational thinking skills [21,19]. To strengthen the learning of complex or abstract topics, educational robotics has been introduced in many educational institutions as a novel learning environment to maximize advanced problem-solving skills [6,22]. ...
... It's clear from this that using Sphero SPRK robot technology, and particularly block programming, as an assistant programming tool can encourage novice programmers to learn programming with minimal frustration, as learning is more flexible and can be used on their own mobile devices. This supports the assertions by [18] and [19] about how these technologies help with learning and the value of these actions in helping learners gradually build a programme and have exposure to programming logic without engaging in semantic errors that may confuse them in the early stages of learning. The semantic representation of the learning process with the Sphero SPRK robot and block-based programming: 1. Participants engage in the learning process by interacting with the Sphero robot. ...
Conference Paper
Full-text available
This research investigates the use of the 'Sphero SPRK+' robot as a programming assistant to enhance conceptual understanding and engagement in programming education. The research addresses the challenges of teaching programming and underlines the significance of students understanding programming structures, semantics, syntax and planning. The Sphero robot offers multiple programming options, including graphic blocks, a pictorial command line, and text commands, catering to diverse learning styles. The approach of the study is based on a cognitive learning model, with the Sphero robot providing immediate feedback throughout practising. The experiment incorporates two groups: one using Blocks and the other using JavaScript code with Sphero's assistance. Results suggest that using Sphero SPRK robot enhances programming learning outcomes, particularly for novice learners. Participants express satisfaction with the engaging and practical learning experience, favouring the ease of Blocks for learning programming logic. The study provides significance for educational settings and emphasises the value of robotics and block-based programming in promoting algorithmic thinking and computational skills.
... Wing (2006) first proposed the term CT and referred to computational thinking as a method of problem solving. In 2008, Wing once again pointed out that computational thinking affects everyone's performance in various fields (Wing, 2008). Computational thinking is an analytical way of thinking. ...
... Wing (2006) introduced the concept of CT as a problem-solving method. In 2008, he reiterated that CT affects individuals' performance and efforts in every field (Wing, 2008). In a conference on CT held by the United States National Research Council in 2010, skills that might be involved in CT were listed, such as problem abstraction and decomposition, reasoning, and acquisition of knowledge of computer science concepts (National Research Council, 2010). ...
Article
Full-text available
Many students want to enroll in programming courses but fear the challenges ahead. They aspire to design quality systems or games after acquiring related skills but report concerns that programming logic is too difficult to learn because memorization of the syntax is required. Thus, they experience anxiety, are demotivated to learn, and, regretfully, may never enroll in programming courses. Computational thinking (CT) is a favorable method currently used in learning logic. This study proposed an easily implementable standard operating procedure for CT and incorporated it into programming courses; students were instructed and enabled to clarify the logical sequence before beginning to write a program. The standard operating procedure for CT contains five training steps, identify the problem, formulate the problem-solving steps, organize and summarize, draw a flowchart, and write a program. This kind of training can help students clarify the logical order more clearly to facilitate writing programs, thereby improving motivation to learn, reducing learning anxiety, and ultimately improving learning outcomes. The experiment results revealed significant results regarding the learning outcomes, motivation to learn, and learning anxiety of the experimental group learning programming through CT-centered teaching in comparison with those of the group learning through conventional teaching. Additionally, for female students, who were revealed to be initially less capable of logical thinking than male students, the following post intervention improvements were observed: adequate improvement in learning outcomes, increased motivation to learn, and reduced learning anxiety.
Article
Bu çalışma, bilgi işlemsel düşünmenin sorgulayıcı fen öğretimine entegrasyonuna yönelik bir etkinlik geliştirme çalışmasıdır. 7. sınıf öğrencilerinin karışımları ayırma konusunda Lim’in (2004) (sor, planla, keşfet, oluştur ve yansıt) sorgulayıcı öğrenme basamakları temelinde bilgi işlemsel düşünme sürecini harekete geçirmeleri sağlanmıştır. Öğrenciler sor aşamasında tahılların tarladan sofraya kadar geçen sürecine ilişkin algoritma tasarladılar. Planlama aşamasında ise problemi soyutlayıp ayrıştırarak çözümüne ilişkin planlamalar yaptılar. Keşfetme aşamasında planlama aşamasındaki çözümleri için gerekli bilgileri modelleme, veri düzenleme ve genelleme yaparak keşfettiler. Oluştur aşamasında fikir olarak tasarladıkları tesisi çizerek modelleme yaptılar. Ayrıca tesisin çalışma prensibine ait algoritma geliştirme çalışması gerçekleştirdiler. Son olarak yansıt aşamasında grupların tasarım fikirlerini sundular. Ortaya çıkan fikirlerin farklı problemlerin çözümünde kullanılıp kullanılamayacağı üzerine tartışılarak çözümün farklı problemlere uyarlama-genelleme yapılması sağlandı. Böylece etkinlik ile 7. sınıf öğrencilerinin sorgulama ve bilgi işlemsel düşünme becerilerini kullanmaları sağlandı.
Article
Full-text available
Computational thinking is one barrier to enculturating as a professional engineer. We created the Engineering Computational Thinking Diagnostic (ECTD) as an instructional tool that can identify at-risk first-year engineering students. The purpose of this study is to provide construct validity, internal consistency reliability, item characteristics, and criterion validity evidence for this diagnostic. From fall 2020 to fall 2021, 469 students from three institutions in the United States took the diagnostic. The data from 152 students at one institution was used to provide evidence of predictive validity. Exploratory and confirmatory factor analyses resulted in 20 items loading onto one factor in a good model fit range, with the internal consistency reliability coefficient, Cronbach α of 0.86. From item analyses based on classical test theory, the diagnostic items on average tended to be slightly easy but had sufficient discrimination power. The correlation matrix for criterion validity evidence indicated that the diagnostic functions well to differentiate students’ computational thinking ability by prior computer science course experience as well as by first-generation status. Predictive validity evidence from regression analyses revealed the statistically significant effect of students’ diagnostic scores assessed at the beginning of the first semester on predicting their end of semester course grades. The ECTD can have a broad impact because it provides a tool to gauge the entry-level skills of students, enabling early curriculum interventions to help retention and persistence to graduation. We make the case that the ECTD could contribute to the development of a more diverse workforce in engineering.
Article
Full-text available
This article presents a systematic literature review (SLR) on the effects of serious games, or more specifically educational games that aim to teach Computational Thinking (CT) skills to primary school students. Sixty one studies from various data sources were evaluated based on the CT skills and programming concepts addressed, the evaluation instruments used, the target audience, the learning outcomes and their results. The findings of the studies on the efficiency or impact of educational games on the acquisition of the proposed topics were positive, indicating that educational programming games can help primary school students develop CT skills or understand fundamental programming concepts. Additionally, the results suggest a general positive attitude towards the use of an educational game for learning purposes, while students perceive games as a great motivator for engaging in CT activities. Finally, the research discusses research gaps and shortages, as well as methodological limitations and recommendations for future work in the relevant domain.
Article
Background and Objective . Teacher assessment research suggests that teachers have good conceptual understanding of CT. However, to model CT based problem-solving in their classrooms, teachers need to develop the ability to recognize when and how to apply CT skills. Does existing professional development (PD) equip teachers to know when and how to apply CT skills? What factors should PD providers consider while developing trainings for CT application skills? Method . This retrospective observational study used a binomial regression model to determine what factors predict teachers’ probability of performing well on a CT application skills test. Participants . Participants of this study were 129 in-service K-12 teachers from a community of practice in India. Findings . Results show that teachers who have received at least one CT training, who have a higher teaching experience, and are currently teaching CT will have a higher probability of applying CT skills correctly to problems irrespective of the subject they teach and their educational backgrounds. However, receiving higher number of CT PD trainings was a negative predictor of teachers’ performance. Implications . Implications for school administrators, professional development providers, and researchers are discussed. Teachers need ample opportunity to teach CT in their teaching schedules. Continuous professional development does not necessarily result in improved CT application skills unless careful consideration is given to the pedagogies used and to the resolution of misconceptions that teachers may have developed in prior training. Mixing plugged and unplugged pedagogical approaches may be beneficial to encourage transfer of CT application skills across different types of problems. Lastly, there is a need to develop valid and reliable instruments that measure CT application skills of teachers.
Article
Full-text available
The purpose of this study is to approximate the classification process in libraries with computational thinking, a theoretical aspect present in computer science and, more recently, in other fields of knowledge such as information science. The study’s goal is to present an algorithm for precisely and computationally classifying works of children’s literature. The Content Analysis research method was used to analyze the color classification table in the document Guide for the standardization of Vila Velha school libraries network. Three analytical categories were developed a posteriori using the critical thinking skill. The study’s findings revealed three inaccuracies in the color classification table, namely: mutual coverage in classification; incompatibility in the genus-species relationship; incompatibility with the nature of information thematic representation. An algorithm was presented that allows for the precise and computational classification of works of children’s literature. The study concludes that computational thinking can be a process that organizes library classification activity, ensuring accuracy in information thematic representation due to the logical-computational character amalgamated throughout the process flow.
Article
Full-text available
Various aspects of computational thinking, which builds on the power and limits of computing processes, whether they are executed by a human or by a machine, are discussed. Computational methods and models are helping to solve problems, design systems, and understand human behavior, by drawing on concepts fundamental to computer science (CS). Computational thinking (CT) is using abstraction and decomposition when attacking a large complex task or designing a large complex systems. CT is the way of thinking in terms of prevention, protection, and recovery from worst-case scenarios through redundancy, damage containment, and error correction. CT is using heuristic reasoning to discover a solution and using massive amount of data to speed up computation. CT is a futuristic vision to guide computer science educators, researchers, and practitioners to change society's image of the computer science field.
Article
Full-text available
Even if they seem unanswerable, just trying to answer them will advance the field's scientific foundations and help engineer the systems we can only imagine.
Article
The fabrication of viable linear DNA photonic/electronic transfer nanostructures is an important prerequisite for the subsequent self-assembly into higher-order 2D/3D devices, structures and materials (high density memory, photonic antennas, nanoscale "fiber optics", nanocomputers, nano-sensors etc.). Unfortunately, it is very difficult to maintain the self-assembling and self-recognition properties of derivatized molecules such as biotin functionalized DNA sequences, when attempting to further derivatize the structure with multiply functionalized nanoparticles (streptavidin-quantum dots, gold nanoparticles, fluorescent polymer nanoparticles). Generally, overwhelming intra-and intermolecular crosslinking reactions prevent the formation of viable linear structures. Our goal is the development of nanofabrication techniques which will allow quantum dot functionalized linear DNA chains to be constructed without the need for complex chemical blocking group procedures.
Conference Paper
In barter-exchange markets, agents seek to swap their items with one another, in order to improve their own utilities. These swaps consist of cycles of agents, with each agent receiving the item of the next agent in the cycle. We fo- cus mainly on the upcoming national kidney-exchange mar- ket, where patients with kidney disease can obtain compat- ible donors by swapping their own willing but incompatible donors. With over 70,000 patients already waiting for a cadaver kidney in the US, this market is seen as the only ethical way to significantly reduce the 4,000 deaths per year attributed to kidney disease. The clearing problem involves finding a social welfare max- imizing exchange when the maximum length of a cycle is fixed. Long cycles are forbidden, since, for incentive reasons, all transplants in a cycle must be performed simultaneously. Also, in barter-exchanges generally, more agents are affected if one drops out of a longer cycle. We prove that the clearing problem with this cycle-length constraint is NP-hard. Solv- ing it exactly is one of the main challenges in establishing a national kidney exchange. We present the first algorithm capable of clearing these markets on a nationwide scale. The key is incremental prob- lem formulation. We adapt two paradigms for the task: constraint generation and column generation. For each, we develop techniques that dramatically improve both runtime and memory usage. We conclude that column generation scales drastically better than constraint generation. Our al- gorithm also supports several generalizations, as demanded by real-world kidney exchanges. Our algorithm replaced CPLEX as the clearing algorithm of the Alliance for Paired Donation, one of the leading kid- ney exchanges. The match runs are conducted every two weeks and transplants based on our optimizations have al- ready been conducted.
Article
Early biomolecular computer research focused on laboratory-scale, human-operated computers for complex computational problems. Recently, simple molecular-scale autonomous programmable computers were demonstrated allowing both input and output information to be in molecular form. Such computers, using biological molecules as input data and biologically active molecules as outputs, could produce a system for 'logical' control of biological processes. Here we describe an autonomous biomolecular computer that, at least in vitro, logically analyses the levels of messenger RNA species, and in response produces a molecule capable of affecting levels of gene expression. The computer operates at a concentration of close to a trillion computers per microlitre and consists of three programmable modules: a computation module, that is, a stochastic molecular automaton; an input module, by which specific mRNA levels or point mutations regulate software molecule concentrations, and hence automaton transition probabilities; and an output module, capable of controlled release of a short single-stranded DNA molecule. This approach might be applied in vivo to biochemical sensing, genetic engineering and even medical diagnosis and treatment. As a proof of principle we programmed the computer to identify and analyse mRNA of disease-related genes associated with models of small-cell lung cancer and prostate cancer, and to produce a single-stranded DNA molecule modelled after an anticancer drug.
Article
Computational modeling of biological systems is becoming increasingly important in efforts to better understand complex biological behaviors. In this review, we distinguish between two types of biological models--mathematical and computational--which differ in their representations of biological phenomena. We call the approach of constructing computational models of biological systems 'executable biology', as it focuses on the design of executable computer algorithms that mimic biological phenomena. We survey the main modeling efforts in this direction, emphasize the applicability and benefits of executable models in biological research and highlight some of the challenges that executable biology poses for biology and computer science. We claim that for executable biology to reach its full potential as a mainstream biological technique, formal and algorithmic approaches must be integrated into biological research. This will drive biology toward a more precise engineering discipline.
Article
Anyone who ever took an electronics laboratory class will be familiar with the fundamental passive circuit elements: the resistor, the capacitor and the inductor. However, in 1971 Leon Chua reasoned from symmetry arguments that there should be a fourth fundamental element, which he called a memristor (short for memory resistor). Although he showed that such an element has many interesting and valuable circuit properties, until now no one has presented either a useful physical model or an example of a memristor. Here we show, using a simple analytical example, that memristance arises naturally in nanoscale systems in which solid-state electronic and ionic transport are coupled under an external bias voltage. These results serve as the foundation for understanding a wide range of hysteretic current-voltage behaviour observed in many nanoscale electronic devices that involve the motion of charged atomic or molecular species, in particular certain titanium dioxide cross-point switches.
Article
A new two-terminal circuit element-called the memristorcharacterized by a relationship between the charge q(t)equiv int_{-infty}^{t} i(tau) d tau and the flux-linkage varphi(t)equiv int_{- infty}^{t} v(tau) d tau is introduced as the fourth basic circuit element. An electromagnetic field interpretation of this relationship in terms of a quasi-static expansion of Maxwell's equations is presented. Many circuit-theoretic properties of memistors are derived. It is shown that this element exhibits some peculiar behavior different from that exhibited by resistors, inductors, or capacitors. These properties lead to a number of unique applications which cannot be realized with RLC networks alone. Although a physical memristor device without internal power supply has not yet been discovered, operational laboratory models have been built with the help of active circuits. Experimental results are presented to demonstrate the properties and potential applications of memristors.