Appeared in Computing Research News, 4,4 September 1992 (pp. 2, 3, 4, 12)
Download the Postscript or PDF
In recent issues of CRN, Bill Wulf and Dave Patterson ask some questions about undergraduate computer science programs: Are we teaching the best content in the best way? Can we do so without fragmenting the discipline or creating administrative obstacles? [Wulf 91, Patterson 92] As they observe, the last two decades have seen radical changes in hardware technology, networking, system interconnection, and sophisticated applications, but our curricula generally ignore these changes. Further, software production problems lead the list of problems in developing computer applications. Wulf and Patterson ask why our current programs don't teach these improved technologies to the students who will need to apply them.
I would like to look specifically at education in software development: programming, programmed systems, and the engineering of software. This is not the whole of computer science, but it includes a large share. The typical software curriculum features dinosaur courses, classroom presentations that don't use new technology, naive approaches to software development, innocence of engineering design considerations, a severe shortage of examples relevant to anyone but a systems programmer, and ignorance of the system context of most useful software.
Brought to you by Composable Software Systems Research Group in the School of Computer Science at Carnegie Mellon University.
[Last modified 19-Feb-1999.