Subject: Computer Science
Credit units: 3
Offered: Term 1 only
Weekly hours: 3 Lecture hours
College: Arts and Science
Department: Computer Science


Develops and analyzes standard techniques for algorithm development which are widely applicable to computer science programs. These include greedy algorithms, branch-and-bound, dynamic programming, satisfiability, graphs and network-flow, and exhaustive search, along with proofs of correctness. The master theorem and other complexity analyses (including output-bounded and amortized complexity) are introduced. Hardware-level interactions with these algorithms and efficient data structures, including cache-obliviousness, are discussed.

Prerequisite(s): CMPT 260.3 and CMPT 280.3; and 9 credit units of MATH or STAT courses.

Upcoming class offerings

For full details about upcoming courses, refer to the class search tool or, if you are a current student, the registration channel in PAWS.


The syllabus is a public document that provides detail about a class, such as the schedule of activities, learning outcomes, and weighting of assignments and examinations.

Once an instructor has made their syllabus publicly available on USask’s Learning Management System, it will appear below. Please note that the examples provided below do not represent a complete set of current or previous syllabus material. Rather, they are presented solely for the purpose of indicating what may be required for a given class. Unless otherwise specifically stated on the content, the copyright for all materials in each course belongs to the instructor whose name is associated with that course. The syllabus is the intellectual property of instructors or the university.

For more information, visit the Academic Courses Policy , the Syllabus page for instructors , or for students your Academic Advising office.