US President Barack Obama's agenda of Computer Science for All [26] brings an incredible opportunity for broadening participation in computing. Yet, along with this opportunity come risks and possible unintended consequences. As the authors of Stuck in the Shallow End: Education, Race, and Computing [17], we have spent almost two decades working with schools to increase our understanding of the pervasive inequities in computing for historically unrepresented students. In response to our initial research findings, we developed and implemented the national Exploring Computer Science (ECS) course for high schools across the country [8]. ECS consists of a year-long curriculum, on-going professional development and mentoring for teachers, and policy support to democratize computing for all students. Below are ten lessons we have learned about CS for All from our collective years as researchers, teacher educators, curriculum developers, policy advocates, and agents for social change.

Beyond Jobs

In an attempt to make CS for All a bipartisan issue for US policy makers, a leading argument has been crafted around American competitiveness and filling current jobs in the workforce. Even President Obama says we need students to be "job-ready from day one." [21] Yet, this argument really must be broadened. It is absolutely true that as innovations in computing have grown more pervasive, knowledge of computing is important across all types of fields and jobs, but knowledge about computer science is also a critical component of civic life and democratic participation. Not only are issues of computer science filling the headlines in mainstream media (e.g., net neutrality, data security, iPhone encryption, artificial intelligence, the decline of face-to-face conversation, technology for political organizing), but knowledge of computer science, and not just letting the computer remain as a mysterious Black Box, allows one to intervene and innovate in today's world. Just as geography and biological knowledge is important for students to understand the natural world around them, so too computer science should become part of today's well-rounded education. While some students will become professional geographers and physicians, and some students will become computer scientists, all students should have access to geography, biology, and computer science. If all technology-related jobs were filled tomorrow, we would still believe in the value of all students learning computer science.

We also believe that if the sole focus is on filling jobs as currently constituted, then our broadening participation movement can be trapped into a "bias bind." This occurs when educational opportunities are created for those students who most readily fit the technology industry's notions of who the perfect candidate is for high-tech jobs—such as the narrow band of students from elite universities [19] or Advanced Placement students with high math test scores—and other students are excluded from the same richness of educational experiences. This is why we call for CS for All programs to "build talent" for all students, not just identify talent already exhibited by some students [16].

CS is Only a Part of a Well-Rounded Education

With the passage of the new Every Student Succeeds Act (ESSA) federal legislation in 2016, computer science has been upgraded to the list of school subjects considered to be a vital part of a U.S. "well-rounded education." [4] While this is a victory for CS for All, we must remember that CS is just one content area among many that contributes to a well-rounded education, including sciences, mathematics, engineering, humanities, music, arts, foreign language, social studies, government, economics, and physical education.

Additionally, many public schools in the U.S., especially those that serve students who don't perform proficiently on standardized exams, are already burdened with mandates and have very limited class time [14]. We've heard from school principals who value learning through art or music education and feel they must make a choice. While we can all argue the value of CS education, we do not want to fall into the trap of pitting CS against other important subjects. If the mission is narrowly conceived as filling current computing jobs, then CS may be pitted against the arts or humanities in a short-sighted "hierarchy of needs." This is not our position and we believe it is not a wise response for CS for All.

Learning Opportunities for All

Many aspects of CS education in U.S. schools—e.g., the distribution of resources, how CS is positioned in the school's master schedule, the pathway of courses for graduation, who teaches CS, and how students are enrolled and assessed—exists within inequitable school structures and biased belief systems. At the top of this list is school tracking. Leading educational researcher and scholar, Jeannie Oakes, in Keeping Track [20], described school tracking as

....the process whereby students are divided into categories so that they can be assigned in groups to various kinds of classes....Students are classified as fast, average, or slow learners and placed into fast, average or slow classes on the basis of their scores on achievement or ability tests....Often teachers' estimates of what students have already learned or their potential for learning more determine how students are identified and placed.

In a conversation in Educational Leadership dedicated to the topic of "Untracking for Equity," Oakes argued that to understand tracking, one must pay attention to a complex set of beliefs and values [22].

When I talk about harmful effects of tracking and ability grouping, I'm talking about all of those forms of grouping that are characterized by educators making some rather global judgment about how smart students are—either in a subject field or across a number of subject fields. Sometimes, it's defined in terms of IQ, sometimes it's defined in terms of past performance, sometimes the criteria are predictions of how well children are likely to learn....The groups are a very public part of the school's culture that reflects judgments that adults have made about children's current and future abilities. Within that culture, the groups take on a very hierarchical nature: we talk about top groups, bottom groups, middle groups, high groups, low groups. And often in the culture of the schools, the "top group" quickly becomes the "top kids," in a very value-laden way. So the students take their place in the hierarchy and the values associated with it.

These words ring loud and clear in the field of CS education where adults' beliefs about which students have more aptitude for learning in computer science are often linked to those students who test well, who are considered to be the "best and the brightest." In our society this too often excludes African American, Latino, Native American, female, and low-income students, especially those from under-resourced schools [19]. As we work to bring CS for All into the schools we must assure that our programs are fully aware of—and resist—the sorting and biases that accompany this larger inequitable context of education. This includes refusing to endorse standardized tests that attempt to determine student "potential" in computer science, and thereby perpetuate the mistaken belief in a "fixed mindset" —the belief that ability is innate, static, and set [7].

Scaffolding for Advanced Placement Courses

Would introducing high school students to mathematics by offering Advanced Placement (AP) Calculus, an exam-driven college-level course, as their first high school course be sound educational practice? Of course not. Then why should the CS pathway of courses begin with an AP class? We must remember that students need scaffolding to prepare for AP classes. We need to assure that learning opportunities exist for those high school students who may not have learned how to code from their parents, who have not already enrolled in pre-engineering classes, nor attended summer camp for young programmers, etc.

We learned this lesson through our own work prior to the development of ECS. In response to research findings about disparities in learning opportunities that were eventually published in Stuck in the Shallow End: Education, Race, and Computing [17], we were originally committed to increasing the number of schools that offered Advanced Placement Computer Science. Our partnership with the Los Angeles Unified School District (LAUSD), the second largest school district in the U.S., serving over 640,000 pupils, began in 2004 with the goal of increasing computer science access to African American and Latino students. Although over a four-year period, the number and diversity of students in LAUSD's AP CS course dramatically increased, we discovered how its programming-centric syllabus was neither an accessible nor effective entry point for most students in the district [16]. It was this research finding that led to the creation in 2008 of Exploring Computer Science as an entry-level course to introduce and scaffold a high school pathway for CS learning for all students. In ECS, students engage in inquiry-based hands-on projects using computational practices that include connecting computing to people and society, creating computational artifacts, applying abstractions and models, analyzing problems and artifacts, communicating about computing, and collaborating on computing projects (see [8]).

A new AP Computer Science Principles (AP CSP) course has been designed and is being introduced in schools to meet parallel instructional goals as ECS [2]. Many believe that having an AP class as the introductory CS class in high school makes sense especially as many more students will now be learning CS in K-8. But, how different is this to suggesting that having Algebra 1 in eighth grade makes students AP Calculus ready in the 9th grade? Future research will determine the necessary scaffolding and success of ECS and AP CSP to extend enriching learning experiences to all students. We have also learned that the metrics of success must go beyond numbers. How do we best document the depth of the teaching and learning that is taking place in the classroom for all students? How do we design and implement assessments in ways that are helpful for teachers and that value and capture active learning and inquiry-based instructional practices?

Culturally Relevant Instruction for Inclusive CS Classrooms

How do teachers shape CS pedagogy to spark their students' interests? Does pedagogy differ in a classroom in a tribal community, a white suburban community, an urban African American community, a poor rural community, or a majority Latino community? If yes, how does pedagogy differ and why?

Education researcher Linda Darling-Hammond answers this set of questions through an expressed vision:

The goal is to bring the students to the subject in a way that allows them to understand it deeply and make it part of their own experience without watering down the content or neglecting the fundamental concepts and modes of inquiry that characterize the discipline [5].

The goal is to bring the students to the subject in a way that allows them to understand it deeply and make it part of their own experience without watering down the content or neglecting the fundamental concepts and modes of inquiry that characterize the discipline.

In other words, content remains rigorous, while at the same time it is contextualized in students' culture and lives, so that students can connect it to their known experiences. A funds of knowledge lens on inclusive classrooms suggests that students' homes and lives are filled with cultural and cognitive resources that, when tapped into, provide an important foundation for meaningful and authentic learning to take place [18]. This is true for all students, and it is key for teachers to be familiar with their own students' lives and communities. Further, rigor is not just about increasingly more advanced content with increasingly difficult "right" answers, but rigor also includes the students' ability to be creative and to apply a variety of strategies to the problem-solving process.

This is an area that our CS for All movement needs much more in-depth research. How might we better engage all students with exploring CS concepts and practices? How do we best prepare teachers to teach CS in ways that are relevant to and meaningful for diverse populations of students? How do teachers help students integrate computing into their academic and social identities so that all students can participate and excel in this field? And, how do we help support learning environments that break the mold and instead introduce active and inquiry-based learning?

Highly Effective CS Teachers

The CS education community has been rightfully wrestling with qualities necessary to be an effective CS teacher. Is it content knowledge? Is it pedagogy? Or is it awareness of their students' individual needs? While the focus within the CS community often begins with and focuses on content knowledge, in her review of research on teaching and learning, educational leader Darling-Hammond [6] notes that studies across disciplinary domains find that highly effective teachers support the process of meaningful learning by:

  • Creating ambitious and meaningful tasks that reflect how knowledge is used in the field;
  • Engaging students in active learning, so that they apply and test what they know;
  • Drawing connections to students' prior knowledge and experiences;
  • Diagnosing student understanding in order to scaffold the learning process step by step;
  • Assessing student learning continuously and adapting teaching to student needs;
  • Providing clear standards, constant feedback, and opportunities for work;
  • Encouraging strategic and metacognitive thinking, so that students can learn to evaluate and guide their own teaching.

These are all complicated pedagogical-content knowledge skills that are addressed in teacher education programs and take years of practice in the classroom to develop. We have found that there are no short-cuts around the teachers' professional development and the on-going learning community necessary to support these skills [25]. Yet, the CS for All movement is happening at the same time as the teaching profession is being de-professionalized with a series of policy initiatives that provide an easy-in, easy-out route to teaching, ignoring the educational research on teacher knowledge and preparation [10]. Clearly, knowledge of computer science is not in itself sufficient to teach the subject, nor is pedagogy alone sufficient.

Top Down/Bottom Up of CS ED Policy

When we first began ECS as a pilot project in LAUSD, we had latitude in the way the program was implemented at the district and school level. In many ways, this allowed flexibility in adding ECS to the master calendar, recruiting a broad pool of CS teachers, considering whether ECS was college or career prep, etc. But times have now changed. For different reasons (change of school district administration, fallout from the 'iPad fiasco' [11], concern about funding streams, etc.), the District now continuously monitors compliance issues with state and local policies, even while many of the policies seem outdated or misinterpreted. This compliance monitoring has forced us to reconsider how best to expand the pool of teachers for ECS as well as the related issues of whether ECS is considered college or career prep—at the same time respecting the policies in place that were designed to ensure students have access to high quality teachers and rigorous curriculum.

While state and school district policy is a critical part of the foundation for CS for All, it often has the unintended consequence of making more rules that constrain implementation, rather than giving the flexibility that is needed. The hard reality is that states and school districts often interpret policies differently so that on-going advocacy is required to help untangle rules and regulations related to computer science and to respond nimbly to the needs of students and teachers at the school level.

Another lesson we have learned is that top-down policy must be grounded in the bottom-up reality of what really goes on in schools and in districts for true impact to occur.

Another lesson we have learned is that top-down policy must be grounded in the bottom-up reality of what really goes on in schools and in districts for true impact to occur [13]. For instance, a new CS Supplementary Teaching Authorization was recently approved at the state level in California [24], however, these additional requirements are both costly and time-consuming. Teachers may be asking themselves if it's worth the investment, especially if there aren't enough CS courses to teach to realize a return on their investment. A solution that supports teachers must be found.

Technocentrism: CS Education as a Burgeoning Commodity Aimed to "Outsource" Educators

Because there are currently so few computer science teachers and the demand to scale K-12 computer science is at an all-time high, we fear such imperatives will lead to "technocentric" solutions. Seymour Papert [23] explained the term.

I coined the word technocentrism from Piaget's use of the word egocentrism—which does not mean that children are selfish; simply that when the child thinks, all questions are referred to the self, to the ego. Technocentrism is the fallacy of referring all questions to the technology.

Papert's observations from 30 years ago are extraordinarily relevant today. It is no secret that tech companies sense that education is a lucrative market—for equipment sales as well as teacher-less online curricula to circumvent this CS teacher shortage [9]. But, technocentric approaches commonly lack the inquiry and equity-based pedagogy, understanding of learning science, cultural competency, and classroom culture critical for reaching historically underrepresented K-12 students [5,15]. We have been in classrooms with ill-prepared teachers who celebrate how students are learning programming online—only to be met with actual students who are bored, disengaged, and even spiteful of this experience.

Fast forward into the near future! Could historical patterns of inequities lead to the reverse of what most people would predict? Will we see well-resourced schools secure computer science knowledgeable teachers, field trips, lots of opportunities for hands-on learning for their students, whereas schools serving more low-income students will be scrambling to fulfill CS for All imperatives—without prepared teaching staff needed to assure high-quality implementation and instead have substituted on-line course offerings without classroom mentors, support, and teachers? Computer science for all requires pedagogically knowledgeable teachers for all students.

We believe that the most important resource a school can have—more important than devices—are well-prepared teachers. Yet, the CS for All movement is also happening at a time when unyielding beliefs in technology to solve education problems is at an all-time high. The CS for All community must consider how its attempts to circumvent teachers or "outsource" CS education to volunteers or on-line companies can be putting short-cuts and market needs ahead of high quality student learning.

Moving Fast but Learning Slow?

At this incredible time of CS for All, we are all riding the wave with the wind at our back. But, what happens when we are moving so quickly that we don't have time for the iterative cycle of research ⇒ implementation ⇒ more research ⇒ improvement ⇒ dissemination? Educational reformers who have been involved in this type of large scaling have found "a common story of going fast and learning slow" [4] The research shows that as we scale up, different issues emerge and the different types of expertise needed also change. New challenges arise. For instance, consider the following finding:

The history of educational innovation is replete with stories that show how innovations work in the hands of a few, but lose effectiveness in the hands of the many [12].

Why is this? Researchers have also found that "we need to design [programs] which explicitly aim to function in the hands of diverse individuals working in highly varied circumstances." [12] What does this mean for CS for All? How do we most effectively share our lessons and knowledge with each other? How do we learn "what works, for whom, under what conditions?" [4] How do we break down the silos of practice and research? How do we best share the different forms of expertise that we now need? We are committed to finding solutions to these challenges.

Conclusion: Riding the wave together

As we ride this wave of CS for All, we must remember that it is the power of community that will let us all accomplish our goals.


1. 114th Congress. 2015. Every Student Succeeds Act. (Washington, DC: U.S. Government Publishing Office, 2015); Accessed 2016 August 17.

2. Advances in AP; Accessed 2016 August 26.

3. Bryk, A.S., Gomez, L.M., and Grunow, A. "Getting ideas into Action: Building Networked Improvement Communities in Education." Frontiers in Sociology of Education (Notre Dame, IN: Springer Netherlands, 2011), 131. doi:10.1007/978-94-007-1576-9_7. Accessed 2016 August 17.

4. Bryk, A. et al. "Breaking the Cycle of Failed School Reform." Harvard Education Letter. 31, 1 (2015).

5. Darling-Hammond, L. Powerful learning: What we know about teaching for understanding. (San Francisco, CA: Jossey-Bass, 2008), 5.

6. Darling-Hammond, L. Powerful Teacher Education: Lessons from Exemplary Programs. (San Francisco, CA: Jossey-Bass, 2006), 190.

7. Dweck, C. Mindset: The New Psychology of Success. (NY: Ballantine Books, 2007).

8. Exploring Computer Science: A K-12/University partnership committed to democratizing computer science. (2016); Accessed 2016 August 17.

9. Fang, L. "How Online Learning Companies Bought America's Schools. The Nation, November 16, 2011; Accessed 2016 August 17.

10. Friedrich, D. "We Brought It Upon Ourselves: University based Teacher Education and the Emergence of Boot-Camp-Style Routes to Teacher Certification" in Education Policy Analysis Archives 22, 2 (2014). doi: Accessed 2016 August 17.

11. Gilbertson, A. "The LA School iPad Scandal: What You Need to Know." (Washington, DC: National Public Radio, 2014); Accessed 2016 August 17.

12. Gomez, L., Gomez, K., and Gifford, B. "Educational Innovation with Technology: A New Look at Scale and Opportunity to Learn" in Educational Reform: Transforming America's Education through Innovation and Technology. (Whistler, BC: Aspen Institute Congressional Conference Program Papers, 2010).

13. Goode, J., Flapan, J., and Margolis, J. "Computer science for all: A school reform framework for broadening participation in computer science" in Tierney, W, Corwin, Z., & Ochsner, A. (Eds). Digital Equity and Educational Opportunity. (Baltimore, MA: John Hopkins Press, forthcoming).

14. Google and Gallup. Searching for Computer Science: Access and Barriers in U.S. K-12 Education. (2015); Accessed 2016 August 17.

15. Howard, T. C. "Culturally Relevant Pedagogy: Ingredients for Critical Teacher Reflection" in Theory into Practice, 42,3 (2003), 195–202; Accessed 2016 August 17.

16. Margolis, J., Goode, J., Chapman, G. "An Equity Lens for Scaling: A Critical Juncture for Exploring Computer Science." ACM Inroads, 6,3 (2015), 58–66; Accessed 2016 August 17.

17. Margolis, J. et al., Stuck in the Shallow End: Education, Race, and Computing. (Cambridge, MA: MIT Press, 2008).

18. Moll, L. C. et al. "Funds of Knowledge for Teaching: Using a Qualitative Approach to Connect Homes and Classrooms" in Theory into Practice 31,2 (1992): 132–141; doi:10.1080/00405849209543534.

19. Nocera, J. "Silicon Valley's mirror effect." New York Times, December 26, 2014; Accessed 2016 August 26.

20. Oakes, J. Keeping Track (2nd ed.). (New Haven, CT: Yale University Press, 2005), 3–9.

21. Obama, B. State of the Union Address. January 12, 2016; Accessed 2016, April 2.

22. O'Neil, J. "On Tracking and Individual Differences: A Conversation with Jeannie Oakes." Educational Leadership, 50, 2, (1992), 18–21.

23. Papert, S. A Critique of Technocentrism in Thinking about the School of the Future. (Cambridge, MA: MIT Media Laboratory, 1987), 4. Accessed 2016 April 20.

24. Richardson, D. "Why a new Computer Science Supplementary Authorization?" (Sacramento: CA: Commission for Teacher Credentialing, 2015); Accessed 2016 August 17.

25. Ryoo, J., Goode, J., and Margolis, J. "It takes a village: supporting inquiry- and equity-oriented computer science pedagogy through a professional learning community." Computer Science Education 25,4 (2015). doi:

26. The White House. (2016).; Accessed 2016 August 17.


Jane Margolis
Los Angeles, CA 90095-1521

Joanna Goode
University of Oregon
Eugene, OR 97403-5277


UF1Figure. As we work to bring CS for All into the schools we must assure that are programs are fully aware of—and resist—the sorting and biases that accompany this larger inequitable context of education.

UF2Figure. As we ride this wave of CS for All, we must remember that it is the power of community that will let us all accomplish our goals.

©2016 ACM  2153-2184/16/12  $15.00

Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and full citation on the first page. Copyright for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or fee.

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

Contents available in PDF
View Full Citation and Bibliometrics in the ACM DL.


There are no comments at this time.


To comment you must create or log in with your ACM account.