I was recently reading some papers regarding bridging the gap between academia and industry, specifically in undergraduate computer science and software engineering programs. The papers I read were published between the late 1970s and the mid 2010s. I noticed a stark contrast in papers published in the 1990s as compared to the 1970s with regards to education, often in reference to mathematics and science.
A small passage from Essential Elements of Software Engineering Education, published in 1976:
It is clear from the above discussion that the education of a software engineer will involve the study of a variety of subjects combined with a considerable amount of practical experience which must be accumulated over a number of years. From a university standpoint, the subject matter not only cuts across a number of traditional disciplines and boundaries, but also covers topics that historically have not been part of academic curricula.
This passage follows a discussion of problems that arise from teaching software engineering, specifically the difficulties in mapping certain aspects of industry into the classroom. This discussion is a significant portion of the paper, and similar discussions are prevalent in other papers written around the same period of time. Generally, there's an understanding that a wide knowledge base is needed in the fields of computer science and software engineering, but the trend is to focus on maximizing the skills and knowledge needed in industry.
Throughout everything published in the mid-to-late 1970s, I get the idea that the people designing the computer science and software engineering curricula understand the industry. This includes technical and non-technical topics, but always serving the needs of the profession. It's well summarized in this statement, also from Essential Elements of Software Engineering Education:
A curriculum in software engineering must be multi-form and in fact be a collection of curricula to meet the diverse needs of existing professional groups.
Fast-forward to the 1990s. A passage from the The SEI undergraduate curriculum in software engineering reads:
The mathematics and science content of the curriculum should help achieve two fundamental objectives. First, it should prepare students to participate competently in an increasingly technological society. This includes the ability to understand science and technology issues well enough to make informed political decisions. Second, the science and mathematics content should provide the students with an appropriate foundation for subsequent software engineering courses.
...
While the physical and life sciences are fundamental to traditional engineering disciplines, they provide virtually no basis for software engineering. The only significant exception is that electricity and magnetism, common topics in introductory physics courses, support the study of the computer itself, and software engineers need a basic understanding of the machine for which they are developing software. To achieve the first objective stated above, however, it is probably the case that basic knowledge of physics, chemistry, and biology are essential in almost any undergraduate curriculum. Chemistry and biology, in particular, are likely to be increasingly important in understanding society’s health care, environmental, and genetic engineering issues in the next century.
This is really the first time that I saw society come up in a discussion about the content of a curriculum. There were mentions of law and legal topics being relevant for software engineers and computer scientists in previous papers, but always from a professional standpoint. In the above quoted passage, the first objective (and I'm assuming the most important in the eyes of the author) of mathematics and science education is not to prepare the students for future course work or their first job in industry or for future research, but for functioning fully in modern society.
Beyond that, the authors even identify that these topics have limited utility in many industrial settings for software engineers. However, they continue to encourage that basic knowledge should be part of the curriculum for society's benefit.
My questions:
- What happened in the late 1970s into the 1990s that caused a shift from focusing on the profession and entering the workforce (both industrial and academia/research) to the general needs of the society in computer science and software engineering education?
- Was this phenomenon localized to computer science and software engineering education or was it a widespread event?
- What were the triggering events?