Computing Profession BLOG@CACM

The Costs and Pleasures of a Computer Science Teacher

The Communications Web site,, features more than a dozen bloggers in the BLOG@CACM community. In each issue of Communications, we'll publish selected posts or excerpts.

Follow us on Twitter at

Mark Guzdial considers the enormous opportunity costs of computer science teachers, while Bertrand Meyer ponders the pleasures of arguing with graduate students.
  1. Mark Guzdial: The Real Costs of a Computer Science Teacher are Opportunity Costs, and Those Are Enormous
  3. Bertrand Meyer: Small and Big Pleasures
  4. Authors
Mark Guzdial, Bertrand Meyer December 1, 2017

Imagine that you are an undergraduate who excels at science and mathematics. You could go to medical school and become a doctor, or you could become a teacher. Which would you choose?

If you are in the U.S., most students would not see these as comparable choices. The average salary for a general practitioner doctor in 2010 was $161,000, and the average salary for a teacher was $45,226. Why would you choose to make a third as much in salary? Even if you care deeply about education and contributing to society, the opportunity cost for yourself and your family is enormous. Meanwhile in Finland, the general practitioner makes $68,000 and the teacher makes $37,455. Teachers in Finland are not paid as much as doctors (, but Finnish teachers make more than half of what doctors do. In Finland, the opportunity cost of becoming a teacher is not as great as in the U.S.

The real problem of getting enough computer science teachers is the opportunity cost. We are struggling with this cost at both the K-12 (primary and secondary school) level and in higher education.

I have been exchanging email recently with Michael Marder of UTeach at University of Texas at Austin ( UTeach ( is an innovative and successful program that helps science, technology, engineering, and mathematics (STEM) undergraduates become teachers. They do not get a lot of computer science (CS) students who want to become CS teachers; CS is among the majors that provide the smallest number of future teachers. A 2011 U.K. report ( found that CS graduates are less likely to become teachers than other STEM graduates.

CS majors may be just as interested in becoming teachers. Why don’t they? My guess is the perceived opportunity cost. That may just be perception—the average starting salary for a certified teacher in Georgia is $38,925 (, and the average starting salary for a new software developer in the U.S. (not comparing to exorbitant possible starting salaries) is $55,000 ( That’s a big difference, but it’s not the 3x differences of teachers vs. doctors.

We have a similar problem at the higher education level. The National Academies of Sciences, Engineering, and Medicine just released a report: Assessing and Responding to the Growth of Computer Science Undergraduate Enrollments (you can read it for free or buy a copy at, which describes the rapidly rising enrollments in CS (also described in the CRA Generation CS report, discussed in a previous blog at and the efforts to manage them. The problem is basically too many students for too few teachers, and one reason for too few teachers is that computing Ph.D.’s are going into industry instead of academia.

Quoting from the report:

CS faculty hiring has become a significant challenge nationwide. The number of new CIS (computer and information science and support ervices) Ph.D.’s has increased by 21% from 2009 (1,567 Ph.D.’s) to 2015 (1,903 Ph.D.s), while CIS bachelor’s degree production has increased by 74%. During that time, the percentage of new Ph.D.’s accepting jobs in industry has increased somewhat, from 45% to 57% according to the Taulbee survey. Today, academia does not necessarily look attractive to new Ph.D.’s: the funding situation is tight and uncertain; the funding expectation of a department may be perceived as unreasonably high; the class sizes are large and not every new hire is prepared to teach large classes and manage TAs effectively; and the balance between building a research program and meeting teaching obligations becomes more challenging. For the majority of new CS Ph.D.’s, the research environment in industry is currently more attractive.

The opportunity cost here influences the individual graduate’s choice. The report describes new CS Ph.D. graduates looking at industry vs. academia, seeing the challenges of academia, and opting for industry. This has been described as the "eating the seed corn" problem ( (Eric Roberts has an origin story for the phrase at his website on the capacity crisis, at

That is a huge problem, but a similar and less well-documented problem is when existing CS faculty take leaves to go to industry. I do not know of any measures of this, but it certainly happens a lot—existing CS faculty getting scooped up into industry. Perhaps the best-known example was when Uber "gutted" CMU’s robotics lab (see the description at It happens far more often at the individual level. I know several robotics, AI, machine learning, and HCI researchers who have been hired away on extended leaves into industry. Those are CS faculty not on hand to help carry the teaching load for "Generation CS."

Faculty do not have to leave campus to work with industry. Argo AI, for example, makes a point of funding university-based research, of keeping faculty on campus teaching the growing load of CS majors ( Keeping the research on-campus also helps to fund graduate students (who may be future CS Ph.D.’s). There is likely an opportunity cost for Argo AI; by bringing the faculty off campus to Argo fulltime, they would like get more research output. There is an associated opportunity cost for the faculty; going on leave and into industry would likely lead to greater pay.

On the other hand, industry that instead hires away the existing faculty pays a different opportunity cost. When the faculty goes on leave, universities have fewer faculty to prepare the next generation of software engineers. The biggest cost is on the non-CS major. Here at Georgia Tech and elsewhere, it is the non-CS majors who are losing the most access to CS classes because of too few teachers. We try hard to make sure that the CS majors get access to classes, but when the classes fill, it is the non-CS majors who lose out.

That is a real cost to industry. A recent report from Burning Glass ( documents the large number of jobs that require CS skills, but not a CS major. When we have too few CS teachers, those non-CS majors suffer the most.

In the long run, which is more productive: Having CS faculty working fulltime in industry today, or having a steady stream of well-prepared computer science graduates and non-CS majors with computer science skills for the future?

Back to Top


Great article. The first part of this highlights one of my major complaints about teacher’s unions in the U.S. They push very hard to keep the pay for all teachers, regardless of subject taught, equal. In the case of CS, they are clearly hurting education by doing so.

I also have a comment on the opportunity cost analysis at the beginning comparing doctors, teachers, and entry-level software developers. To do that comparison properly, you have to take into account the fact that doctors have to stay in school a long time. Doctors don’t start making that kind of money until after four years of medical school and -three years of residency. Both teaching and software development can get jobs right out of undergrad. So you have to factor in seven years of lost wages for the doctor. At that point, the salary for the teacher has risen a little, while that for the software developer has gone up quite a bit. So while I agree completely with the issue of opportunity cost, I think that this example needs more details to be complete.
    —Mark Lewis

Thanks, Mark! Great point about the relationship between years of school and salary. I agree.
    —Mark Guzdial

Back to Top

Bertrand Meyer: Small and Big Pleasures December 19, 2017

One of the small pleasures of life is to win a technical argument with a graduate student. You feel good, as well you should. It is only human to want to be right. Besides, if you ended up being wrong all or most of the time, you should start questioning your sanity: Why are they the students and you the supervisor, rather than the other way around? (One of the most hypocritical lies in the world is the cliché "I make sure to hire people who are smarter than I am." Sure. So obviously uttered—unless the person you are hiring is your successor—for the sole purpose of making you look whip-smart. If it were sincere, why then would you stay on?)

One of the big pleasures of life is to lose an argument with a graduate student. Then you have learned something.

Back to Top

Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More