CMPUT404: Webservices


Notice 2023-01-03

Winter 2023 Teaching

I am teaching CMPUT404 in the Winter of 2023. It will be in person. Groups should be formed from the lab section.

Pre-requisites: CMPUT 301, CMPUT 291.

You do not need CMPUT 391, I will waive CMPUT 391 if and only if you ave CMPUT 291 and CMPUT 301. CMPUT301 and CMPUT291 are hard pre-requisite, not co-requisite, and not optional. I will not grant anyone exemptions from pre-requisites for CMPUT301 or CMPUT291.


CMPUT404 is a software engineering course about the web, backend and frontend. It’s not just a web course, it’s the web from the point of view of a software developer. How do we deploy software on the web. We cover lots of concepts.

I have cotaught with Hazel Campbell before.

The goals of the course of is to produce students who are confident with web concepts and unafraid to look under the hood to debug something.

Lab Notes

The labs for the course are hosted here:

Groups are formed in the lab. You must be in the same lab section.

Lecture Notes

The lecture notes are available online and available under a FLOSS compatible license:


Learn some backend, frontend, and protocols

In class exercises

Essentially we exercise your knowledge and learning from prior lectures with interactive in class work, such as handwriting an ethernet packet.


Build a Peer to Peer blog platform

Derivative Work

Feel free to clone and copy provided you give my collaborators and myself appropriate attribute and follow the licenses.