Evolution of Software Development Education – Part II: Some Early Perspectives

Posted on February 17, 2012


Author:  Sanjay Goel, http://in.linkedin.com/in/sgoel

This is the second article in this 8 part series.   The third part is Evolution of Software Development Education – Part III: Liberal Arts Perspective


Early Curriculum Recommendations by ACM

The Association for Computing Machinery (ACM) unified the pioneering efforts of several universities and stimulated the process through its two independent curriculum committees established in the mid 1960s. The International Federation for Information Processing (IFIP) established a technical committee on education, TC-3, in 1963. Simultaneously, Various other professional agencies like the Computer society of the Institute of Electrical and Electronics Engineers (IEEE), and Data Processing Management Association (DPMA) made significant contributions in these efforts.

The first ACM Curriculum Committee on Computer Science (C3S) was formed in 1964. In its preliminary recommendations [2], the committee posited that computer science is concerned with information in much the same way as physics is concerned with energy. It mainly identified careers in systems programming and application programming for computer science students. It distinguished computer science from mathematics by highlighting that while mathematician is interested in discovering the syntactic relation between elements based on a set of axioms which may have no physical reality, the computer scientist is interested in discovering the pragmatic means by which information can be transformed to model and analyze the information transformation in the real world.  The final report, Curriculum’68, considered development of programming skills as an important by-product rather than the main purpose of the computer science programs. It emphasized that computer science programs must provide the student with the intellectual maturity to stay abreast of their discipline, and also interact with other disciplines through liberal education. The curriculum recommendation [3] identified three major categories of computer sciences subject areas. These were information structures and processes, information processing systems, and methodologies. The first category of information structures and processes concerned with representations and transformations of information structures, and theoretical models for such representations and transformations. It included data structures, programming languages, and models of computation.  The second category of information processing systems included computer organization, translators and interpreters, computer and operating systems, and special purpose systems. The last division of methodologies focused on broad areas of applications of computing which have common structures, processes, and techniques. It incorporated numerical mathematics, data processing, symbol manipulation, text processing, computer graphics, simulation, information retrieval, artificial intelligence, process control, and instructional systems. The committee recommended the inclusion of at least two courses from each of three categories for a masters program in computer science. For the undergraduate program, the   essential computer science courses included introduction to computing, computers and programming, introduction to discrete structures, numerical calculus, data structures,   programming languages, computer organization, and systems programming. The committee recommended the inclusion of at least two of the following computer science courses for indicated specialization: (i)  compiler construction for applied systems programming and data processing application programming, (ii) switching theory for all other than scientific application programming, (iii) sequential machines for computer organization and design, (iv) numerical analysis-I  for scientific application programming, and (v) numerical analysis-II for scientific application programming.

Early Engineering Perspectives

Electrical engineering departments identified computers as one of their main components. The Committee on Computer Science in Electrical Engineering (COSINE Committee), National Academy of Engineers (NAE), USA published recommendations for infusing computer science in electrical engineering curriculum.  This led to the formation of computer engineering programs in electrical engineering departments. Developments in computers started to help in developing new methods of solving engineering problems. The COSINE committee strongly recommended [4] a total reorientation of electrical engineering curricula from analog and continuous to digital and discrete. In 1968, the computer science study group of NATO science committee coined the word software engineering to imply the need to transform software design and development into an engineering type discipline.  This, however, was given legitimate attention as an academic discipline in the late 1970s.

In 1971, the COSINE committee recommended the start of a new undergraduate program called computer engineering within electrical engineering departments.  This program was conceived as an engineering program with emphasis on the concepts of design of software, hardware, and systems. It proposed three specialization options under this program: (1) digital systems engineering, (2) software systems engineering, and (3) theoretical computer science and engineering.   A juxtaposition of the COSINE subject list with the list suggested in C3S’ Curriculum’68 for computer science shows that, while on one hand, C3S recommendations had ignored the hardware and design aspects, the COSINE recommendations ignored discrete structures and data structures. In 1975, IEEE computer society education committee identified and addressed this dichotomy in their recommendations, and proposed a new undergraduate program on computer science and engineering integrating courses in hardware systems, software systems, and theory of computing [5]. These courses were expected to constitute approximately 50% course requirement. The remaining 50% courses were to be in the areas of humanities and social sciences, physics, chemistry, communication, mathematics, economics, electronics, and engineering sciences as per Engineers Council for Professional Development (ECPD) guidelines.  Sloan [6] and Engel [7] compared the new evolving recommendations of C3S and model curriculum of the IEEE Computer society and concluded that the two were virtually same with respect to their recommendations in the area of software engineering and program design. Their emphasis differed with respect to hardware and logic design on one hand and theory on another.

Early Information Systems Perspective

The Curriculum Committee on Computer Education in Management (C3EM) of ACM published a position paper in 1971 [8]. Education for improving organizational productivity through information technology was the main motivation for this and subsequent committees in this area.  This committee felt concerned about the unfavorable attitude of computer science departments towards applied problems. A few years later, this committee evolved into the ACM Curriculum Committee in Information Systems (C2IS). In its recommendation report submitted in 1972 and 1973 [9-10], it identified requisite knowledge and abilities of information system graduates and grouped these into six categories of people, models, systems, computers, organization, and society.  The ACM curriculum committee of computer science did not pay specific attention to this aspect until 1980s, and depended on general liberal education to provide the necessary breadth without specifying their specific recommendations.

These two C3EM reports explicitly recognized two categories of information system programs at masters as well as undergraduate level: (1) technically trained systems designers, and (2) managerially oriented information analysts. The committee recommended the inclusion of five major topic areas of computer science, information systems, management, operations research, and systems design techniques. In 1973, this committee published its recommendations for undergraduate programs, and strongly argued for starting undergraduate programs in information systems in the light of very high manpower requirement at programmer and systems analyst level. It encouraged the computing centers as well as departments of computer science, business, electrical engineering, and industrial engineering to start undergraduate programs with their chosen concentration options on technology or organization. The committee also recommended one-year masters program in information systems for these students.

A few years later, this committee evolved into the ACM curriculum committee in information systems (C2IS). It is not clear why the committee chose not to explicitly include computer programming as a compulsory course in the technology concentration. This anomaly was corrected in the 1982 recommendations of C2IS.

In later decades, a new trend of domain specific computing programs emerged. This trend resulted in establishment of many programs like medical or health informatics, geo-informatics, bio-informatics, chem-informatics, social informatics, and so on. In 1978, the ACM curriculum committee on health computing published its recommendations [11]. In many of these domain specific programs, up to 50% of the course content was related to domain specific foundations and domain specific aspects of informatics. The remaining courses focused on generic mathematics, statistics, information systems, computer science, and general education. ACM curriculum committee cautioned against somewhat frivolous proliferation of specialized programs [12]. However, in current era, specialized programs addressing the needs of specific domains are becoming important.

The 1981 report of C2IS [13] emphasized that the demand of personnel with technical and organizational skills is relatively much greater than the demand for solely technical skills or organizational skills. It expressed its general concern over the ad-hoc basis of instruction of systems analysis and design.  In its 1982 report [14], this committee proposed separate MS and MBA programs for the two streams of information systems.

As per the 1982 recommendations of C2IS, considering the nature of the professional work of information system specialists, a strong emphasis (more than 20%) was placed on social sciences and humanities including economics, psychology, and English.  It was argued that such a background helps in development of many essential attributes of requirement and systems analysts. The hiring of computing professionals in India has always been highest for information systems and software engineering related work. However, it is surprising that such undergraduate engineering programs have not been developed inIndia. The three year Master of Computer Application (MCA) programs also have a relatively heavier dominance of computer science and management related courses, and pay only little attention to these aspects related to the computing profession. The lack of strong industrial participation in curriculum design, professional inclinations of curriculum designers, and educational politics in India may have contributed to this phenomenon.


[1]  .

[2] ACM Curriculum Committee on Computer Science, An Undergraduate Program in Computer Science – Preliminary Recommendations, Communications of the ACM,  pp 543-552, September 1965.

[3] ACM Curriculum Committee on Computer Science, Curriculum 68, Communications of the ACM, pp 151-197, March 1968.

[4] COSINE Committee of the Commission on Engineering Education, Computer science in electrical engineering, IEEE Spectrum,  pp 96-103, March 1968.

[5] Michael C.Mulder Model Curricula for Four-Year Computer Science and Engineering Programs: Bridging the Tar Pit, Computer, IEEE Computer Society, pp 28-33, December 1975.

[6] M.E. Sloan, Evaluation of the Model Curriculum in Computer Science and Engineering, ComputerIEEE Computer society, pp 114-120, December 1977,.

[7] Engel, Gerald L, A Comparison of the ACM-C3S and the IEEE/CSE Model Curriculum Subcommittee Recommendations, Computer, IEEE Computer society, pp 121-123, December 1977.

[8] Daniel Teichroew, Education related to the use of computers in organizations, Communications of the ACM,  pp 573-588, September 1971.

[9] R.L. Ashenhurst, A Report of the ACM Curriculum Committee on Computer Education for Management, Communications of the ACM, pp 363-398, May 1972.

[10]  F.W. McFarlan and R.L. Nolan, M. Shaw (Ed), Curriculum Recommendations for Graduate Professional Programs in Information Systems: Recommended Addendum on Information Systems Administration, Communications of the ACM, pp 439-441, July 1973.

[11]  K.A.Duncan, R.H. Austing, S. Katz, R.E. Pengov, R.E. Pogue, and A.I. Wasserman, Health Computing: Curriculum for an emerging profession, Proceedings of the 1978 annual conference, pp 277-288, December 1978.

[12]  Kenneth I. Magel, Richard H. Austing, Alfs Berztiss, Gerald L. Engel, John W. Hamblen, A. A.J. Hoffmann, Robert Mathis,  Recommendations for master’s level programs in computer science: A Report of the ACM Curriculum Committee on Computer Science, Communications of the ACM, pp 115-123, March 1981.

[13] Jay F. Nunamaker, Educational Programs in Information Systems: a report of the ACM Curriculum Committee on Information Systms, Communications of the ACM,  pp 124-133 March 1981.

[14] Jay F. Nunamaker, J. Daniel Couger, and Gordon B. Davis, Information systems Curriculum Recommendations for the 80s: Undergraduate and Graduate Programs: a report of the ACM Curriculum Committee on Information Systms, Communications of the ACM, pp 781-805. , November 1982

Posted in: Uncategorized