Software Engineering
Courses
SE 101 Foundations of Software Engineering I 3.0 Credits
Teaches students basic programming concepts within a software engineering process that involves specification, documentation, and testing. Programming coverage includes basic programming concepts such as the declaration and assignment of variables, standard data types, constants, conditional statements, loops, introduction to classes and methods, standard and file input/output, arrays, and strings. Process concepts emphasize good internal documentation practices, specifying functional requirements, defect tracking and analysis, and "black-box" testing.
Repeat Status: Not repeatable for credit
SE 102 Foundations of Software Engineering II 3.0 Credits
Introduces students to additional programming concepts. Teaches students how to design, implement, and test object-oriented software applications using simple reusable components. Introduces basic techniques for creating reusable software components. Provides an overview of the software engineering as a discipline.
Repeat Status: Not repeatable for credit
Prerequisites: SE 101 [Min Grade: D]
SE 103 Foundations of Software Engineering III 3.0 Credits
Introduces students to issues and practices for working with medium-size software systems. Teaches students basic techniques for using application frameworks. Introduces students to software development in teams and provides an overview of the software engineering professional practice.
Repeat Status: Not repeatable for credit
Prerequisites: SE 102 [Min Grade: D]
SE 210 Software Specification and Design I 3.0 Credits
Study of the principles, practices, and techniques used to gather system requirements and document them in a requirements specification. Includes techniques for requirements discovery such as user interviews and prototyping. Introduces approaches for organizing and expressing software requirements in a requirements specification.
Repeat Status: Not repeatable for credit
Prerequisites: SE 103 [Min Grade: D] or CS 133 [Min Grade: D] or CS 172 [Min Grade: D]
SE 211 Software Specification and Design II 3.0 Credits
Continues study of requirements with increasing emphasis on converting requirements into a software system design. Presents alternate approaches, techniques for evaluating specifications, specification and design tools, and use of specifications to develop system-level tests.
Repeat Status: Not repeatable for credit
Prerequisites: SE 210 [Min Grade: D]
SE 280 Special Topics in Software Engineering 4.0 Credits
This course covers topics in software engineering. Different topics may be considered in different quarters.
Repeat Status: Can be repeated multiple times for credit
SE 310 Software Architecture I 3.0 Credits
Study of macro-level software system architectures with an emphasis on approaches to interconnection and distribution of current and emerging architectural styles.
Repeat Status: Not repeatable for credit
Prerequisites: SE 211 [Min Grade: D]
SE 311 Software Architecture II 3.0 Credits
Continues discussion of software architecture with a focus on micro-level architecture including patterns, frameworks, and component-based software engineering, and commercial off-the-shelf software.
Repeat Status: Not repeatable for credit
Prerequisites: SE 310 [Min Grade: D] or CS 350 [Min Grade: D]
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: D]
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: CS 260 [Min Grade: D]
SE 480 Advanced Topics in Software Engineering 4.0 Credits
This course covers topics in Software Engineering selected from advanced topics from research in this field. Different topics may be considered in different quarters.
Repeat Status: Can be repeated multiple times for credit
SE 491 Design Project I 3.0 Credits
An independent project in which student teams design and implement a software system under faculty guidance. Students apply a defined software engineering process for the project including process customization as appropriate.
Repeat Status: Not repeatable for credit
Restrictions: Can enroll if classification is Senior.
SE 492 Design Project II 3.0 Credits
Continues Design Project I.
Repeat Status: Not repeatable for credit
Restrictions: Can enroll if classification is Senior.
Prerequisites: SE 491 [Min Grade: D]
SE 493 Design Project III 3.0 Credits
Continues Design Project II.
Repeat Status: Not repeatable for credit
Restrictions: Can enroll if classification is Senior.
Prerequisites: SE 492 [Min Grade: D]






