The Foundations exam focuses on algorithm analysis and design and may test knowledge of complexity analysis methods and their application, existing algorithms, algorithm modification, and basic complexity classes and proofs. The official reading list is a large portion of Introduction to Algorithms, also known as CLRS. Please view the department's page for the outline. The problems in CLRS are useful for learning complexity analysis, existing algorithms, and the standard set of NP-Complete proofs.
However, it lacks in algorithm design or creative application of algorithms. To cover the latter, use practice problems from other sources that require creative thought.%0a%0aMore resources are listed below, but MIT's 6.006 and 6.046 courses cover most of the material.
The OpenCourseWare classes include lecture and recitation videos, all classes have notes, scribes, and problem sets. Note that Introduction to Algorithms does not cover much of the material that we may find on the qualifying exam, be sure to review the Design and Analysis of Algorithms material and use our department's reading list as a guide. If you know of other problem sets, especially from Mason, please mention them in the CSGSA Facebook group and they will be added to the list below.