Computational Thinking in Education
eBook - ePub

Computational Thinking in Education

A Pedagogical Perspective

Aman Yadav, Ulf Berthelsen, Aman Yadav, Ulf Dalvad Berthelsen

Share book
  1. 220 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Computational Thinking in Education

A Pedagogical Perspective

Aman Yadav, Ulf Berthelsen, Aman Yadav, Ulf Dalvad Berthelsen

Book details
Book preview
Table of contents
Citations

About This Book

Computational Thinking in Education explores the relevance of computational thinking in primary and secondary education.

As today's school-aged students prepare to live and work in a thoroughly digitized world, computer science is providing a wealth of new learning concepts and opportunities across domains. This book offers a comprehensive overview of computational thinking, its history, implications for equity and inclusion, analyses of competencies in practice, and integration into learning, instruction, and assessment through scaffolded teacher education.

Computer science education faculty and pre- and in-service educators will find a fresh pedagogical approach to computational thinking in primary and secondary classrooms.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Computational Thinking in Education an online PDF/ePUB?
Yes, you can access Computational Thinking in Education by Aman Yadav, Ulf Berthelsen, Aman Yadav, Ulf Dalvad Berthelsen in PDF and/or ePUB format, as well as other popular books in Éducation & Technologie de l'éducation. We have over one million books available in our catalogue for you to explore.

Information

Publisher
Routledge
Year
2021
ISBN
9781000452631

1

Computational Thinking

A Professional and Historical Perspective

Matti Tedre and Peter J. Denning
DOI: 10.4324/9781003102991-1
The current computational thinking (CT) movement in computing education began in 2006 when Jeannette Wing declared that “computational thinking is a fundamental skill for everyone, not just for computer scientists” and that “everyone can benefit from thinking like a computer scientist” (Wing, 2006, 2010). Her declaration came at a time when everything was being digitized and people were finding themselves in a world where algorithms and computing machines made many decisions that affected their work and their lives every day. The unfamiliar logic of computing was bringing great benefits, such as connectivity, along with great worries, such as loss of jobs to automation. Wing called on educators to help everyone learn how computing works, how they can harness it in their own lives, and when they can trust it.
This is not the first computational thinking movement. As early as 1960, educators who saw the computing revolution coming worked hard to bring computer literacy courses and then computer fluency courses into K-12 curricula, but they never got much traction at the scale of nations. In the 1980s, a comprehensive computational science movement emerged that declared CT as the thought processes behind a new, computational way of doing science. Whereas literacy and fluency were movements to teach people how to better use computers, the computational sciences declaration and then Wing’s declaration aimed to teach people how to think in order to understand computing and design computer programs. These declarations have resonated across the board.
The current CT movement has had some noteworthy achievements. Numerous organizations, such as code.org, sprung up to propose K-12 curricula and run coding workshops for children. In the US, with support from the US National Science Foundation, several universities designed new first courses in computing, founded on teaching basic principles rather than a programming language. A new advanced placement curriculum has been adopted in US high schools and is attracting students. With the help of the Computer Science Teachers Association and the Association for Computing Machinery, nearly 5,000 teachers have been trained to teach computing courses. Numerous educators participated in conferences and workshops to design computing curricula and assessment methods for young minds. This accelerated the emergence of the computing education research specialty.

Trouble Spots

Despite these broad roots, CT has come to be narrowly equated with the concepts in the K-12 curriculum. These include abstraction, data representation, structured problem decomposition (modularizing), and algorithms, among others (Barr & Stephenson, 2011; Grover & Pea, 2013). The term “coding” is preferred over “programming”. These characterizations of CT were tailored for the K-12 audience, which is mostly beginners and novices at computing. But that narrow view has become the public face of computational thinking.
To clarify what is missing we will make a distinction between “CT for beginners”, as in the K-12 curriculum, and “CT for professionals”. Professionals who use computing extensively in their work employ a brand of CT that is far beyond the beginner level. They deal with large systems, the Cloud, the Internet, software engineering, computational science, graphics, virtual reality, neural networks, artificial intelligence, data analytics, large databases, security, privacy, satellite networks, and more. The full spectrum of CT ideas includes both CT for beginners and CT for professionals. See Table 1.1. There are many more examples from professional work beyond what we have listed here. The original goals of showing everyone how to think like a computer scientist and learning how the algorithmic world works cannot be met with just CT for beginners.
In an effort to tailor the teaching of basic concepts to young minds, K-12 curriculum designers have emphasized logical reasoning. They have introduced a large number of logic puzzles and games because they know that kids like learning from playing games and being inspired by puzzles. However, this is a problem. Many of the logic puzzles are not strongly connected to computing – similar puzzles have entertained children and readers of popular science books for centuries. After years of failure to get any computing courses in K-12 curricula, why are we using our hard-won, limited allocation of curriculum time to discuss issues that are not unique to computing? Why not emphasize what is unique in computing that cannot be found in other fields?
TABLE 1.1 Spectrum of CT Ideas from Beginners to Professionals
CT for Beginners Examples from CT for Professionals
Abstraction Adaptive routing Model checking
Algorithms and procedures Address mapping Nondeterminism
Automation Branch and bound Public-key cryptography
Data Representation Collection Analysis Bytecode Pattern recognition
Complexity classes Performance analysis
Concurrency Parsing
Design patterns Pointer arithmetic
Problem decomposition Error correction Processes
Parallelization Gradient descent Protection domains
Simulation Hashing Protocols
Hubs and authorities Recursive functions
Interrupts Relational databases
Linear programming Stacks
Locality and caching Lossy compression Virtual machines
Luckily, there are also plenty of exercises in the latest CT wave that teach kids ideas specific to computing. For instance, CS Unplugged reveals the numerical basis of computers by asking kids how to make numbers from flash cards with 1,2,4,8,… dots inscribed on them. CS Unplugged goes on to reveal that computers are frequently used to sort data by asking kids carrying numbers to walk a sorting network drawn with chalk on the ground, changing places when they intersect with kids of higher numbers.
We argue that these trouble spots are not merely an oversight, but a form of blindness caused by a lack of attention to the history of computational thinking. Without a long view of computing history, it is difficult to see what in the current state-of-the-art is transient and what endures. It is difficult to tell what ideas are computing’s own and what are borrowed from other fields. It is difficult to distinguish fads from fundamentals.
When the stories of computing history are told, it becomes clear that many technology developments were accomplished through painful trial and error by engineers and inventors who often had no applicable science or mathematics to turn to. Most of the work of computing professionals is not the direct application of mathematics but is ongoing experimentation with the design of technologies to find out what works for people and what does not work. A balanced story will tell our young people where the big ideas came from, the important roles of users and designers, and the kind of work they will be doing if they make computing their career.
There is another reason that embracing our history is important. Computing is inherently an interdisciplinary field. Many people in many other fields want to learn computing and use it in their fields. To work effectively across fields, we need to build trust with people from other communities. We do this by understanding what concerns them and showing how computing technology can help. Their concerns flow from their history. Our collaborations will work best if we make an effort to learn something about the history and background of our collaborators. Their trust will follow when they see that we understand who they are.
It is not hard to remedy this issue. We will, in the remainder of this chapter, show how a broader understanding of computing opens up a rich and inspiring story of computational thinking from beginners to professionals. For full historical accounts, we recommend the works of professional historians, including Ceruzzi (2003), Campbell-Kelly (2003), and Ensmenger (2010).

Histories of Core CT Concepts and Skills

It surprises many educators to learn that the concepts and skills most commonly named in connection with computational thinking did not originate in the context of programmable computers and are not unique to the field of computing. The “core computational thinking concepts and capabilities” in K-12 education are listed as abstraction, data representation, data collection, data analysis, problem decomposition, automation, parallelization, simulation, algorithms, and procedures (Barr & Stephenson, 2011). Each has its own long history, emerging and developing in different fields. Their histories intertwine and they all predate the birth of computing as an academic discipline in the 1950s.
Consider the first item on the list, abstraction. The ability to imagine and communicate abstractions is uniquely human. Numbers, letters, words, and ideas are all forms of abstraction. The philosopher Bertrand Russell described in his account of mathematical philosophy how “it must have required many ages to discover that a brace of pheasants and a couple of days were both instances of the number 2” (1919, p. 3). Science has mastered the art of approaching complex systems as hierarchies of levels. One famous example is the “Powers of Ten” video by Charles and Ray Eames (http://www.eamesoffice.com/education/powers-of-ten-2). It begins with a view of a picnicking family in Chicago seen through a window 1 meter on a side. Every ten seconds, the field of view expands by a factor of 10. Around 1024 the entire known universe has shrunk to a single point of light. The video then reverses, zooming to 10–16, the limits of the microuniverse of atomic particles. In this hierarchy, each level is a world of its own, with its own rules and logic, that can be studied without regard to lower or higher levels. In computer science, we do the same thing with software. We organize complex software into hierarchies of abstractions and hide the implementation details of each abstraction behind a simple interface.
Even something as mundane as the binary representation of information – the most common internal representation system in modern computers – has multiple, millennia-long histories in such areas as divination systems and games. Centuries ago, mathematicians knew that two symbols are all that is needed for information representation because large numbers of symbols can be encoded with just two. All numbers, all letters of the alphabet, all Chinese characters, all digitalized data, all sounds, all images, all virtual worlds – can be turned into strings of ones and zeros.
We in computing like to say that our abstractions differ from those in math or science because computing abstractions do things whereas science abstractions only describe things. But this is not quite right. We use abstractions to design software, which controls a machine that follows physical principles to convey signals, change states, and drive outputs. The machine, not the abstractions, produces the action. The abstraction itself is a mental construct, an organizing principle. Our ability to map abstractions on to machines gives us a great power to turn abstract realities into actions.
Moreover, the idea that “abstractions produce action” is hardly unique to computing. James Watt transformed the abstractions of behavior of gasses under pressure and the operation of gears and levers into a steam engine. The Wright Brothers transformed abstractions about steering bicycles and birds gliding on wings into the first aircraft. Computing joins many other fields in designing abstractions to guide the design of machines that behave in clever ways. Computing’s unique contribution is that machines are computers that are extremely versatile and can often simulate machines in other fields.
All the other core CT concepts and capabilities listed by Barr and Stephenson (2011) have similarly broad and deep histories. Representing, collecting, and analyzing data are part of all empirical sciences. Decompositions, such as modules and interchangeable parts, are central in engineering practice. Automation, in the sense of technology that does jobs humans want with minimal human assistance, has its own long history from inventions like Egyptian clocks before the common era through the industrial revolution to Amazon’s robot warehouses in the 2010s. Simulations were used by mathematicians in the late 1700s to estimate π (Buffon’s Needle), by militaries in war games, and by physicists in the Monte Carlo methods that emerged in 1946. The algorithm, our most-revered concept, has roots tracing back thousands of years (Knuth, 1972). And parallelization – which seems unique to high-performance computing – was practiced by teams of human computers in the 1930s to break computations into pieces that an individual could do, and then combine their results (Grier, 2005).
By no means do we suggest that the core CT concepts are any less valuable because they had been discovered in other fields long before computing. Exactly the opposite. Computing takes them into a whole new dimension of information processes and computing machines. Computer scientists join the long traditions of science and engineering with their unique knowledge of computing.
The continuum of CT skills from beginner to professional reflects a learner’s progress during skill acquisition. The experience of teachers to date shows that most students find the concepts of computing to be unintuitive and difficult at first, and the greatest challenge of the CT movement has been to get the teaching of beginners right: The beginner is unfamiliar with the field, and everything needs to be introduced and explained. Practice, at that level, is the application of rules given by the teacher. With continued practice in CT, students become familiar with the basic ideas, know intuitively which rules to apply, and design software competently without creating breakdowns for its users. With even more practice, they can become professionals, proficient, and expert, capable of dealing with very large and complex systems.
We advocate two things. First, let us use our limited curriculum time to teach concepts unique to computing and not drift into a rehash of generic logic and mathematics skills. Second, let us expand the public face of CT to include the whole spectrum fro...

Table of contents