Browse every lesson.

  • Python
  • Mathematics
  • Machine Learning

Explore 338+ lessons across Python, Mathematics, and Machine Learning. Every lesson enforces genuine mastery - no skipping ahead, no 70% passes, no gaps.

Python

8 modules · 120 lessons

Introduction to Python

2 units · 17 lessons

Python basics

9 lessons

Python basics: View unit

Write and run your first Python: printing output, comments and keywords, why indentation is part of the syntax, and how a variable refers to an object.

Learning Python in Nodeledge

Learn the difference between the Python Editor and Console in Nodeledge and how to use each for writing, running and submitting Python code for interactive questions.

Introduction to Python

Gain a clear understanding of what Python is, how its structure (including syntax and semantics) defines valid programs, and how the Python interpreter reads and executes instructions sequentially.

The Python print() function

Preview

Learn how to use Python's print() function to display text and values, include multiple arguments, and customise output formatting using the sep and end arguments.

Comments

Learn how to use single and multi-line comments in Python to document code effectively and understand best practices for writing clear, useful comments that enhance code readability and maintainability.

Keywords in Python

Understand what Python keywords are, recognise their role in structuring code, and identify common mistakes such as misspelling, omitting or misusing keywords that lead to syntax errors.

Indentation in Python

Learn how Python relies on indentation to define code blocks, understand how correct and consistent indentation is essential in structures like if statements and loops, and see how the pass statement can be used as a placeholder to avoid errors in empty blocks.

Introduction: variables, assignment, data types and objects

Understand variables as references to objects in Python, see how assignment works, recognise fundamental data types such as integers, floats, strings, booleans and lists, and that everything is treated as an object.

Python objects

Learn how Python treats everything as an object, how to identify an object's type with type(), and how to access and use object attributes and methods via dot notation.

Variables and assignment

Learn how to create and reassign variables using the assignment operator in Python, understand dynamic typing and how variable types can change at runtime, and apply the rules and conventions for naming variables effectively.

Basic data types

8 lessons

Basic data types: View unit

The types Python builds everything else from: integers, floats, booleans and strings, formatting with f-strings, arithmetic, and converting between types.

Integers

Learn how to define integer values in Python by assigning whole numbers, including both positive and negative numbers, and use underscores to improve the readability of large integers.

Floats

Learn how to define floating-point numbers in Python using decimal and scientific notation, understand why floats can be imprecise due to their binary representation, and use the round() function to control the number of decimal places displayed.

Booleans

Understand how Python represents truth values with the boolean constants True and False, how to use the logical operators and, or and not to combine or negate boolean values, and how operator precedence affects the evaluation of complex boolean expressions.

Strings

Preview

Learn how to create strings using different types of quotes, combine and repeat strings with operators, and use basic string methods for transforming and searching text in Python.

f-strings

Learn how to use Python f-strings to embed variables and expressions directly into strings for clear and concise output formatting.

Basic arithmetic

Understand how to use Python's arithmetic operators to perform calculations, combine them following operator precedence, and compute integer quotients and remainders using floor division and modulus.

Type conversions

Understand how to convert between Python types using built-in functions, including how implicit and explicit conversions work and the rules for converting between strings, integers, floats, and booleans.

Activity: user profiles

Practise working with strings, integers, floats and booleans by writing four functions that fill in a customer's name, birth year, account balance and promotion eligibility.

Data structures

4 units · 25 lessons

Lists

7 lessons

Lists: View unit

Python's ordered, mutable sequence: creating lists, indexing them from either end, and updating, adding to, joining and deleting from them.

Lists

Understand what lists are in Python, how to create them using literal values of various types including nested lists, and how to determine their length using the len() function.

List indexing

Preview

Learn how to use zero-based and negative indexing to access elements in a Python list and understand what causes an IndexError when accessing invalid indices.

Updating list elements

Learn how to update individual elements or slices of a Python list using indexing and slicing, including replacing sections with iterables of different lengths.

Add elements to a list

Learn how to add elements to Python lists using the append, extend and insert methods to control both the content and position of inserted items.

List concatenation

Learn how to combine two or more Python lists into a new list using the + operator, preserving the order of elements and leaving the original lists unchanged.

Delete elements from a list

Learn how to remove elements or slices from a Python list using del, .pop(), .remove(), and slice assignment to modify the list's contents.

Activity: playlist builder

Learn how to use Python lists and their associated methods to create, modify, and combine playlists by adding, updating, and removing songs.

Tuples

4 lessons

Tuples: View unit

Python's immutable sequence: writing tuple literals, indexing and slicing them as with lists, and why immutability does not reach the mutable objects stored inside.

Tuples

Understand what makes a tuple distinct from a list in Python and learn how to correctly create tuples of any size using literal values, including cases with no elements or only one element.

Tuple indexing, length and slicing

Learn how to access individual elements in a tuple using indexing, determine its length with len(), and retrieve subsets of elements through slicing, using the same syntax as with lists.

Tuple immutability

Preview

Understand that while tuples in Python are immutable containers whose elements cannot be changed, added, or removed, the contents of mutable objects stored within a tuple can still be modified, which can lead to unexpected side effects.

Activity: travel itinerary builder

Develop a Python program that allows users to build, update and customise a travel itinerary by adding destinations, activities and planning short trips.

Dictionaries

8 lessons

Dictionaries: View unit

Python's mapping from keys to values: looking a value up, testing membership, adding and removing entries, iterating over keys and values, insertion order, and merging two dictionaries.

Dictionaries

Learn how Python dictionaries store data as mutable key-value pairs, see how to create dictionaries with literal values, and use the len() function to determine their size.

Accessing values in a dictionary

Learn how to retrieve values from a Python dictionary using both square bracket notation and the .get() method, including how to handle missing keys without causing errors.

Dictionary membership

Learn how to use the in and not in keywords to check whether a given key exists in a Python dictionary.

Modifying a dictionary

Preview

Learn how to update, add, and delete dictionary entries in Python using assignment and the del statement, as well as the rules that determine which objects can be used as keys.

Iterating over a dictionary

Learn how to iterate over a dictionary's keys, values, or key-value pairs in Python using built-in methods to access and process the information efficiently.

Dictionary insertion order

Python dictionaries preserve the order in which items are inserted, so iterating over a dictionary yields key-value pairs in insertion order rather than in an arbitrary sequence.

Merging two dictionaries

Learn how to merge the key-value pairs of two dictionaries in Python using the .update() method, which adds new keys and overwrites existing ones in place.

Activity: library system

Practise implementing a simple Python-based library management system by writing code to check book availability, add new books, lend books, list available books, and merge library collections.

Sets

6 lessons

Sets: View unit

An unordered collection with no duplicates: adding and removing elements, iterating, union, intersection and difference, and testing whether one set sits inside another.

Sets

Understand the unique, unordered nature of Python sets, how to create them from various iterables, and how to determine their size using the len() function.

Add and remove elements from a set

Learn how to add elements to a set and remove them using .remove() or .discard(), understanding how each method handles missing elements and duplicates.

Iterating over a set

Learn how to use a for loop to access each element in a Python set, noting that the elements may appear in any order due to the set's unordered nature.

Set union, intersection and difference

Preview

Learn how to use the union, intersection and difference operations to combine, compare and subtract sets in Python using both methods and operators.

Subsets and supersets

Learn how to determine whether one set is a subset or superset of another, including proper subsets and supersets, and use Python operators to perform these set comparisons.

Activity: nature reserve

Practise using Python lists and sets to track unique animal species, update records, find overlaps and differences between groups, and perform calculations with animal data in a nature reserve context.

Conditional logic & comparisons

2 units · 13 lessons

Conditional logic

5 lessons

Conditional logic: View unit

How a program chooses between one course of action and another: if to run a block only when a condition is true, elif and else for the alternatives, conditions nested inside one another, and the ternary operator for choosing a value on a single line.

Conditional logic

Preview

Learn how to control program flow in Python using if and else statements, applying correct indentation to execute different code blocks based on whether conditions are true or false.

elif

Learn how to use the elif statement in Python to handle multiple branching conditions in decision-making, ensuring only the first true condition executes its associated code block.

Nested conditionals

Understand how to construct and interpret nested conditionals in code to handle complex decision-making scenarios that depend on multiple related conditions.

Conditional ternary operator

Learn how to use Python's conditional ternary operator to assign values based on a condition in a concise, readable way.

Activity: adventure game decision engine

Learn how to build a decision engine for a text-based adventure game by writing logic that checks player health, inventory, and weather conditions to determine the next appropriate action.

Comparisons

8 lessons

Comparisons: View unit

Expressions that evaluate to True or False: the relational operators on numbers, == for equal values against is for the same object, None, in for membership, and which values count as true in their own right.

Variables and object references

Preview

Understand that variables in Python act as labels referencing objects in memory, not as containers of data, and see how functions like id() reveal whether different variables point to the same object.

Comparing numbers with relational operators

Learn to use Python's relational operators to compare numeric values and interpret the resulting boolean outcomes.

Identity and value equality of objects

Learn the difference between object value equality using == or != to compare stored values and object identity equality using is or is not to determine whether two variables refer to the same object in memory.

None

Understand the meaning of None in Python, its singleton nature, its type, how to compare objects to None using is, and its behaviour in boolean contexts.

Membership testing

Learn how to use the in and not in operators in Python to check whether a value is present in a list, tuple, set, string or as a key in a dictionary, based on value equality.

Creating booleans from expressions

Learn how to construct complex boolean expressions in Python by chaining multiple comparisons and mixing logical and membership operators to evaluate compound conditions clearly and concisely.

Truthiness and falsiness

Learn how Python determines the truth value of objects in boolean contexts, distinguishing between "truthy" and "falsy" values such as zero, empty collections, and None.

Activity: the vault of secrets

Work through a sequence of Python programming challenges that progressively unlock levels of a secret vault, requiring careful validation of both logic and code output at each stage.

Iteration

3 units · 14 lessons

Sequences

4 lessons

Sequences: View unit

What lists, tuples and strings have in common: slicing with a start, stop and step, and unpacking a sequence into separate variables in one statement.

Sequences

Understand what defines a sequence in Python, including how to measure its length, access elements using zero-based and negative indexing, and distinguish between homogeneous and heterogeneous types.

Slicing sequences

Preview

Learn how to extract subsequences from lists, tuples or strings in Python using the slicing syntax with different start and stop indices, creating new sequences without modifying the originals.

Slicing sequences with a step

Learn how to use Python sequence slicing with a step value to select elements at fixed intervals or in reverse order.

Unpacking sequences

Learn how to assign multiple variables at once by unpacking the elements of a sequence such as a tuple, list or string directly in Python.

Loops

5 lessons

Loops: View unit

Repeat work over a collection or until a condition fails: for and while loops, break and continue, and loops nested inside one another.

for loops

Preview

Understand how Python's for loop iterates over elements in sequences such as lists, tuples and strings, and how the range() function can control loop repetition for a specified number of iterations.

while loops

Understand how to use Python while loops to repeatedly execute code until a specified condition is met, and recognise the importance of updating loop variables to avoid infinite loops.

Loop control flow

Learn how to control loop execution in Python using the continue statement to skip iterations, the break statement to exit early, and the else clause to run code only if the loop completes without a break.

Nested for loops

Learn how a nested for loop executes by having the inner loop complete all its iterations for each run of the outer loop, and use this structure to process complex data like lists of lists.

Activity: space expedition planner

Write Python code to organise a space expedition by generating a task list, tracking supplies, assigning crew tasks, and summarising mission activities.

Comprehensions

5 lessons

Comprehensions: View unit

Build a collection from an existing one in a single expression: list comprehensions with and without a condition, and the set and dictionary forms.

List comprehensions

Preview

Learn how to use list comprehensions in Python to construct new lists by applying an expression to each item in an iterable in a concise and readable way.

List comprehensions with conditional logic

Learn how to use list comprehensions with if and if-else statements in Python to filter elements or apply different logic to each item based on a condition.

Set comprehensions

See how to use set comprehensions in Python to generate sets from iterables with optional filtering and transformation, producing collections of unique values.

Dictionary comprehensions

Learn how to construct dictionaries concisely using dictionary comprehensions with optional filtering and key or value transformations based on iterables or existing dictionaries.

Activity: zombie apocalypse

Apply programming techniques to solve practical problems by writing Python code that locates safe zones, distributes supplies, constructs barricades, and plans evacuation routes in a simulated zombie apocalypse scenario.

Functions

2 units · 16 lessons

Built-in functions

6 lessons

Built-in functions: View unit

The functions Python gives you without importing anything: sorted(), the numerical aggregations, all() and any(), and enumerate() for index and value together.

Built-in functions

Understand what built-in functions in Python are and see how to use the abs() function to find the absolute value of numbers regardless of their sign.

Sorting numbers and strings with sorted()

Learn how to use Python's sorted() function to create sorted lists of numbers or strings in ascending or descending order, and see how case sensitivity affects the sorting of strings.

Built-in numerical aggregation functions

Learn how to use Python's built-in min(), max(), and sum() functions to efficiently find the smallest, largest, and total values in collections of numbers.

The all() and any() functions

Learn how to use Python's built-in all() and any() functions to determine whether all or any elements in an iterable are true, and understand the behaviour of these functions with different types of elements and empty iterables.

The enumerate() function

Preview

Learn how the enumerate() function in Python allows simultaneous iteration over items and their indices, with the option to specify a custom starting index for the counter.

Activity: treasure hunt

Practise writing Python code to calculate distances, assign values and difficulty levels, interpret clues, and summarise locations in a treasure hunt scenario.

User-defined functions

10 lessons

User-defined functions: View unit

A function is a named block of code you call with inputs. Its signature names the arguments, defaults let a caller leave some out, and a return value hands something back. Then scope, docstrings, lambdas, and recursion - a function that calls itself.

Functions

Understand how functions allow code to be organised into reusable blocks, how to call both built-in and user-defined functions with arguments, and how to use or store the values functions return.

Function signatures and arguments

Learn how to read and interpret a function's signature in Python, distinguish between required and optional parameters, and use both positional and keyword arguments to call functions correctly.

User-defined functions

Preview

Learn how to define and use functions in Python by specifying parameters, implementing logic in the function body, and returning values to make code reusable and robust against invalid input.

Functions with default arguments

Learn how to define Python functions with default argument values so that some parameters can be omitted during a function call, and understand the rule requiring all non-default parameters to precede those with default values to prevent ambiguity.

Function return types

Understand how Python functions can return no value (resulting in None), use multiple return statements to exit at different points with specific values, and return multiple values at once as tuples, including best practices for consistency and clarity.

Function scope

Understand how local variables exist only within a function's scope, how global variables are accessible throughout a program, and how to correctly access or modify global variables from within functions using the global keyword.

Function documentation

Learn how to document Python functions using docstrings, describe their parameters and return values clearly, and access this documentation programmatically or with the built-in help() function.

Lambda functions in Python

Learn how to define anonymous, single-expression functions using the lambda keyword in Python and apply them directly as inline functions.

Introduction to recursion

Preview

Learn how recursion allows a function to solve problems by calling itself with simpler inputs, how base cases prevent infinite loops, and how recursive definitions can elegantly capture problems like factorial and Fibonacci sequences.

Activity: simple voting system

Learn how to implement a simple voting system in Python by writing functions to register votes, count them, determine the winner, and summarise the election results.

Object-oriented programming (OOP)

1 unit · 5 lessons

Custom classes

5 lessons

Custom classes: View unit

A class is a template for objects that each hold their own data. Write one with the class keyword, set an instance up with the __init__() method, and give every instance its own attributes and methods.

Introduction to object-oriented programming

Learn how classes define the structure and behaviour of objects in Python, how to create independent instances from a class, and how each instance maintains its own separate state.

Custom classes

Learn how to define a custom class in Python using the class keyword and apply CamelCase naming conventions to ensure clarity and consistency in your code.

The __init__() method

Preview

Learn how Python's __init__() method initialises new class instances, how to pass arguments to customise instance creation, and the role of self in giving access to the object being constructed.

Instance attributes

Learn how to define instance attributes in Python classes by assigning values to self within the __init__() method, and how to access or modify these attributes for each object using dot notation.

Instance methods

Learn how to define and use instance methods in Python classes to operate on object data, including how to access attributes with self, pass additional arguments, return values, and call one method from another within the same class.

Extras

2 units · 13 lessons

Modules and imports

3 lessons

no page yet

Use code written elsewhere: importing from the standard library, the variants and aliasing that control what a name refers to, and third-party libraries.

Modules and imports

Understand how Python modules and packages organise code for reuse, and learn to import and use functions from the Python standard library in your own programmes.

Import variants and aliasing

Learn how to import Python modules using aliases with the as keyword to simplify code and how to import specific functions or constants directly from a module, enabling cleaner and more concise usage within your scripts.

Third-party libraries

Learn how to import and use third-party Python libraries in your code to efficiently access advanced features beyond the standard library, and find guidance for their use through documentation and help functions.

Assorted extras

10 lessons

Assorted extras: View unit

The parts of Python that belong to no single topic: mutability, augmented assignment, type conversions, user input, exceptions, number systems, bitwise operators and precedence.

Mutability and immutability

Learn how to distinguish between mutable and immutable objects in Python by understanding how each type handles changes to its internal state after creation.

Augmented assignment operators

Learn how to use augmented assignment operators in Python to efficiently update variable values, especially for simplifying operations within loops.

Type conversions with list(), tuple() and set()

Learn how to convert between different Python data structures using the built-in list(), tuple() and set() functions and understand how these conversions affect properties like uniqueness and order.

In-place operations

Understand how in-place operations modify mutable objects directly in their current memory location without creating new objects, and see the consequences of assigning the result of such methods.

Exceptions and try-except

Preview

Learn how Python raises exceptions for runtime errors, how to use try-except blocks to prevent crashes, and why catching specific exception types results in safer and more reliable error handling.

Exception hierarchy and propagation

Learn how Python matches exceptions in multiple except blocks based on their order and hierarchy, why specific exception types should appear before general ones, and how exceptions propagate up the call stack until handled.

Accepting user input with input()

Learn how to use the input() function to receive user input as a string and correctly convert input values to numbers with int() or float() for arithmetic operations.

Number systems

Learn how binary, octal, and hexadecimal number systems work, how to convert between them and decimal, and how to use Python to represent and process numbers in these bases.

Bitwise operators

Preview

Learn how bitwise operators manipulate numbers at the level of individual bits using AND, OR, XOR, NOT and shift operations, and how these operations correspond to changes in binary representation and integer values.

Operator precedence and binding

Learn how Python decides the order in which operators are evaluated in expressions, distinguishing between operator precedence (when operators have different priorities) and binding or associativity (when operators have equal precedence), and correctly apply these rules to both unary and binary operators.

Libraries for data science and machine learning

2 units · 17 lessons

NumPy

8 lessons

NumPy: View unit

The array that numerical Python is built on: shape and reshaping, indexing and slicing, element-wise operations, aggregating along an axis, and broadcasting.

Introduction to NumPy

Understand what NumPy arrays are, why they are used for efficient numerical computation, and how to create 1D and 2D arrays in Python using NumPy functions.

NumPy array attributes & inspection

Understand how NumPy arrays strictly store data of a single, fixed data type for efficiency, and learn to inspect an array’s type, shape, number of dimensions, and total size using key array attributes.

Reshaping & manipulating NumPy arrays

Learn how to change the shape of NumPy arrays using .reshape(), ensuring the total number of elements stays the same, and use -1 to let NumPy automatically infer one dimension when reshaping or flattening arrays.

Indexing & slicing NumPy arrays

Learn how to index and slice NumPy arrays to access individual elements, rows, columns, and subarrays across any number of dimensions, understanding the roles of integers and colons as indices.

Selecting NumPy array elements by conditions

Learn how to select elements from a NumPy array that meet specified conditions by creating and applying boolean masks, including combining multiple conditions using bitwise operators for complex filtering.

Element-wise operations & universal functions

Learn how NumPy applies arithmetic and comparison operations element-wise to arrays, how universal functions (ufuncs) perform fast vectorised operations on arrays of any shape, and how boolean arrays result from element-wise comparisons.

Array operations: aggregations & axis

Learn how to use NumPy aggregation functions to summarise whole arrays or reduce them along one or more axes, allowing flexible calculation of sums, means and other statistics across specific array dimensions.

Broadcasting NumPy arrays

Preview

Learn how NumPy broadcasting enables element-wise operations between arrays of different shapes, understand the rules that determine when broadcasting is possible, and see how techniques like using keepdims=True during reduction operations ensure broadcast compatibility.

Pandas

9 lessons

Pandas: View unit

Labelled data in one and two dimensions: importing and exporting, selecting and filtering rows, handling missing values, transforming columns, and grouped aggregation.

Pandas Series - 1D labelled data

Learn how Pandas Series store one-dimensional labelled data, how to create Series from lists, dictionaries or arrays, and how to access elements by position or by label using .iloc and .loc.

Pandas DataFrames - 2D labelled data

Learn how to create Pandas DataFrames from dicts or lists, inspect their content and structure using built-in methods, and access key metadata such as shape, columns and data types.

Importing & exporting data in Pandas

Learn how to load tabular data from CSV files into Pandas DataFrames using pd.read_csv(), and how to export DataFrames back to CSV format using .to_csv().

Indexing and selecting Pandas DataFrames

Learn how to select columns from a Pandas DataFrame using label-based access, use .iloc for positional indexing and .loc for label-based indexing of rows and columns.

Conditional selection & filtering in Pandas

Learn how to filter Pandas DataFrames by applying single or multiple conditions using boolean masks and logical operators to select specific rows and columns.

Missing data in Pandas

Learn how to detect, count and locate missing values in Pandas DataFrames, then handle them by either dropping incomplete rows or columns or by filling missing entries with appropriate replacement values using built-in methods and parameters.

Basic DataFrame transformations in Pandas

Learn how to rename columns, set DataFrame indices, change column data types for analytical correctness and efficiency, and create or transform columns using arithmetic and string operations in Pandas.

Custom transformations with Pandas .apply()

Learn how to use the Pandas .apply() method to execute custom functions on DataFrame columns or rows, including with lambda functions, enabling flexible transformations that go beyond built-in vectorised operations.

Pandas aggregations and groupby operations

Preview

Learn how to quickly summarise pandas DataFrames using built-in aggregation methods, and use .groupby() to compute statistics for single or multiple groups.

Math

4 modules · 208 lessons

Mathematical foundations

9 units · 83 lessons

Inequalities and absolute value

5 lessons

Inequalities and absolute value: View unit

How to describe a range of numbers precisely: inequality signs, interval notation, and absolute value as distance on the number line.

Reading inequalities

Learn how to read and interpret inequality symbols (<<, >>, \leq, \geq), translate everyday language into inequality notation, and determine whether values satisfy compound inequalities like a<xba < x \leq b.

Solving linear inequalities

Learn how to solve linear inequalities by isolating the variable, applying the sign-flip rule when multiplying or dividing by a negative number.

Interval notation

Learn how to read and write interval notation for bounded and unbounded subsets of the number line, and convert fluently between inequality and interval forms.

Absolute value

Preview

Learn the definition of absolute value as distance on the number line, apply the product and quotient rules to simplify expressions, and verify the triangle inequality for specific values.

Absolute value equations and inequalities

Learn how to solve absolute value equations by splitting into cases, and absolute value inequalities by converting to compound inequalities expressed in interval notation.

Quadratic equations

4 lessons

Quadratic equations: View unit

How to solve a quadratic equation: factoring, completing the square, the quadratic formula, and the discriminant as the number of real solutions.

Solving quadratic equations by factoring

Learn how to recognise the standard form ax2+bx+c=0ax^2 + bx + c = 0, factor quadratic expressions by finding two numbers with the right sum and product, and solve the equation using the zero product property.

The quadratic formula

Learn how to solve any quadratic equation using the quadratic formula, and use the discriminant to determine how many real solutions an equation has.

Completing the square

Learn how to recognise a perfect square trinomial from its coefficients, and rewrite any monic quadratic in completed-square form.

Quadratics with no real solutions

Preview

Learn to identify quadratic equations with no real solutions by computing the discriminant, understand why a negative discriminant means no real square root exists, and connect this to the geometric picture of a parabola that does not cross the xx-axis.

Set operations

7 lessons

Set operations: View unit

How to describe and combine sets: membership and subsets, union, intersection and complement, set-builder notation, and splitting a set into parts.

Sets and elements

Learn what sets are, how to list their elements using curly brace notation, use membership symbols \in and \notin, and recognise the empty set \emptyset.

Number sets and notation

Learn the standard number sets N\mathbb{N}, Z\mathbb{Z}, Q\mathbb{Q}, and R\mathbb{R}, understand their containment relationships, and use superscript notation for restricted sets like Z+\mathbb{Z}^+.

Set-builder notation

Learn to read and write set-builder notation {x:condition}\{x : \text{condition}\} to describe sets by a rule rather than listing elements, and specify domains using {xS:condition}\{x \in S : \text{condition}\}.

Subsets and cardinality

Learn subset notation \subseteq and \subset, prove set equality by showing mutual containment, and compute cardinality A|A| for finite sets.

Set union and intersection

Preview

Learn how to combine sets using union and intersection operations and visualise these relationships using Venn diagrams.

Set complements

Preview

Learn to compute the complement of a set, apply key properties like double complementation, and use De Morgan's laws to relate complements to unions and intersections.

Partitions

Learn to identify when a collection of sets forms a partition of a universal set - pairwise disjoint and exhaustive - and recognise common partitions including the complement partition {A,Ac}\{A, A^c\}.

Exponents and roots

10 lessons

Exponents and roots: View unit

The rules for powers and roots: multiplying, dividing and nesting exponents, zero and negative powers, simplifying and rationalising radicals, and fractional exponents.

Positive integer exponents

Learn what exponentiation means as repeated multiplication, evaluate small positive integer powers by hand, and predict the sign of a negative base raised to an even or odd exponent.

The product rule for exponents

Learn the product rule for exponents - when multiplying powers with the same base, add the exponents - and apply it to expressions with numerical coefficients and multiple variables.

Exponent rules: division and powers

Learn three key exponent rules: the quotient rule for dividing powers with the same base, the power-of-a-power rule for raising a power to another power, and the power-of-a-product rule for distributing an exponent across factors.

Zero and negative exponents

Learn why any non-zero number raised to the power zero equals one, how negative exponents represent reciprocals, and how to simplify expressions by rewriting negative exponents as positive.

Square roots

Preview

Learn what square roots are and how they relate to squaring, identify principal and negative roots, and estimate square roots of non-perfect squares.

Product and quotient rules for radicals

Learn to split and combine square roots using the product and quotient rules for radicals.

Simplifying radicals

Learn to simplify square roots by factoring out perfect squares, and rationalise expressions to remove radicals from the denominator.

Rationalising with the conjugate

Learn to rationalise a denominator with two terms involving square roots by multiplying by its conjugate, so the difference of squares clears the root.

Fractional exponents

Learn how fractional exponents connect to roots: the half-power a1/2a^{1/2} equals a\sqrt{a}, and more generally a1/na^{1/n} equals the nnth root of aa.

Working with fractional exponents

Learn how to evaluate general fractional exponents by combining roots and powers, and apply the product, quotient, and power rules to simplify expressions with fractional exponents.

Functions

12 lessons

Functions: View unit

Functions as rules assigning exactly one output to each input: function notation, domain and range, composition, and the one-to-one condition under which an inverse exists.

What is a function

Preview

Learn the definition of a function as a mapping f:ABf: A \to B that assigns each element of the domain exactly one element of the codomain, and how to identify functions from tables and graphs using the vertical line test.

Function notation

Learn the f(x)f(x) notation for writing and reading functions, interpret expressions like f(3)f(3) and f(a)f(a) as specific outputs, and use different letters such as ff, gg, and hh to distinguish between multiple functions.

Evaluating functions

Learn how to evaluate a function at a specific number or algebraic expression by substituting into the function rule, and how to find the input that produces a given output.

Domain of a function

Learn how to identify the domain of a function by finding values that cause division by zero or square roots of negatives, and express the domain using interval notation.

Range of a function

Learn what the range of a function is and how it differs from the codomain.

Composition of functions

Learn how to compose two functions using the notation fgf \circ g, evaluate compositions at specific inputs, and determine when a composition is defined by checking that the output of the inner function lies in the domain of the outer function.

Inverse functions

Understand what an inverse function is, how the domain and range swap, and how to verify an inverse using composition.

Finding inverse functions

Learn how to find inverse functions algebraically by swapping and solving, apply the procedure to linear functions, and understand why the graph of an inverse is a reflection across the line y=xy = x.

One to one functions

Learn what it means for a function to be one-to-one, identify one-to-one functions using the definition or counterexamples, and apply the horizontal line test to determine whether a function is one-to-one from its graph.

Invertible functions

Learn why a function must be one-to-one to have an inverse, use the horizontal line test to determine invertibility, and make non-invertible functions invertible by restricting their domains.

Even and odd functions

Learn how to classify a function as even, odd, or neither using the algebraic test f(x)=±f(x)f(-x) = \pm f(x), and read the same parity off a graph by recognising yy-axis or origin symmetry.

Piecewise functions

Learn how to read and evaluate piecewise function definitions by applying the rule whose condition matches the input, and sketch piecewise graphs using closed and open dots to mark whether each endpoint is included.

Summation, product, and indexed notation

9 lessons

Summation, product, and indexed notation: View unit

Write a repeated operation as one expression indexed by a variable: sigma notation and the rules for manipulating it, product notation, factorials, and indexed set operations.

Sigma notation

Preview

Learn to read and write sigma notation - the compact mathematical shorthand for expressing sums.

Evaluating sums

Learn how to expand and evaluate sigma expressions by substituting each index value into the general term, including sums with powers and fractional terms.

Properties of sums

Learn the rules for pulling out constant factors and splitting sums of additions or subtractions into separate sigma expressions.

Common sum formulas

Learn the closed-form formulas for the sum of the first nn integers and the sum of the first nn squares.

Simplifying sums

Learn to evaluate the sum of a constant term and to evaluate compound sigma expressions with linear and quadratic terms by decomposing them and substituting the formulas for i\sum i and i2\sum i^2.

Re-indexing sums

Learn to re-index sigma expressions by shifting the starting value, match a sum to a named expression through re-indexing, and determine whether two sums are equal by re-indexing one to match the other.

Product notation

Learn the product operator and how to read, expand, evaluate, and write expressions in product notation.

Factorials

Learn how to define and evaluate factorials, apply the recursive property, and simplify expressions involving factorial fractions.

Indexed unions and intersections

Learn how to express unions and intersections of indexed set families using compact notation, and expand and compute these operations for rule-defined collections of sets.

Logic

12 lessons

Logic: View unit

Sentences with a definite truth value, and the rules that govern them: connectives and De Morgan's laws, conditionals with their converse and contrapositive, quantifiers, and valid inference.

Statements and open sentences

Learn to distinguish mathematical statements (sentences that are definitively true or false) from non-statements such as questions, commands, and opinions, and recognise open sentences whose truth value depends on a variable.

"And" and "or" in mathematics

Learn how mathematical "and" requires both parts to hold and mathematical "or" requires at least one part to hold, including why "or" in mathematics is always inclusive.

Negation and De Morgan's laws

Preview

Learn how negation flips truth values and how to negate compound "and" and "or" statements using De Morgan's laws.

Conditional statements

Learn to read conditional statements of the form "if PP then QQ", identify the hypothesis and conclusion, and understand that a conditional makes no claim when its hypothesis is false.

The converse

Learn how to form the converse of a conditional by swapping hypothesis and conclusion, and determine whether the converse is true or false using counterexamples.

The contrapositive

Learn how to form the contrapositive of a conditional by negating both parts and swapping them, and use the fact that a conditional and its contrapositive always share a truth value.

Necessary and sufficient conditions

Learn how to translate between conditional statements and the language of necessary and sufficient conditions, and classify conditions as necessary, sufficient, both, or neither.

Biconditionals and definitions

Understand biconditional statements (if and only if), recognise that definitions are always biconditionals, and distinguish definitions from theorems that only guarantee one direction.

Quantified statements

Learn to read and interpret universal statements ("for all") and existential statements ("there exists"), and recognise that mathematical conditionals containing variables are universal statements in disguise.

Negating quantified statements

Learn how negating a universal statement ("for all") produces an existential statement ("there exists") and vice versa, and apply these rules to negate mathematical claims.

Negating conditional statements

Learn why the only way a conditional "if PP then QQ" can be false is when PP is true and QQ is false, and use this to find counterexamples to conditional claims involving variables.

Logical inference

Learn how to apply three fundamental inference rules - modus ponens, modus tollens, and elimination - to draw valid conclusions from given premises, and recognise common fallacies like the converse error.

Exponentials and logarithms

9 lessons

Exponentials and logarithms: View unit

Exponential growth and its inverse: the number ee, the logarithm as the exponent to which a base must be raised, the laws it obeys, and solving equations for an unknown exponent.

Exponential functions

Preview

Learn what an exponential function is, how the base aa determines whether the function grows or decays, and what the graph of f(x)=axf(x) = a^x looks like.

The number ee

Understand e2.718e \approx 2.718, the limiting value of (1+1/n)n(1 + 1/n)^n, and the natural exponential function exe^x that underpins growth models across mathematics and machine learning.

What is a logarithm

Learn what loga(x)\log_a(x) means as the inverse of axa^x, how to convert between exponential and logarithmic form, and how to evaluate logarithms like log3(27)\log_3(27) by inspection.

Inverse identities of loga\log_a and axa^x

Learn how to simplify expressions using the two inverse identities loga(ax)=x\log_a(a^x) = x and aloga(x)=xa^{\log_a(x)} = x, recognising when a composition of a logarithm and its matching exponential cancels.

Logarithm notation: common and natural logarithms

Learn the common logarithm log(x)=log10(x)\log(x) = \log_{10}(x), the natural logarithm ln(x)=loge(x)\ln(x) = \log_e(x), and how to use the inverse identities ln(ex)=x\ln(e^x) = x and elnx=xe^{\ln x} = x to simplify expressions.

Properties of logarithms

Learn how to convert products and quotients inside a logarithm into sums and differences of logarithms using the product and quotient rules, and bring exponents down as coefficients using the power rule.

Expanding and combining logarithms

Learn how to apply the product, quotient, and power rules to expand a single logarithm into a sum or difference, combine several logarithms into one, and simplify expressions that mix logs with exe^x and ln\ln.

Change of base formula for logarithms

Learn how to convert a logarithm from one base to another using the change of base formula, use the reciprocal relationship to relate logs with swapped bases, and relate logs with different bases when one is a power or root of the other.

Solving exponential equations for an unknown exponent

Learn how to solve exponential equations for an unknown exponent by applying the matching logarithm when the base allows it, or by taking the logarithm of both sides and using the power rule to pull the exponent down.

Trigonometry

15 lessons

Trigonometry: View unit

Trigonometric ratios defined on the right-angled triangle and extended to any angle by the unit circle: radians, special angles, the graphs, and the inverse functions.

Degrees and radians

Learn how to measure angles in degrees (as a fraction of a full turn) and in radians (where π\pi radians equals 180°180°), and practise converting between the two systems.

Right-angled triangle trigonometry

Learn how to label the sides of a right-angled triangle (hypotenuse, opposite, adjacent) and learn the sine, cosine, and tangent ratios that link an acute angle to those side lengths.

Trigonometric values at 3030^\circ, 4545^\circ, 6060^\circ

Learn how to derive the exact trigonometric values at the special angles 3030^\circ, 4545^\circ, and 6060^\circ.

Working with special right-angled triangles

Learn the side ratios of the 4545^\circ-4545^\circ-9090^\circ and 3030^\circ-6060^\circ-9090^\circ triangles, and use them to find the exact trigonometric ratios at those angles for a triangle of any size.

Angles in the coordinate plane

Learn how to draw angles on the coordinate plane, identify their quadrants, and switch between equivalent measures of the same rotation in both degrees and radians.

The equation of a circle

Learn how to find the distance from the origin to any point using the Pythagorean theorem, why that gives the circle of radius rr the equation x2+y2=r2x^2 + y^2 = r^2, and how one comparison decides whether a point lies inside, on, or outside the circle.

The unit circle

Preview

Learn how angles on the coordinate plane correspond to points on the circle of radius 11, why those coordinates are exactly the cosine and sine of the angle, and how to relate any angle back to its acute form.

Trigonometric ratios beyond acute angles

Learn how to evaluate sine and cosine for any angle, including obtuse, negative, and angles exceeding one full revolution, by combining the reference angle with quadrant signs.

Graphs of sine and cosine

Preview

Learn how to build the sine and cosine graphs from the unit circle, identify their key points and shift relationship, and reason about the domain, range, and number of solutions to equations like sinθ=c\sin\theta = c.

The tangent function

Learn how to define tangent as sinθ/cosθ\sin\theta / \cos\theta, read key features from its graph, and evaluate it at special angles.

Reciprocal trigonometric functions

Learn how to evaluate secθ\sec\theta, cosecθ\operatorname{cosec}\theta and cotθ\cot\theta as reciprocals of cosine, sine and tangent, and identify the angles at which each one is undefined.

The Pythagorean identity

Learn how to derive sin2θ+cos2θ=1\sin^2\theta + \cos^2\theta = 1 from the unit circle, and use it to find one trigonometric ratio given the other and the quadrant.

Inverse sine

Learn how to restrict sin\sin to a domain where it is one-to-one, and use the resulting arcsin\arcsin function to recover an angle from its sine.

Inverse cosine

Learn how to restrict cos\cos to a domain where it is one-to-one, and use the resulting arccos\arccos function to recover an angle from its cosine.

Inverse tangent

Learn how to restrict tan\tan to a domain where it is one-to-one, and use the resulting arctan\arctan function to recover an angle from its tangent.

Linear algebra

5 units · 37 lessons

Vectors in Euclidean space

9 lessons

Vectors in Euclidean space: View unit

Vectors as objects with length and direction: adding and scaling them, the dot product and the norm it defines, orthogonality and independence, span and basis, and projection onto a line.

Introduction to vectors

Understand how data can be represented as vectors, how to visualise and interpret vectors in two dimensions, calculate their magnitude, and convert them into unit vectors through normalisation.

Addition, subtraction and scalar multiplication of 22-dimensional vectors

Understand how to add, subtract and scale two-dimensional vectors componentwise and use these operations to form linear combinations, which are fundamental to representing and manipulating data in machine learning.

Addition, subtraction and scalar multiplication of NN-dimensional vectors

Learn how to add, subtract and scale nn-dimensional real vectors entrywise, and construct linear combinations by applying these operations in any number of dimensions.

Dot product and vector norm

Preview

Learn how to compute the dot product of vectors using both magnitude and angle or components, understand its geometric meaning in terms of similarity and orientation, and use the dot product to define vector norms and create unit vectors for comparing directions irrespective of scale.

Orthogonal, dependent and independent vectors

Learn how to test whether pairs or sets of vectors are orthogonal (dot product zero) or linearly dependent (one is a scalar multiple or linear combination of others), and understand the implications of these properties for redundancy and uniqueness in feature spaces such as those used in machine learning.

Span of vectors in NN-dimensional space

Understand how the span of a set of vectors describes all the points reachable by their linear combinations, how to determine if a given vector lies within this span, and how to check if a set of vectors spans the entire space RN\mathbb{R}^N using row reduction.

Projecting vectors onto a line

Preview

Learn how to calculate the scalar and vector projection of one vector onto another in any dimension, interpret their geometric meaning, and understand their importance in measuring how much a vector aligns with a chosen direction, especially in machine learning contexts.

Bases and orthonormal bases

Understand how bases provide reference directions for vector spaces and see how orthonormal bases simplify the representation of vectors and calculations such as finding coordinates using dot products.

Changing basis

Learn how to represent a vector in different bases by finding its coordinates relative to any basis and use the basis matrix and its inverse to convert between these coordinate systems and the standard basis.

Matrices

11 lessons

Matrices: View unit

A matrix as a rectangular array and as a linear transformation: multiplication, transpose and identity, the determinant, column space, rank and null space, and orthogonal matrices.

Matrix entries and dimension

Understand how matrices organise data into rows and columns, how their dimensions are specified, how vectors fit into this framework as one-row or one-column matrices, and how to identify individual entries using subscript notation.

Matrix transpose

Learn how to perform the transpose operation on matrices and vectors, understand its key properties (including behaviour under addition, subtraction and multiplication), and see how the transpose links matrix operations with the inner (dot) product in vector spaces.

Addition, subtraction and scalar multiplication of matrices

Learn how to add, subtract and scale matrices entrywise, and use these operations to form linear combinations of matrices with the same dimensions.

Matrix-vector multiplication

Learn how to multiply a matrix by a vector by taking a dot product of each row with the vector, understand the necessary dimension requirements for valid multiplication, and see how this operation underpins key transformations and predictions in machine learning models.

Matrix multiplication

Learn how to determine when the product of two matrices is defined, compute the result using the row-by-column dot product rule, identify the dimensions of the resulting matrix, and recognise that matrix multiplication is not commutative.

The identity matrix

Understand the identity matrix as the square matrix with ones on the diagonal and zeros elsewhere, which leaves any matrix or vector unchanged when multiplied, analogous to multiplying by one in arithmetic.

The determinant of a square matrix

Learn how to compute the determinant of a square matrix using specific formulas and cofactor expansion, and interpret its value as indicating both invertibility and the signed area (or volume) scaled by the matrix.

Column space and rank of a matrix

Understand how the column space of a matrix defines the set of possible outputs AxA\vec{x}, how the rank measures the number of linearly independent columns, and how these concepts determine whether a system Ax=bA\vec{x} = \vec{b} has solutions, how many solutions, and whether a square matrix is invertible.

Null space of a matrix

Learn how the null space of a matrix captures all solutions to Ax=0A\vec{x} = \vec{0}, how it determines the structure of all solutions to Ax=bA\vec{x} = \vec{b}, how to find a basis for the null space by solving a homogeneous system, and how the rank-nullity theorem links the number of independent columns to the number of free variables.

Matrices as linear transformations

Preview

See how multiplying a vector by a matrix performs a linear transformation, such as scaling, rotating or reflecting that vector, and learn to interpret matrix multiplication as reshaping the entire coordinate grid in a consistent, structured way.

Orthogonal matrices and their properties

Understand the definition of orthogonal matrices, recognise their appearance in rotation and reflection matrices, and see how these matrices preserve vector lengths, dot products, and geometric structure by satisfying QTQ=IQ^T Q = I and having inverses equal to their transposes.

Matrices and linear systems

5 lessons

Matrices and linear systems: View unit

Solve systems of linear equations: the two-equation case and what its solutions look like geometrically, writing a system as an augmented matrix, and Gaussian elimination.

Solving systems of two linear equations

Preview

Learn how to represent a system of two linear equations and solve it algebraically using both the substitution and elimination methods to find the values that satisfy both equations simultaneously.

Interpreting solutions to systems of two linear equations

Learn how to determine whether a system of two linear equations has a unique solution, no solution, or infinitely many solutions by analysing the relationships between their coefficients and interpreting the geometric meaning of each case.

Writing systems of equations as augmented matrices

Learn how to rewrite a system of linear equations as a matrix equation and as an augmented matrix, and how to convert between augmented matrices and their corresponding systems of equations by matching coefficients and constants to variables in a consistent order.

Gaussian elimination I: forward elimination

Learn how to use elementary row operations to systematically transform an augmented matrix into row echelon form via forward elimination, laying the groundwork for solving systems of linear equations by back substitution.

Gaussian elimination II: back substitution and solution types

Learn how to use Gaussian elimination by combining forward elimination and back substitution to solve systems of linear equations, and determine whether a system has a unique solution, infinitely many solutions, or no solution from the row echelon form.

Matrix transformations

4 lessons

Matrix transformations: View unit

Invert and diagonalise matrices: finding an inverse by row reduction, the rules inverses obey, symmetric matrices, and diagonalisation of 2×22 \times 2 matrices.

Inverse of a matrix via row reduction

Learn how to determine whether a 2×22 \times 2 matrix is invertible and, if so, find its inverse using row reduction, connecting these concepts to solving systems of linear equations in machine learning.

Key properties and rules of matrix inverses

Learn the core rules for finding inverses of matrix products, transposes, scalar multiples, and diagonal matrices, enabling efficient simplification and manipulation of matrix equations.

Symmetric matrices

Preview

Understand how symmetric matrices can always be diagonalised using an orthogonal basis of eigenvectors, leading to real eigenvalues and mutually orthogonal principal directions - crucial properties for applications such as principal component analysis and covariance matrices in machine learning.

Diagonalisation of 2×22 \times 2 matrices

Learn how to determine whether a 2×22 \times 2 matrix is diagonalisable by finding its eigenvalues and eigenvectors, construct its diagonalisation if possible, and use this to efficiently compute powers of the matrix.

Eigenvalues, eigenvectors and singular value decomposition

8 lessons

Eigenvalues, eigenvectors and singular value decomposition: View unit

Eigenvalues and eigenvectors of 2×22 \times 2 matrices, eigendecomposition, and the singular value decomposition: what the factors are, how to compute them, and what they mean geometrically.

The eigenvalues of 2×22 \times 2 matrices

Learn how to set up and solve the characteristic equation for a 2×22\times2 matrix in order to calculate its eigenvalues, understanding their significance in matrix transformations and machine learning applications.

The eigenvectors of 2×22 \times 2 matrices

Learn how to set up and solve the eigenvector equation (AλI)v=0(A - \lambda I)\vec{v} = \vec{0} for a given 2×22 \times 2 matrix and its eigenvalues, and understand why eigenvectors are only determined up to a non-zero scalar multiple.

Eigenvalues and eigenvectors of 2×22 \times 2 matrices

Preview

Learn how to interpret, calculate and verify the eigenvalues and eigenvectors of a 2×22 \times 2 matrix, understanding both their geometric meaning as invariant directions and their computation using the characteristic equation.

Eigendecomposition

Eigendecomposition expresses a diagonalisable matrix as A=PDP1A = P D P^{-1}, revealing that in the eigenvector basis AA acts as simple scaling, so applying AA to any vector can be understood as changing basis to the eigenbasis, scaling by the eigenvalues, then changing back.

Singular values of a matrix

Understand why the classical eigendecomposition fails for many matrices, see how singular values are defined as the square roots of the eigenvalues of ATAA^T A, and recognise that ATAA^T A is always square, symmetric, and has non-negative eigenvalues, ensuring that singular values are always real and non-negative for any matrix.

The singular value decomposition (SVD)

Learn how any real matrix can be factorised into orthogonal matrices and a diagonal matrix using the singular value decomposition, and how to compute its right and left singular vectors and singular values via the eigenvectors and eigenvalues of ATAA^T A and AATA A^T.

Calculating the SVD for small matrices

Learn how to calculate the singular value decomposition of small matrices by finding singular values and singular vectors, assembling the UU, Σ\Sigma, and VV matrices, and using orthonormal completion when matrices are rectangular.

Interpreting the SVD

Preview

See how the singular value decomposition breaks any matrix transformation into an initial rotation, a stretch along perpendicular directions, and a final rotation, and how the singular values and vectors correspond to the axes and shape of the transformed unit circle, with zero singular values indicating collapsed directions.

Calculus

4 units · 86 lessons

Limits

18 lessons

Limits: View unit

The value a function approaches near a point, which need not be the value it takes there: reading limits from graphs and tables, the limit laws, one-sided and infinite limits, end behaviour and horizontal asymptotes, and continuity.

What is a limit?

Learn how to describe a limit as the value a function approaches near a point, write it in limit notation, distinguish the limit from f(a)f(a), and recognise when a limit fails to exist.

Estimating limits from tables

Learn how to estimate a limit numerically by building a table that closes in on the target from both sides, and recognise when the table is unreliable.

Reading limits from graphs

Preview

Learn how to read a limit from a graph by tracing the curve toward a point, including holes and closed dots where the limit differs from f(a)f(a), and recognise the three ways a limit fails to exist.

Basic and additive limit laws

Learn how to state and apply the constant and identity limits and the sum, difference, and constant-multiple limit laws, then chain them to decompose a polynomial limit step by step into a number.

Product and quotient limit laws

Learn how to state and apply the product and quotient limit laws to evaluate limits of products and quotients.

Power and root limit laws

Learn how to state and apply the power and root limit laws to evaluate limits of powers and roots.

Decomposing compound limits

Learn how to decompose a compound limit by working from the outermost operation inwards, applying the matching law at each step and checking its condition where one applies, until only basic limits remain.

Limits by direct substitution

Learn how to evaluate a limit by direct substitution when its conditions hold, giving limxaf(x)=f(a)\lim\limits_{x \to a} f(x) = f(a), and recognise when substitution fails as the indeterminate form 0/00/0 or the non-existent form c/0c/0.

Limits by algebraic manipulation

Learn how to resolve a limit that direct substitution leaves as 0/00/0, either by factoring and cancelling a shared factor or by rationalising a square root with its conjugate, then substituting into the simplified form.

One-sided limits

Learn how to compute the one-sided limits limxaf\lim\limits_{x \to a^-} f and limxa+f\lim\limits_{x \to a^+} f by evaluating the branch that applies on each side, then decide whether the two-sided limit exists by checking whether the two sides agree.

Infinite limits and vertical asymptotes

Learn how to evaluate infinite one-sided limits by reading the sign of the function near the point, and how to locate the vertical asymptotes of a rational function at the denominator zeros that do not cancel.

Limits at infinity

Learn how to evaluate limits as x±x \to \pm\infty, reading a polynomial's end behaviour off its leading term and a rational function's limit by dividing by the highest power of xx and comparing the degrees of the numerator and denominator.

Exponentials and logarithms at infinity

Learn how to evaluate limits of exponentials and logarithms, reading the outcome from the sign of the constant in the exponent, and why a logarithm grows without bound even though its graph flattens.

Horizontal asymptotes

Learn how to find a function's horizontal asymptotes from its limits as x±x \to \pm\infty, and why a graph may cross an asymptote that only describes its end behaviour.

Continuity: definition and types

Learn how to test whether a function is continuous at a point using its three conditions, classify a discontinuity as removable, jump or infinite by which condition fails, and decide when a composition of continuous functions is continuous.

Removing discontinuities

Learn how to repair a removable discontinuity by defining the function to equal its limit at the hole, and how to choose a parameter that makes a piecewise function continuous by matching its rules at a boundary.

The Intermediate Value Theorem

State the Intermediate Value Theorem, check its hypotheses on a closed interval, and apply it to guarantee that a value or a root exists between two endpoints of opposite sign.

L'Hôpital's Rule

Learn how to recognise when a quotient limit is indeterminate, and how to resolve it with L'Hôpital's Rule by differentiating the numerator and the denominator separately and classifying again.

Derivatives

31 lessons

Derivatives: View unit

The instantaneous rate of change of a function: the derivative at a point and as a function, the rules for products, quotients and compositions, and locating extrema and optima.

Average rate of change

Learn how to compute the average rate of change of a function over an interval, interpret it as the slope of a secant line, and see why the average depends on the interval chosen.

Instantaneous rate of change

Find how fast a function is changing at a single instant by watching average rates over shrinking intervals settle on one value, and read that instantaneous rate of change as the slope of the tangent line.

The derivative at a point

Preview

Compute the derivative f(a)f'(a) from its limit definition - forming and simplifying the difference quotient, then taking the limit - and use it to write the equation of the tangent line at a point.

The derivative as a function

Extend the derivative from a single point to a function: find f(x)f'(x) from the limit definition for polynomials and evaluate it to get the slope at any point, then sketch the graph of ff' from the graph of ff.

Where functions are not differentiable

Recognise where a function fails to be differentiable - at corners, cusps, vertical tangents, and discontinuities - and test differentiability at a point by comparing the left-hand and right-hand derivatives.

Derivative notation

Learn how to read, write and translate between the different notations for the derivative, and read off its value at a single point.

The power rule

Learn the first two rules for differentiating by formula: the derivative of any constant is zero, and the power rule for differentiating any power of xx. Rewrite roots and reciprocals in exponent form first so the power rule applies.

Linearity of the derivative

Learn to differentiate constant multiples, sums and differences: a constant factor passes straight through differentiation, and a sum or difference differentiates term by term. Combine these with the power rule to differentiate any polynomial.

The product rule

Learn to differentiate a product of two functions with the product rule, and why the derivative of a product is not the product of their derivatives.

The quotient rule

Differentiate quotients of functions using the quotient rule, and recognise when a quotient simplifies so the rule is not needed.

Composite functions and rates of change

Break a composite function into its inner and outer parts, and find an overall rate of change by multiplying the rates of each linked stage.

The chain rule

Differentiate composite functions - powers, roots and reciprocals of polynomials - with the chain rule, and choose the quickest method for a mix of functions.

Derivative of exe^x

Differentiate the natural exponential function exe^x and composite functions eg(x)e^{g(x)}.

Derivatives of exponential functions

Differentiate exponential functions of any base, axa^x, and composite functions ag(x)a^{g(x)}.

Derivative of lnx\ln x

Differentiate the natural logarithm lnx\ln x and composite functions lng(x)\ln g(x), then extend the rule to lnx\ln \lvert x \rvert, which is defined on both sides of zero.

Derivatives of logarithmic functions

Differentiate logarithms of any base, logax\log_a x, and composite functions logag(x)\log_a g(x).

Derivatives of sinx\sin x and cosx\cos x

Differentiate sinx\sin x and cosx\cos x, and composite functions sin(g(x))\sin(g(x)) and cos(g(x))\cos(g(x)).

Derivative of tanx\tan x

Differentiate tanx\tan x and composite functions tan(g(x))\tan(g(x)).

Applying the chain rule more than once

Recognise when a composite function needs the chain rule more than once, and differentiate it by applying the rule once per layer.

Combining the product and quotient rules with the chain rule

Differentiate products and quotients in which one part is a composite function, using the chain rule alongside the product and quotient rules.

Second and higher-order derivatives

Compute the second derivative ff'' and higher-order derivatives f(n)f^{(n)}, and use a polynomial's degree to predict the order at which its derivatives vanish.

Patterns in higher-order derivatives

State a high-order derivative of an exponential, a sine or a cosine from the repeating pattern its derivatives follow, instead of differentiating many times.

Critical points

Find every critical point of a function - the points where f(x)=0f'(x) = 0 or ff' has no value - and read from a graph whether each one is a local maximum, a local minimum, or neither.

Concavity and inflection points

Preview

Find where a curve is concave up or concave down using the sign of the second derivative, and locate the inflection points where its concavity changes.

The first derivative test

Use the sign of the first derivative ff' to find where a function is increasing or decreasing, and to classify each critical point as a local maximum, a local minimum, or neither.

The second derivative test

Classify a critical point from the sign of ff'', and choose the right test - using the first derivative test when the second is inconclusive (f(c)=0f''(c)=0) or does not apply (f(c)f'(c) undefined).

Finding global extrema

Learn how to find the largest and smallest values a function reaches on a closed interval are its global extrema. Find them with the closed-interval method: evaluate the function at every critical point and endpoint, then compare.

Setting up an optimisation problem

Learn how to turn a described situation into the two equations an optimisation problem needs: an objective function for the quantity to be made largest or smallest, and a constraint equation for what the situation holds fixed.

Reducing an optimisation problem to one variable

Learn how to use the constraint equation to eliminate one unknown, turning a two-variable objective function into a function of a single variable. Then find its domain: the values the remaining variable is allowed to take.

Finding and certifying the optimum

Learn how to find the optimum of an objective function by solving f(x)=0f'(x) = 0 and discarding any critical point its domain does not allow. Then certify that optimum as global by comparing its value against the two ends of the domain.

Solving optimisation word problems

Work an optimisation problem end to end from a written description: build the objective function and the constraint, reduce to one variable, find the domain the situation allows, and confirm the optimum is global before reporting the answer.

Integrals

31 lessons

Integrals: View unit

Antiderivatives and the definite integral: area under a curve as a Riemann sum, the Fundamental Theorem of Calculus, substitution, integration by parts, and improper integrals.

Antiderivatives

Learn what an antiderivative is and how to check one: differentiate the candidate and compare the result with ff. Then see why every antiderivative of ff has the form F(x)+CF(x) + C.

Indefinite integral notation

Learn to read and write the indefinite integral, naming the integrand, variable of integration and constant of integration. Then see why the constant cannot be left off.

The power rule for antiderivatives

Learn the power rule for antiderivatives: raise the exponent by one and divide by the new exponent, which works for every power of xx except x1x^{-1}. Then rewrite roots and reciprocals in power form so the same rule integrates them.

Linearity of the indefinite integral

Learn to integrate constant multiples, sums and differences, and to handle a full polynomial term by term with a single constant of integration. Then use one known point to pick out the particular antiderivative from the family.

Antiderivatives of exponentials

Learn how to integrate exponential functions by dividing out the constant that differentiation produces, covering the natural exponential, a constant multiple in the exponent, and bases other than ee.

Antiderivative of 1/x1/x

Learn to integrate 1x\dfrac{1}{x}, the one power the power rule cannot handle, as lnx+C\ln \lvert x \rvert + C. Then see why the absolute value is needed for the antiderivative to cover every x0x \neq 0, not just the positive half.

Trigonometric antiderivatives

Learn to integrate sinx\sin x, cosx\cos x and sec2x\sec^2 x by reversing the derivatives that produce them, placing the minus sign where differentiation created it. Then integrate combinations of these terms, including integrands written in quotient form.

Estimating area with Riemann sums

Learn to estimate the area under a curve by covering the region with rectangles of equal width, taking each height from ff at one sample point per strip. Then build a Riemann sum by hand, using left endpoints or right endpoints, for a small number of strips.

The definite integral as a limit

Learn how the left and right Riemann sums bound the true area between them when a function rises or falls across a whole interval, and how using more strips narrows that bound towards one number: the definite integral.

Signed and total area

Learn how a region below the xx-axis counts as its area with a minus sign, and how the regions of a graph combine into two different numbers: the net signed area and the total area. Then work out a region's area from a straight-line graph.

Definite integral notation

Learn to read and write the definite integral, naming the limits of integration, the integrand and the variable of integration. Then see why the value of a definite integral is the net signed area between the graph and the xx-axis.

Linearity and additivity of definite integrals

Learn the constant-multiple, sum and difference rules for definite integrals, and why they apply only when both integrals are taken over the same interval. Then use additivity to join integrals over adjacent intervals and to recover a missing piece from the whole.

Reversing limits and comparing integrals

Learn how exchanging the two limits of a definite integral changes its sign, and why an integral over a zero-width interval is zero. Then compare two functions across an interval to compare their integrals, without evaluating either.

Symmetry in integration

Learn why an odd function integrates to zero over an interval centred on 00, and why an even function's integral over the same interval is twice its integral over the right half. Then apply each shortcut in both directions, and recognise a function with neither symmetry.

The Fundamental Theorem of Calculus: Part 1

Preview

Learn how a definite integral with a moving upper limit builds an accumulation function, and how to read where its running total rises and falls straight off the graph. Then meet the theorem that ties the two halves of calculus together: the height of the curve is the rate at which area accumulates.

Using FTC Part 1

Learn how accumulating area builds an antiderivative for every continuous function, even when no formula for one can be written down. Then see how the base point decides which antiderivative you get, and how to differentiate an integral by reading its integrand.

FTC Part 1 with the chain rule

Learn how to spot an integral whose upper limit is a function of xx rather than xx itself, and how to read off the two factors its derivative is built from. Then multiply those factors to differentiate it, without ever evaluating the integral, and find the derivative's value at a particular xx.

The Fundamental Theorem of Calculus: Part 2

Preview

Learn what the second half of the Fundamental Theorem of Calculus claims: integrating a rate across an interval gives the same number as the net change in an antiderivative across it. Then use it to evaluate definite integrals.

Choosing an antiderivative and the evaluation bracket

Learn why the antiderivative you pick never changes the value of a definite integral. Then meet the evaluation bracket, the notation that records an evaluation between finding the antiderivative and carrying out the subtraction.

Evaluating definite integrals

Learn to evaluate a definite integral with the Fundamental Theorem of Calculus, integrating the whole integrand once before substituting the limits of integration. Then apply the same process to exponential, trigonometric and reciprocal integrands.

Average value of a function

Learn what the average value of a function on an interval is: the single constant height whose rectangle has the same area as the region under the graph. And then compute it.

uu-substitution

Learn to evaluate an integral by changing variable: name the inner function of a composite as uu, rewrite the whole integral in uu and dudu, then integrate and back-substitute to return the answer to xx.

Choosing uu and adjusting for constants

Learn to choose uu for yourself rather than being handed it. Then carry a constant through when the integrand offers only a multiple of the derivative, and judge which integrands have that form at all.

uu-substitution for definite integrals

Learn to evaluate a definite integral by substitution without ever returning to xx. Convert both limits of integration to their uu-values, then integrate in uu and apply the evaluation bracket at those limits.

Substitution with exponentials and logarithms

Learn the two substitutions that end in an exponential or a natural logarithm: substitute for the exponent when its derivative is among the factors, and substitute for the denominator when the numerator is its derivative.

Integration by parts

Learn how to integrate a product using integration by parts, a formula that follows from the product rule, and how to apply it in both its function and differential notations with the two parts supplied.

Integration by parts: standard applications

Learn to choose uu and dvdv for yourself using the LIATE guideline, then work a standard integration by parts through to the answer. Then integrate lnx\ln x, where there is only one factor to split.

Integration by parts for definite integrals

Learn how to apply integration by parts to a definite integral, evaluating the boundary term and the remaining integral between the same limits to reach a number.

Repeated integration by parts

Learn to apply integration by parts twice, when the transformed integral is again a product. Then handle an exponential multiplied by a sine or cosine, where the original integral reappears and is found by solving for it.

Choosing and applying an integration technique

Learn to choose an integration technique from the form of the integrand alone, deciding between linearity and the standard forms, substitution, and integration by parts. Then carry the choice through to an answer, indefinite or definite, including integrals written in a variable other than xx.

Improper integrals

Extend definite integration to intervals that never end. Replace an infinite limit of integration with a limit process, decide whether the result converges, and see why an integral over the whole line must be split into two independent pieces.

Partial derivatives

6 lessons

Partial derivatives: View unit

Calculus for a function of two inputs: the function and its domain, the surface it graphs, cross-sections and contour plots, and the partial derivatives that measure its rate of change in each direction, computed with the differentiation rules you already know.

Functions of two variables

Learn what a function of two variables is and how to evaluate one at an ordered pair. Then find the domain as a region of the xyxy-plane, and decide whether its boundary curve belongs to the domain.

Graphs and cross-sections of a function of two variables

Learn how to picture a function of two variables as a surface in three dimensions, test whether a given point lies on that surface, and fix one input to cut the surface into a familiar one-variable curve.

Level curves and contour plots

Preview

Learn how a horizontal plane cuts a surface into a level curve, and how to find that curve by solving f(x,y)=cf(x,y)=c. Then read a contour plot: which way is uphill, where the surface is steep or shallow, and where its peaks and basins lie.

What is a partial derivative?

Learn what a partial derivative is: the rate at which a function of multiple variables changes as one input moves and the others are held fixed. Then read the signs, zeros and relative sizes of partial derivatives straight off a contour plot.

Computing partial derivatives

Learn how to compute a partial derivative: evaluate one at a point by fixing the held input first, then produce it as a formula by treating the other variable as a constant. The same method extends to functions of three or more inputs, where every variable except the one named is held fixed.

Product and chain rules for partial derivatives

Learn when a partial derivative needs the product rule and how to apply it. Then differentiate composite functions where the variable held constant enters through the inner derivative.

Probability and Statistics

1 unit · 2 lessons

Sample spaces and events

2 lessons

no page yet

The set of all possible outcomes of a random experiment, and events as subsets of that set.

Random experiments and outcomes

Learn how to identify random experiments versus deterministic ones, define outcomes and sample spaces using set notation, and construct sample spaces for multi-stage random experiments.

Events as sets of outcomes

Learn how to represent events as subsets of a sample space, distinguish between simple and compound events, and identify the certain event and the impossible event as the two extremes of any probability model.

Machine Learning

1 module · 10 lessons

Core concepts and workflow

2 units · 10 lessons

What is Machine Learning?

7 lessons

What is Machine Learning?: View unit

Learning a rule from data rather than writing it: features and labels, training and generalisation, the main types of learning task, and fitting a first model to real data.

Introduction to machine learning

Learn what distinguishes machine learning from traditional rule-based programming, how machine learning systems learn from data and improve over time, and how this approach fits within the broader field of artificial intelligence as the dominant method for tasks requiring adaptability and pattern recognition.

Introduction to the California Housing dataset

Understand how the California Housing dataset represents real-world information as tabular data with rows as block groups and columns as numeric features, recognise different variable types, and see how visualising distributions with histograms reveals patterns in the data.

Fitting a simple ML model: predicting California house prices

See how a machine learning model can be trained to predict the median house value in Californian districts based on input features, and how its predictive accuracy is assessed using new data it has not seen before.

Core concepts in a machine learning problem

Preview

Understand the fundamental structure of a supervised machine learning problem by identifying the roles of data (inputs and labels), the model and learning algorithm, and the distinction between the training and inference phases.

Types of learning tasks

Understand the main types of machine learning tasks by distinguishing between supervised, unsupervised, semi-supervised and reinforcement learning, and learn how supervised problems can be classified further as classification or regression based on the nature of the output.

Framing real-world problems for machine learning

Understand how to analyse real-world problems to determine whether machine learning is appropriate, frame problems as classification or regression based on the desired output, and identify suitable inputs, outputs, and learning setups for effective model design.

Why generalisation is the goal in supervised learning

Understand why the primary aim of supervised learning is to build models that generalise well to unseen data, and how test sets are used to estimate generalisation error as opposed to training error.

The Machine Learning workflow

3 lessons

no page yet

The steps a machine learning project runs through: splitting data into training and test sets, and preparing raw inputs into a form a model can be fitted to.

The ML workflow overview

Understand the full lifecycle of machine learning projects, from defining the problem and preparing data to deploying and monitoring models, and recognise that successful ML development relies on iterative cycles of evaluation, diagnosis and refinement.

Data splitting

Learn how to correctly split a dataset into separate training, validation, and test sets, ensuring representative distributions and strict separation to prevent data leakage, in order to support fair model development and unbiased evaluation in supervised machine learning.

Preparing inputs for machine learning

Understand how to extract, create, and transform features from raw data to ensure machine learning models receive clean, structured, and informative inputs that improve predictive performance.