Software Engineering

More Information

UBC Calendar

Course Page

4 Credits

CPEN 321


The course explores engineering principles for building non-trivial software-intensive systems: requirement specification, design, implementation, verification, and maintenance. The course uses a development project as the basic learning vehicle, providing students with an environment for applying the learned principles in practice while coping with constraints encountered when working on a real team: uncertain requirements, tight deadlines, etc. Students are evaluated based on their understanding of the software engineering principles and their ability to apply these principles in practice.


Learning Objectives

By the end of the course, students will learn several fundamental skills in modern software development:

  • software engineering principles: requirements specification, design, implementation, verification, and maintenance of software;
  • client-server application development paradigms, including mobile and cloud-based development;
  • teamwork, inter- and intra-team communication;
  • management of uncertainty in customer demands;
  • ability to adapt quickly to new toolsets;
  • efficient technical communication and presentation.


Credit will only be given for one of CPSC 310 or CPEN 321.


One of EECE 210, CPEN 221, CPSC 210, EECE 309


a place of mind, The University of British Columbia

Electrical and Computer Engineering
2332 Main Mall
Vancouver, BC Canada V6T 1Z4
Tel +1.604.822.2872
Fax +1.604.822.5949

Emergency Procedures | Accessibility | Contact UBC | © Copyright 2021 The University of British Columbia