4
IEEE TRANSACTIONS ON EDUCATION, VOL. E-21, NO. 4, NOVEMBER 1978 Curricula Development in Computer Science and Engineering GERALD L. ENGEL AND OSCAR N. GARCIA, SENIOR MEMBER, IEEE Abstract-This paper reviews some of the most recent efforts in the development of undergraduate curricula in Computer Science and En- gineering. Emphasis is placed on the curricula that have been proposed by the Association for Computing Machinery and the IEEE Computer Society. The relationships between the two sets of recommendations are discussed. INTRODUCTION IN THE FIELD of Computer Science and Engineering, where change is the norm, it has been traditionally difficult to reach a consensus of the academic community as to what represents an orthodox undergraduate curriculum. At the same time, the national dependence, economic and cultural, which has developed around the computer has forced colleges and universities to provide well-trained graduates capable of meeting these challenges, and has required some method by which individual curriculum may be measured and compared. Recently, two professional societies, acting in almost total independence, have presented model curricula whose similar- ities and differences are analyzed in this paper. The Com- puter Society of the Institute of Electrical and Electronics Engineers through its Education Committee has produced a document [ 1 ] which encompasses a central core of subject matter with a number of possible electives in a mix of theory and application called the Computer Science and Engineering (CSE) Curricula. A perspective of the rationale which led to this work may be found in a 25 year survey of CSE prepared by C.V. Ramamoorthy [2]. The CSE Model Curricula ap- peared in print in early 1977. At the same time, the Curriculum Committee on Computer Science (C3 S) of the Association for Computing Machinery, which had prepared the prestigious "Curriculum '68" [4], was modifying and updating these earlier recommendations. The C3 S report appeared as a working paper [3] in mid 1977. It is these two documents that will be the focus of the discussion which follows. An extensive survey of the literature of Computer Science and Engineering Education since the publication of "Cur- riculum '68" appeared in early 1977 [8], and the interested reader is referred to it for further background on the field. Manuscript received September 29, 1977; revised April 19, 1978. G. L. Engel is with the Department of Mathematical and Computing Sciences, Old Dominion University, Norfolk, VA 23508. 0. N. Garcia is with the Directorate for Science Education, National Science Foundation, Washington, DC 20550, on leave from the Univer- sity of South Florida, Tampa, FL 33620. THE IEEE COMPUTER SOCIETY COMPUTER SCIENCE AND ENGINEERING CURRICULA While the more theoretical aspects of computing machinery had been addressed in the 1968 report of C3 S, the industry was requesting that the pragmatic aspects of computer system design be included in the education of the new graduates. The crux of the dilemma was how to incorporate the fundamentals of computer science and at the same time include the wide variety of applied subjects appearing in the computer field in an already crowded curriculum. On the other hand, it was recognized that not all institutions would have the motiva- tion or the resources to implement the wide spectrum of courses possible in the fertile field of computing. The result- ing report, intended to address these needs, was first distrib- uted in February 1977. A preliminary version of the work of the Model Curricula Subcommittee had been published earlier [7], and reviewers comments and evaluations were sought on the soundness of the approaches taken in the outlined course areas. Two aspects of the report should be taken into account for its correct interpretation: 1) The total curriculum as presented probably exceeds the resources or time allocations of most undergraduate programs and as a result needs to be adapted to regional needs, local resources and departmental orientation. 2) A central "core" of subject matter is outlined that is considered the kernel of an undergraduate program in com- puter science and engineering. There is no pretention that the report is either exhaustive, complete, or definitive. It is claimed that it does portray the views of representative segments of the educational commu- nity acting in a committee mode with suitable compromises. The general distribution of recommended course modules is divided into five basic areas. The areas and modules, or courses associated with them are as follows: a) Digital Logic DL- 1 Switching Theory and Digital Logic I DL-2 Switching Theory and Digital Logic II DL-3 Microprocessor Systems DL- 4 Digital Logic Devices DL-5 Digital Design Automation b) Computer Organization and Architecture CO-I Introduction to Computer Organization CO-2 I/O and Memory Systems CO-3 Computer Architecture 0018-9359/78/1 100-0226$00.75 © 1978 IEEE 226

Curricula Development in Computer Science and Engineering

  • Upload
    oscar-n

  • View
    216

  • Download
    4

Embed Size (px)

Citation preview

IEEE TRANSACTIONS ON EDUCATION, VOL. E-21, NO. 4, NOVEMBER 1978

Curricula Development in Computer Science andEngineering

GERALD L. ENGEL AND OSCAR N. GARCIA, SENIOR MEMBER, IEEE

Abstract-This paper reviews some of the most recent efforts in thedevelopment of undergraduate curricula in Computer Science and En-gineering. Emphasis is placed on the curricula that have been proposedby the Association for Computing Machinery and the IEEE ComputerSociety. The relationships between the two sets of recommendationsare discussed.

INTRODUCTIONIN THE FIELD of Computer Science and Engineering,

where change is the norm, it has been traditionally difficultto reach a consensus of the academic community as to whatrepresents an orthodox undergraduate curriculum. At thesame time, the national dependence, economic and cultural,which has developed around the computer has forced collegesand universities to provide well-trained graduates capable ofmeeting these challenges, and has required some method bywhich individual curriculum may be measured and compared.Recently, two professional societies, acting in almost total

independence, have presented model curricula whose similar-ities and differences are analyzed in this paper. The Com-puter Society of the Institute of Electrical and ElectronicsEngineers through its Education Committee has produced adocument [ 1 ] which encompasses a central core of subjectmatter with a number of possible electives in a mix of theoryand application called the Computer Science and Engineering(CSE) Curricula. A perspective of the rationale which led tothis work may be found in a 25 year survey of CSE preparedby C.V. Ramamoorthy [2]. The CSE Model Curricula ap-peared in print in early 1977.At the same time, the Curriculum Committee on Computer

Science (C3 S) of the Association for Computing Machinery,which had prepared the prestigious "Curriculum '68" [4], wasmodifying and updating these earlier recommendations. TheC3 S report appeared as a working paper [3] in mid 1977. Itis these two documents that will be the focus of the discussionwhich follows.An extensive survey of the literature of Computer Science

and Engineering Education since the publication of "Cur-riculum '68" appeared in early 1977 [8], and the interestedreader is referred to it for further background on the field.

Manuscript received September 29, 1977; revised April 19, 1978.G. L. Engel is with the Department of Mathematical and Computing

Sciences, Old Dominion University, Norfolk, VA 23508.0. N. Garcia is with the Directorate for Science Education, National

Science Foundation, Washington, DC 20550, on leave from the Univer-sity of South Florida, Tampa, FL 33620.

THE IEEE COMPUTER SOCIETY COMPUTER SCIENCEAND ENGINEERING CURRICULA

While the more theoretical aspects of computing machineryhad been addressed in the 1968 report of C3 S, the industrywas requesting that the pragmatic aspects of computer systemdesign be included in the education of the new graduates. Thecrux of the dilemma was how to incorporate the fundamentalsof computer science and at the same time include the widevariety of applied subjects appearing in the computer field inan already crowded curriculum. On the other hand, it wasrecognized that not all institutions would have the motiva-tion or the resources to implement the wide spectrum ofcourses possible in the fertile field of computing. The result-ing report, intended to address these needs, was first distrib-uted in February 1977. A preliminary version of the work ofthe Model Curricula Subcommittee had been published earlier[7], and reviewers comments and evaluations were sought onthe soundness of the approaches taken in the outlined courseareas.Two aspects of the report should be taken into account for

its correct interpretation:1) The total curriculum as presented probably exceeds the

resources or time allocations of most undergraduate programsand as a result needs to be adapted to regional needs, localresources and departmental orientation.2) A central "core" of subject matter is outlined that is

considered the kernel of an undergraduate program in com-puter science and engineering.There is no pretention that the report is either exhaustive,

complete, or definitive. It is claimed that it does portray theviews of representative segments of the educational commu-nity acting in a committee mode with suitable compromises.The general distribution of recommended course modules

is divided into five basic areas. The areas and modules, orcourses associated with them are as follows:

a) Digital LogicDL-1 Switching Theory and Digital Logic IDL-2 Switching Theory and Digital Logic IIDL-3 Microprocessor SystemsDL- 4 Digital Logic DevicesDL-5 Digital Design Automation

b) Computer Organization and ArchitectureCO-I Introduction to Computer OrganizationCO-2 I/O and Memory SystemsCO-3 Computer Architecture

0018-9359/78/1 100-0226$00.75 © 1978 IEEE

226

ENGEL AND GARCIA: CURRICULA IN COMPUTER SCIENCE AND ENGINEERING

COMPUTER ORGANIZATIONAND ARCHITECTURE SOFTWARE ENGINEERING THEORY OF COMPUTING

IINTRODUCTORY

INTERMEDIATE

Figure 1. CSE Curricula Flow Diagram

CO-4 MicroprogrammingCO-5 Distributed Processing and Networks

c) Software EngineeringSE-1 Introduction to ComputingSE-2 Data Structures ISE-3 Data Structures II

SE-4 Data Base SystemsSE-5 Programming LanguagesSE-6 Operating Systems and Computer Architecture ISE-7 Operating Systems and Computer Architecture IISE-8 Translators and Translator Writing Systems

d) Theory of ComputingTC-1 Discrete StructuresTC-2 Design and Analysis of AlgorithmsTC-3 Automata and Formal LanguagesTC-4 Theory of Computation

e) LaboratoriesSE-1 Programming LabL-1 Digital LabL-2 Minicomputer LabL-3 Microprocessor LabL-4 Device LabL-5, L-6 Systems Design Lab

The interested reader is referred to the report [11 for catalogdescriptions, detailed outlines and bibliographies for thecourses. Figure 1 indicates the prerequisite structure of theprogram including the positioning of both the courses andlaboratories. Of particular interest is the shaded area of thisfigure which is the core, or that subset of the material con-

sidered essential for any type of undergraduate four year

program. The report contains a full description of exactlywhat is contained in the core and how it may be implemented.The laboratory sequence is of particular importance since

other curriculum reports have not addressed this aspect of theprogram in detail. Most laboratories in present computerscience and engineering programs, whether they are a part ofa given course or a separate course, deal with a specific subsetof hardware or software problems. Therefore, a laboratorysequence should allow a student to become familiar with cur-

rent technology, to apply theory, and to solve problems.Thus, the main objective is to expose the student to methodsapplicable to the "real world," to enhance creativity, and todevelop problem solving skills. In the process the studentneeds to learn a variety of techniques for designing, imple-menting, debugging, and maintaining a project.The approach suggested in the report has a two-dimensional

organization:1) Vertically-the labs are organized in a series of graded

courses in which the student advances gradually from well

defined experiments to more sophisticated projects.2) Horizontally-the labs are used as media to apply hard-

ware and software principles in an integrated form.The value of such experience becomes clear when the stu-

dent realizes that the solution of a hardware design problemrequires considering its software implication and vice versa.

With these principles in mind the laboratory sequence was

developed with built-in prerequisites and corequisites. Thesecourses are shown in figure 2 which emphasizes the sequentialnature of the labs and the interrelationship with the varioushardware and software lecture courses.

DIGITAL LOGIC,

PREREOUISITES- - - - CONCURRENT LABORATORIES

M CORE CURRICULUMADVANCED

I

227

IEEE TRANSACTIONS ON EDUCATION, VOL. E-21, NO. 4, NOVEMBER 1978

Elementary Material

Intermediate Material

J CS 8. 1

Figure 3. ACM Core Curriculum

Figure 2. Laboratory Sequence

The overall objectives of this entire laboratory sequence areas follows:

1) To provide a "hands on" understanding of the operationand behavior of digital components and systems.2) To motivate students to question and verify the applica-

tion of theoretical principles to design.3) To give integrated design experience (where "integrated"

refers to both hardware and software).4) To provide methods for making decisions based on

"sound engineering judgment" when faced with conflictingcriteria.5) To treat documentation, testing and verification.6) To analyze economic constraints of specialized single unit

design versus potential high production, use and maintenance.7) To promote cooperation between hardware and software

oriented faculty members.

THE NEW RECOMMENDATIONS OF C3S

During the same period that the Computer Society was de-veloping recommendations, C3 S was preparing an update andmodification to "Curriculum '68." This appeared as a workingpaper in June 1977 [3]. Though it will not be covered in thispaper, it should be noted that a subcommittee of C3 S pre-pared draft recommendations for a program at the two yearlevel at the same time [5]. These reports were published inthis way, as working papers, to obtain maximum input regard-ing their content prior to publication of the final committeereports which are anticipated in 1978.The C3 S report is divided into the general areas of the core

curriculum, computer science electives, the undergraduateprogram, service course and other considerations which in-clude facilities, staff, and articulation.The core material is considered at both the elementary and

intermediate level. The material at the elementary level is pre-sented as a list of topics in the following areas:

ProgrammingSoftware OrganizationHardware OrganizationData Structures and File Processing

Details of what is included under these general headings, aswell as descriptions of the courses that are mentioned belowmay be found in the report.The idea of specifying the elementary material as a series of

topics was with the anticipation that many implementationsare possible to cover this material. As a guide to implementa-tion, a five course sequence is proposed at the elementarylevel:

CSCSCSCSCS

1 Computer Programming I2 Computer Programming II3 Assembly Language Programming4 Introduction to Computer Organization5 Introduction to File Processing

Three intermediate level courses are then proposed to com-plete the core; that material required to provide a minimumknowledge level for all computer science undergraduateprograms:

CSCSCS

6 Operating Systems and Computer Architecture I7 Data Structures and Algorithm Analysis8 Organization of Programming Languages

The structure of the core material is given in figure 3. It wasrecognized in the process of specifying this core material thatno mathematical background beyond the ability to performsimple algebraic manipulation is specifically required as a pre-requisite to an understanding of the topics. It was noted, how-ever, that some mathematics should be taken by the computerscience major at this level since it develops a capability tohandle certain advanced computer science material, and is, infact, required for certain advanced courses. We will return tomathematics requirements for the major.With the core defined elective material is considered. This

material includes elementary electives which would includethings like special language instruction, and two intermediateelectives:CS 9 Operating Systems and Computer Architecture IICS 10 Computers and Society

At the advanced level nine courses are suggested:

228

ENGEL AND GARCIA: CURRICULA IN COMPUTER SCIENCE AND ENGINEERING

CS 11 Advanced Systems ProgrammingCS 12 Minicomputer LaboratoryCS 13 Data Base Management System DesignCS 14 Analysis of AlgorithmsCS 15 Theory of Programming LanguagesCS 16 Compiler Writing LaboratoryCS 17 Automata, Compatability and Formal LanguagesCS 18 Numerical Mathematics: AnalysisCS 19 Numerical Mathematics: Linear Algebra

Provisions were also made for special topics.Tied into the final prerequisite structure given in figure 4 are

six mathematics courses:

MA 1 Introductory CalculusMA 2 Mathematical Analysis IMA 3 Linear AlgebraMA 4 Discrete StructuresMA 5 Mathematical Analysis IIMA 6 Probability and Statistics

Recommended descriptions and outlines for all but MA 4 arefound in the 1965 CUPM recommendations [6]. MA 4 rep-resents a more advanced course in discrete structures than thatgiven in "Curriculum '68." This course builds on the conceptsdeveloped in the study of calculus and linear algebra and willemphasize applications of discrete structures to computerscience.The major will normally consist of the eight courses of core

material plus four additional courses selected from the rec-ommended computer science intermediate and advanced elec-tives, with no more than two from any one specific subfieldof the discipline. It is further recommended that the studenttake mathematics courses MA 1, MA 2, MA 3 and MA 4, anddepending on computer science electives selected, MA 5 andMA 6 may be required. This gives a minimum requirement forthe major of 48 semester hours which is certainly less than halfthe typical undergraduate program.

CONCLUSIONS, OUTLOOK, PROJECTIONS

The curricula reports referenced in this paper illustrate thegrowth of computer science and engineering education in thepast ten years. It would appear significant that it took tenyears from the publication of the COSINE recommendationsin 1967 to the publication of the Model Curricula of the Com-puter Society. It also took ten years from the publication of"Curriculum '68" to the publication of the final version of thereport updating that document.What is more significant, however, is the convergence that

can be seen occurring between the two groups. Though work-ing in almost total independence of each other, the two com-mittees developed guidelines, remarkably similar in philosophyand content, especially in the core area. As one might expectthere are differences with the recommendations of the Com-puter Society more strongly emphasizing the hardware andengineering areas, and those of C3 S more strongly emphasiz-ing software and theory. But while these differences exist, thesimilarities strongly point to the fact that the discipline ofcomputer science and engineering is almost in a well definedstate. It would appear that future efforts will involve more

Figure 4. ACM Curriculum

cooperation and coordination between the groups to moreclearly define this area of study.

It is fortunate that the two committees produced their re-ports at essentially the same time. This gives the educator theopportunity to study both, and select the best part of each inconstructing the program of a particular institution, for itmust be recognized that these are guidelines only.Course work may be outlined on paper, however, the ques-

tion of feasibility of its implementation is paramount. Con-tinued and patient efforts must be devoted to resolving ques-tions of conflicting timing, irrelevant material, and so on, andto keep up with the rapid changes in the theory and practiceof the field. While it is not anticipated that there will be com-plete agreement on course content and curriculum design byall interested parties, by continued interchange of ideas, atleast a consensus of critical issues to be covered may takeplace.

REFERENCES[1] Education Committee (Model Curriculum Subcommittee) of the

IEEE Computer Society, "A Curriculum in Computer Scienceand Engineering," Committee Report, IEEE PublicationEHO119-8, January, 1977.

[2] C. V. Ramamoorthy, "Computer Science and Engineering Educa-tion," IEEE Transactions on Computers, Vol. C-25, No. 12,December, 1976.

[3] Richard H. Austing, Bruce H. Barnes, Della T. Bonnette, Gerald L.Engel, Gordon Stokes, "Curriculum Recommendations for theUndergraduate Program in Computer Science: A Working Reporton the ACM Committee on Curriculum in Computer Science,"SIGCSE Bulletin 9, 2 (June, 1977), 1-16.

[4] Curriculum Committee on Computer Science (C3 S), "Curriculum'68, Recommendations for Academic Programs in Computer Sci-ence," Communications of the ACM, 11, 3 (March, 1968), 151-197.

[5] Joyce Currie Little, Richard H. Austing, Harice Seeds, JohnManiotes, Gerald L. Engel, "Curriculum Recommendations andGuidelines for the Community and Junior College Careers Pro-gram in Computer Programming: A Working Paper of the Associ-ation for Computing Machinery Committee on Curriculum inComputer Science by the Subcommittee on Community andJunior College Curriculum," SIGCSE Bulletin 7, 2 (June, 1977),17-38.

[6] Committee on the Undergraduate Program in Mathematics(CUPM), A General Curriculum in Mathematics for Colleges,CUPM, Berkeley, California 1965.

[7] M. A. Mulder, "Model Curricula for Four-Year Computer Scienceand Engineering Programs: Bridging the Tar Pit," Computer, 8,12 (December, 1975), 28-33.

[8] Richard H. Austing, Bruce H. Barnes and Gerald L. Engel, "ASurvey of the Literature in Computer Science Education SinceCurriculum '68," Communications of the ACM, 20, 1 (January,1977), 13-21.

229