Systematic study of basic concepts and techniques in the design and analysis of algorithms, illustrated from various problem areas. Topics include: models of computation; choice of data structures; graph-theoretic, algebraic, and text processing algorithms.
One of the more difficult course in CPSC as it delves into challenging abstract topics. Assignments will take a large portion of your time. Though challenging, it is an important course that can help leapfrog your leetcode skills to be more competitive for internships.
Took this with Patrice Belleville. Extremely difficult course, but the course was ran well. Assignments were very tough, I needed to go to office hours and consult with peers very often for understanding of concepts. Prof was understanding and fair. Start assignments early and go to lectures & office hours, assignments can take up a significant portion of time to understand and office hours are often quite packed. Concepts taught in the course are very useful for industry and leetcode.
Very useful code to get you a job in the industry. Helps you in almost all Data Structure and Algorithm questions. Please start your assignments on time.
Strikingly similar to CPSC 121 in terms of course structure, but on more advanced topics (e.g., DP, greedy, etc.). Course was well ran and assignments were challenging, but fair.
Pain. Gives you the ability to slay leet codes. One of the most difficult cs courses at ubc
Historical grade information
Grades information from UBC Grades Database