What do we know about the expansion of K-12 computer science education?

A review of the evidence

Children with teacher on a computer


Over the past decade, there has been substantial progress in increasing access to schooling for children and youth, but few are mastering the foundational skills and competencies needed for their futures. Confronted with this challenge, education systems are now increasingly strengthening existing learning models while simultaneously reorienting students for a world where technology is omnipresent.

Computer science (CS) is an important element in strengthening existing education models and preparing students for the future. Building on previous work, we define CS as the study of both computer hardware and software design including theoretical algorithms, artificial intelligence, and programming (Technopedia). CS education can also include elements of computational thinking: a problem-solving approach that involves decomposition, use of algorithms, abstraction, and automation (Wing, 2006). CS is distinct from computer literacy in that it is more concerned with computer design than with computer use. For example, coding is a skill one would learn in a CS course, while creating a document or slideshow presentation using an existing program is a skill one would learn in a computer literacy course.

Multiple studies indicate that CS education can help students beyond computing. CS education has been linked with higher rates of college enrollment and improved problem-solving abilities (Brown & Brown, 2020; Salehi et al., 2020). A recent randomized control trial also showed that lessons in computational thinking improved student response inhibition, planning, and coding skills (Arfé et al., 2020). As these skills take preeminence in the rapidly changing 21st century, CS education promises to significantly enhance student preparedness for the future of work and active citizenship.

CS education is expanding around the globe as more education systems recognize its importance. Yet, most countries have been slow to adopt it. We searched for online evidence of in-school CS education, and found that out of 219 countries: 44 (around 20 percent) mandate that schools offer it as an elective or required course; 15 (around 7 percent) offer CS in select schools and some subnational jurisdictions (states, provinces, etc.); and 160 (73 percent) are only piloting CS education programs or had no available evidence of in-school CS education (Figure 1). Few countries have offered CS education long enough to properly evaluate the effectiveness of their CS instruction and activities.

Figure 1 computer science education around the world

Though necessary for 21st century skills, providing quality CS education to the world’s students is no small feat. Many countries are still trying to ensure that all students learn basic literacy and numeracy. In the latest Trends in International Mathematics and Science Study (TIMMS) and Progress in International Reading Literacy Study (PIRLS) assessments, only 14 percent of students in low-income countries had achieved proficient levels in math, and less than 5 percent in reading (World Bank, 2018). Under such prevailing environments, offering quality CS education to students around the world remains a challenge.

School systems face challenges in their endeavor to offer CS education to all students. First, some countries do not have sufficient numbers of teachers who are qualified to teach CS. Second, even though there is a growing interest among students, few of them pursue CS testing certifications (U.K. government) or consider CS as an undergraduate major compared to other STEM (science, technology, engineering, and mathematics) fields like engineering or biology (, 2019). This is especially true for girls and underrepresented minorities, who generally have fewer opportunities to develop interest in CS and STEM more broadly ( & CSTA, 2018).

In response to these implementation challenges, some education systems have:

  • Introduced teacher qualification and preparation programs;
  • Made efforts to increase student interest and engagement in CS; and
  • Invested in research and development of new methods of instruction for CS education.

Though these efforts address core challenges in expanding CS education, there is a dearth of credible studies that rigorously evaluate CS education effectiveness. As part of a larger ongoing research project led by the Center for Universal Education at Brookings on global advances in CS education, this policy brief reviews various efforts around the world to improve and scale CS education.

Teacher qualification and preparation

A well-prepared and knowledgeable teacher is the most important school-side factor in student learning (Chetty et al. 2005; Chetty, 2014; Rivkin et al., 2005). This is also true for CS education. Yet, several recent studies indicate that education systems have shortages of qualified CS teachers. For example, in a survey of pre-service elementary school teachers in the United States, only 10 percent responded that they understood the concept of computational thinking (Campbell & Heller, 2019). Another study found that 75 percent of teachers in the U.S. incorrectly considered “creating documents or presentations on the computer” as a topic one would learn in a CS course (Google/Gallup, 2015), demonstrating a poor understanding of the distinction between CS and computer literacy. Other case studies, surveys, and interviews have found that teachers in India, Saudi Arabia, the U.K., and Turkey self-report low confidence in their understanding of CS (Ramen et al., 2015; Alfayez & Lambert, 2019; Royal Society, 2017, Gülbahar & Kalelioğlu 2017). Indeed, in many of the world’s education systems, teacher training remains a challenge to develop the necessary skills and confidence levels for effective CS teaching and learning.

To address these challenges, school systems have introduced continuous professional development (PD), certification programs, and CS credentials issued by teaching degree programs for pre-service teachers.

Professional development and formal networks

Given a lack of knowledgeable CS teachers, several education systems have engaged teachers in PD. They range from one-week summer computing workshops focusing on block-based programming languages to multiday seminars meant to familiarize teachers with CS and train them to help students learn programming skills (Liu et al., 2011). Teacher-led professional development groups have shown potential to foster collaborative learning among CS teachers (Cutts et al., 2017; Alkaria & Alhassan, 2017; Goode et al., 2014). Still, more rigorous evaluation is needed to understand their effectiveness.

Teacher certification

Certification schemes serve the dual purpose of testing CS teachers’ subject matter expertise and signaling their unique qualifications to prospective employers. This in turn incentivizes teachers to pursue training, to set forth a cycle of developing better CS education teachers.

Advocates of CS education have recommended that education systems initiate certification schemes quickly and improve them over time (, 2017; CSTA, 2013). Short-term recommendations involve temporary licenses to teachers who meet minimum content and knowledge requirements. Longer-term recommendations encourage pre-service teachers to take CS courses as part of their teaching degree programs, to earn a CS endorsement or certificate.

Demand for CS education

Due to a high demand for their skills, CS professionals enjoy stable, high-income careers. According to the Bureau of Labor Statistics, the median annual salary for CS occupations was $88,240 in 2019, about $48,000 greater than the median wage for all occupations in the U.S. The Bureau has also projected that the market for CS professionals will continue to grow at twice the speed of the rest of the labor market between 2014 and 2024 (National Academies of Sciences, 2018). Despite these benefits, the tech industry has not been able to attract diverse talent into its ranks.

To meet the demand for CS professionals, state and philanthropic organizations have implemented programs that introduce students to CS. By increasing awareness and interest among K-12 students regarding CS professions, the well-documented lack of diversity in the tech industry could be addressed (Harrison, 2019; Ioannou, 2018).

Student and parental interest in CS education

Despite a clear economic incentive to study CS, relatively few K-12 students express interest in CS education. One reason may be that learning CS comes with a fair amount of social stigma for students. This stigma could be attributed to the commonly held belief that CS is a male-oriented field that involves social isolation and a focus on machinery rather than people (Cheryan et al. 2015).

Parents see CS education favorably, but also hold misconceptions around who can learn it. More than 80 percent of U.S. parents surveyed in a 2016 Google/Gallup study reported that they think CS is as important as any other discipline. Nevertheless, the same parents indicated that they hold biases around who should take CS courses: 57 percent of U.S. parents surveyed  expressed that one needs to be “very smart” to learn CS (Google, 2015). It is a common misbelief that some people are inherently talented for CS, otherwise known as the “geek gene,” while others are inherently inept at CS (McCartney, 2017). This belief discourages some students from developing an interest in CS. On the contrary, statistical evidence indicates that students learn CS through studying and practicing core concepts and, thus, the “geek gene” is more likely myth than reality (Patitsas et al. 2019).

CS education for girls and underrepresented minorities (URMs)

Girls and racial minorities have been historically underrepresented in CS education (Sax et al., 2016). This lack of diversity has become a barrier to entry for other prospective students who might have pursued career paths and highly paid jobs in the field of CS and technology. Research indicates that the diversity gap in CS professions and education is not due to innate talent differences among demographic groups (Sullivan & Bers, 2012; Cussó-Calabuig et al., 2017), but rather a disparity of access to CS content (Google/Gallup (2016); & CSTA, 2018; Du & Wimmer, 2019), widely held cultural perceptions, and poor representation of women and URMs in media depictions (Google, 2015; Ayebi-Arthur, 2011; Downes & Looker, 2011; Du & Wimmer, 2019).

Interventions for improving student interest

Education systems and advocacy groups have used short, one-time lessons in coding to reduce student anxiety around CS. Hour of Code, designed by, is perhaps the best known of these programs. In multiple surveys, students indicated better confidence after exposure to this program (Phillips & Brooks, 2017; Doukaki et al., 2013; Lang et al., 2016). It is not clear, however, whether these programs make students more likely to consider semester-long CS courses (Phillips & Brooks, 2017; Lang et al., 2016).

Time-intensive programs aimed at improving students’ interest in CS have been attempted as well. The U.S. state of Georgia, for example, implemented a program involving after-school, weekend, and summer workshops over a six-year period. During the duration of the program, Georgia saw an increase in participation in the Advanced Placement (AP) CS exam, especially among girls and URMs (Guzdial et al., 2014). Some states have introduced similar programs, setting up summer camps and weekend workshops in universities to help high school students become familiar with CS (Best College Reviews).

These initiatives, whether one-off introductions to CS or time-intensive programs, typically share the explicit goal of encouraging participation in CS education among all students, and especially girls and URMs. While studies indicate that Hour of Code and summer camps might improve student enthusiasm for CS, they do not provide the kind of rigorous impact assessment one would need to make a definitive conclusion of their effectiveness. For instance, in the case of Georgia, it cannot be confirmed if the after-school clubs can be directly credited for the increase in girls and URMs taking CS.

Instructional methods, core competencies, and research

Though great strides have been made to create engaging learning environments, as in other areas discussed here, there is a dearth of research that credibly evaluates the effectiveness of different curricula and instructional methods for developing CS skills (Saeli et al., 2011; Hubwieser et al., 2013). Indeed, our review of the evidence suggests that expanding CS education globally will require a consensus on assessment strategies of students’ understanding of core CS competencies and quality evidence on effective curricula and instructional methods.

Curricula and core competencies

There is no one-size-fits all CS curriculum for all education systems, schools, or classrooms. Regional contexts, school infrastructure, prior access, and exposure to CS need to be considered when developing CS curricula and competencies. Some CS skills, such as programming languages, require access to computer infrastructure that may be absent in some contexts (Lockwood & Cornell, 2013). According to participants at the International Olympiad In Informatics Workshop on Creating an International Informatics Curriculum for Primary and High School Education, specific circumstances should be considered when developing curricula (Ackovska, 2015).

Rather than prescribing a curriculum, the K–12 Computer Science Framework recommends foundational computer science concepts and competencies for education systems to consider. This framework encourages curriculum developers and educators to create learning experiences that extend beyond the framework to encompass student interests and abilities.

Core competencies that students may learn by the end of primary school include: (1) abstraction (creating a model to solve a problem); (2) generalization (remixing and reusing resources that were previously created); (3) decomposition (breaking a complex task into simpler subtasks); (4) algorithmic thinking (defining a series of steps for a solution, putting instructions in the correct sequence, and formulating mathematical and logical expressions); and (5) debugging (recognizing when instructions do not correspond to actions and then removing or fixing errors) (Angeli, 2016).

Competencies that older students may learn in CS courses, as practiced in Poland, include: (1) logical and abstract thinking; (2) representations of data; (3) problem-solving by designing and programming algorithms using digital devices; (4) performing calculations and executing programs; (5) collaboration; and (6) ethics such as privacy and data security (Syslo & Kwiatkowska, 2015).

Commonly used instructional methods

A number of studies have described various methods for teaching CS core competencies. Integrated development environments are recommended especially for teaching coding skills (Florez et al., 2017; Saez-Lopez et al., 2016). These environments teach block-based programming languages that encourage novice programmers to engage with programming, in part by alleviating the burden of syntax on learners (Weintrop & Wilensky, 2017; Repenning, 1993). Others recommended a variety of teaching methods that blend computerized lessons with offline activities (Taub et al. 2009; Curzon et al, 2009, Ackovska, 2015). This approach is meant to teach core concepts of computational thinking while keeping students engaged in physical, as well as digital, environments (Nishida et al., 2009). CS Unplugged, for example, provides kinesthetic lesson plans that include games and puzzles that teach core CS concepts like decomposition and algorithmic thinking.

Various studies have also attempted to measure traditional lecture-based instruction for CS (Alhassan 2017; Cicek & Taspinar, 2016).These studies, however, rely on small sample sizes wherein the experiment and control group each comprised individual classes. More rigorous research is required to understand the effectiveness of teaching strategies for CS.

Lack of consensus on assessment

Even though various methods—standardized tests, digital environments, classical cognitive tests, and CS Unplugged activity tests—are used to assess student competency in core CS concepts, there is no consensus around the best method for doing so (So et al., 2019; Djambong & Freiman, 2016). Though these methods are widely available, there is still a lack of comparable assessments that researchers can use to evaluate various curricula or instructional methods in CS. Without assessment data, it is not feasible to assess curriculum or teaching strategies across classes or schools (Webb et al., 2016; Tew, 2010). The lack of resulting evidence, in turn, makes it difficult for education systems to improve their CS programs.

The good news is that a growing number of organizations are developing standardized tests in CS and computational thinking. The International Computer and Information Literacy Study included examinations in computational thinking in 2018 that had two 25-minute modules, where students were asked to develop a sequence of tasks in a program that related to a unified theme (Fraillon et al., 2018). The OECD’s PISA will include questions in 2021 to assess computational thinking. The AP CS exam has also yielded useful comparisons that have been used to evaluate teacher training programs (Brown, 2018).


Education systems around the world are increasingly addressing the need to integrate CS into their standard curricula. Yet, many challenges have emerged. There are shortages of qualified teachers in many education systems who understand CS concepts and instructional methods. Despite the high demand for CS professionals, relatively few students show interest in CS compared to other STEM subjects. Development of core competencies, curricula, and assessments that are all tailored to the contexts of different educational systems remains a work in progress.

Governments and nonprofit organizations have been addressing these challenges in different ways. Teachers can engage in training and certification schemes while students can participate in short coding classes, after-school clubs, and summer camps. Education practitioners have innovated the design of instructional methods for CS education, ranging from block-based programming activities to kinesthetic lessons.

These activities and programs are often well run and may plausibly address the challenges they are designed to solve. Still, the Royal Society (2017) recommends more robust research for CS education for the following priorities: pedagogy, learning models and instructional techniques, classroom structure and physical resources, programming languages, student engagement, and assessment techniques. The resulting research would have the potential to help education systems initiate, scale, and improve their CS education.

The authors gratefully acknowledge Pat Yongpradit, Mark Guzdial, and Benson Neethipudi for their comments on earlier drafts of this policy brief.

The Brookings Institution is a nonprofit organization devoted to independent research and policy solutions. Its mission is to conduct high-quality, independent research and, based on that research, to provide innovative, practical recommendations for policymakers and the public. The conclusions and recommendations of any Brookings publication are solely those of its author(s), and do not reflect the views of the Institution, its management, or its other scholars.

Brookings gratefully acknowledges the support provided by Amazon, Atlassian Foundation International, Google, and Microsoft.

Brookings recognizes that the value it provides is in its commitment to quality, independence, and impact. Activities supported by its donors reflect this commitment.