Skip to content

Course Syllabus

Course: CS 2450

Division: Natural Science and Math
Department: Computer Science & Engineering
Title: Introduction to Software Engineering

Semester Approved: Spring 2020
Five-Year Review Semester: Summer 2025
End Semester: Fall 2025

Catalog Description: Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. This course teaches: how to specify and manage requirements through the use of user stories and use cases; the development of software iteratively and incrementally; unit testing of software; project planning; documentation of work products using Unified Modeling Language (UML) to construct class or sequence diagrams; risk management through the development of a risk list and mitigation strategies; and how to work as a member of a software development team. Students will complete a team-based project that provides the opportunity to practice engineering knowledge, skills, and practices.

Semesters Offered: Fall, Spring
Credit/Time Requirement: Credit: 3; Lecture: 3; Lab: 0

Prerequisites: CS 2420 (may be taken at the same time)

Justification: Understanding the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software is essential for anyone to successfully contribute to a software development team. This course is part of the recommended curriculum for computer science majors at Snow College and is part of the required curriculum for software engineering majors at Snow College. This course is articulated across USHE as CS 2450.


Student Learning Outcomes:
Understand software engineering principles This will be assessed through homework exercises and quizzes.

Specify and manage software project requirements. This will be assessed through homework exercises and quizzes.

Perform basic software project management. This will be assessed through project work.

Understand the impact of alternative software development practices like extreme programming (XP) and Agile.  This will be assessed through homework exercises and project work.

Perform unit testing of software. This will be assessed through project work.

Create work product documentation.  This will be assessed through project work.

Perform project risk management.  This will be assessed through project work.

Work as an effective member of a software development team.  This will be assessed through project work.


Content:
Software life cycle models; Software project management; Team development environments and methodologies; Requirements engineering; Software design and architectures; Quality assurance and standards; Legal and ethical issues; Working as an effective member of a software development team

Key Performance Indicators:
Homework exercises 20 to 35%

Team-based project deliverables 20 to 40%

Quizzes 5 to 20%

Exams 15 to 35%


Representative Text and/or Supplies:
Roger S. Pressman, Software Engineering A Practitioner's Approach, current edition. McGraw-Hill

Shari Lawrence Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, current edition. Prentice Hall


Pedagogy Statement:
This course will be delivered through in class discussions, lecture and project mentoring.

Instructional Mediums:
Lecture

Maximum Class Size: 24
Optimum Class Size: 20