Software engineering is a very broad field. It encompasses virtual everything a person might want to know in order to develop software -- software that is correct, on time, and on budget. Most other computer science courses emphasize the technical foundations of software development, such as programming, algorithms, data structures, languages, etc. This course focuses on the pragmatic aspects, such as requirements analysis, cost estimation, design, team organization, quality control, configuration management, verification, and testing.


This course focuses on the lifecycle of information systems and the how that relates to corporate strategic planning and information usage. Various development models will be studied which students will explore in the context of a semester project.