Instructor

Patrick Huang ziqiang.huang@uwaterloo.ca Office Hours: By email appointment

Teaching Assistants

Majid Dashtbani (majid.dashtbani@uwaterloo.ca) Ahmad Nabil Yousef Kamal (anykamal@uwaterloo.ca) Soroush Mortazavimoghaddam (soroush.mortazavimoghaddam@uwaterloo.ca) Sheikh Abrar Tahmid (sheikh.abrar.tahmid@uwaterloo.ca) Prajwal Thakur (prajwal.thakur@uwaterloo.ca)

Weighting

ComponentValue
Labs30%
Midterm30%
Final Exam40%

Lab Weighting

LabRelease dateDue dateWeight
Lab0Jan 16Jan 2910%
Lab1Jan 30Feb 1215%
Lab2Feb 13Mar 1125%
Lab3Mar 12Mar 2520%
Lab4Mar 22April 830%
  • All projects will be marked with ece-Ubuntu using g++, to be submitted with UW Gitlab
  • NO DEBUGGING MESSAGES!

Course Schedule

Week ofTopics
Jan 8Introduction and Logistics
Jan 15Algorithm Analysis & Abstract Data Types
Jan 22Lists, Stacks, Queues

Lab 0
Jan 29Trees, Binary (Search) Trees, Tree Traversals
Feb 5AVL Trees, Red-Black Trees

Lab 1
Feb 12Heaps, Priority Queues
Feb 19Reading Week
Feb 26Midterm Week
Mar 4Sorting Algorithms

Lab 2
Mar 11Hashing, Hash tables
Mar 18Introduction to Graphs, Graph Traversals 

Lab 3
Mar 25Graph Algorithms
April 1Algorithm Design Techniques

Lab 4

Exams

  • Midterm: February 27, 8.30
  • Contact the TAs directly within 5 days for any grading issues

Materials

  • https://uwaterloo.ca/scholar/z399huan/ece250
  • Mark Allen Weiss, Data Structures and Algorithm Analysis in C++, 4th Ed., Addison Wesley, 2012.
  • Cormen, Leiserson, Rivest, and Stein (CLRS), Introduction to Algorithms, 2nd Ed., MIT Press, 2001.