Skip to main content

Is Computer Science the New Latin?

Posted by cayhorstmann on April 5, 2008 at 10:02 AM PDT

style="float: left; margin-right: 1em; " />This href="http://www.washingtonpost.com/wp-dyn/content/article/2008/04/03/AR2008040303925.html">Washington
Post article reports on the elimination of underenrolled Advanced
Placement (AP) courses in American high schools. The subjects affected are:
Italian, Latin Literature, French Literature and, hold on to your hats,
Computer Science AB. (The College
Board
designs high school courses that aim to be equivalent to college
courses. High school students who take the course and pass an exam are often
given college credit.)

Has computer science become as unpopular as Latin for American teenagers?
That would have serious consequences for our industry. As it happens, I just
finished serving on the Development Committee for the AP Computer Science
courses, so I have a little more inside information.

The number of computer science majors has dropped substantially after the
dot-com bust (see the graph below). At the same time, U.S. employment in the
IT sector is solidly up, outsourcing nonwithstanding, and there is widespread
concern about a looming skills shortage.

Why don't students major in CS? Nobody knows for sure. The Dilbert image
of working long hours in cubicles, only to have your job outsourced, surely
doesn't help. We do know that most students have made up their mind by the
time they reach college, so the way to their hearts and minds is in secondary
school.

That's where the AP program comes in. In the past, there were two courses,
AP CS A and AB. The A course covers college-level CS1, the AB course covers
college-level CS1+CS2.

style="float: left; margin-right: 1em; " />That, of course, begs the question
what college-level CS1 and CS2 are. In most universities, CS1 is an
introduction to programming, and CS2 covers data structures (linked lists,
trees, hash tables, etc.) While CS2 is fairly standardized, there is quite a
variety of approaches for CS1. The most popular programming language is Java,
followed by C++, but there are enthusiastic proponents of Scheme, Python, C,
assembly, and just about any language other than Intercal. Some CS1 courses
are “breadth first”, covering a bit of networking, databases,
software engineering, and theory rather than diving deeply into programming.
MIT starts out with robotics, mixing hardware, software, and systems design.
That sounds like a lot of fun but it is so expensive and labor-intensive that
it is unlikely to become mainstream.

AP CS must have a single curriculum, so they go with the
middle-of-the-road approach: Programming and data structures in Java. That
doesn't make them popular with the (intrepid experimenters|lunatic
fringe)—see href="http://www.nytimes.com/2007/04/17/science/17comp.html">this
article. Some of that criticism is below the belt. You can't judge the
quality of a course by the weakest question on the final exam. But not all is
well with AP CS. There needs to be more room for excitement and fun, not just
teaching to the test.

Enrollments in the course have declined somewhat less than at the college
level. Here are recent numbers of test-takers, courtesy of Dave Reed, the
Chief Reader who administers the CS exams:

YEAR      A      AB
---------------------
1998    6,478   4,057
1999    12,218  6,619
2000    13,646  6,876
2001    15,827  7,595
2002    15,660  7,799
2003    14,674  7,071
2004    14,337  6,077
2005    13,924  5,097
2006    14,662  4,939
2007    15,049  5,064

Compared to other AP subjects, the CS numbers are not very impressive. In
2007, Physics had over 60,000 test-takers, and US history over 250,000. Latin
had about 5,000.

The College Board decided to cut their losses. Without bothering to ask
any CS people, they eliminated the AB exam, leaving AP CS as a one-semester
course. (As the VP in charge, Trevor Packer, emailed me: “We do not
see this as a decision dependent upon disciplinary input.”) This is
rather unfortunate since the kids taking AB are the ones most motivated to go
into computer science.

style="float: left; margin-right: 1em; " />There is some talk by the College
Board administrators about growing CS A back into a two-semester sequence,
but that is pretty dubious. Who would heal themselves by first cutting off
their healthy limbs and then waiting for them to regrow? (Trivia fact of the
day: According to the April 2008 Scientific American, Salamanders are unique
in their ability to regrow severed limbs.)

As
you can see, CS in American high schools is in bad shape. That is a problem
for all of us in the computing industry. What can you do? If you have kids in
school, make your voice heard with the school board. Volunteer in the CS
club. (They don't have one? Start one. I fondly remember my high school days
in the physics and technology club, the
refuge of the nerds. We were a proud group of nerds, and many of us ended up
with a Ph.D.) Get your company to send speakers, volunteers, and equipment.
Get kids into your company so they (hopefully) see that it's not Dilbert
land. And remember, what got you into CS may not be what excites them, so be
on the lookout for new approaches such as href="http://www.alice.org/">this or href="http://worldwind.arc.nasa.gov/">this or href="http://greenfoot.org/">this.

Related Topics >>

Comments

I'll talk about the elephants in the room.

I loved going to the local high -tech job fair with my friends only to find that the Sun representative wouldn't even TAKE or LOOK at our resumes from the University of California or even do anything other than look away when we walked up.

But when we looked at that table later, that same representative was talking eagerly to what, judging from the accent and appearance, was non-US citizens who, as it turns out, had the same level of experience that we did.

That was a special moment for all of us, I know

It's called outsourcing and H1Bs.

Ha, let's see how fast this post gets taken down.

Look, when demand for programmers was up, salaries and working conditions went up, and , golly, enrollment went up.

When Sun and Microsoft and all the rest figured out that they could

  1. import foreign workers by claiming there was a "labor shortage"
  2. export programming jobs to lower wage countries and get good enough quality

guess what happened? Word got back to undergraduates from their older friends and relatives and other reliable sources that jobs were not secure, that careers were going to be short lived and that working hours and conditions were terrible.

I wonder why enrollment is down. Must be Americans don't care about science and technology (all of a sudden, for some odd reason..)

It's the oldest play in the book for American business, starting from the time Chinese immigrants were imported to build the railroads. There were plenty of Americans who wold have done those jobs, but the railroad robber-barons wanted to pay slave labor wages and flood the market with people desperate to escape a 3rd world hell-hole.

They're better.

Did you hear me say Americans are better programmers?

Did you hear me say that I don't want India and Poland and China to have thriving economies with world-class programmers?

Did you hear me say that only Americans should be able to come over here and study and start companies?

Then you heard me say something I didn't say.

It's about labor and jobs and opportunity. The reality is, there is no practical upper limit on the number of jobs you could outsource and/or give to H1Bs. You could give them all away. And, what's the point? All you're doing is sucking those countries dry of talent and depressing the motivation of Americans. Is this a hard problem to think about with no obvious solution? Yes.

How do other countries deal with this issue? If you're India or China, or Mexico, you don't let people in to take your citizen's jobs.

So you succeed in unemploying Americans and chasing them away from the field, just exactly who do you think is going to fund your wars and pay your multi-million dollar CEO salaries? No country can sustain the aggressive and dedicated war on jobs that America's corporations have launched against it citizens and remain solvent for long. What we hear from Sun is that Americans need "skills training" to be employable. What the reality is is none of these companies are going to employ Americans in any number until they've driven American programming wages to 3rd world levels. (This does not apply to management BTW)

It's just a fact. Just regularly talented normal programmers need jobs, and if you devise a scheme where they won't get them, but they are instead given to their equally talented foreign counterparts for the sole purpose of depressing wages, then guess what....

The reality is this- Sun et. al. did everything they could to demolish the market for programming labor, like any company would.

This included falsely claiming before Congress there was a "desperate labor shortage" of programmers - as if the market was just somehow magically broken - and America needed more H1Bs.

That of course altered the outlook for American programmers, as expected.

So those Americans stopped looking at the field as something desirable. As expected.

So now Sun says "oh no... look at the drop in enrollment... golly, whaddya gonna do...? Lazy incurious Americans... darn TV culture... Oh.. Congress......."

Funny how Sun et.al. only likes the market when it works in their favor. Other than that, they want a subsidy and a handout and the means to distort market forces - at American's expense

I just love it when Sun gets all patriotic about America's future. It's so touching. The reality is, companies care only about themselves and their bottom line and nothing about their host country or anything else. . If you don't believe me, just look at their corporate charter... there's nothing in there about helping anyone but their shareholders.

All that means is Congress shouldn't listen to corporations when they squeal about "labor shortages", because we know apriori that they'll say anything and do anything and tell any lie they need to to serve their bottom line. That's all they're about. It's Congress's job to care about the nation, not Sun's. Congress needs to be pro-business and free market, not pro CompanyX. The first is called free enterprise, the second is called being captured by an industry.

Labor shortage are corrected by increase in wages, better working conditions and the consequent increased flow of people into the industry- done. Why do I have to explain that to a company loaded with MBAs?

I think that cancelling the CS AB exam is a big mistake, and I have been trying to save it. Trever Packer, the vice president of the College Board said at the AP reading this summer that if a company comes to the College Board with a check to save the exam before Oct 2008 we can save it. We have contacted Microsoft, Intel, Google, and Sun. Only Google and Sun have seem interested. Trevor said it would take more than $400,000 a year to save it. We are not currently training enough CS undergrads for all the current or projected jobs in this field in the US. At Georgia Tech demand is so high for our CS grads that they now have the highest starting salary of any 4 year degree from Georgia Tech. They are making an average of $68,000 and some are making more than $86,000! One important reason to save the AB exam is that we will lose teachers if the exam is cancelled. Many of the teachers who teach the AB course were professionals who decided to teach. Many of them say that the AB exam is their favorite and without it they may quit teaching and go back to being professionals. Some schools are firing their CS teachers without the AB exam as they now think that they don't have enough courses for them to teach. I hope that we save the AB exam before it is too late!

Interesting article Cay,

I still see, majoring in Computer Science, much like the completion of a PhD, is something the dedicated core does, purely because they want to. There is so much fascination; no amount of bullying, or school cutbacks, could ever diminish their enthusiasm. Don't you remember; when we went to school, there was no Computer Science program, why teachers hadn't even heard of the term. ;-)

Some US universities are actually looking to get rid of all that unpopular maths stuff, simply to increase CS enrollment. I am sure, the results will be disappointing. It's interesting, looking at the graph; total = (men + women) / 2 ??? Now I'm sure I the US has a major maths education problem! ;-)

John

PS America is a continent, not a country. I am sure for example, Canada would not like to be smeared with the same brush. It is not fair to say this is a problem of American schools; rather generally those of the United States.

> It's interesting, looking at the graph; total = (men + women) / 2 The scale is % of the group (% men, %women, %total).

There are high schools that teach CS? And an AP test? WOW thats cool. Some of us never had that opportunity. In fact some of us got along just fine without an AP course in any subject. Really though I would think obtaining qualified CS high school teachers would be the real issue. If one is skilled and has a CS degree they would have to really love teaching at the high school level to make it their primary job. If you major in history though... what else are you going to do to make a living? Some schools have trouble even filling Physics positions. CS is exotic by comparison.

Hey Cay, Well thanks for the response; it's not what I expected (not from you, but from the forum).

We agree, it's not an easy problem. Companies have to make a profit the way people need to breathe and eat- it's what keeps them alive.

Where we differ is in the diagnosis of the problem- dropping enrollment in CS. I don't see it caused by a lack of qualified high-school teachers; I see it as caused by corporations ability to bring in huge amounts of labor and outsource huge amounts of work, where both contribute to the depression of wages and working conditions.

We didn't have mo' bettah' teachers in the 90's, we had the promise of long and meaningful careers filled with opportunity and good prospects. Not outrageous, not greedy, just good- 70k 80k - Good enough to move people into the field.

At first glance, There appears to be something to the idea that students in India, Russia, China, Germany et.al. are more inclined to be interested in science than Americans.

Until you consider this-

America really stands alone in its determination, which I completely agree with, that every single child should be brought to college-level competency across all subjects. Other countries just don't do this. They pull non-promising people out into non-academic, non-college tracks very early, and those people don't show up to be scored in all the tests that show Americans are 15th in the world at math and science or whatever number is being paraded around.

Where do you think India and Germany and Russia would be if ALL their people, all those untouchables, peasants, the people who live in BF China and all the rest that are just disappeared from the system early on, were factored into those competitive scores?

We do something few other nations even try- we make everyone count. It hurts us in comparative tests of college bound seniors or even 7th grade science scores. Every non-English speaking immigrant, every illiterate kid whose parents are junkies get factored into our scores, and it hurts us. Corporate execs love those scores, and parade them around to the media, because it gives them a tool to blame the victim. I'm not buying it.

H1Bs are very capable. So are Americans. Like I said, it's not an easy problem. Who wants some smart guy from India languishing in a small town, wasting his life trying to eke out a living doing work beneath him because he has no opportunity available to him? Not me! I don't want my fingerprints on that one. But what's the solution? I say, let Sun set up shop over there and grow that country just like it did here. If you just continually pour people from there into here, you take away those people from a there that needs them and you unemploy people here, which hurts us. A lose-lose.

In a market where outsourcing is an option, it's not hard to imagine once one company discovers that solution, all other companies have to follow their lead or risk non-competitiveness. I don't know that that's true, since the products of software companies aren't commodities (where price directly determines market share) but let's say it is true.

Well that means things like the development of Java 7 goes to Prague or India. They're great programmers - it's just a fact; plus, there's only one Java7, and it's all the same (it's a commodity in a class of one), so the lower we can drive the cost to develop it without sacrificing quality, the better.

Now for the class of programming that we both agree must exist- where location matters. Just hire the people locally and let wages go where they will, without acting like robber barons. Apparently, a salary around 75k accompanied by the promise of an actual 30-year career, programming becomes so attractive, academic CS programs crop up like mushrooms.

If we have the first part of that today, we sure don't have the second part, and that's because of global labor arbitrage and H1Bs are a significant part of that.

Along these lines, why isn't there the master-apprentice model of programming in the workplace? Companies arent' just saying "we can't find people with the (micro-specific) skills we need", they're also saying, implicitly, and "the degree holding people we do meet (or layoff) are untrainable.

That's what we in the midwest quaintly call "lying".

We all know the more things change in programming the more they stay the same. Older programmers, really, their value goes up every year. So where is the long-term social contract implied by the master-apprentice model ? Why is it AWOL from programming departments?

This idea that experienced "don't get" the new technologies and need to be replaced is so laughable. New to who? To you- recent college grad. Trust me, the Cay Horstmanns et. al. have seen it all before, and if not, something very much like it. Moreover, the working, problem solving, design and other "soft" skills you accumulate over time don't go stale in the least and in fact take years to develop.

So why is this not our workplace? Because companies don't care about the long term consequences of anything, really, not even their own companies. What they want is to make their numbers each quarter, steadily cash in with "planned sales" of their stock and retire in 5 years with the 10 million dollar bonus- see ya later, sucker.

Either that or they're just populated by megalomaniacs whose for whom every cent of profit is a kind of cocaine that lights up their brains as it destroys their larger judgment.

The lesson here is - don't ask a corporation what's good for your country, society or the world generally. Don't even think to ask a corporation to think about the good of its employees. Don't ask a corporation to think about even it's shareholder's really, except to the extent you can legislate that and follow that up with punishment for transgression. The only thing a corporation is going to think about is - how much money can the decision makers can engineer in their own pockets and get away with it. Done.

OK so now it' s a rant. It's saving grace has to be it's all true and important.

@aberrant, @erickson: There certainly aren't enough high school teachers qualified to teach CS, and I wholeheartedly agree that inadequate teacher pay is a huge problem. And yes, industry needs to do much more. Unless the plan is to continue to rely on the school systems in other countries...

I do want to say that during my involvment with the AP program, I have met many CS teachers who are highly qualified and enthusiastic. Why aren't they working elsewhere when they are so good? Some of the best high school teachers I met had been software engineers and felt it was their turn to give something back. At any rate, people take jobs for all sorts of reasons and I hope they aren't judged negatively just because they didn't go for maximum moolah. Heck, I could be a coder instead of a college professor. Or I could be a VP, mouthing off nonsense.

Hmm. As a parent and a programmer, this is the way I see things:

There aren't enough high school teachers qualified to teach an AP course. A kid who is interested in programming won't suffer through a year listening to some guy who doesn't understand what he's talking about.

Someone truly qualified to teach AP CS could easily get a job as a programmer, and it is likely to pay a lot more.

If our industry wants to interest children in CS, they need to be more direct in their support. For example, sponsoring AP courses or some similar extra-curricular program, with well-paid instructors.

Yes, I had few great high school teachers. One of the best was the late Steven C. Jackson, my AP Physics teacher, who was "independently wealthy" after inventing and selling a device to stretch bottles. You may have encountered stretched Coke bottles filled with colored water or layers of colored sand at a carnival or yard sale. Mr. Jackson taught for fun, not for the money (and we had a lot of fun with only a few injuries and very little property damage… but I digress). For many years, our high school had outstanding AP Physics pass rates both in absolute numbers and percentages.

But you can't design a robust system around these exceptional people. You need a program that works with rational actors. Steve Jackson made all the difference to me at an individual level, but if we want to alter nationwide economic trends, we need a different solution, driven by economic forces.

@swv: I think you have an excellent point. If computer scientists got paid as well as divorce lawyers, we wouldn't have any of these problems. I looked at the labor statistics that show that there is a good job market for CS/IT in the U.S. in the next ten years, and I do not doubt the statistics. The problem is, however, that the wages and working conditions in this market are held down by the fact that there is large supply of labor elsewhere on the planet.

Would restricting H1B help, or would it just lead to more wholesale outsourcing?

There must be value to having programmers here, because otherwise employers would simply keep programmers in their home country rather than run through the H1B hoops.

So, here is my modest proposal. Lift the H1B quota. But for every 5 H1B workers, the employer pays the salary+overhead for one high school teacher in math/science. That way, the problem may eventually self-correct.

"Some US universities are actually looking to get rid of all that unpopular maths stuff, simply to increase CS enrollment. "

I doubt it's to increase CS enrollment. It's more likely to increase the appeal of their curiculum to kids who are only interested in the scholarship programs offered to candidates for their professional sports teams. Zero effort curiculum, worthless degree, but lots of time for baseball (or whatever).

Perfect match for the attitude of the homework kiddo, which seems to be the default attitude for kids these days.

Most of the teachers I've met are not qualified to teach kindergarten, let alone AP computer science. We need qualified teachers to get kids excited about CS, and those are hard to find.