An introduction to the issues and techniques encountered in the design and construction of software systems. The theory and models of software evolution. Topics include requirements and speci cations, prototyping, design principles, object-oriented analysis and design, standards, integration, risk analysis, testing, and debugging. == Skills and knowledge students should have prior to beginning the course: == * Topics covered in CIS2750 or CIS2450 * Strong writing skills * Ability to work in teams * Strong communication skills == Course Topics: == * Group dynamics & entrepreneurship * User stories * Iteration & project planning * Use cases * Requirements * Burndown charts * Planning * Tasks * Prototyping * Class diagrams * Software design & management * Testing & test cases * Sequence diagrams == Course Format: == * Lecture format: Reverse classroom, group discussions and activities, short lectures on theory demonstrated through activity * Online materials location and format: Moodle * Lab or tutorial format and expectations: Active lab including involvement with external partners == Method of evaluation: == * Number of Assignments: 3 assignments * Number of Graded Labs: 2 lab demos & post-mortems * Number of Quizzes: 5 * Formal Midterm? No * Course project? Yes - a semester long group project * Final Exam? No * Group work? Yes * Mostly programming assignments? Final project includes both a written component and a functioning product * Written documents? Yes