Software Construction

Many software systems are amongst the most complex systems ever built by humans: telephone systems, flight control systems, internet search engines, social networking sites and much more. 

Two fundamental concepts central to supporting the construction and evolution of software systems are abstraction and decomposition. Building on the introduction to these concepts in CPSC 110, this course will explain how these concepts manifest over and over again in different forms when building larger and larger systems.


The goals of this course are to provide students with the ability to recognize, analyze and use abstraction and decomposition to construct software systems that solve real problems. This course will use the Java programming language and will provide students the opportunity to learn practical design and programming skills.

The course is designed to be accessible and useful to a wide range of students. CPSC 110 is a pre-requisite. 


Course Registration & Waitlists

Prior to the start of term, the waitlist will be managed automatically by the department.  Please see the department web pages for details.

Once term has started, if you are still on the waitlist and wish to take the course you must:
  • check your e-mail daily for updates from CPSC 210 course staff (we will use the e-mail address that you have provided on the Student Service Centre)
  • attend every lecture for the section in which you are waitlisted
  • complete all labs issued during the add/drop period
  • complete all assignments issued during the add/drop period


Course Materials

Course materials will be hosted on edX.  Follow these instructions to sign up.  Note that, although you can enrol in the edX course, lab and lecture materials may not be available until the start of term.

Once you have signed up for the course, you can log in here: https://edge.edx.org and click View Course alongside the course named Software Construction.