A revision plan and mixed practice

Mapping the specification, retrieval, spacing and interleaving, and a spaced repetition scheduler for the whole course.

A15.8Exam preparationA level40 min

Do this lesson in the simulator

At GCSE you learned that retrieval, spacing and interleaving beat rereading (F13.8). The A level course is roughly twice the size, with two years of content to hold at once, so those methods stop being helpful extras and become the only way to fit it in. This lesson builds a plan from your specification, shows how to schedule revision so that you remember it, and ends with a scheduler that does the spacing for you.

Start from the specification

Your board's specification lists every topic that can be examined. Turn it into a checklist and rate each point honestly:

Rating Meaning What to do
Red I cannot explain it or do questions on it relearn from the lesson, then test
Amber I can do easy questions, but make mistakes practise exam questions, check the mark scheme
Green I get exam questions right without notes keep it green with occasional retrieval

This course's lessons are tagged with the specification points they cover, so each red point leads straight to its lesson and its question bank.

Three methods that work

  • Retrieval practice: test yourself, then check. Closing the book and writing down everything you know about Dijkstra's algorithm, then comparing with the lesson, builds memory far more than reading it again. Past paper questions, the lesson question banks, and flash cards are all retrieval.
  • Spacing: revisit a topic after gaps that grow, just as you are starting to forget it. Five short sessions spread over three weeks beat one long session.
  • Interleaving: mix topics within a session, as the exam does. A paper will not tell you "this is a stack question"; practising mixed questions trains you to recognise what a question needs.

Using past papers well

Past papers are the best practice there is, if they are used as practice rather than as reading:

  1. Do a question under time, closed book, using the minutes per mark.
  2. Mark it strictly with the mark scheme. Credit only what the scheme credits.
  3. Read the examiners' report for that question, which says what most students got wrong.
  4. Record the mistake by topic and type (did not know it, misread the command word, slip in a trace, ran out of time), and put the topic back into your schedule.

Early on, do single questions by topic. In the final weeks, do whole papers in one sitting.

A plan across the year

Period Focus
Autumn of year 13 NEA design and development; one retrieval session per week on year 12 topics
Winter NEA testing and evaluation; topic-by-topic past questions; checklist to amber
Spring full past papers under time; mixed question sets; red points relearned
Final weeks whole papers, marked; short daily retrieval on the topics that keep coming back

AQA students should also schedule time on the skeleton program once it is released (lesson A15.6). OCR and Eduqas students should practise writing code on paper, where there is no computer to catch errors.

Mixed practice across the course

These questions each need ideas from more than one module. Use them as a retrieval session: answer, then check the lessons named.

Question Modules
Explain why a stack is used to evaluate an expression in Reverse Polish notation, and trace it for 3 4 + 2 *. A3, A6
A robot stores its route as a linked list of moves. Write the procedure that adds a move to the end, and state its complexity. A3, A5
Compare storing a map as an adjacency matrix and an adjacency list for a building with 200 rooms and 250 corridors. A4, A5
A robot sends its position as a normalised floating point number. Explain what is lost if the mantissa is shortened. A7, A12
Discuss whether a school should keep a log of which students use its robots, with reference to the law. A11, A14
Explain how a compiler's lexical analysis could use a finite state machine. A6, A10
Write a function in a functional style that returns the average of the readings above a threshold. A13, A15

Spaced repetition with boxes

A simple way to space revision is the Leitner system. Each topic is a card in a box. Cards in box 1 are reviewed every day, box 2 every 2 days, box 3 every 4 days. Answer correctly and the card moves up a box, so you see it less often; get it wrong and it goes back to box 1, so you see it tomorrow. The topics you find hard get the most practice without you having to decide.

INTERVAL = {1: 1, 2: 2, 3: 4}
box, due = 1, 1
for day, correct in [(1, True), (3, True), (7, False), (8, True)]:
    box = min(box + 1, 3) if correct else 1
    due = day + INTERVAL[box]
    print(f"day {day}: {'right' if correct else 'wrong'}, now box {box}, next on day {due}")

Run this in the simulator

Task: the revision scheduler

Schedule revision with the Leitner system for eight days.

  • INTERVAL maps a box number (1, 2 or 3) to the number of days until a card in that box is next due.
  • cards is a list of topic names (strings), in the order they are reviewed on any day.
  • answers maps each card to a list of True (answered correctly) and False (answered wrongly), in the order the card is reviewed. Every card has enough answers for the eight days.

Every card starts in box 1, due on day 1. For each day from 1 to DAYS, go through cards in order and review each card that is due that day: take its next answer from the front of its list with pop(0); if it is correct move the card up one box (to at most 3), otherwise put it in box 1; then set it due on the current day plus the INTERVAL of its new box. Print day <d>: <cards>, the cards reviewed that day separated by ,, or day <d>: rest if none were due.

After day DAYS, print a line for each box from 1 to 3: box <n>: <cards>, the cards in that box in the order of cards, separated by ,, or box <n>: empty. The robot stays still.

# the two lines every program starts with: the commands, then the robot
from bugbot import *
connect()

INTERVAL = {1: 1, 2: 2, 3: 4}
DAYS = 8
cards = ["binary search", "two's complement", "RIPA 2000", "Dijkstra"]
answers = {
    "binary search": [True, True, True],
    "two's complement": [False, True, True, False],
    "RIPA 2000": [True, False, True, True],
    "Dijkstra": [False, False, True, True],
}

Challenges

  1. Make your own specification checklist for one module, rate every point, and turn the red and amber points into cards for the scheduler.
  2. Add a box 4 with an interval of 8 days. How does it change when binary search is next seen?
  3. Answer two of the mixed practice questions under time, then mark them against the lessons they name.