Formalizes the software engineering topics covered in previous courses, in the context of what would be required in a real-world corporate environment. Typical software development methodologies are discussed (e.g. waterfall, agile, test-driven design, etc.). UML Diagramming are covered. Students work in teams, analyze requirements, participate in code reviews, etc. Human Computer Interaction fundamentals are covered, along with ethical and social issues related to the business of computing. The different roles involved with large scale development are discussed. Prerequisite: CPSC 211.