Explore 338+ lessons across Python, Mathematics, and Machine Learning. Every lesson enforces genuine mastery - no skipping ahead, no 70% passes, no gaps.
8 modules · 120 lessons
2 units · 17 lessons
9 lessons
Python basics: View unitWrite 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
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.
8 lessons
Basic data types: View unitThe 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
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.
4 units · 25 lessons
7 lessons
Lists: View unitPython'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
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.
4 lessons
Tuples: View unitPython'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
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.
8 lessons
Dictionaries: View unitPython'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
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.
6 lessons
Sets: View unitAn 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
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.
2 units · 13 lessons
5 lessons
Conditional logic: View unitHow 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
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.
8 lessons
Comparisons: View unitExpressions 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
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.
3 units · 14 lessons
4 lessons
Sequences: View unitWhat 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
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.
5 lessons
Loops: View unitRepeat work over a collection or until a condition fails: for and while loops, break and continue, and loops nested inside one another.
for loops
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.
5 lessons
Comprehensions: View unitBuild 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
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.
2 units · 16 lessons
6 lessons
Built-in functions: View unitThe 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
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.
10 lessons
User-defined functions: View unitA 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
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
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.
1 unit · 5 lessons
5 lessons
Custom classes: View unitA 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
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.
2 units · 13 lessons
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.
10 lessons
Assorted extras: View unitThe 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
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
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.
2 units · 17 lessons
8 lessons
NumPy: View unitThe 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
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.
9 lessons
Pandas: View unitLabelled 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
Learn how to quickly summarise pandas DataFrames using built-in aggregation methods, and use .groupby() to compute statistics for single or multiple groups.
4 modules · 208 lessons
9 units · 83 lessons
5 lessons
Inequalities and absolute value: View unitHow 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 (, , , ), translate everyday language into inequality notation, and determine whether values satisfy compound inequalities like .
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
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.
4 lessons
Quadratic equations: View unitHow 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 , 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
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 -axis.
7 lessons
Set operations: View unitHow 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 and , and recognise the empty set .
Number sets and notation
Learn the standard number sets , , , and , understand their containment relationships, and use superscript notation for restricted sets like .
Set-builder notation
Learn to read and write set-builder notation to describe sets by a rule rather than listing elements, and specify domains using .
Subsets and cardinality
Learn subset notation and , prove set equality by showing mutual containment, and compute cardinality for finite sets.
Set union and intersection
Learn how to combine sets using union and intersection operations and visualise these relationships using Venn diagrams.
Set complements
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 .
10 lessons
Exponents and roots: View unitThe 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
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 equals , and more generally equals the th root of .
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.
12 lessons
Functions: View unitFunctions 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
Learn the definition of a function as a mapping 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 notation for writing and reading functions, interpret expressions like and as specific outputs, and use different letters such as , , and 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 , 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 .
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 , and read the same parity off a graph by recognising -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.
9 lessons
Summation, product, and indexed notation: View unitWrite 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
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 integers and the sum of the first 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 and .
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.
12 lessons
Logic: View unitSentences 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
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 then ", 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 then " can be false is when is true and 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.
9 lessons
Exponentials and logarithms: View unitExponential growth and its inverse: the number , 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
Learn what an exponential function is, how the base determines whether the function grows or decays, and what the graph of looks like.
The number
Understand , the limiting value of , and the natural exponential function that underpins growth models across mathematics and machine learning.
What is a logarithm
Learn what means as the inverse of , how to convert between exponential and logarithmic form, and how to evaluate logarithms like by inspection.
Inverse identities of and
Learn how to simplify expressions using the two inverse identities and , recognising when a composition of a logarithm and its matching exponential cancels.
Logarithm notation: common and natural logarithms
Learn the common logarithm , the natural logarithm , and how to use the inverse identities and 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 and .
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.
15 lessons
Trigonometry: View unitTrigonometric 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 radians equals ), 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 , ,
Learn how to derive the exact trigonometric values at the special angles , , and .
Working with special right-angled triangles
Learn the side ratios of the -- and -- 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 the equation , and how one comparison decides whether a point lies inside, on, or outside the circle.
The unit circle
Learn how angles on the coordinate plane correspond to points on the circle of radius , 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
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 .
The tangent function
Learn how to define tangent as , read key features from its graph, and evaluate it at special angles.
Reciprocal trigonometric functions
Learn how to evaluate , and as reciprocals of cosine, sine and tangent, and identify the angles at which each one is undefined.
The Pythagorean identity
Learn how to derive from the unit circle, and use it to find one trigonometric ratio given the other and the quadrant.
Inverse sine
Learn how to restrict to a domain where it is one-to-one, and use the resulting function to recover an angle from its sine.
Inverse cosine
Learn how to restrict to a domain where it is one-to-one, and use the resulting function to recover an angle from its cosine.
Inverse tangent
Learn how to restrict to a domain where it is one-to-one, and use the resulting function to recover an angle from its tangent.
5 units · 37 lessons
9 lessons
Vectors in Euclidean space: View unitVectors 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 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 dimensional vectors
Learn how to add, subtract and scale -dimensional real vectors entrywise, and construct linear combinations by applying these operations in any number of dimensions.
Dot product and vector norm
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 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 using row reduction.
Projecting vectors onto a line
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.
11 lessons
Matrices: View unitA 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 , how the rank measures the number of linearly independent columns, and how these concepts determine whether a system 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 , how it determines the structure of all solutions to , 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
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 and having inverses equal to their transposes.
5 lessons
Matrices and linear systems: View unitSolve 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
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.
4 lessons
Matrix transformations: View unitInvert and diagonalise matrices: finding an inverse by row reduction, the rules inverses obey, symmetric matrices, and diagonalisation of matrices.
Inverse of a matrix via row reduction
Learn how to determine whether a 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
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 matrices
Learn how to determine whether a matrix is diagonalisable by finding its eigenvalues and eigenvectors, construct its diagonalisation if possible, and use this to efficiently compute powers of the matrix.
8 lessons
Eigenvalues, eigenvectors and singular value decomposition: View unitEigenvalues and eigenvectors of matrices, eigendecomposition, and the singular value decomposition: what the factors are, how to compute them, and what they mean geometrically.
The eigenvalues of matrices
Learn how to set up and solve the characteristic equation for a matrix in order to calculate its eigenvalues, understanding their significance in matrix transformations and machine learning applications.
The eigenvectors of matrices
Learn how to set up and solve the eigenvector equation for a given matrix and its eigenvalues, and understand why eigenvectors are only determined up to a non-zero scalar multiple.
Eigenvalues and eigenvectors of matrices
Learn how to interpret, calculate and verify the eigenvalues and eigenvectors of a matrix, understanding both their geometric meaning as invariant directions and their computation using the characteristic equation.
Eigendecomposition
Eigendecomposition expresses a diagonalisable matrix as , revealing that in the eigenvector basis acts as simple scaling, so applying 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 , and recognise that 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 and .
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 , , and matrices, and using orthonormal completion when matrices are rectangular.
Interpreting the SVD
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.
4 units · 86 lessons
18 lessons
Limits: View unitThe 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 , 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
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 , 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 , and recognise when substitution fails as the indeterminate form or the non-existent form .
Limits by algebraic manipulation
Learn how to resolve a limit that direct substitution leaves as , 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 and 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 , reading a polynomial's end behaviour off its leading term and a rational function's limit by dividing by the highest power of 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 , 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.
31 lessons
Derivatives: View unitThe 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
Compute the derivative 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 from the limit definition for polynomials and evaluate it to get the slope at any point, then sketch the graph of from the graph of .
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 . 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
Differentiate the natural exponential function and composite functions .
Derivatives of exponential functions
Differentiate exponential functions of any base, , and composite functions .
Derivative of
Differentiate the natural logarithm and composite functions , then extend the rule to , which is defined on both sides of zero.
Derivatives of logarithmic functions
Differentiate logarithms of any base, , and composite functions .
Derivatives of and
Differentiate and , and composite functions and .
Derivative of
Differentiate and composite functions .
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 and higher-order derivatives , 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 or has no value - and read from a graph whether each one is a local maximum, a local minimum, or neither.
Concavity and inflection points
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 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 , and choose the right test - using the first derivative test when the second is inconclusive () or does not apply ( 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 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.
31 lessons
Integrals: View unitAntiderivatives 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 . Then see why every antiderivative of has the form .
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 except . 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 .
Antiderivative of
Learn to integrate , the one power the power rule cannot handle, as . Then see why the absolute value is needed for the antiderivative to cover every , not just the positive half.
Trigonometric antiderivatives
Learn to integrate , and 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 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 -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 -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 , 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
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 rather than 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 .
The Fundamental Theorem of Calculus: Part 2
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.
-substitution
Learn to evaluate an integral by changing variable: name the inner function of a composite as , rewrite the whole integral in and , then integrate and back-substitute to return the answer to .
Choosing and adjusting for constants
Learn to choose 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.
-substitution for definite integrals
Learn to evaluate a definite integral by substitution without ever returning to . Convert both limits of integration to their -values, then integrate in 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 and for yourself using the LIATE guideline, then work a standard integration by parts through to the answer. Then integrate , 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 .
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.
6 lessons
Partial derivatives: View unitCalculus 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 -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
Learn how a horizontal plane cuts a surface into a level curve, and how to find that curve by solving . 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.
1 unit · 2 lessons
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.
1 module · 10 lessons
2 units · 10 lessons
7 lessons
What is Machine Learning?: View unitLearning 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
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.
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.