| |
Mar 18, 2026
|
|
|
|
|
CS 351 - Software Engineering Credits: 5 Variable Credit Course: No
Lecture Hours: 55 Lab Hours: 0 Worksite/Clinical Hours: 0 Other Hours (LIA/Internships): 0
Course Description: Learn fundamentals of software engineering including analysis of system requirements, software design principles, patterns, evaluation of appropriate engineering compromises, and application of collaborative software development practices and tools.
Prerequisite: Admission to BSCS program and Dept. Chair permission. Meets FQE Requirement: No Integrative Experience Requirement: No
Student Learning Outcomes
- Model, compare, and contrast different software engineering lifecycle development models and choose an appropriate model for a given situation.
- Devise and present an appropriate testing approach for a given project, based upon the needs of the indicated project and development approach.
- For a given project, present an implementation or deployment approach for the project solution that meets the need of the project.
- Provide an overview of ethical issues that the different software development tasks may involve.
- Compare and contrast design patterns such as SOLID, MVC, MVP, REST.
- Create appropriate documentation (e.g., UML, JavaDoc) to communicate design decisions.
- Facilitate collaborative problem solving, managing pull requests and conflicts, and version control in a software development ecosystem.
Course Contents
- Program and portfolio management (metrics in software engineering).
- Software lifecycle development models (Waterfall, Agile).
- Software requirements management.
- Software design principles and modeling.
- Software testing techniques (automated testing and continuous testing).
- Formal methods in software development (incident management, source code control).
- Ethical issues in software development.
- DevOps (continuous integration, containers, deployment).
- Software project management.
Instructional Units: 5
|
|