ECE 606
Algorithm Design and Analysis
Fall 2025
Topics
- Algorithm representation and Python 3
- Graphs, trees, lists and other data structures
- Correctness and complexity analysis
- Incremental, divide-and-conquer, greedy and dynamic-programming algorithms
- Randomized, probabilistic and approximation algorithms
- NP, reductions, hardness and completeness
- Probably Approximately Correct learning
Readings
- Required instructor text: M. Tripunitara, ECE 606 – Algorithms, available on LEARN.
- Assignment handouts, solutions and past examinations on LEARN.
Fall 2023 · , Fall 2023, Syllabus, Logistics and Schedule
Topics
- Week Topics
- Sep 06 – Sep 12 Intro to the course; Discrete math review; intro to Python 3
- Sep 13 – Sep 19 Expressing algorithms; Data structures review
- Sep 20 – Sep 26 Properties of algorithms: existence, correctness, efficiency
- Sep 27 – Oct 03 Design strategy I: incremental (5) Oct 04 – Oct 17 Design strategy II: divide-n-conquerReading week = Oct. 7-15
- Oct 18 – Oct 24 Design strategy III: greedy
- Oct 25 – Oct 31 Design strategy IV: dynamic programming
- Nov 01 – Nov 07 Randomization, Probabilistic and approximation algorithms
- Nov 08 – Nov 14 Non-determinism; computational complexity; the class NP; other complexity classes
- Nov 15 – Nov 21 Cook- and Karp-reductions; hardness and completeness for a complexity class
- Nov 22 – Nov 28 NP-complete problems and reductions between them
- Introduction 5 2 Propositional Logic and Proof Techniques 9 3 Sets, Functions and Cardinality 31 4 Combinatorics 65 3
- CONTENTS
Readings
- learn.uwaterloo.ca “Textbook” Tripunitara, “ECE 606 – Algorithms” Available on Learn. May be posted in stages only.
Fall 2022
Topics
- Week Topics
- Sep 07 – Sep 13 Intro to the course; Discrete math review; intro to Python 3
- Sep 14 – Sep 20 Expressing algorithms; Data structures review
- Sep 21 – Sep 27 Properties of algorithms: existence, correctness, efficiency
- Sep 28 – Oct 04 Design strategy I: incremental
- Oct 05 – Oct 11 Design strategy II: divide-n-conquer (-) Oct 12 – Oct 18 (nothing; reading week)
- Oct 19 – Oct 25 Design strategy III: greedy
- Oct 26 – Nov 01 Design strategy IV: dynamic programming
- Nov 02 – Nov 08 Randomization, Probabilistic and approximation algorithms
- Nov 09 – Nov 15 Non-determinism; computational complexity; the class NP; other complexity classes
- Nov 16 – Nov 22 Cook- and Karp-reductions; hardness and completeness for a complexity class
- Nov 23 – Nov 29 NP-complete problems and reductions between them
- Introduction 5 2 Propositional Logic and Proof Techniques 9 3 Sets, Functions and Cardinality 31 4 Combinatorics 65 3
- CONTENTS
Readings
- learn.uwaterloo.ca “Textbook” Tripunitara, “ECE 606 – Algorithms” Available on Learn. May be posted in stages only.
Fall 2021
Topics
- Week of Topics
- Sep 06 Intro to the course; Discrete math review; intro to Python 3
- Sep 13 Expressing algorithms; Data structures review
- Sep 20 Properties of algorithms: existence, correctness, efficiency
- Sep 27 Design strategy I: incremental
- Oct 04 Design strategy II: divide-n-conquer (-) Oct 11 (nothing; reading week)
- Oct 18 Design strategy III: greedy
- Oct 25 Design strategy IV: dynamic programming
- Nov 01 Randomization, Probabilistic and approximation algorithms
- Nov 08 Non-determinism; computational complexity; the class NP; other complexity classes
- Nov 15 Cook- and Karp-reductions; hardness and completeness for a complexity class
- Nov 22 NP-complete problems and reductions between them
Readings
- learn.uwaterloo.ca “Textbook” Tripunitara, “ECE 606 – Algorithms” Available on Learn. May be posted in stages only.
Fall 2020 · , Fall 2020, Syllabus, Logistics and Schedule
Topics
- Week of Topics
- Sep 08 Intro to the course; Discrete math review; intro to Python
- Sep 15 Expressing algorithms; Data structures review
- Sep 22 Properties of algorithms: existence, correctness, efficiency
- Sep 29 Design strategy I: incremental
- Oct 06 Design strategy II: divide-n-conquer Oct 13, reading week
- Oct 20 Design strategy III: greedy
- Oct 27 Design strategy IV: dynamic programming
- Nov 03 Randomization, Probabilistic and approximation algorithms
- Nov 10 Non-determinism; computational complexity; the class NP; other complexity classes
- Nov 17 Cook- and Karp-reductions; hardness and completeness for a complexity class
- Nov 24 NP-complete problems and reductions between them
Readings
- learn.uwaterloo.ca “Textbook” Tripunitara, “ECE 606 – Algorithms” Available on Learn. May be posted in stages only.
Fall 2018 · Algorithms
Topics
- week 4: Deeper dive I – data structures and associated algorithms Tables, lists, trees, graphs,. . .
- week 5: Deeper dive II – data structures and associated algorithms
- week 6: Deeper dive III – data structures and associated algorithms
- week 7: Deeper dive IV – data structures and associated algorithms
- week 8: Deeper dive V – data structures and associated algorithms
- week 9: Computational Complexity I – complexity classes and reductions
- week 10: Computational Complexity II – tractable vs. intractable classes
- week 11: Computational Complexity III – intractable classes
- week 12: Computational Complexity IV and wrap-up
Readings
- Cormen, Leiserson, Rivest & Stein, Introduction to Algorithms
- Kleinberg & Tardos, Algorithm Design
- Arora & Barak, Computational Complexity, a Modern Approach
- Hopcroft, Motwani & Ullman, Automata Theory, Languages & Computation
- Vazirani, Approximation Algorithms
- Knuth, The Art of Computer Programming
Sources
- Course catalogue ↗2026–2027
- course_outline ↗Fall 2025
- course_outline ↗Fall 2023
- course_outline ↗Fall 2022
- course_outline ↗Fall 2021
- course_outline ↗Fall 2020
- course_outline ↗Fall 2018
- Official public PDF outline or course description. Materials and topic extracts may be partial; consult the linked source for the full list.
- Official public PDF outline or course description. Materials and topic extracts may be partial; consult the linked source for the full list.
- Official public PDF outline or course description. Materials and topic extracts may be partial; consult the linked source for the full list.
- Official public PDF outline or course description. Materials and topic extracts may be partial; consult the linked source for the full list.
- Official public PDF outline or course description. Materials and topic extracts may be partial; consult the linked source for the full list.
- Public departmental course outline. Source may be archival; no current-term assignment is implied. Bibliographic details are preserved in textbook notes.