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