SOFTWARE ENGINEERING
Ideas and techniques for designing, developing, and modifying large software systems. Topics include software engineering processes; requirements and specifications; project team organization and management; software architectures; design patterns; testing and debugging; and cost and quality metrics and estimation. Work in large teams on a substantial programming project.
Topics
- software engineering processes
- requirements and specifications
- project team organization and management
- software architectures
- design patterns
- testing and debugging
- and cost and quality metrics and estimation
Topics explicitly listed in official catalogue description
Prerequisites & course information
Requisites: (COMP SCI 367 or 400 ) and ( COMP SCI 407 , 536 , 537 , 559 , 564 , 570 , 679 or E C E/COMP SCI 552 ) or graduate/professional standing, or declared in the Capstone Certificate in Computer Sciences for Professionals Course Designation: Core GenEd - Natural Science & Wellness + Lab Level - Advanced L&S Credit - L&S Liberal Arts and Science Repeatable for Credit: No Last Taught: Fall 2026 Learning Outcomes: 1. Execute a significant software development project within a team Audience: Undergraduate 2. Use software tools for collaboration including source control, project management, and automated testing Audience: Undergraduate 3. Collaborate effectively on a significant software development project as part of a team, demonstrating professionalism in communication, accountability, and teamwork. Audience: Undergraduate 4. Describe and participate in various SWE inspection activities (e.g. Group Code Review; Pair Programming; Asynchronous Review). Audience: Undergraduate 5. Characterize and contrast software engineering methodologies and development techniques, including Agile, Waterfall, DevOps, Test-driven Development, Comment-First Development, and Extreme Programming Audience: Undergraduate 6. Characterize and contrast software design philosophies and principles. Audience: Undergraduate 7. Explain and evaluate techniques for software deployment such as Container and VM technologies. Audience: Undergraduate Learning Outcomes: 1. Execute a significant software development project within a team Audience: Undergraduate 2. Use software tools for collaboration including source control, project management, and automated testing Audience: Undergraduate 3. Collaborate effectively on a significant software development project as part of a team, demonstrating professionalism in communication, accountability, and teamwork. Audience: Undergraduate 4. Describe and participate in various SWE inspection activities (e.g. Group Code Review; Pair Programming; Asynchronous Review). Audience: Undergraduate 5. Characterize and contrast software engineering methodologies and development techniques, including Agile, Waterfall, DevOps, Test-driven Development, Comment-First Development, and Extreme Programming Audience: Undergraduate 6. Characterize and contrast software design philosophies and principles. Audience: Undergraduate 7. Explain and evaluate techniques for software deployment such as Container and VM technologies. Audience: Undergraduate
Sources
- Course catalogue ↗2026-2027
- Catalogue entry ↗
Catalogue variants
- SOFTWARE ENGINEERING · 3 credits.