was based on our observations as faculty members and as software company entrepreneurs, rather than on a carefully researched study. When several people asked us for data to back up our claims, we had none to offer. Since then, however, it has been very interesting to read the flood of email we received in response to this article. In hundreds of messages, we did not get anyone saying “what are you talking about? We have no trouble hiring knowledgeable students!” On the contrary, we got hundreds of messages that said “Thank you for pointing out this problem, we find it impossible to hire competent students.” One person related an experience where he had a dump from a customer for a program that had blown up and was sifting through it trying to determine what was causing the problem. A newly hired student asked him what he was doing, and he said that he was disassembling the hex into assembly language to figure out the problem. The

student, who had always considered himself superior because of his computer science degree, replied “Oh yes, assembly language, I’ve heard of that,” and was amazed that the senior programmer (whose degree was in music) could in fact figure out the problem this way.

Another company noted that it had found it a complete waste of time to even interview graduates from U. S. universities, so they added at the end of the job description the sentence “This work will not involve Web applications or the use of Java,” and that had served to almost completely eliminate U.S. applicants. Here was a case of domestic outsourcing where they were looking for people in the U.S. who had been trained in Europe and elsewhere and were better educated in the fundamentals of software engineering. These are just two examples of many similar responses, so it is clear that we have hit on a problem here that is perceived by many to be a serious one.

References

1. Atwood, J. how should we teach computer science? Coding horror (Jan. 12, 2008); http://www. codinghorror.com/blog/archives/001035.html.

2. Barnes, J. High Integrity Software—The SPARK Approach to Safety and Security. Addison-Wesley, 2003.

3. Common Criteria for Information Technology Security Evaluation, Version 3. 1; September 2006; www. commoncriteriaportal.org.

4. Computer science education: Where are the software engineers of tomorrow? Cross Talk (Jan. 2008); http:// www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarS chonberg.html.

5. Farrell, N. Boffins deride Java. The Inquirer (Jan. 8, 2008); http://www.theinquirer.net/gb/inquirer/ news/2008/01/08/boffins-deride-java.

6. Maloney, P. and Leon, M. The state of the national security space workforce (Apr. 2007); www.aero.org/ publications/crosslink/spring2007/ 01.html.

7. McGuire, J. Who killed the software engineer? (hint: It happened in college.) Datamation (Jan. 21, 2008); http://itmanagement.earthweb.com/career/article. php/3722876.

8. National Air Traffic Services. NATS pioneers biggest ATC advance since radar; http://www.nats.co.uk/ article/218/62/nats_pioneers_biggest_atc_advance_ since_radar.html.

9. Oates, J. Moody’s to fix sub-prime computer error. The Register (July 3, 2008); http://www.theregister. co.uk/2008/07/03/moodys_computer_bug.

 

Robert Dewar ( dewar@adacore.com) is a professor emeritus of computer science at the Courant Institute of New York University and is co-founder, president, and CEO of AdaCore.

Copyright held by author.

Counterpoint: Owen Astrachan

RoBert dewar Has ly shouldered the task of castigating the language commonly used in introductory programming gracious-

courses. Dewar, like Edsger Dijkstra4 and others before him, holds the language at least partially responsible for, and decries the state of, computer science curricula; he then attempts to use the programming language as a lever to move curricula in a particular direction. However, the lever of the introductory programming language is neither long enough nor strong enough to move or be responsible for our curricula. Attempts to use it as such can generate discussion, but often more heat than light. The discussion is often embroiled in fear, uncertainty, and doubt (aka FUD) rather than focused on more profound issues.

There are definite elements of FUD in the arguments offered by Dewar just as there have been by his predecessors in making similar arguments.

Whereas Dijkstra lamented “the college pretending that learning BASIC suffices or at least helps, whereas the teaching of BASIC should be rated as a criminal offense: it mutilates the mind beyond recovery” we see Dewar noting that “It’s not impossible to teach the fundamental principles using Java, but it’s a difficult task.” Dewar and Dijkstra perhaps would like us to return to the glorious days of text editors and punch cards rather than “fancy visual IDEs.” However, the slippery slope of assumption that the new generation just doesn’t get it leads to the Sisyphean task of pushing the pebble of language, be it BASIC or Java, uphill against the landslide of boulders that represents the reality of computer science. This is the case regardless of whether we’re in Dijkstra’s world of 25 years ago, the world of 2009, or the Skynet world of tomorrow—which is probably closer than we think.

I don’t mean to suggest that Dewar and Dijkstra are arguing for the same thing. Dewar would like computer science programs to produce well-trained software engineers who

can build large complex reliable systems. Dijkstra excoriated software engineering at every opportunity fixing as its charter the phrase “how to program if you cannot.” Both miss part of the bigger picture in the same way that Stephen Andriole missed it in the July 2008 Communications Point/ Counterpoint “Technology Curriculum for the Early 21st Century.” In his

1

Counterpoint, Eric Roberts points out the flaw of “generalizing observations derived from one part of the field to the entire discipline.” Computer science programs must embrace a far wider audience than software engineers building secure systems. Many top programs are housed in schools of Arts and Sciences rather than in Engineering, many have chosen not to be accredited by CSAB/ABET. Students may choose computer science as a stepping-stone to law, medicine, philosophy, or teaching rather than as a foundation for becoming a programmer or software engineer.

Schools like Georgia Tech are developing innovative programs to address the different needs of diverse audi-

References:

http://www.codinghorror.com/blog/archives/001035.html

http://www.commoncriteriaportal.org

http://www.theinquirer.net/gb/inquirer/news/2008/01/08/boffins-deride-java

http://www.aero.org/publications/crosslink/spring2007/01.html

http://itmanagement.earthweb.com/career/article.php/3722876

http://www.nats.co.uk/article/218/62/nats_pioneers_biggest_atc_advance_since_radar.html

http://www.theregister.co.uk/2008/07/03/moodys_computer_bug

mailto:dewar@adacore.com

http://www.codinghorror.com/blog/archives/001035.html

http://www.commoncriteriaportal.org

http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html

http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html

http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html

http://www.theinquirer.net/gb/inquirer/news/2008/01/08/boffins-deride-java

http://www.aero.org/publications/crosslink/spring2007/01.html

http://itmanagement.earthweb.com/career/article.php/3722876

http://www.nats.co.uk/article/218/62/nats_pioneers_biggest_atc_advance_since_radar.html

http://www.nats.co.uk/article/218/62/nats_pioneers_biggest_atc_advance_since_radar.html

http://www.theregister.co.uk/2008/07/03/moodys_computer_bug

Archives