This course covers the fundamentals in algorithm design and analysis, focusing on the themes of efficient algorithms and intractable problems. Topics include divide and conquer algorithms, graph algorithms, greedy algorithms, dynamic programming, NP-completeness and reductions. The course goal is to provide a solid foundation in algorithms for students in preparation for a job in industry and more advanced courses.
CSC316 OR (CSC 226 AND ECE 309)
Written exercises will be provided. They will not be graded. Solutions will be provided before quizzes.
At least half of the questions will be taken from the list of written exercises.