codap.concord.org
CODAP (the Common Online Data Analysis Platform) is a free, browser-based data analysis tool for use across KS3, KS4, and KS5. Pupils work with real, often large, multivariate datasets in a table, then drag attributes onto graphs and maps that stay dynamically linked to one another and to the table they came from. The aim is not to teach one chart type at a time but to make interrogating data, sampling it, comparing groups, fitting lines, testing whether a pattern could be chance, a common classroom activity.
The toolbar runs Tables, Graph, Map, Slider, Calc, Text, Web Page, and Plugins. Everything else follows from dragging between them.
Dragging a point to feel what a statistic does. With a mean line switched on via the ruler icon, temporarily dragging a data point up or down in the graph shows the mean line shift in response, live. This turns "the mean is sensitive to outliers" from a rule pupils memorise into something they cause and watch happen.
Movable Value as a guessing game. On a graph with one numeric attribute, adding a Movable Value gives pupils a draggable line they can place where they think the mean or median sits, before revealing the calculated line for comparison. The same Movable Value can report the count or percentage of cases either side of it, turning "roughly what proportion is above 50kg?" into a question answered by dragging rather than counting.
Box plots and comparing spread across groups. Promoting a categorical attribute to the table's parent level, or placing it on an axis, splits a single distribution into parallel dot plots or box plots automatically. Comparing two or more groups' spread is a re-arrangement of an existing graph, not a new one built from scratch.
Movable Point for testing a claim. On a scatter graph, a Movable Point is a single draggable reference point pupils can place anywhere. This can be useful for testing "would this value fit the pattern?" against real data before formal regression is introduced.
Movable line versus least-squares regression. The same scatter graph can carry a Movable Line, which pupils rotate and slide by eye to fit the data, alongside CODAP's calculated least-squares regression line. Placing both together turns "the regression line minimises the sum of squared residuals" from an assertion into something pupils can watch happen as they nudge their line towards the calculated one.
A third variable as colour. Dropping a categorical or numeric attribute into the centre of a scatter graph colours every point by that variable, letting pupils check whether an apparent correlation survives once a hidden grouping is made visible.
Sampler for experimental versus theoretical probability. The Sampler plugin lets pupils configure a repeatable random draw. From a bag of coloured items, a set of named cards, or an existing dataset. Set the sample size and number of repeats, and run it. The output lands directly in a table, ready to graph, making the gap between a theoretical probability and an experimental relative frequency a live comparison rather than a page of pre-supplied results.
Scrambler for "could this be chance?" Scrambler builds a sampling distribution by randomly reassigning cases to groups many times over, then compares the real observed difference (say, in mean height between two groups) against the spread of differences produced purely by chance. This is a randomisation test made visible, and sits naturally alongside formal hypothesis testing.
Testimate for the formal tests themselves. Testimate performs t-tests, chi-square tests, proportion tests, and logistic regression directly inside CODAP, letting the informal randomisation logic built with Scrambler be checked against a named statistical test.
KS3 - averages and spread pupils can drag. Load a small dataset of pupils' own collected data. With a mean line switched on, ask pupils to predict which point, if moved, would change the mean the most. Let them drag points and check.
Strategy: Add a Movable Value and ask pupils to place it where they think the median sits before revealing the calculated line. The gap between guess and answer is the lesson.
KS4 - bivariate data and comparing distributions for GCSE Statistics/Maths. Build a scatter graph (height vs shoe size, temperature vs ice-cream sales), add a Movable Line, then reveal the least-squares regression line for comparison.
Example: Colour the same scatter graph by a third categorical attribute (e.g. year group, or gender) so a trend visible overall can be checked against each subgroup — direct support for GCSE Higher content on correlation versus causation.
KS5 - sampling, inference, and the A-Level large data set. CODAP's linked, multivariate exploration maps directly onto the exam boards' large data set requirement for A-Level Mathematics. Import the specification dataset (or a comparable open dataset) and let pupils build and filter graphs to answer their own questions before a specific exam-style question is introduced.
Strategy: Use Scrambler to build a randomisation-based sampling distribution for a difference in means, then compare the real observed difference against it. A hands-on route into the logic of a hypothesis test before the formal \(t\)-test machinery is introduced.
Most classroom statistics teaching is bottlenecked by data: textbook datasets are small, pre-cleaned, and exist to illustrate one technique at a time. CODAP inverts this by giving pupils large, slightly messy, genuinely interesting data and low-friction tools to interrogate it themselves. Dragging an attribute onto an axis takes far less effort than building a chart in a spreadsheet, so more of a lesson can be spent asking what does this tell us? rather than how do I make this chart? The dynamic linking between table, graph, and map does real conceptual work: seeing the same case highlighted in three places at once builds the idea that a case is a real thing with many attributes, not just a row of numbers. This is the foundation that bivariate analysis, sampling, and inference are built on. For A-Level in particular, CODAP is one of very few free tools built specifically to handle the kind of large, multivariate dataset the specifications now require pupils to explore. CODAP makes exploring it the point, rather than treating it as a data-cleaning chore.