1 · 200 Level 2 · Second Semester 3 · CSC202 4 · Details
Core200 LevelSecond SemesterAlgorithms & Data Structures
CSC202

Algorithms Analysis & Design

Course Description

Algorithms Analysis & Design moves from the data-structure-centered view of CSC201 into general strategies for designing efficient algorithms: divide and conquer, greedy methods, dynamic programming, and the tools to argue about correctness and lower bounds.

Learning Outcomes
  • Apply divide-and-conquer, greedy, and dynamic programming strategies to new problems.
  • Prove the correctness of a designed algorithm.
  • Analyze best-case, worst-case, and average-case complexity.
  • Recognize when a problem is likely computationally hard.
Weekly Topics
Examines algorithm design strategies overview from a practical angle, using a case drawn from real systems to motivate the concepts.
Builds directly on the previous week to extend divide & conquer i, with an emphasis on where the earlier techniques stop working.
Combines a short lecture on divide & conquer ii with an in-class exercise students carry into the week's assignment.
Focuses on common mistakes and misconceptions around greedy algorithms i, using student work from the previous assignment as material.
Introduces greedy algorithms ii and immediately puts it to use in a small design or implementation task.
Situates dynamic programming i within the broader arc of the course, showing how it connects to what comes next.
Uses a guest dataset or scenario to explore mid-semester review in a setting closer to professional practice.
Introduces dynamic programming ii through short lectures and worked examples, building the vocabulary the rest of the course relies on.
Works through graph algorithms: shortest paths in a lab-driven session, with guided exercises students complete and discuss in small groups.
Covers graph algorithms: spanning trees in depth, connecting the underlying theory to a concrete example the class builds together.
Examines np-completeness introduction from a practical angle, using a case drawn from real systems to motivate the concepts.
Builds directly on the previous week to extend algorithm design project, with an emphasis on where the earlier techniques stop working.
Combines a short lecture on revision with an in-class exercise students carry into the week's assignment.
Assessment
Assignments — 20%
Practical Work — 20%
Mid-Semester — 20%
Final Examination — 40%
Prerequisite Map
CSC201 Data Structures & Algorithms CSC202 Algorithms Analysis & Design CSC301 Software Engineering Principles CSC405 Advanced Algorithms
Related Courses