Sign In

Communications of the ACM


The Problem Is That We're Just Too Darn ­Useful: CS Ed and State Public Policy

View as: Print Mobile App Share:
Mark Guzdial

Georgia Institute of Technology professor Mark Guzdial

There is such a need for skilled labor in computing that having just a little skill, having taken just one or two classes, may be enough to get a job in the computing industry. More skill and more courses may lead to an even better job. Enough courses in a well-defined, well-structured curriculum can result in a degree. That's a trade-off — should a student stop mid-way and get some job, or finish up and be set up for a career? This is a problem that comes up because our field is just so darn useful.  In universities, we can usually finesse the tension, but in high schools in the United States, it's becoming more of a choice.

A recent blog post by Jeffrey McManus argues that we should simply shut down computer science departments in the United States. They aren't meeting the needs of the customers, he argues. 

Most undergraduates and professionals actually want to learn applied software engineering, not "computer science." Most companies want to hire college graduates who know applied software engineering. But most university CS programs don't actually teach applied software engineering. This isn’t to say that CS isn’t useful or valuable.

McManus is highlighting the same tension that I was raising earlier. Computer Science is an academic subject. Applied Software Engineering (as McManus calls it) is a job skill. McManus is arguing that students don't really need to do all the mathematics and other parts of a deep study of Computer Science to get a job, and of course, he's right. The question is whether taking his advice doesn't cheat our students. Are we giving them enough background for a career in computing? Going further: Are we cheating industry and even our technological society, by not generating graduates with deeper knowledge who can meet future demands?

Fortunately, in post-secondary education, there are many options, from community and technical colleges, to multiple degrees in universities. One can even aim for an academic path and preparation for different computing careers. The ACM Education Board has volumes of curricular standards for computer science, software engineering, information technology, information systems, and computer engineering degrees. Pick the focus you want for the career you want.

In U.S. high schools, the choice between vocational and academic is more stark. The Carl Perkins Career and Technical Education Act in the United States provides funding for vocational classes. With education funding in short supply, states see the Perkins Act as a way to fund their computer science classes, e.g., to pay for computers in those classes. But if you get the funding that way, you get the classification too — computer science becomes vocational education.

The Perkins Act is aimed at generating high school graduates with job skills. States define "pathways" of several courses (funded by Perkins) that result in outcomes that industry values: "high skill, high wage, or high demand occupations in current or emerging professions." The pathway is "designed to provide students with a non-duplicative sequence of progressive achievement leading to technical skill proficiency, a credential, a certificate, or a degree." And there's the rub. Is the pathway supposed to be "leading" to a "degree" or to a "credential"? 

New York sees the Advanced Placement Exam in Computer Science (AP CS Level A) as a reasonable end-of-pathway test, while still taking Perkins funding for their classes. Since the AP CS Level A is designed to match what most universities require in their CS1 (introductory computer science for CS majors) courses, it matches the interpretation of a Perkins-funded pathway "leading to . . . a degree."

Florida and Georgia see it differently (and other states may also be making this interpretation). They see a Perkins-funded pathway as leading to an industry certification, "a credential, a certificate." Georgia has picked the Skills USA certification, which involves programming in Visual Basic, C++, and Java. Florida is considering an IEEE Certification. The Georgia Career, Technical, and Agricultural Education Department has even suggested that the AP CS Level A may become irrelevant, as high school students taking the computer science pathway are going to be aiming for industry certification and industry jobs.

In Florida, computer science is getting re-classified from an academic subject to a vocational subject, in order to access the Perkins funding. Computer science is still being taught in the academic track this year, mostly by mathematics teachers. But starting next academic year, computer science will be taught in the vocational track, by business teachers (because they teach the vocational courses involving computers). In the vocational track, computer science classes can no longer be used for credit by students pursuing a college prep, academic track.

In Georgia, the decision to aim for the Skills USA certification is leading to a dramatic re-thinking of the curriculum. The current four course computer science pathway in Georgia matches CSTA curriculum standards and aims students to take the AP CS Level A exam. How do we prepare high school students to pass a test on Visual Basic, C++, and Java? To teach that much programming, what do we give up? What has to be thrown out?

States are making a decision between McManus's "applied software engineering" and "computer science" at the high school level, and there's funding for the "applied software engineering" perspective. Funding speaks pretty loudly in today's economy. Do we want computer science to be seen as an academic subject in high schools, or as an industry certification?



Gary Page

In California, we want to see computer science as both a "college" and "career" option for students. All students need a fundamental understanding of programming, which is why I advocate Exploring Computer Science for ALL high school students. Career Technical Education (CTE), formerly called vocational education, helps make the application of programming relevant to the student. After all its what you can do with programming and technologies that adds value to society.

Certifications are one measure of the knowledge and skills a student can demonstrate, help demonstrate student learning, and may help the student get a job. What is important is that we honor the learning goals of all students, whether their objective is to start a "job" immediately after high school, or continue on to post-secondary education.

That computer science is useful is a good thing, and that it can be used at many levels in a variety of occupations is also good:

I think computer science is still refining its identity and looking for an academic home. To the extent we can use Perkins funding for computer science instruction... I say "cheers!"

I greatly appreciate that the National Science Foundation in helping us to bring focus to K-12 instruction in ways that will serve all students, especially those that are typically not well served in disadvantaged communities.


Gary Page
Education Programs Consultant
California Department of Education

Mark Guzdial

Thank you for your comments, Gary. Can I push a bit more on how you see computer science as both a "college" and "career" option?

Exploring Computer Science ( is a fascinating general introduction to computer science, but it leads to few of the outcomes tested by the end-of-pathway tests being explored by Georgia and Florida. Programming a robot is important to understand robots which may become ubiquitous in our society, and understanding how data is contextualized is important for computational thinking.

Similarly, CS:Principles ( has a key idea of "Big Data," which is a critical part of computational science and Web commerce. But these items are what's in these certifications -- these aren't job skills in themselves.

If you spend the course time in high school on these important ideas which are part of computational thinking and academic computer science, can you also still reach the level of programming proficiency needed to pass these certifications at the end-of-pathway?


WGU gives a full degree but also uses certificates (CompTIA, Microsoft, Cisco, etc) in order to pass classes. Gives the benefit of the degree that employers/HR wants, but the skills/experience to get/keep the job.

Displaying all 3 comments

Sign In for Full Access
» Forgot Password? » Create an ACM Web Account