Course ePortfolio

CMPS 378 Software Engineering

Introduction to the principles of software engineering. The course includes discussion on life-cycle models, software system design and implementation, and testing with verification and validation. Various design and implementation methodologies will be examined and contrasted, including classical and object-oriented approaches. The course will be project-driven and students will work on a team project and fulfill various roles during the course of the project. Your course instructor is Dr. Nigel Gwee.


Credit in CMPS 300 (Programming Languages)

Pedagogical Approach

A.    This course is 100% online via MOODLE. Course material is presented in an asynchronous format (not live unless otherwise specified). Upon entering MOODLE, select “the Modules” to access course content. Online participation is required every week. You will be expected to complete readings, review .ppt slides, listen to assigned lectures, ZOOM sessions, and complete various project documentation assignments for each module. Refer to the course schedule for details regarding readings, activities, assessments, and due dates. Please check your e-mail and course announcements daily for important class information.  This course is facilitated online using the learning management platform, MOODLE.



Learning Outcomes

Course Objectives:   Students should be able to: Create and understand specifications for software projects. Design using standard tools, and implement the designs in a high level programming language. Work in software teams, and communicate their ideas effectively to other members. Professional deportment should be shown at all times.

Student Learning Outcomes/Course Outcome   Upon, completion of this course, students will be able to: ●       Apply requirements analysis techniques. [ABET b] [Course Objective 1] ●       Apply modular- and user interface design techniques. [ABET a, c] [Course Objective 2] ●       Organize and execute software projects. [ABET a, c] ] [Course Objective2] ●       Implement and verify software design using a high level programming language (C++ or Java). [ABET a, c] ] [Course Objective 2] ●       Practice inter-personal and project management skills in a team development environment. [ABET d, e] ] [Course Objective 3] ●       Assimilate and apply ideas discussed in current literature. [ABET a] ] [Course Objective 3] ●       Communicate developmental ideas through project presentations. [ABET f] ] [Course Objective 3] ●       Complete a comprehensive software engineering project, emphasizing requirements and design, but including implementation and verification. [ABET c, g] ] [Course Objectives 1, 2, 3]. 


Assessment will be based on the following ABET CAC Outcomes: Outcome a: an ability to apply knowledge of computing and mathematics appropriate to the discipline; [PEO 1, PEO 2] Outcome b: an ability to analyze a problem, and identify and define the computing requirements appropriate to its solution; [PEO 1, PEO 3] Outcome c: an ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs; [PEO 1, PEO 2] Outcome d: an ability to function effectively on teams to accomplish a common goal; [PEO 1, PEO 3, PEO 4] Outcome e: an understanding of professional, ethical, legal, security and social issues and responsibilities; [PEO 1, PEO 4] Outcome f: an ability to communicate effectively with a range of audiences; [PEO 1, PEO 3] Outcome g: an ability to analyze the local and global impact of computing on individuals, organizations, and society. [PEO 1, PEO 2].

Other Information