Education and History. Early Software Engineering Courses
In the spring of 1968, Douglas T. Ross taught a ‘‘special topics’’ graduate course on the topic of software engineering at the Massachusetts Institute of Technology. Ross claims that it is the first academic course with a title that used the term ‘‘software engineering”, James Tomayko, in his excellent article on the history of software engineering education, agrees that no apparent evidence exists to the contrary. This was several months before the now-famous first Conference on Software Engineering sponsored the North Atlantic Treaty Organization (NATO)!
The idea fostered by that first NATO conference of applying engineering concepts such as design, reliability, performance, and maintenance to software was revolutionary. As early as 1969, the software community began to recognize that the graduates of the fledgling computer science programs in universities were not prepared for industrial software development. In response, the industry started to ask for software engineering education rather than computer science education, including separate degree programs. Sketches of model curricula for software engineering programs also began to appear in the literature.
Early Software Engineering Courses. The most common form of software engineering education, even today, is a one-semester survey course, usually with a toy project built by groups of three students. In the extended decade between the first appearance of these courses and the establishment for the first software engineering degree programs, they became the mechanism for academia to experiment with teaching software engineering concepts.
Throughout the 1970s, industry continued to struggle to build larger and more complex software systems, and educators continued to create and teach the new discipline of computer science. Recognizing the problem of the divergence of these two communities, in 1976 Peter Freeman of the University of California, Irvine, and Anthony I. Wasserman of the University of California, San Francisco, organized the first U.S. workshop on software engineering education.
The 40 participants represented academia, industry, and government, including companies involved in building large software systems. The workshop focused on the kind of work a professional software engineer actually did and on what the academic preparation for such a profession should be. The proceedings of the workshop were published and distributed widely, and it still influences software engineering education today.
ACM Curriculum 68 and 78 Recommendations. ACM Curriculum 68, the first major undergraduate computer science curriculum modeling effort, said little about learning how to develop complex software, except through work opportunities (e.g., through summer employment) or special individual project courses. (The latter became the basis for the ‘‘senior project’’ courses that are commonplace today of the undergraduate level, and the ‘‘software studio’’ courses in some graduate curricula.)
Later, ACM Curriculum 78 listed a course in “software design and development’’; however, it was not required in this undergraduate model. Therefore, although some growth occurred in software engineering undergraduate education, it remained limited to one or two semesters for the next 10 years. Meanwhile, software engineering as a graduate discipline would grow at a faster rate.
First Master's Degree Programs. Of course, one or two courses do not make a full curriculum. So, by the late 1970s, a few schools had started Master’s degree programs in software engineering, primarily because of the pressure from local industry. To date, most graduate software engineering degree programs have used the model of a professional degree such as an MBA. (The degree title ‘‘Master of Software Engineering,’’ or MSE, will be used here, although variations of this name are used.)
A professional master’s degree is a terminal degree, with graduates going into industry rather than academia. In particular, a software engineering master’s degree has been a professional degree where the students in the program are already programmers or software developers in the workplace, with either a bachelor’s degree in another computing discipline, or having completed sufficient undergraduate leveling to do the graduate coursework.
The first three U.S. MSE-type programs were developed at Seattle University, Texas Christian University, and the now-defunct Wang Institute of Graduate Studies in the late 1970s. Texas Christian University, located in Fort Worth, established a graduate degree program in software engineering in 1978 (9). The original curriculum was influenced greatly by the 1976 workshop. Because of external pressure prompted by the absence of an engineering college at the university, the program name was changed in 1980 to Master of Software Design and Development, and Texas Christian later discontinued the program.
In 1977, Seattle University initiated a series of discussions with representatives from local business and industry, during which software engineering emerged as a critical area of need for specialized educational programs. Leading software professionals were invited to assist in the development of an MSE program, which was initiated in 1979.
The Wang Institute of Graduate Studies was founded in 1979 by An Wang, founder and chairman of Wang Laboratories. It offered an MSE degree beginning in 1978. The Institute continued to depend heavily on Wang for financial support, because of the relatively low tuition income from the small student body (typically 20-30 students per year).
Business declines at Wang Laboratories in the early 1980s reduced the ability to continue that support, and the institute closed in the summer of 1987. Its facilities in Tyngsboro, Massachusetts, were donated to Boston University, and its last few students were permitted to complete their degrees at that school. During its existence, the Wang program was considered to be the premier program of its kind.
According to Tomayko (2), by the mid-1980s, these three programs had similar curricula. The core courses at these institutions focused on various stages of the life cycle such as analysis, design, implementation, and testing, whereas each of the programs had a capstone project course lasting one or more semesters. These curricula were to have a large impact not only for future graduate programs, but for undergraduate curricula as well.
Academic Certificate Programs. Many higher education institutions around the world offer graduate-level academic certificates in software engineering. Although such certificate programs are targeted primarily toward those that received their undergraduate degrees in a non computing field, they differ from training programs in that they typically consist of several software engineering courses offered for graduate course credit at that institution.
Typically, such graduate certificate programs typically the completion of a series of semester-long courses, constituting some portion of what might be required for a Bachelor’s degree or Master’s degree program. These academic certificate programs should not be confused with professional certification in software engineering, which will be addressed later in this article.
Development of Undergraduate Degree Programs. Undergraduate degree programs in software engineering have been slow to develop in most countries. One exception is the United Kingdom, where the British Computer Society (BCS) and the Institution of Electrical Engineers (IEE) have worked together to promote software engineering as a discipline. One of the oldest undergraduate software engineering degree programs in the world is at the University of Sheffield, which started in 1988.
Several Australian universities have also created bachelor’s degree programs since the 1990 creation of an undergraduate program at the University of Melbourne.
The first undergraduate software engineering program in the United States started at the Rochester Institute of Technology in the fall of 1996, and now over 30 such programs exist.
Several software engineering undergraduate programs have been implemented in Canada. The program at McMaster University is probably the closest to a traditional engineering program of all those in software engineering, including requirements for courses in materials, thermodynamics, dynamics, and engineering economics, using a model outlined by its chair, David Lorge Parnas.
Date added: 2024-06-15; views: 76;