Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
A mathematically focused curriculum for computer science
Berztiss A. Communications of the ACM30 (5):356-365,1987.Type:Article
Date Reviewed: Nov 1 1987

With Curriculum ’68 [1] ACM made the most important contribution to computer science education that has been made by any professional society. Many, probably most, of the early undergraduate programs in computer science were heavily influenced by Curriculum ’68; few colleges and universities could achieve its goals but all could try to attain them. Ten years later (and almost ten years ago) an attempt was made to update Curriculum ’68, but Curriculum ’78 [2] had none of the intellectual force of its predecessor and other failings besides. It has had little influence, although, to be fair, its attempt to define an initial year of computer science through two courses, CS1 and CS2, has spurred others [3,4] to propose better models for these courses.

Berztiss was an early and has been a frequent critic of Curriculum ’78. Moreover, he has been a consistent and articulate proponent of undergraduate computer science programs in the spirit of other programs in the hard sciences, namely, programs that make significant intellectual demands on students and that require the use of mathematics early and often. In this paper he discusses his current views on the undergraduate curriculum for both BA and BS programs. The four most important sections of the paper discuss the following topics:

  • Design principles for a core computer science curriculum; these are based, essentially, on dividing the subject matter of computer science into an abstract component, called Algorithms and Data Structures, and a concrete component, called The Computing Environment.

  • A core curriculum of 30 credits divided among eight courses: two that are introductory, three that focus on the abstract levels, and three that focus on the concrete levels; suitable texts for all of these courses are suggested; this core contains substantially more on the abstract level than the core of Curriculum ’78.

  • Computer science electives beyond the core curriculum.

  • Mathematics for computer science.

This paper deserves to be read by anyone truly interested in the issues of undergraduate education in computer science. It would be particularly valuable at institutions where courses and even whole programs serve to confirm the common misapprehension of students that computer science equals programming.

While I am sympathetic to the overall goals espoused in this paper, I do part company with the author on some matters:

  • The author proposes a 45-credit (in computer science) BS program for students headed toward research and development and a 30-credit BA program for those headed for the “implementation” of computer systems. It is, I believe, unfortunate to view the BA, a degree that traditionally emphasizes breadth, as essentially an inferior degree. Furthermore, even when the mathematics requirements are added, the total required credits in the BS program make up only half of a student’s total undergraduate program. This leaves plenty of room in the BS program for breadth; therefore, the BA program as described in this paper should be scrapped.

  • Syllabuses for three semesters of discrete mathematics (only two of which would be required) are presented. To my taste these significantly overemphasize abstract algebra and severely underemphasize graph theory, combinatorics, and difference equations. It is also noteworthy that there is a requirement for two semesters of calculus. I favor this, but I wonder about the author’s claim of the need for calculus as a prerequisite for undergraduate courses in Data Structures and Algorithms, and Computer Systems. I suspect few, if any, such courses in undergraduate computer science programs make more than trivial use of calculus; nor should they.

One further noteworthy aspect of the proposed curriculum is the minor role assigned to artificial intelligence. It does not appear in the core curriculum at all and is only one of seven elective areas. This is certainly contrary to present trends, but that does not mean it is wrong.

Reviewer:  A. Ralston Review #: CR111810
1) ACM Curriculum Committee on Computer ScienceCurriculum ’68: recommendations for academic programs in computer science--a report of the ACM Curriculum Committee on Computer Science, Commun. ACM 11, 3 (March 1968), 151–197.
2) ACM Curriculum Committee on Computer ScienceCurriculum ’78: recommendations for the undergraduate program in computer science--a report of the ACM Curriculum Committee on Computer Science, Commun. ACM 22, 3 (March 1979), 147–166.
3) Koffman, E. B.; Miller, P. L.; and Wardle, C. E.Recommended curriculum for CS1, Commun. ACM 27, 10 (Oct. 1984), 998–1001.
4) Koffman, E. B.; Stemple, D.; and Wardle, C. E.Recommended curriculum for CS2, Commun. ACM 28, 8 (Aug. 1985), 815–818.
Bookmark and Share
 
Curriculum (K.3.2 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Curriculum": Date
Teaching calculation and discrimination
Gries D. Communications of the ACM 34(3): 44-55, 1991. Type: Article
Dec 1 1991
Computer science in secondary schools: curriculum and teacher certification
Turner A. Communications of the ACM 28(3): 269-279, 1985. Type: Article
Jun 1 1986
Computer: a challenge for business administration
Scheer A., Springer-Verlag New York, Inc., New York, NY, 1985. Type: Book (9789780387155142)
Jan 1 1986
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy