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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Repeat Status: Can be repeated multiple times for credit