This software engineering course is concerned with the processes, methods and tools for the design and development of high quality, reliable software systems. This involves the study and application of software specification, design, implementation, testing and documentation of software. Target systems may range from simple software applications to mission-critical real-time systems. Students will develop strong skills in design techniques and experience in software design and development. The program provides a thorough grounding in fundamental computer science areas and substantial exposure to applications, giving students a broad spectrum of experience in aspects of software systems from the machine level to applications in business and industry. A feature of the program is a software engineering workshop sequence that spans the first three years, in which students work in teams on realistic projects and gain hands-on experience of most aspects of software development.