Need Help?
Need help finding the right class? Have a question about how classes work?
Click here to Ask AoPS!Recommendations
Course Map
For recommendations in computer science, click here. For information about Chemistry WOOT, click here.
Below is the "map" of all of our math courses. Click on any course to learn more about it.
The top row of the map consists of our core curriculum, which parallels the standard prealgebra-to-calculus school curriculum, but in much greater depth both in mathematical content and in problem-solving skills. For this reason, we often recommend that a new AoPS student who has already taken a course at his or her local school "retake" the same-named course in our online school. Students should then proceed through our core curriculum in left-to-right order, and should take other non-core courses as desired.
Our math courses fall into two categories:
- Our subject courses (in green on the map) each offer a thorough exploration of a particular subject. Each course follows an AoPS textbook (except where noted). Students receive personalized written feedback to weekly homework assignments. At the Introductory level, these courses are linked to Alcumus, our online adaptive learning system.
- Our contest preparation courses (in blue on the map) are designed for students preparing for specific math contests. These courses cover more topics, but offer less depth, than our subject courses. These courses do not use textbooks, and students do not receive personalized feedback, although there are weekly practice problems.
Still unsure? Please contact us for a specific recommendation.
Subject Course Recommendations
Ready for Prealgebra
A student who has completed an elementary (through grades 5/6) math curriculum but not yet started prealgebra: Begin with Prealgebra 1, provided that the student passes the “Are you ready?” diagnostic test. (Students that do not pass this test are not yet ready for AoPS, and should consider using our Beast Academy materials.) A student with some exposure to Prealgebra topics might be able to start at Prealgebra 2 or Introduction to Algebra A.
Prealgebra 1
Prealgebra 2
Introduction to Algebra A
After Prealgebra
A student who has completed prealgebra (or equivalent middle-school math curriculum): Begin with Introduction to Algebra A, provided that the student passes the “Are you ready?” diagnostic test. A student who does not pass this test should expand his or her arithmetic and problem-solving skills by starting in Prealgebra 1 or Prealgebra 2.
Prealgebra 1
Prealgebra 2
Introduction to Algebra A
Some Algebra 1
A student who has completed a non-honors algebra 1 course or some of an honors algebra course: Begin with either Introduction to Algebra A or Introduction to Counting & Probability, depending on how well the student performs on the Introduction to Algebra A “Do you need this?” diagnostic test. Such students should also consider Introduction to Number Theory.
Introduction to Algebra A
Introduction to Counting & Probability
Introduction to Number Theory
After Algebra 1
A student who has completed an honors algebra 1 course: Begin with Introduction to Counting & Probability or Introduction to Algebra B -- these courses can be taken in either order. Such students could also begin by taking Introduction to Number Theory.
Introduction to Counting & Probability
Introduction to Number Theory
Introduction to Algebra B
After Geometry
A student who has completed geometry: The student should take the “Do you need this?” diagnostic tests for both Introduction to Algebra B and Introduction to Geometry. It is essential that students master the material in our Introduction to Algebra B course before proceeding to Introduction to Geometry, and similarly that they master Introduction to Geometry before proceeding to our intermediate-level courses. Students who do not pass one of the diagnostic tests should begin in that course. Students who pass both diagnostic tests should begin with Intermediate Algebra.
We also encourage all new students to “go back” and take Introduction to Counting & Probability or Introduction to Number Theory if desired.
Introduction to Algebra B
Introduction to Geometry
Intermediate Algebra
Introduction to Counting & Probability
Introduction to Number Theory
After Algebra 2
A student who has completed algebra 2: The student should take the “Do you need this?” diagnostic test for Introduction to Geometry, even if he or she has already taken a geometry course. It is essential that students master Introduction to Geometry before proceeding to our intermediate-level courses. Students who do not pass the diagnostic test should begin with Introduction to Geometry. Students who pass the diagnostic test should begin with Intermediate Algebra.
We also encourage all new students to “go back” and take Introduction to Counting & Probability or Introduction to Number Theory if desired.
Introduction to Geometry
Intermediate Algebra
Introduction to Counting & Probability
Introduction to Number Theory
After Precalculus
A student who has completed all regular high school math including precalculus: The student should take the “Are you ready?” and “Do you need this?” diagnostic tests for our Precalculus course. Our Precalculus contains much more content and is much more rigorous than most high-school courses, so most students who have taken regular high-school math through precalculus will want to start with our Precalculus course. If the student does not pass the “Are you ready?” diagnostic, start with Intermediate Algebra. If he or she passes the “Do you need this?” diagnostic, he or she may take Calculus.
We also encourage all new students to “go back” and take Introduction to Counting & Probability or Introduction to Number Theory if desired, and to continue with Intermediate Counting & Probability or Intermediate Number Theory when ready.
Intermediate Algebra
Precalculus
Calculus
Introduction to Counting & Probability
Introduction to Number Theory
Intermediate Counting & Probability
Intermediate Number Theory
Beyond Calculus
A student who has completed calculus: Because our curriculum has more depth and rigor than a typical curriculum, the student might benefit from “retaking” some of our core courses. The student should take the “Do you need this?” diagnostic from our Precalculus course. If he or she is unsuccessful, work backwards through our core curriculum, using the diagnostic tests to find the appropriate course. If he or she is successful with the Precalculus “Do you need this?” diagnostic, then any of our Advanced courses should be appropriate for that student.
Our Calculus course also contains much more material and a much higher level of formalism than most high-school “AP-style” calculus courses, so we recommend our Calculus course to a post-calculus student who wants a deeper understanding of the subject.
We also encourage all new students to “go back” and take Introduction to Counting & Probability or Introduction to Number Theory if desired, and to continue with Intermediate Counting & Probability or Intermediate Number Theory when ready.
Precalculus
Calculus
Olympiad Geometry
Mathematical Tapas
Group Theory Seminar
Group Theory
Introduction to Counting & Probability
Introduction to Number Theory
Intermediate Counting & Probability
Intermediate Number Theory
Contest Preparation Recommendations
Please select the specific contest below for advice on which contest prep course to take.
MATHCOUNTS/AMC 8
MATHCOUNTS and AMC 8 (and other middle school contests): Students who have not yet completed prealgebra are not yet ready for our contest prep courses, and should consider our Prealgebra 1 and Prealgebra 2 courses instead. All middle-school students should also consider our Introduction to Counting & Probability and Introduction to Number Theory courses -- both of these are very well-suited for middle-school contest preparation, as are the rest of our Introductory-level subject courses.
Students just getting started with middle-school math contests should consider our MATHCOUNTS/AMC 8 Basics course. Students with more consistent success in these contests (in particular, students who score 15+ on the AMC 8 or 25+ on Chapter-level MATHCOUNTS competitions) should consider our MATHCOUNTS/AMC 8 Advanced course.
MATHCOUNTS/AMC 8 Basics
MATHCOUNTS/AMC 8 Advanced
Prealgebra 1
Prealgebra 2
Introduction to Algebra A
Introduction to Counting & Probability
Introduction to Number Theory
Introduction to Algebra B
Introduction to Geometry
AMC 10
Our AMC 10 course is designed for students in grade 10 or below who have completed an algebra course and can currently score 80+ on the AMC 10 contest. Students not yet meeting this standard should instead consider Introduction to Algebra B, Introduction to Counting & Probability, or Introduction to Number Theory. Students who consistently score 120+ on the AMC 10 would probably not benefit from this course and should instead consider our AMC 12, AIME A, AIME B, Introduction to Geometry, or Intermediate Algebra courses.
AMC 10 Problem Series
Special AMC 10 Problem Seminar
AMC 12 Problem Series
AIME Problem Series A
AIME Problem Series B
Introduction to Counting & Probability
Introduction to Number Theory
Introduction to Algebra B
Introduction to Geometry
Intermediate Algebra
AMC 12
Our AMC 12 course is designed for high-school students who have completed an algebra and geometry course and can currently score 80+ on the AMC 12 contest. Students not yet meeting this standard should instead consider Introduction to Geometry, Introduction to Counting & Probability, Introduction to Number Theory, or one of our Intermediate courses. Students who consistently score 120+ on the AMC 12 would probably not benefit from this course and should instead consider our AIME A and AIME B courses.
AMC 12 Problem Series
Special AMC 12 Problem Seminar
AIME Problem Series A
AIME Problem Series B
Introduction to Counting & Probability
Introduction to Number Theory
Introduction to Geometry
Intermediate Algebra
Intermediate Counting & Probability
Intermediate Number Theory
Precalculus
AIME
Our AIME A and AIME B courses are designed for students who are very confident that they will qualify for the AIME contest. Students who consistently expect to score 8 or more on the AIME may instead wish to consider our WOOT program. AIME-qualifying students would also benefit from any of our Intermediate-level subject courses. Note: the AIME A and AIME B classes cover mostly the same topics but use entirely different problems. Students can take either or both classes, in either order.
AIME Problem Series A
AIME Problem Series B
Special AIME Problem Seminar A
Intermediate Algebra
Intermediate Counting & Probability
Intermediate Number Theory
Precalculus
WOOT
USAMO
USAJMO and USAMO: Students who have a strong chance of qualifying for the USA Junior Math Olympiad or USA Math Olympiad may wish to consider our year-round Worldwide Online Olympiad Training (WOOT) program. We strongly recommend that student complete our entire core curriculum or its equivalent, except for Calculus, before considering WOOT.
WOOT
Precalculus
Computer Programming
Little or No Experience
A student with little or no programming experience should start with our Introduction to Programming with Python course. This course assumes no prior programming experience; however, the student should have completed a prealgebra course.
Introduction to Programming with Python
Some experience
A student with some programming experience should consider our Intermediate Programming with Python course. See the “Are You Ready?” diagnostic for this course to determine if the student has sufficient programming experience for this course; if not, consider our Introduction to Programming with Python instead. A student whose programming experience is in a language other than Python might have to learn some basic Python on his or her own before starting Intermediate Programming with Python.
A student who is also more mathematically-experienced (at least through our Intermediate Algebra course or equivalent) can also consider our Java Programming course.
Introduction to Programming with Python
Intermediate Programming with Python
Java Programming with Data Structures
Extensive experience
A student with extensive programming experience might consider our Intermediate Programming with Python or Java Programming courses, especially if the student does not have experience with object-oriented programming or advanced data structures such as linked lists, stacks, queues, trees, and hash tables. Otherwise, advanced programmers would likely not benefit from our courses and should instead consider advanced training materials such as those on the USA Computing Olympiad website.