CS 2450 Introduction to Software Engineering
- Division: Natural Science and Math
- Department: Computer Science & Engineering
- Credit/Time Requirement: Credit: 3; Lecture: 3; Lab: 0
- Prerequisites: CS 2420 (may be taken at the same time)
- Semesters Offered: Fall, Spring
- Semester Approved: Fall 2025
- Five-Year Review Semester: Summer 2030
- End Semester: Summer 2031
- Optimum Class Size: 20
- Maximum Class Size: 24
Course Description
This course introduces students to Software Engineering, which is the application of a systematic, disciplined, and quantifiable approach to the development, operation, and maintenance of software. Students will complete a team-based project that provides the opportunity to practice engineering knowledge, skills, and practices.
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
- Specify and manage software project requirements.
- Perform basic software project management.
- Understand the impact of alternative software development practices like extreme programming (XP) and Agile.
- Perform unit testing of software.
- Create work product documentation.
- Perform project risk management.
- Work as an effective member of a software development team.
- Students will demonstrate an ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors. (ABET-SLO2)
Course Content
Students will learn 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. Topics may include the following: 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, and Working as an effective member of a software development team.
Key Performance Indicators: Homework exercises 20 to 50%Team-based project deliverables 10 to 50%Quizzes 5 to 35%Exams 15 to 50%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