University of Waterloo
200 University Ave W, Waterloo, ON
N2L 3G1
Phone: (519) 888-4567
Staff and Faculty Directory
Contact the Department of Electrical and Computer Engineering
Visit our COVID-19 information website to learn how Warriors protect Warriors.
Professor Shreyas Sundaram
This course provides an introduction to the analysis and design of algorithms. Emphasis will be placed on rigorous mathematical analysis of complexity, efficiency and correctness. Topics include sorting algorithms, data structures, dynamic programming, graph algorithms, complexity classes (tractability vs intractability of problems), and probabilistic analysis and design of randomized algorithms.
The final grade for the course will be based on a set of homework problems (approximately four – five assignments total), a midterm exam (date TBA) and a final exam.
Homework: 20%
Midterm: 30%
Final Exam: 50%
Late homework will not be accepted, unless prior arrangements have been made with the instructor.
Data Structures and Algorithms, Probability, or consent of instructor.
There is no required textbook. Parts of the course are based on the following books:
Papers and electronic references may be made available on the course website.
University of Waterloo
200 University Ave W, Waterloo, ON
N2L 3G1
Phone: (519) 888-4567
Staff and Faculty Directory
Contact the Department of Electrical and Computer Engineering
The University of Waterloo acknowledges that much of our work takes place on the traditional territory of the Neutral, Anishinaabeg and Haudenosaunee peoples. Our main campus is situated on the Haldimand Tract, the land granted to the Six Nations that includes six miles on each side of the Grand River. Our active work toward reconciliation takes place across our campuses through research, learning, teaching, and community building, and is centralized within our Indigenous Initiatives Office.