Curriculum

Topics we teach — and have taught

These pages summarise how Exact Science structures olympiad-style mathematics: the core ideas, worked theory, and problem sets we have used in classes over the years. Many topics now also have interactive practice on Problems.cc.

Browse interactive lessons

Mathematics

Olympiad techniques, number theory, combinatorics, and the habits of deliberate problem-solving.

Primary

MathematicsPrimaryInteractive lesson

Magic Square

This is a ‘magic’ square.Can you see what properties it has?All row totals, all column totals, two diagonal totals are all the same!Moreover, no number should be repeated.

MathematicsPrimaryInteractive lesson

Arithmetic Operations (Primary)

Math is more than numbers — it's about patterns, logic, and a little bit of creative play. This collection of arithmetic and bracket puzzles is designed to challenge young minds while keeping problem solving fun and engaging. From inserting the right operations between digits to rearranging numbers with clever use of brackets and basic arithmetic, these puzzles promote flexible thinking, mental calculation, and deeper mathematical understanding.

Opens on Problems.cc
MathematicsPrimaryInteractive lesson

Balance scale puzzles

Weighing puzzles where each use of the scale must extract the most useful information.

MathematicsPrimaryInteractive lesson

Chessboard colouring

Colouring and parity arguments on a board that help students prove what is possible, and what is impossible, without checking every case.

MathematicsPrimaryInteractive lesson

Clock hours and minutes

Exploring angles between clock hands to connect turns, fractions of a circle, and careful measurement of time.

MathematicsPrimaryInteractive lesson

Colourings

Colouring boards, maps, and cubes to uncover patterns, parity, and invariants that survive every move.

MathematicsPrimaryInteractive lesson

Column arithmetic restoration

Restoring missing digits in written sums so place value, carrying, and careful checking become visible.

MathematicsPrimary

Combinatorics (Primary)

What is combinatorics? Combinatorics is the branch of mathematics that deals with counting — not just by listing, but by using smart rules and patterns to calculate the number of ways something can happen. We’ll explore questions like: • How many different outcomes are possible when making choices? • What’s the difference between arrangements (where order matters) and selections (where it doesn’t)? • How can we use multiplication, permutations, and combinations to solve these problems?

MathematicsPrimaryInteractive lesson

Magic squares

Number grids where rows, columns, and diagonals share a sum, revealing structure through careful filling.

MathematicsPrimaryInteractive lesson

Matchstick equations

False equations made of matchsticks that become true with a single carefully chosen move.

MathematicsPrimaryInteractive lesson

Matchstick problems

Shape puzzles where you move, add, or remove matchsticks to change a figure under clear rules.

MathematicsPrimaryInteractive lesson

Patterns

Opens on Problems.cc
MathematicsPrimaryInteractive lesson

Patterns in numbers and digits

Sequence and digit puzzles that train children to hunt for rules, test them, and say clearly when a pattern holds.

MathematicsPrimaryInteractive lesson

River crossing riddles

Classic boat-and-bank puzzles where constraints force careful planning through a small state space.

MathematicsPrimary

Symmetry

MathematicsPrimaryInteractive lesson

Tower of Hanoi

The classic disk-and-peg puzzle that makes recursion, planning, and stepwise structure visible.

MathematicsPrimaryInteractive lesson

Water pouring puzzles

Measuring jug puzzles that turn filling, emptying, and pouring into a clear map of states and choices.

Junior

MathematicsJuniorInteractive lesson

Ages

It is convenient to solve these problems through an equation. The main thing to remember is that the age difference always remains the same.‍

Opens on Problems.cc
MathematicsJunior

Parity

You, of course, know that there are even and odd numbers.Even numbers are those that are divisible by 2 without a remainder (for example, 2, 4, 6, etc.). Each such number can be written as 2K by choosing a suitable integer K (for example, 4 = 2 x 2, 6 = 2 x 3, etc.).Odd numbers are those that, when divided by 2, leave a remainder of 1 (for example, 1, 3, 5, etc.). Each such number can be written as 2K + 1 by choosing a suitable integer K (for example, 3 = 2 x 1 + 1, 5 = 2 x 2 + 1, etc.).Even and odd numbers have remarkable properties:a) the sum of two even numbers is even;b) the sum of two odd numbers is even;c) the sum of even and odd numbers is odd number.

MathematicsJunior

Worst Case Scenario

MathematicsJuniorInteractive lesson

Racing

Opens on Problems.cc
MathematicsJuniorInteractive lesson

Sums and averages

Opens on Problems.cc
MathematicsJuniorInteractive lesson

Equations

Opens on Problems.cc
MathematicsJunior

Pigeonhole principle

Pigeonhole Principle (Dirichlet's principle) is a simple, intuitive, and often useful method for proving statements about a finite set. This principle is often used in discrete mathematics, where it establishes a connection between objects (“rabbits”) and containers (“cells”) when certain conditions are met.‍

MathematicsJuniorInteractive lesson

Productivity

Opens on Problems.cc
MathematicsJuniorInteractive lesson

Divisibility

Opens on Problems.cc
MathematicsJuniorInteractive lesson

Olympiad BIDMAS

Opens on Problems.cc
MathematicsJunior

Weighing Puzzles

A balance puzzle or weighing puzzle is a logic puzzle about balancing items—often coins—to determine which holds a different value, by using balance scales a limited number of times. These differ from puzzles that assign weights to items, in that only the relative mass of these items is relevant.

MathematicsJuniorInteractive lesson

Knights and Liars

There are two types of inhabitants on the Island of Knights and Liars. Knights always tell the truth. Liars always lie.

Opens on Problems.cc
MathematicsJuniorInteractive lesson

Base Numbers Problems

Opens on Problems.cc
MathematicsJuniorInteractive lesson

Cryptarithms

Letter-digit puzzles in the SEND + MORE = MONEY tradition, where each letter stands for a digit under strict rules.

MathematicsJuniorInteractive lesson

Double-lock cryptography

A story of two locks and shared secrets that makes commuting operations concrete for young mathematicians.

MathematicsJunior

Exponents (Last Digit)

Explore deep-thinking maths problems involving last digits, powers, prime numbers, and digit tricks. Perfect for ages 11–16 and ideal for UKMT, AMC, and GCSE enrichment. Includes Olympiad-style theory with modular arithmetic, Diophantine equations, and factorial analysis.

MathematicsJuniorInteractive lesson

Game theory and strategies

Simple two-player games where the real work is finding a strategy, not winning one lucky round.

MathematicsJuniorInteractive lesson

Knight's tour

A chess knight visits every square of a board exactly once, turning a game move into a path problem.

MathematicsJuniorInteractive lesson

Maximum non-attacking pieces

Chessboard placement problems that ask how many pieces can share a board without attacking each other, and why that number is best possible.

MathematicsJuniorInteractive lesson

Number placement on graphs

Placing numbers on vertices or edges so sum and adjacency rules hold, turning constraints into clear reasoning.

MathematicsJuniorInteractive lesson

Paths

Opens on Problems.cc
MathematicsJuniorInteractive lesson

Ratio

Opens on Problems.cc

Intermediate

MathematicsIntermediateInteractive lesson

Mathematics in Chess

A mathematical chess problem is a mathematical problem which is formulated using a chessboard and chess pieces. These problems belong to recreational mathematics. The most well-known problems of this kind are the eight queens puzzle and the knight's tour problem, which have connection to graph theory and combinatorics. Many famous mathematicians studied mathematical chess problems, such as, Thabit, Euler, Legendre and Gauss. Besides finding a solution to a particular problem, mathematicians are usually interested in counting the total number of possible solutions, finding solutions with certain properties, as well as generalization of the problems to N×N or M×N boards.‍‍

Opens on Problems.cc
MathematicsIntermediateInteractive lesson

AM–GM Inequalities

The Arithmetic–Geometric Mean Inequality:If a ≥ 0, b ≥ 0, then(a + b)/2 ≥ √(ab) ≥ b.Equality holds if and only if a = b.‍

Opens on Problems.cc
MathematicsIntermediateInteractive lesson

Flying rook

An unusual rook tour that asks students to plan a complete route under altered movement rules, with a clear Hamiltonian flavour.

MathematicsIntermediate

GCD and LCM

In this lesson, we will work with the concepts of the greatest common divisor (GCD) and least common multiple (LCM), as well as related problem-solving techniques. The GCD of two numbers is the largest number that divides both of them without a remainder. The LCM of two numbers is the smallest number that is a multiple of both.

MathematicsIntermediate

Number Theory

MathematicsIntermediate

Remainders of Squares and Cubes

MathematicsIntermediate

Triangle Inequality

In this lesson, we will use an important result known as the Triangle Inequality:|x| + |y| ≥ |x + y|

Geometry

Proofs, constructions, and spatial reasoning that go beyond standard school exams.

All levels

Geometry

Axioms and Postulates of Euclid

Geometry

Minimum and Maximum Problems in Geometry

Minimum and Maximum Problems in Geometry

Geometry

Challenging Triangle Congruence

Most students are already familiar with the three standard triangle congruence rules taught in school: SSS (Side-Side-Side), SAS (Side-Angle-Side), and ASA (Angle-Side-Angle). These form the foundation of geometry and are commonly seen in classroom exercises and exams, including the GCSE Mathematics syllabus.But what happens when we encounter problems that don’t follow these standard patterns directly? Can we still prove triangle congruence using medians, altitudes, angle bisectors, or partial side information?In this section, we explore a selection of challenging triangle congruence problems that require deeper reasoning and clever constructions. These problems go beyond the textbook basics and are perfect for students preparing for Olympiad-style questions, GCSE extensions, or anyone wanting to sharpen their proof skills.

Geometry

Circumcircle of a Triangle

Practice problems on circumcircles of triangles: centers, angles, chords, and construction. Ideal for Olympiad geometry and advanced learners.

Geometry

Inscribed Quadrilateral

Learn the theory and solve challenging problems about inscribed quadrilaterals. Perfect for math Olympiad prep, this page covers trapezoids, kites, and key geometric proofs.

GeometryInteractive lesson

Morley's Triangle

Opens on Problems.cc
Geometry

Tangent

Explore key theorems about tangents to circles and solve problems involving radii, angles, and geometric constructions with tangents.

Programming

Python from first programs through to the ideas we use in maths-and-coding classes.

All levels

Programming

Intro to Python

This course will focus on learning programming using the Python language . This is a modern programming language that works on all common operating systems.

Programming

Arithmetic Operations

Programming

Data Types

So, we see that Python can work with at least two types of data - numbers and strings. Numbers are written as a sequence of digits; there may also be a minus sign in front of the number, and strings are written in single quotes. 2 and '2' are different objects, the first object is a number and the second is a string. The + operation works differently for integers and for strings: for numbers it is addition, and for strings it is concatenation.

Programming

Type Conversion

Sometimes it is useful to write an integer as a string. And, conversely, if a string consists of numbers, then it is useful to represent this string as a number so that you can then perform arithmetic operations with it. For this purpose, functions of the same name as the type name are used, that is, int, float, str. For example, int('123') will return the integer 123, and str(123) will return the string '123'. Example:

Programming

Data Input: input() function

The example above is inconvenient because the source data for the program is specified in the program text, and in order to use the program for another triangle, it is necessary to correct the program text. This is inconvenient; it is better that the program text does not change, and the program asks the user for the data necessary to solve the problem, that is, it asks for the values ​​of two initial variables a and b. To do this, we will use the function input(), which reads a line from the keyboard and returns the value of the read line, which we will immediately assign to the variables a and b:

Programming

Data Output: print() function

The function print can output not only the values ​​of variables, but also the values ​​of any expressions. For example, the entry print(2 + 2 ** 2).

Programming

Our First Program

Let's calculate the length of the hypotenuse of a right triangle from its legs. Launch a text editor and write the following text:

Programming

Boolean in Python

Programming

Cascading Conditional Statements in Python

Programming

Conditional Statements in Python

Programming

Logical Operators

Programming

Nested Conditions

Programming

Turtle: Pong Game

Build Pong in Python with Turtle Graphics

Other topics

Additional topics from past and current programmes.