Curriculum
Topics we teach — and have taught
These pages summarise how Exact Science structures olympiad-style mathematics and programming: 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 lessonsMathematics
Olympiad techniques, number theory, combinatorics, and the habits of deliberate problem-solving.
Primary
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.
Opens on Problems.ccArithmetic 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.ccCombinatorics (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?
How many shapes?
Can you spot all the squares, rectangles, and triangles in these diagrams? These classic visual puzzles help develop spatial reasoning, geometry skills, and attention to detail. Perfect for primary students preparing for Maths Olympiads or challenges like the UKMT. Great for classroom warm-ups, enrichment activities, or home learning.
Patterns
Opens on Problems.ccSymmetry
Junior
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.ccParity
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.
Worst Case Scenario
Racing
Opens on Problems.ccSums and averages
Opens on Problems.ccEquations
Opens on Problems.ccPigeonhole 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.
Productivity
Opens on Problems.ccDivisibility
Opens on Problems.ccStrategies in Games
In the realm of game theory, a player's strategy refers to the choices they make within a context where the best possible result is influenced not solely by their individual decisions but also by the decisions made by others. The field primarily focuses on how a player's moves within a game can impact and influence the behavior and choices of other participants.
Opens on Problems.ccRiver Crossing Riddles
What is a river crossing puzzle? It is a type of puzzle in which the object is to carry items from one river bank to another, usually in the fewest trips. The difficulty of the puzzle may arise from restrictions on which or how many items can be transported at the same time, or which or how many items may be safely left together.
Opens on Problems.ccOlympiad BIDMAS
Opens on Problems.ccWeighing 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.
Water Pouring Puzzles
Water pouring puzzles (also called water jug problems, decanting problems, measuring puzzles, or Die Hard with a Vengeance puzzles) are a class of puzzle involving a finite collection of water jugs of known integer capacities (in terms of a liquid measure such as liters or gallons). Initially each jug contains a known integer volume of liquid, not necessarily equal to its capacity.
Opens on Problems.ccKnights 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.ccBase Numbers Problems
Opens on Problems.ccExponents (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.
Matchsticks
Opens on Problems.ccPaths
Opens on Problems.ccPatterns in Numbers and Digits
Problems on periodicity. Spot patterns in them!
Opens on Problems.ccRatio
Opens on Problems.ccIntermediate
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.ccAM–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.ccGCD 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.
Number Theory
Remainders of Squares and Cubes
Triangle Inequality
In this lesson, we will use an important result known as the Triangle Inequality:|x| + |y| ≥ |x + y|
Senior
Extreme Principle
Induction Principle
The Induction Principle is of great importance in discrete mathematics: Number Theory, Graph Theory, Enumerative Combinatorics, Combinatorial Geometry, and other subjects. Usually one proves the validity of a relationship f(n) = g(n) if one has a guess from small values of n.
Opens on Problems.ccInvariant Principle
Maximum and Minimum
Method of Colouring
A colouring proof is a sort of invariant proof which can mainly be used to prove that something isn’t possible. The essence of invariant proofs is to strip the problem of any unnecessary details and only keep the information that best describes why something isn’t possible, making it very easy to follow invariant proofs.
All levels
Geometry
Proofs, constructions, and spatial reasoning that go beyond standard school exams.
All levels
Axioms and Postulates of Euclid
Minimum and Maximum Problems in Geometry
Minimum and Maximum Problems in 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.
Circumcircle of a Triangle
Practice problems on circumcircles of triangles: centers, angles, chords, and construction. Ideal for Olympiad geometry and advanced learners.
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.
Morley's Triangle
Opens on Problems.ccTangent
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
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.
Arithmetic Operations
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.
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:
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:
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).
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:
Boolean in Python
Cascading Conditional Statements in Python
Conditional Statements in Python
Logical Operators
Nested Conditions
Turtle: Pong Game
Build Pong in Python with Turtle Graphics
Other topics
Additional topics from past and current programmes.
Returns
Volatility and Risk
Computing Maximum Drawdown
Deviations from Normality
Downside Measures: SemiDeviation, VaR and CVaR
The Efficient Frontier - Part I
Efficient Frontier - Part II - Running the Optimizer
Finding the Max Sharpe Ratio Portfolio
Lack of Robustness of the Markowitz procedure and the GMV portfolio
Limits of Diversification
Implementing Portfolio Insurance (CPPI) and Drawdown Constraints
Random Walk Generation
Interactive Plotting and Monte Carlo Simulations of CPPI
Present Value of Liabilities and Funding Ratio
Simulating Interest Rate Changes and Liability Hedging
GHP Construction with Duration matching
Monte Carlo Simulation of Prices of Coupon-Bearing Bond using CIR
Naive Risk Budgeting Strategies between PSP and GHP
Monte Carlo simulation of Dynamic Risk Budgeting between PSP and GHP
Doubling the Median
Learn how to apply the method of doubling the median in triangle geometry. Includes proofs and ratio problems involving triangle medians.
Opens on Problems.cc