everything.study
E C E 506

SOFTWARE ENGINEERING

3 credits.

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

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
Catalogue variants