The aim of the course |
The primary goals of the course are: • to become proficient in the application of fundamental algorithm design techniques (e.g., divide and conquer, greedy algorithms, dynamic programming), • to gain familiarity with the main theoretical tools used in the analysis of algorithms (e.g., recurrences, probability theory, etc.) • to study and analyze different algorithms for many of the most common types of “standard” algorithmic problems (e.g., sorting, searching, graph problems), and • to introduce students to some of the prominent subfields of algorithmic study (e.g., cryptography, computational geometry, randomized algorithms, data structures, etc.) in which they may wish to pursue further study |