Topics of Algorithmic Problem Solving

Course ID 15495

Description This course aims to give implementation motivated perspectives on some algorithmic ideas that fall outside of the scopes of most courses. It is intended for graduate students, as well as undergraduate students who have high grades in 15-210, 15-251, 15-259 (and preferably 15-451). Evaluation will consist of about 30 auto-graded coding tasks, plus either participation in the East Central NA ICPC Regional Contest, or presentations of problem-solving reports from the Chinese IOI Team Selection Camp. The first half of the course will discuss floating point precision, numerical approximation schemes, heuristic search, usage of optimization packages, and vectorization. The second half will provide high-level surveys of 2-D range update & query data structures, proactive propagation, palindromic automata, automated recurrence finding, and maximum adjacency search.

Key Topics
Foating point precision, heuristic search, string algorithms

Required Background Knowledge
Asymptotic complexity, discrete math, familiarity with C++

Course Relevance
This course address many issues that arise in implementations of algorithms that are often not covered in more theoretical treatments of the topics. It will also cover less known variations of many standard topics.

Course Goals
Students will gain better understanding of general ideas that improve the stability, robustness, average-case performance, and code-complexity of algorithms.

Learning Resources
online problem archives, problem solving blogs

Assessment Structure
70% homework, 30% project

Extra Time Commitment
Yes, there is an optional trip to the East Central ICPC Regional at Saturday towards the end of October that can count toward course credit.