Sign In

Communications of the ACM


CS Unplugged or Coding Classes?

View as: Print Mobile App ACM Digital Library Full Text (PDF) In the Digital Edition Share: Send by email Share on reddit Share on StumbleUpon Share on Hacker News Share on Tweeter Share on Facebook
hands manipulating 3-D flow chart

Credit: Yuriy Golub

Computer science unplugged (CS Unplugged, or just "Unplugged") is a pedagogy for teaching computational ideas to grade-school students without using a computer.a It was developed in the early 1990s as a necessity when working with computers in the classroom was not usually practical, but it still finds widespread adoption as a supplement to computer-based lessons, even where devices are readily available. This appears as a contradiction to some (if you are teaching computer science, why not spend as much time as possible on a computer?), while for others it provides a chance to reduce screen time, get physical exercise, and engage with students in a kinesthetic way. Unfortunately, Unplugged can also be used to justify poor decisions by treating it as a complete curriculum in itself—a teacher who does not have the time or support to extend themselves in new curriculum content might rely on Unplugged as "enough," or administrators might justify a lack of funding by suggesting that schools use Unplugged teaching instead of buying devices.

The Unplugged approach is widely used, mentioned in dozens of research papers about CS education, has been translated into many languages, and is widely used in teacher professional development.1 A number of studies have reported positively on its use. And yet there are those who have raised concerns about teaching computer science without computers (for example, Stager and Martinez7) since it appears antithetical to learning programming.

So why does it work for some, and not for others?

Back to Top

The Intention of CS Unplugged

Unplugged is based on a constructivist approach: students construct their own knowledge by engaging with computational challenges based on concisely described rules, where the process of solving the challenge gives them understanding of significant principles.2 They work with games and puzzles that have constraints that occur in computing, and this enables students to discover important ideas from computer science, such as the insight that an algorithm does not necessarily take twice as long to process twice as much data; or to understand concepts in everyday life, such as error detection that makes barcodes reliable to scan; or to grapple with the limits of what can be computed.

Unplugged was developed by computer scientists working with young children to show them what computer scientists are passionate about. It focussed on getting students to experience the kind of thinking that computer scientists engage in, such as solving graph problems, working with digital representations, and grappling with computational complexity. Later, the phrase "thinking like a computer scientist"8 would turn up as a description of computational thinking (CT), and hence Unplugged activities resonated with movements to introduce CT in schools.

As CT has become part of formal curricula, and devices are readily available in many schools, students now have the opportunity to engage with computer programming. Unplugged never sought to replace computer programming, but to provide impactful experiences with computer science without depending on programming. I am a strong advocate of students engaging with programming, as the experience of using thought to create something out of nothing can be life-changing for some students. However, we should not assume access to devices is the only barrier to learning programming, and it has emerged that using Unplugged activities with programming can improve students' self-efficacy and engage a more diverse audience.

A turning point was a study by Hermans and Aivaloglou,5 who worked with two groups of students: one group spent four out of 10 weeks doing Unplugged activities before learning programming, and the other group spent the entire 10 weeks on programming. Between the groups they found "no difference in performance on the understanding of programming concepts. However, the unplugged first group shows more self-efficacy and … a wider vocabulary [of commands]." Here, Unplugged activities seemed to act as a catalyst when combined with programming to bring about a better result.

To encourage this link, the CS Unplugged site now includes a "plugging it in" section that explicitly links Unplugged activities to programming, rather than leaving it for teachers to make the connection.

Back to Top

Goals of Introducing CS to Younger Learners

Sometimes CS education in schools is seen primarily as developing competent programmers to address a labor shortage, but there are deeper social goals at play that must be considered if we want to avoid focussing on a subset of students.

Figure. Examples of Computer Science Unplugged activities:

Not just knowledge and skills. We must address the lack of diversity in the computing industry, and to do this it is important to find gateways to spark the interest of those who might not otherwise see themselves in this role. Plutarch noted that "education is not the filling of a pail, but the lighting of a fire"—teaching should go beyond knowledge and skills, and needs to value qualities like self-efficacy.6

How best to "light a fire" for students depends on the context. An example of this is discussed in Guzdial's recent article,4 where a curriculum that is light on programming and includes Unplugged teaching increased participation in advanced CS courses for underrepresented students.

Not everyone has access. In many countries students have the privilege of ready access to devices for education, but not all have enough access to develop programming skills well. Sometimes the issue is economic—some schools simply do not have computers—but the reason may also be philosophical (for example, Waldorf schools discourage the use of computers at lower grade levels) or legal (for example, in many jurisdictions, prison inmates are not allowed access to computersb).

CS is more than programming. There is more to CS than just cutting code. We do not write programs for computers, we write them for people. This means we need to develop a culture of knowing how to make programs respond quickly, have interfaces that take account of the user, and treat data with respect. Stepping back from the computer provides a chance to think about how to address these issues, rather than rushing in to write a program, only to find that it seems to take forever to finish a computation.

Back to Top

Why Does Unplugged Work for Some and Not Others?

Some people hold strong ideas about a range of aspects of teaching computer science, and these are partially explained because individuals can become very focused on how a particular approach has worked in a specific context. Teachers can develop extreme views: some are very experienced and risk overwhelming students with their aspirations, while others are fearful of teaching topics that they have no experience in, and revert to the familiar.

Context is important. Busuttil and Formosa3 found students were more engaged using Unplugged in a gym than in a computer lab, which reflects my experience—any non-computer activity in a lab may seem like a wasted opportunity to access (possibly limited) computing resources, and students can tune out. It is also important to take account of the learners' values, experience and expectations, which can vary considerably!

CS Unplugged is not a curriculum. Unplugged is sometimes treated as a curriculum (without connecting it to computers) rather than a pedagogy. Indeed, interventions that attempted to use CS Unplugged as a self-contained curriculum instead of weaving it into an existing one have been found to be ineffective. Sometimes it may be necessary to teach regular classes without computers, but in a well resourced education environment the CS Unplugged activities are intended to be used in conjunction with conventional programming lessons—and any other effective tools for teaching CS.

Unplugged was developed by computer scientists working with young children to show them what computer scientists are passionate about.

Teachers need support. We must acknowledge that as new CS content is introduced to school curricula, in many countries there is limited time for teachers to get up to speed. An underinvestment in teachers forces them to either invest their own time (which they may not have the luxury of being able to donate), or else they quite understandably may latch onto the first ideas that make sense to them, and make do with that. Developing self-efficacy in students is the goal, but teachers themselves need to be supported to develop their own self-efficacy in this discipline so that they can teach with confidence and competence!

Back to Top


Working out how to teach CS is not simple, and it is not surprising we see different outcomes as a particular tool is used in different contexts, and with varying support for the teachers using it. When Unplugged was created 30 years ago it was designed for quite a different context to the curricula now appearing around the world, and yet it has emerged as a useful tool as part of the many approaches available for engaging a variety of students in computer science. A combination of approaches is needed if we wish to engage a diverse range of students, and we must support teachers to adopt an appropriate selection of teaching methods. We also must be aware they are working in highly constrained environments. Computing professionals who have the opportunity to interact with teachers can often become focussed on one particular aspect that they personally find engaging, but we need to be aware of the range of tools to choose from and think about what will work in each teacher's context.

Unplugged can be understood as a catalyst that supports learning to program. While sometimes learning offline is a necessity because of resource constraints, even if these did not exist it is emerging that Unplugged can be used to improve self-efficacy in students without increasing teaching time or decreasing programming skills.

Back to Top


1. Bell, T. and Vahrenhold, J. CS Unplugged—How Is It Used, and Does It Work?. In Adventures between Lower Bounds and Higher Attitudes. Springer, Cham. (2018), 497–521); doi:10.1007/978-3-319-98355-4_29

2. Bell, T. and Lodi, M. Constructing computational thinking without using computers. Vrije Universiteit Brussel, Special Issue "Constructionism and Computational Thinking", Constructivist Foundations 14, 3 (2019), 342–351;

3. Busuttil, L. and Formosa, M. Teaching computing without computers: Unplugged computing as a pedagogical strategy. Informatics in Education 19, 4 (2020), 569–587;

4. Guzdial, M. The goal of the first CS course should be to promote confidence if we're going to increase diversity in CS: Paying off on a bet. Computer Education Research Blog (Dec. 29, 2020);

5. Hermans, F. and Aivaloglou, E. To Scratch or not to Scratch?: A controlled experiment comparing plugged first and unplugged first programming lessons. In Proceedings of the 12th Workshop on Primary and Secondary Computing Education. ACM, New York, NY, USA, 2017, 49–56;

6. Malmi, L. et al. Theories and Models of Emotions, Attitudes, and Self-Efficacy in the Context of Programming Education. In ICER '20 Virtual event, New Zealand. (2020), 36–47);

7. Stager, G. S. and Martinez, S. Thirteen considerations for teaching coding to children. In Humble, S., Ed., Creating the Coding Generation in Primary Schools: A Practical Gguide for Cross-Curricular Teaching. Routledge, 2017;

8. Wing, J.M. Computational thinking. Commun. ACM 49, 3 (Mar. 2006), 33–35;

Back to Top


Tim Bell ( is a Professor at the University of Canterbury, NZ.

Back to Top


a. See for examples of activities, including videos of it in action.

b. For example, see

Copyright held by author.
Request permission to (re)publish from the owner/author

The Digital Library is published by the Association for Computing Machinery. Copyright © 2021 ACM, Inc.


No entries found