Summer 2025 - CMPT 276 D200

Introduction to Software Engineering (3)

Class Number: 3793

Delivery Method: In Person

Overview

  • Course Times + Location:

    May 12 – Aug 8, 2025: Wed, 1:30–2:20 p.m.
    Surrey

    May 12 – Aug 8, 2025: Fri, 12:30–2:20 p.m.
    Surrey

  • Exam Times + Location:

    Aug 15, 2025
    Fri, 8:30–11:30 a.m.
    Surrey

  • Prerequisites:

    One W course, CMPT 225, (MACM 101 or (ENSC 251 and ENSC 252)) and (MATH 151 or MATH 150), all with a minimum grade of C-. MATH 154 or MATH 157 with at least a B+ may be substituted for MATH 151 or MATH 150.

Description

CALENDAR DESCRIPTION:

An overview of various techniques used for software development and software project management. Major tasks and phases in modern software development, including requirements, analysis, documentation, design, implementation, testing,and maintenance. Project management issues are also introduced. Students complete a team project using an iterative development process. Students with credit for CMPT 275 may not take this course for further credit.

COURSE DETAILS:

The theory and practice of software development are introduced. Students will learn the standard methodologies underlying software development, including requirements, analysis, documentation, design, implementation, testing, maintenance, debugging, refactoring, and version control. Labs will cover learning to effectively use development tools and a semester-long group project will focus on implementation, testing, refactoring, and presentation of a software application using established industry standards and techniques.

The focus of the course is on preparing students to be effective members of a software development team. Accordingly, basic group psychology is essential to the curriculum of this course. Prior experience and knowledge of web development technologies such as HTML, CSS, JavaScript and frameworks such as React and Vue is highly recommended

Students will also be expected to familiarize themselves with collaborative tools like Git for version control and platforms like GitHub for code development and deployment. The course will include peer code reviews, and discussions on software ethics and accessibility. By the end of the course, students should be able to contribute effectively to a real-world software project, demonstrating both technical proficiency and strong communication skills within a team environment.

Topics

  • Version Control: Managing code changes and collaboration.
  • Prompt Engineering: Understanding and developing effective prompts for Software Engineering Education.
  • Software Development Life Cycles: Understanding Agile, Waterfall, and DevOps.
  • Ethics in Software Development: Ethical responsibilities.
  • Requirements: System analysis and modelling, requirements engineering
  • High-Level Design: Using UML and architectural frameworks.
  • UX/UI Design: Applying design patterns for user experience and interface.
  • Implementation: Coding standards, code reviews, and pair programming.
  • Build Automation: Continuous integration and deployment.
  • Technical Documentation: Creating clear and concise documentation.
  • Quality Assurance: Ensuring reliability through testing.
  • Debugging: Identifying and fixing defects.
  • Refactoring: Enhancing code structure and performance.
  • Group Dynamics: Understanding team collaboration and psychology.

Grading

NOTES:

Students must attain the following in order to obtain a clear pass (C- or better) in the course:

  • A passing grade (>50%) on the weighted average of the exams (midterm and final)
  • A passing grade (>50%) on the weighted average of the project (mini and final)

Materials

MATERIALS + SUPPLIES:

Reference Books

  • Software Engineering, Ian Sommerville, Addison Wesley
  • Design Patterns: Elements of Reusable Object-Oriented Software, Gamma, E., Helm, R., Johnson, R., Vlissides, J.
  • Refactoring: Improving the Design of Existing Code, Martin Fowler, Kent Beck
  • Why Programs Fail: A Guide to Systematic Debugging, Andreas Zeller

REQUIRED READING NOTES:

Your personalized Course Material list, including digital and physical textbooks, are available through the SFU Bookstore website by simply entering your Computing ID at: shop.sfu.ca/course-materials/my-personalized-course-materials.

Registrar Notes:

ACADEMIC INTEGRITY: YOUR WORK, YOUR SUCCESS

At SFU, you are expected to act honestly and responsibly in all your academic work. Cheating, plagiarism, or any other form of academic dishonesty harms your own learning, undermines the efforts of your classmates who pursue their studies honestly, and goes against the core values of the university.

To learn more about the academic disciplinary process and relevant academic supports, visit: 


RELIGIOUS ACCOMMODATION

Students with a faith background who may need accommodations during the term are encouraged to assess their needs as soon as possible and review the Multifaith religious accommodations website. The page outlines ways they begin working toward an accommodation and ensure solutions can be reached in a timely fashion.