Software Engineering

Courses

SE 181 Introduction to Software Engineering and Development 3.0 Credits

Introduces advanced software development fundamentals including memory management, typing and scoping, datastores, software testing, and security, as well as user-centric design and user experience. This course will be taught using a specified programming language of instruction.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 172 [Min Grade: C]

SE 201 Introduction to Software Engineering and Development 3.0 Credits

Introduces advanced software development fundamentals including memory management, typing and scoping, datastores and software testing. This course will be taught using a specified programming language of instruction.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 172 [Min Grade: C]

SE 210 Introduction to Requirements Engineering 3.0 Credits

Study of the principles, practices, and techniques used to gather system requirements and document them in a Software Requirements Specification (SRS). Includes techniques for requirements discovery such as user interviews and prototyping, and elaboration techniques such as scenario-based modelling, behavioral modeling, and class-based modeling. Introduces approaches for organizing and expressing software requirements in the SRS.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 172 [Min Grade: C]

SE 211 Introduction to Software Design 3.0 Credits

This course serves as an introduction to the software design discipline. The course takes a top-down approach from high-level (or architectural) design to low-level (or detailed) design. It introduces design principles and fundamentals of software design, such as modularization, abstraction, coupling, and cohesion. Further, it examines facilities of OO programming languages such as abstract classes, inheritance, interfaces, and polymorphism and explains how they help us create extensible and easy to maintain software components. The course introduces both architectural styles and design patterns and prepares the students for subsequent, more advanced courses in software design. Finally, the course introduces the design process related to human-computer interfaces.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: SE 210 [Min Grade: C]

SE 310 Software Design 3.0 Credits

Study of fundamental principles and patterns of software design, emphasizing the creation of effective abstractions and highly modular systems. Introduces software design as a decision-making process, preparing students to manage the inevitable complexities and changes in large-scale, real-world software projects.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 265 [Min Grade: C] and CS 260 [Min Grade: C] and (SE 181 [Min Grade: C] or SE 201 [Min Grade: C])

SE 311 Software Architecture 3.0 Credits

Study of fundamental software architecture concepts and state-of-the-art practices, including architecture patterns and styles, component-based software engineering, distributed software architectures, and architecture modeling and analysis. Students will learn to architect resilient and evolvable software through a blend of theoretical learning and practical exercises.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: SE 310 [Min Grade: C]

SE 320 Software Verification and Validation 3.0 Credits

Presents theory and practice of software testing. Covers structural testing including such topics as path testing, dataflow testing, logic based testing, syntax testing, program slicing, mutation testing, fault injection, program perturbation, and testing tools. Discusses techniques for test construction and test suite evaluation, and validation against requirements and design models. Also covers methods of inspection and review at various phases of the software lifecycle.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: C] and (SE 181 [Min Grade: C] or SE 201 [Min Grade: C])

SE 410 Software Evolution 3.0 Credits

Covers issues related to change in software systems. Addresses principles and techniques of corrective software maintenance, software enhancements, and software product family. Introduces students to issues of change in large software systems including configuration control, change and product management.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: SE 310 [Min Grade: C]

SE 420 Open Source Software Engineering 3.0 Credits

Explores tools, techniques, process, and culture of free and open source software (FOSS) projects. Addresses open source project evaluation, business models, and FOSS as a source of software engineering innovation. Includes student participation in an existing humanitarian FOSS project. Introduces concepts of computing for social good.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: C]

SE I199 Independent Study in Software Engineering 0.0-12.0 Credits

Self-directed within the area of study requiring intermittent consultation with a designated instructor.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

SE I299 Independent Study in Software Engineering 0.0-12.0 Credits

Self-directed within the area of study requiring intermittent consultation with a designated instructor.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

SE I399 Independent Study in Software Engineering 0.0-12.0 Credits

Self-directed within the area of study requiring intermittent consultation with a designated instructor.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

SE I499 Independent Study in Software Engineering 0.0-12.0 Credits

Self-directed within the area of study requiring intermittent consultation with a designated instructor.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

SE T280 Special Topics in Software Engineering 0.0-12.0 Credits

Topics decided upon by faculty will vary within the area of study.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

SE T480 Special Topics in Software Engineering 0.0-12.0 Credits

Topics decided upon by faculty will vary within the area of study.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit