Evolution of Software Development Education – Part VI: Consolidation phase of 80’s and 90’s

Posted on February 24, 2012


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

This is the sixth article in this 8 part series. The seventh part is Evolution of Software Development Education – Part VII: Genesis of SWEBoK


The 1980s was the period of maturation and organized growth of computer science programs in many countries, including India. United Nations Educational, Scientific and Cultural Organization (UNESCO) commission IFIP to propose a modular curriculum especially for developing countries. IFIP submitted its first recommendations in 1984, and revised recommendations in 1994. The IEEE Computer society and ACM jointly specified criteria for the computer science curriculum [2-3]. It mandated a broad based computer science core giving even emphasis on computer theory, algorithms, data structures, programming concepts and languages, and computer elements and architecture. It insisted on inclusion of social implications of computing within the core computer science segment of the program.  Mathematics and science were recognized as supporting disciplines, and the criteria sought to provide breadth through humanities, social sciences, and other disciplines. Advanced computer science topics were recommended to be addressed through electives.

The ACM task force in cooperation with Computer society of IEEE [4] started to define the computing discipline and observed that the three paradigms of theory, abstraction, and design are equally important and fundamental to computing. Computer science mainly deals with theory and abstraction, whereas computer engineering deals with abstraction and design. The task force identified two broad area of competency development: (1) discipline oriented thinking, and (2) tool usage, with the first being the primary goal of curriculum. It felt concerned about the neglect of laboratory exercises, team projects, and inter-disciplinary studies.  The task force identified three purposes of laboratories in computing courses: (1) demonstrate how principles covered in lectures apply to design, implementation, and testing of software and hardware, (2) emphasize the use of tools and processes, and (3) introduce experimental methods.   Further, the task force provided a novel curriculum design framework by dividing each of these sub-areas into three parts of theory, abstraction, and design. The task force identified nine sub-areas of computing.  It observed the need of diversity and well-intentioned experimentation in computing curricula.

The joint ACM/IEEE-CS curriculum task force published its report in 1991. The report [5]   represented a unified set of recommendations from two major societies in a variety of academic contexts, including liberal arts, sciences, and engineering. This task force chose to exclude information systems from its agenda, and included all other variants like computer science, computer engineering, computer science and engineering, informatics and other similar program under the single title of computing.  It emphasized the importance of breadth, laboratories, social, ethical, and professional issues, theoretical foundations, communications skills, design experience, and teamwork. It strongly advocated the integration of  social and professional context of computing along with theory, abstraction, and design into the curriculum. The task force also identified twelve unifying and recurring concepts that are pervasive throughout the discipline.

In 1990s that accreditation agencies of engineering programs in some countries, mainly USA, UK, Australia, Canada, Singapore, and Japan, became explicitly concerned about desired educational outcome.USA’s Accreditation Board for Engineering and Technology (ABET) played a stimulating role in this movement.

Goldweber et al [6] reviewed the previous curriculum related literature incorporating some educational literature. They classified the various pedagogical approaches into six different categories of viewing computing as (i)  mathematics, (ii) engineering and design, (iii) art, (iv) science, (v) social science, and (vi) inter-disciplinary. They identified anthropology, applied psychology, computer science, cultural studies, economics, ergonomics, ethics, history, linguistics, management, mathematics, philology, philosophy, semiology, sociology, and politics as relevant disciplines. It criticized the Curriculum’91 for its coverage of social and professional context as an afterthought. This group considered the development of truly inter-disciplinary computing curriculum as the next challenge.



[2] Michael C. Mulder and John Dalphin, Computer Science Program Requirements and Accreditation, Communications of the ACM, pp 330-335, April 1984.

[3]  J.T. Cain, Professional Accreditation for the Computing Sciences, Computer, IEEE, pp 91-96, Januray 1986.

[4] Peter J. Denning, Douglas E. Comer, David Gries, Michael C. Mulder, Allen Tucker, A. Joe Turner, and Paul R. Young, Computing as a discipline, Communications of the ACM, pp 9-23, January 1989.

[5] A. Joe Turner, A Summary of the ACM/IEEE-CS Joint Curriculum task Force Report: Computing Curricula 1991, Communication of the ACM, pp 69-84, July  1991.

[6]  Michael Goldweber, John Impagliazzo, Iouri A. Bogoiavlenski, A. G. Clear, Gordon Davies, Hans Flack, J. Paul Myers,  Richard Rasala, Historical perspectives on the computing curriculum (report of the ITiCSE ’97 working group on historical perspectives in computing education, Annual Joint Conference Integrating Technology into Computer Science Education, The supplemental proceedings of the conference on Integrating technology into computer science education: working group reports and supplemental proceedings, Uppsala, Sweden, ACM, pp 94-111, 1997.

Posted in: Uncategorized