Course Description
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.
Average difficulty
Average quality
CPSC320 covers a wide variety of algorithmic techniques, more abstractly than CPSC221. The course focuses more on pseudocode and runtime/space complexity analysis and rarely touches on implementation details. LeetCode/competitive programming experience will be helpful (and CPSC320 also helps build those skills!) Start assignments early (as soon as they’re released) and reference tutorial solutions for hints. It’s difficult to study mechanically for this course, as exams and assignments will assess creative thinking and application of techniques in new situations. Exams are fair given the time constraints. This term’s exams were primarily multiple choice or fill-in-the-blank, with longer written questions on the final.
| Difficulty: | 4.5 | |
| Quality: | 4.5 |
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.
| Difficulty: | 5 | |
| Quality: | 4.5 |
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.
| Difficulty: | 5 | |
| Quality: | 4.5 |
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.
| Difficulty: | 4.5 | |
| Quality: | 5 |
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.
| Difficulty: | 4 | |
| Quality: | 4.5 |
Pain. Gives you the ability to slay leet codes. One of the most difficult cs courses at ubc
| Difficulty: | 5 | |
| Quality: | 4 |