Sign In

Communications of the ACM


If You Want to Teach Kids CS, First Teach the Adults

View as: Print Mobile App Share:
Mark Guzdial

Georgia Institute of Technology professor Mark Guzdial

Recently, ACM past-president Vint Cerf testified to the U.S. Senate on research needs, and he addressed the need for more CS education.

As a recent president of the Association for Computing Machinery (ACM) and a member of the Google staff, I have been a strong proponent of the proposition that computer science should be a required part of the K-12 curriculum. Every student should have some exposure to the concept of programming, not only because it promotes logical thinking but also because it is important for everyone to understand and appreciate the potential weaknesses in all software-controlled systems. Computer science should be treated on a par with biology, chemistry, physics and mathematics in K-12 and undergraduate curricula, not simply as an elective that bears no STEM credit.

Vint Cerf, testimony to U.S. Senate Committee on Commerce, Science and Transportation,17 July 2014

How do we achieve the goal that Vint identifies, to require CS in primary and secondary school curriculum in the United States? Let's agree that we need schools and teachers to achieve this goal. MOOCs have not yet shown success with early subjects, and completion rates for MOOCs are lowest for students with little prior background. We really don’t know how to use on-line learning to successfully engage the majority of secondary school students in CS education, let alone the greater challenges of reaching all students in high school and in primary school.

The challenges of getting more schools and more CS teachers are highlighted in a recent working paper by the Exploring CS group at UCLA, The Revolving Door – CS for All and the Challenge of Teacher Retention.

This means that fully 45 of the 81 teachers who have participated in the ECS program have experienced a teaching "disruption" which has ended their participation in the ECS teacher community for a year or longer.

What's worse is that losing a teacher often means losing the whole school -- no replacement CS teacher can be found quickly enough to avoid losing a year or more. What's the problem? Why are so few teachers being retained as high school CS teachers in LA? Simply requiring or mandating CS in schools doesn't solve this problem of getting enough teachers.

To be clear, it’s not a problem of more professional development. We have far more capacity for CS teacher professional development than we have teachers interested in learning CS. We have to make teaching CS a valued and inviting career.

The ECS working paper cites Linda Darling-Hammond who explains that the real challenge of having enough teachers is getting support for those teachers.

"The main problem is an exodus of new teachers from the profession, with more than 30% leaving within five years, and higher rates of turnover in lower-income schools. An additional problem is the flight of teachers from less-affluent schools to more-affluent schools. This is strongly tied to working conditions — including administrative support and strong colleagues as well as tangible teaching conditions and salaries. Research also finds that teachers leave the profession much faster if they have less preparation before they enter and less mentoring support when they arrive."

In Lijun Ni’s research on CS teacher identity, we heard similar stories from Math teachers who didn’t want to teach computer science — it was the lack of community and support.

"I’m a better Math teacher, just because I’ve had so much support. Whenever I have problems, I can talk with the people that I work with, most of who have taught for many years in Math.…Every day, I’m eating lunch with Math teachers. With Computer Science, I’ve got nobody to talk to."

If we want to teach kids CS, we first have to teach adults CS. We need more teachers who know computer science. We need more administrators and principals who value CS and build support for it within their schools, including mentoring support for new teachers. Yes, we also need legislators to define education policy to value CS so that teaching a science class doesn't take priority over teaching a CS class.

I propose a specific, concrete step to improve computer science education and bring us closer to Vint Cerf's goal: Require computer science as part of the general education requirements for all undergraduate majors in all Universities and Colleges. Undergraduate students would take courses in social sciences, humanities, science, mathematics, and computer science. If computer science is so important that all school children need it, then it's obviously even more important for all students who are choosing career paths that require higher education. Implementing this requirement is far easier than implementing a requirement in K-12, since most Colleges and Universities already have a CS department with teachers who know how to teach CS.

The positive impact of this step is that it makes long-term change. All new teachers will already have had a course in computer science, making professional development in how to teach computer science much easier. Administrators, principals, and parents with undergraduate degrees will have had a CS course that helps them to understand the value and importance of computer science for children.

The ECS working paper ends with an important admonition. The desire to improve computing education in schools is going to lead to short-term, quick fixes. An example quick fix is asking IT professionals to teach CS classes so that something gets offered in schools. That kind of quick fix doesn't do anything to grow support for teaching CS in schools so that teachers are recruited, mentored, supported, and retained. That kind of quick fix doesn't lead to change in how we teach CS, so that we broaden participation in computing and grow a more diverse CS workforce.

We need to plan for teaching computer science for the long-term. Think in terms of decades. We have to create a system for growing CS in schools. To do that, we need to grow teachers and schools, which means that we first need to think about teaching the adults about CS.


Austen Ichu

I agree that adults should be taught for them to valuve and pass CS to the next generation.
Dr. E. A. Ichu, Ph.D.

Paul Parker

As a 1989 college CS graduate I can attest to its value though how I arrived at becoming interested in CS was not thru a mandatory requirement from the small town public school I attended. My interest began more as a curiosity of computers and how they worked. The truth is I spent many hours playing games on my Commodore 64 which led to eventually writing very simple programs for the C64. What I found as a curiosity, most kids today take for granted. If parents, teachers, & schools want to promote CS they should recognize there are numerous channels kids can be invited to explore what CS is about. Introductory CS classes should focus on fun and multiple disciplines of CS as a way for the student to explore and develop their own curiosity.

W Monroe

I taught CS at a small liberal arts college in New York state from the late 1980's to the early 2000's, and the greatest frustration of students interested in teaching and in CS was that in order to teach, they had to be certified in some other discipline, and that left little time CS. New York did not have then, and as far as I am aware, still does not have a secondary certification in CS as an academic subject. I believe the necessary first step to elevate CS to the level of biology, chemistry, physics, and mathematics is for state education departments to develop secondary certifications in CS, something the majority of states do not have according to the map on this site:

Note: The map on the above-referenced site indicates that NY does have HS certification in CS; however, looking at the "Search Certification Requirements" tool on the NY state education website (, I am unable to find Computer Science listed under the "Classroom Teacher" or "Career and Technical Teacher" areas of interest.

W. John Monroe
Senior Software Engineer

Mark Guzdial

Completely agreed about the importance of certifications, but there is a parallel step: making it useful or necessary to get the certification. Here in Georgia, we have a CS endorsement (a "secondary certificate"), and almost nobody has it. There are three universities offering a CS endorsement program, and one is about to close down because of a lack of students. The CS endorsement is not required to teach CS in Georgia -- if it was, we would have no CS teachers at all. But because it's not required, there's no real reason to get it.

Displaying all 4 comments