everything.study
ECE 606

Algorithm Design and Analysis

Graduate

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.
    unspecified
  • Assignment handouts, solutions and past examinations on LEARN.
    unspecified
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.
    unspecified
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.
    unspecified
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.
    unspecified
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.
    unspecified
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
    unspecified
  • Kleinberg & Tardos, Algorithm Design
    unspecified
  • Arora & Barak, Computational Complexity, a Modern Approach
    unspecified
  • Hopcroft, Motwani & Ullman, Automata Theory, Languages & Computation
    unspecified
  • Vazirani, Approximation Algorithms
    unspecified
  • Knuth, The Art of Computer Programming
    unspecified
Sources