Hold on just a sec...
3 credits
Spring 2026 Lecture Distance Learning Upper DivisionSoftware engineering is a difficult endeavor. Software engineers work in diverse teams to create and comprehend complex information, such as: code structure, implementation rationale, dynamic software behavior, change implications, and team dynamics. In this class, we will study principles of software engineering and discuss state-of-the-art research. In their course project, students will work to understand and extend the state of the art in software engineering, or to apply the concepts in an assessment of an existing open-source project. This is a graduate-level, research-oriented course. It briefly reviews, but largely builds on, ECE 46100. This course follows a project-based learning (PBL) approach - most of the grade is obtained through the completion of a team-based project. The primary audiences for this course are: - Students whose research interests lie in software engineering and adjacent areas (e.g. cybersecurity or systems). - Students who intend to develop computer-based systems, either as software engineers or working alongside them, and wish to have a more rigorous basis for their systems than "it seems to work".
Learning Outcomes1Understand mathematical bases for software engineering (e.g., formal methods in software design and software verification). [ABET 1]
2Formulate, conduct, and report on a team-based research-oriented project in software engineering. [ABET 1,5,6,7]
3Consider the ethical implications of software engineering failures and successes. [ABET 4]
4Summarize and analyze scholarly findings, both verbally and in writing. [ABET 3]