Core Software Engineering Subjects: A Case Study ('86 - '94) Richard Thomas, George Semeczko, Hasmukh Morarji, George Mohay School of Computing Science Queensland University of Technology Abstract The “software crisis” was first acknowledged in the mid 1960s. Some would claim that the software crisis is still with us. A recent issue of Scientific American ran a story on the currently infamous software disaster at the new Denver international airport [1]. Software engineer- ing has been heralded as the needed discipline that can improve software development to meet the needs of modern software requirements. This paper will look at the key subject at the Queensland University of Technol- ogy (QUT) that introduces students to software engineer- ing. This subject will be compared to current model curricula. The success of this subject will be evaluated and a corollary drawn to the usefulness of the model cur- ricula. Then this paper will look at software engineering project work at QUT and consider what are appropriate compromises to make to run a successful group project in a single semester. 1: Introduction Most undergraduate information technology degrees have a subject devoted to introducing software engineer- ing. At QUT we have run such a subject, Software Engi- neering Principles, for the past nine years. This subject is core to both the Computing Science and Software Engi- neering majors of the Bachelor of Information Technol- ogy degree. The Bachelor of Information Technology degree at QUT is a three year degree, where all students undertaking the degree take a common foundation first year introducing them to the breadth of information technology. In their second year students choose a primary major out of: Computing Science, Software Engi- neering, Data Communications, Information Systems, or Information Management. In this paper we will discuss the nature of and rationale for the two key subjects (Software Engineering Principles and Software Development) of the Software Engineering major and will describe our experiences with them since they were first introduced at QUT. This paper will also consider project work and its relation to teaching software engineering. Both Software Engineering Principles and Software Development have significant project compo- nents in their structure, and both projects in these two subjects will be discussed. The overall structure and rationale for the Software Engineering major is described in a separate paper in these proceedings [2]. 2: Software Engineering Principles subject 2.1: Description of subject Software Engineering Principles (SEP) is the corner- stone of the Software Engineering major. SEP provides a cohesive introduction to the methodologies, techniques and tools that constitute software engineering. The sub- ject is taken by all students in Computing Science and Software Engineering majors in the fourth (full-time equivalent) semester of their degree. The subject is a pre- requisite for all advanced software engineering subjects, including: Software Quality Assurance, Intelligent Graphic User Interfaces, Integrated Software Engineering Environments, and Object Technology. SEP is a fourteen week subject that has two hours of lectures and a twenty minute project team meeting with a tutor each week. The broad topics covered in SEP are: Software Engineering Principles introduces the need for a disciplined approach to software development. This topic looks at the different models depicting the process of software development. This topic also considers how people think and work in groups. Software Specification focuses on the task of specify- ing exactly what a software system will do. It also looks at the different ways of specifying a system and the different documents produced in specifying a system. Both formal and informal approaches to system specifi- cation are considered. This topic also shows how the analysis stage of software development relates to the task of specifying a software system.