This course is primarily intended for undergraduate students in electrical and computer engineering and in engineering physics. This course is also appropriate for some computer science students although UBC Computer Science has its own set of courses covering this material.

The prerequisite for this course is EECE 259 or CPSC 260. Students who have completed both courses are likely to appreciate the material better. The expectation is that students have mastered concepts in digital logic and boolean algebra (which are related to concepts in logic) and that they can think algorithmically. Programming experience is sometimes useful — such experience clarifies some of the constraints when developing algorithms to be implemented on modern computing systems — but it is not critical for success in this course. Comfort with mathematical ideas and formal arguments is more important in this course.

For ECE and EngPhys students, EECE 320 is required to access many courses taught by UBC CS. This course is tagged as a junior year (Year 3) course and the material covered spans aspects of MATH 220, CPSC 221 and CPSC 320. It is important to be aware of the scope of the material; the pace of the course is somewhat governed by the scope.