Is Computer Science the New Latin?
style="float: left; margin-right: 1em; " />This
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
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
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
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.)
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.