Algorithms and Advanced Data Structures Course ID 15351 Description The objective of this course is to study algorithms for general computational problems, with a focus on the principles used to design those algorithms. Efficient data structures will be discussed to support these algorithmic concepts. Topics include: Run time analysis, divide-and-conquer algorithms, dynamic programming algorithms, network flow algorithms, linear and integer programming, large-scale search algorithms and heuristics, efficient data storage and query, and NP-completeness. Although this course may have a few programming assignments, it is primarily not a programming course. Instead, it will focus on the design and analysis of algorithms for general classes of problems. This course is not open to CS graduate students who should consider taking 15-651 instead. THIS COURSE IS NOT OPEN TO COMPUTER SCIENCE MAJORS OR MINORS. Key Topics Run time analysis; Divide-and-conquer algorithms; Dynamic programming algorithms; Network flow algorithms; Linear and integer programming; Large-scale search algorithms and heuristics; Efficient data storage and query; NP-completeness Required Background Knowledge Understanding of C and data structures from 15-122 Course Relevance This course is for students not in the computer science major or minor who are interested in advanced data structures. Course Goals Ability to design, analyze complexity of, and prove the correctness of algorthims used with data structures. Learning Resources Piazza; Blackboard; Course Textbook Assessment Structure Homework 20%; First Midterm 25%; Second Midterm 25%; Final Exam 30% Extra Time Commitment This course 15-351 is for undergraduates. Graduate students should enroll in 15-650. Course Link https://www.csd.cs.cmu.edu/course-profiles/15-351-Algorithms-and-Advanced-Data-…