Classes & Timetable

Upcoming Courses


Effective methods in Algebra


'Algebra' commonly refers to Elementary Algebra, which involves arithmetic with numerical values and variables, or Abstract Algebra, which is algebra in full generality applicable to nearly any mathematical domain. To say that algebra is fundamental to mathematics would be an understatement — it is nearly impossible to separate algebra from any mathematical activity. In this course, we will explore algorithmic methods for solving problems in both linear and nonlinear algebra. We will examine how algorithms for fundamental tasks, such as solving systems of linear equations/polynomials, connect to diverse areas like geometry, topology, computational complexity, combinatorics, and probability. Students can expect to have a fun ride as they witness how simple algebraic procedures give rise to deep and unexpected connections across seemingly unrelated fields of mathematics. For more information, check out the course page!


This course will take place at UCL at 5pm on 19/03, 26/03 and 02/04. 


Group Theory


Ever wondered how flipping, rotating, and reflecting shapes can unlock deep mathematical insights? In this accessible introduction to group theory, we will use diagrams and hands-on activities to explore the hidden symmetries underlying puzzles, patterns, and structures in mathematics. Along the way, you’ll discover how group theory unifies seemingly different ideas—from algebraic equations to geometry and beyond—and learn to recognize and manipulate symmetries in a range of contexts. With a blend of clear visuals and interactive examples, this course offers a friendly path into abstract mathematics. No prior algebraic knowledge is required; just come with curiosity and a willingness to see the world in a new, more symmetrical light!


This course will take place at UCL at 5pm on 12/03, 19/03, 26/03 and 02/04. 


Past courses 

Rational points and Elliptic curves

How can we determine all right triangles with integer side lengths? Is the sum of the first n square numbers itself a square number? In this course, we will see how many natural problems in number theory give rise to so-called Diophantine equations. The solutions of these will correspond to points on curves, which we can then determine using intuitive geometric techniques. We will be particularly interested in elliptic curves, objects that pop up all throughout number theory as well as modern cryptography, and that mathematicians are still discovering new things about to this day!

Game Theory

This course will give you a taster of the area of maths called game theory. This is the study of how best to act in strategic situations which can indeed involve how best to play in certain games but stretches to any situation in which ‘players’ are in competition or collaboration with one another. We will see several applications throughout the course!


Click here for course materials

Introduction to Bayesian thinking

"If you toss a coin, the probability of getting heads is 0.5". Is this statement true? If you were to toss a coin 100 times and get 90 tails, would you still believe this statement? Or would the new data update your beliefs? And if so, how do we express this update mathematically? The Bayesian way of thinking is a formal process we use to update our beliefs about the world once we have observed some data. From the Monty Hall problem to alpha dog, Bayesian thinking is widely used not only in science but also in our everyday life. In this course we are going to learn about the basic logic behind Bayesian thinking through many interesting examples.

Number Theory

Ever wondered why prime numbers are so special or how some diophantine equations have puzzled mathematicians for centuries? In this course, we’ll introduce you to the fascinating world of number theory, covering topics such as modular arithmetic, the quadratic reciprocity law, and more.

Probability Theory

We develop the necessary techniques to solve the following problem: Consider a square checkerboard where the tiles are randomly coloured black or white. Estimate the number of black and white regions just from knowing the size of the board. While we will rigorously study key concepts from probability theory, the main goal of this course is to showcase the trial-and-error nature of mathematical problem solving, the power of inequalities, and the importance of shifting perspectives.

Fair Division and Voting Theory

The British electoral system is “First Past the Post”. In this system, many voters are voting strategically for one of the two most popular parties. Can there be a better voting system? One in which voters need not vote strategically, but can just vote according to their honest preferences? And what’s the best voting system, according to some mathematically precise definition of best? Come and find out in this course.

Heuristic Reasoning and the Art of Problem Solving

Polya’s famous mathematical exposition ‘How to Solve It’ written in 1945 enumerates the following four stages of problem-solving: 


He also states that for every difficult problem you can’t solve, there must exist an easier, more accessible related problem that you can solve: find it. While this might seem like elementary, obvious common sense, its utility in solving exciting mathematical problems of varying flavours is paramount and this is exactly what this course aims to demonstrate. In this course, we shall explore a selection of interesting conundrums and thought-provoking questions from a wide variety of topics to highlight the beauty, elegance and recreational pleasure they provide. As a skilled problem-solver, you can then employ these techniques of heuristic reasoning to unravel the magic of mathematics. 

The Maths of Knots

This course is an introduction to knots in mathematics and all the things we can do with them. We will approach this in a very intuitive and interactive way, with lots of pictures and examples! 

Click here for course materials 

Generating Functions

This course will focus on generating functions, a technique in maths that provides a way to package an infinite sequence or string of data into a single function. We will discover ways to manipulate and combine these functions, leading us to interesting identities in combinatorics and number theory (for example, the proof of the Basel problem) 

Click here for course materials