a A /VHdnfiions
This report is the product of compromise. More than 200 Computer Science educators were consulted in its preparation. The Committee started out to produce a model curriculum for Computer Science master's degree programs similar to the model curriculum for bachelor's degree programs described in [2]. We quickly determined that even a small group of computer scientists could not agree on a model curriculum. We tried to develop sepa- rate model curricula for academic,, professional, and specialization programs, but could not reach a consensus on any of those. Next we tried to develop a list of core concepts which every master's graduate should know.
Lists of anywhere from five to thirty concepts were generated and rejected. What one person felt should be in the core another felt was relatively unimportant.
Computer Science is a volatile field. The Committee
tried to determine in which directions the field was moving. W e wanted to produce a f o r ^ w i ^sK&vfcfj,
Again, we could not reach a consensus. Each expert disagreed with the others.
This report makes some recommendations for what a master's degree in Computer Science should be and what it should not be. T h e report does not provide a blueprint for a master's program because the Committee believes the field is too new to have just one or even a small number of blueprints. The Computer Science fac- ulty at an institution must be the ultimate determiners of what should and what should not be in the program.
This report provides some recommendations for mini- m u m s which should be in every program. Beyond that we must defer to the mature, reasoned judgments of the local faculty.
Appendix A
The three numbers in parentheses following the course names below are: classroom hours per week, laboratory hours, and total course credit.
CS 19 Compiler Construction (3-0-3) Prerequisite: CS 8
ATI introduction to the major methods used in compiler implementa- tion. The parsing methods of LL(k) and LR(k) are covered as well as finite state methods for lexical analysis, symbol table construction, internal forms for a program, run time storage management for block structured languages, and an introduction to code optimization.
CS 20 Formal Methods in Programming Languages (3-0-3) Prerequisite: CS 8
Data and control abstractions are considered. Advanced control con- structs including backtracking and nondeterminism are covered. The effects of formal methods for program description are explained. The major methods for proving programs correct are described.
CS 21 Architecture of Assemblers (3-0-3) Prerequisite: CS 6
Anatomy of an assembler: source program analysis, relocatable code generation, and related topics. Organization and machine language of two or three architecturally different machines; survey and comparison of these machines in various programming environments.
CS 22 Performance Evaluation (3-0-3) Prerequisite: CS 6
A survey of techniques of modeling concurrent processes and the resources they share. Includes levels and types of system simulation, performance prediction, benchmarking and synthetic loading, hard- ware and software monitors.
CS 23 Analytical Models for Operating Systems (3-0-3) Prerequisite: CS 6
An examination of the major models that have been used to study operating sysems and the computer systems which they manage. Petri nets, dataflow diagrams, and other models of parallel behavior will be studied. An introduction to the fundamentals of queueing theory is included.
CS 24 Computer Communication Networks and Distributed Processing (3-0-3)
Prerequiste: CS 6
A study of networks of interacting computers. The problems, rationales, and possible solutions for both distributed processing and distributed databases will be examined. Major national and international protocols including SNA, X.21, and X.25 will be presented.
CS 25 High Level Language Computer Architecture (3-0-3) Prerequiste: CS 6
An introduction of architectures of computer systems which have been developed to make processing of programs in high level languages easier. Example systems will include SYMBOL and the Burroughs B1700.
CS 26 Large Computer Architecture (3-0-3) Prerequisite: CS 6
A study of large computer systems which have been developed to make special types of processing more efficient or reliable. Examples include pipelined machines and array processing. Tightly coupled multipro- cessors will be covered.
CS 27 Real-Time Systems (3-0-3) Prerequisite: CS 6
An introduction to the problems, C O M , i U • computer systems which must interface with 6 J n S ? m V O l V 6 d
include process contrrA <., , V M U U i l <lfcvn<»*. t v . — aircraft or a u t l S Z ^ S ^ l V m j m A ^ , ^ on operating system software for these systems.
CS 28 Microcomputer Systems and Local Networks (2-2-3) Prerequisite: CS 6
A consideration of the uses and organization of microcomputers.
Typical eight or sixteen bit microprocessors will be described. Micro- computer software will be discussed and contrasted with that available for larger computers. Each student will gain hands-on experience with a microcomputer.
CS 29 Applied Combinatorics and Graph Theory (3-0-3) Prerequisites: CS 7, 13
A study of combinatorial and graphical techniques for complexity analysis including generating functions, recurrence relations, Polya's theory of» counting, planar directed and undirected graphs, and NP complete problems. Applications of the techniques to analysis of algorithms in graph theory and sorting and searching.
CS 30 Theory of Computation (3-0-3) Prerequisites: CS 7, 16
A survey of formal models for computation. Includes Turing Machines, partial recursive functions, recursive and recursively enumerable sets, the recursive theorem, abstract complexity theory, program schemes, and concrete complexity.
CS 31 Information Systjem Design (3-0-3) Prerequisites: CS 6, 11
A practical guide to Information System Programming and Design.
Theories relating to module design, module coupling, and module strength are discussed. Techniques for reducing a system's complexity are emphasized. The topics are oriented toward the experienced pro- grammer or systems analyst.
CS 32 Information Storage and Access (3-0-3) Prerequisites: CS 6, 11
Advanced data structures, file structures, databases, and processing systems for access and maintenance. For explicitly structured data, interactions among these structures, accessing patterns, and design of processing/access systems. Data administration, processing system life cycle, system security.
CS 33 Distributed Database Systems (3-0-3) Prerequisites: CS 11, 24
A consideration of the problems and opportunities inherent in distrib- uted databases on a network computer system. Includes file allocation, directory systems, deadlock detection and prevention, synchronization, query optimization, and fault tolerance.
CS 34 Pattern Recognition (3-0-3) Prerequisites: CS 6, 7
An introduction to the problems, potential, and methods of pattern recognition through a comparative presentation of different methodol- ogies and practical examples. Covers feature extraction methods, sim- ilarity measures, statistical classification, minimax procedures, maxi- mum likelihood decisions, and the structure of data to ease recognition.
Applications are presented in image and character recognition, chem- ical analysis, speech recognition, and automated medical diagnosis.
146
CS 35 Computer Graphics (3-0-3) Prerequisites: CS 6, 7
An overview of the hardware, software, and techniques used in com- puter graphics. The three types of graphics hardware: refresh, storage, and raster scan are covered as well as two-dimensional transformations, clipping, windowing, display files, and input devices. If a raster scan device is available, solid area display, painting and shading are also covered. If time allows, three-dimensional graphics can be included.
CS 36 Modeling and Simulation (3-0-3) Prerequisites: CS 6, 7
A study of the construction of models which simulate real systems. The methodology of solution should include probability and distribution theory, statistical estimation and inference, the use of random variates, and validation procedures. A simulation language should be used for the solution of typical problems.
,CS 37 Legal and Economic Issues in Computing (3-0-3) Prerequisites: CS 9, 12
A presentation of the interactions between users of computers and the law and a consideration of the economic impacts of computers.
Includes discussion of whether or not software is patentable, as well as discussion of computer crime, privacy, electronic fund transfer, and automation.
CS 38 Introduction to Symbolic and Algebraic Manipulation (3-0-3) Prerequisite: CS 7
A survey of techniques for using the computer to do algebraic manip- ulation. Includes techniques for symbolic differentiation and integra- tion, extended precision arithmetic, polynomial manipulation, and an introduction to one or more symbolic manipulation systems. Automatic theorem provers are considered.
References
1. Ashenhurst, R. L. (Ed.) Curriculum recommendations for graduate professional programs in information systems, a report of the ACM Curriculum Committee on Computer Education for Management. Comm. ACM 15, 5 (May 1972), 363-398.
2. Austing, R.H., Barnes, B.H., Bonnette, D.T., Engel, L., and Stokes, G. (Eds.) Curriculum '78: Recommendations for the undergraduate program in computer science, a report of the ACM Curriculum Committee on Computer Science. Comm. ACM 22, 3 (March, 1979), 147-166.
3. Austing, R.H., Barnes, B.H., and Engel, G.L. A survey of the literature in computer science education since curriculum '68. Comm.
ACM 20, 1 (Jan. 1977), 13-21.
4. Berztiss, A.T. The M.S. program in computer science. SIGCSE Bulletin (ACM) 11, 1 (Feb. 1979), 61-69.
5. Curriculum Committee on Computer Science (C'S). Curriculum '68: Recommendations for academic programs in computer science, a report of the ACM Curriculum Committee on Computer Science.
Comm. ACM 11, 3 (March 1968), 151-197.
6. Hamblen, J.W. Computer Manpower—Supply and Demand—by
States. Information Systems Consultants, R.R. 1, Box 256A, St.
James, Mo., 1973, 1975, and 1979.
7. Hamblen, J.W., and Baird, T.B. Fourth Inventory of Computers in U.S. Higher Education, 1976-77. EDUCOM, Princeton, N.J., 1979.
8. Melkanoff, M.A. An M.S. program in computer science. SIGCSE Bulletin (ACM) 5, 1 (Feb. 1973), 77-82.
9. Teichroew, D. (Ed). Education related to the use of computers in organizations, position paper by the ACM Curriculum Committee on Computer Education for Management. Comm. ACM 14, 9 (Sept.
1971), 575-588.
10. Joint Committee of ACM and IEEE-CS. A Library List on Undergraduate Computer Science, Computer Engineering, and Information Systems. ACM, New York, 1978.
11. IEEE Computer Society. A curriculum in computer science and engineering. EH 0119-8, Los Alamitos, Calif., Nov. 1976.
12. Association for Computing Machinery. Professional Code of Ethics. ACM, New York.
13. Association for Computing Machinery. Administrative Directory.
ACM, New York, 1980.