The worksheetDownload the PDF
Answers

A15.8 A revision plan and mixed practice

Exam preparation · A level · OCR H446 2.2.1, AQA 7517 4.4.1.2, Eduqas A500QS 1.8 · about 40 min

BugBotLab

What this lesson is about

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

Questions 5 marks in all

  1. [1 mark]Which revision method is retrieval practice?

    1. AWriting down everything you know about a topic from memory, then checking
    2. BRereading your notes on the topic
    3. CHighlighting the lesson
    4. DCopying out the mark scheme
    Answer: A. Retrieval means pulling knowledge out of memory, which strengthens it; rereading feels productive but does little.
  2. [1 mark]What is interleaving?

    1. AMixing different topics within one revision session
    2. BRevising one topic until it is perfect before starting another
    3. CRevising late at night
    4. DReading two textbooks at once
    Answer: A. Mixing topics trains you to recognise what a question needs, as the exam does.
  3. [1 mark]In the Leitner system, what happens to a card you answer wrongly?

    1. AIt goes back to box 1, so you see it again soon
    2. BIt moves up a box
    3. CIt is removed
    4. DIt stays where it is
    Answer: A. Hard topics return to the most frequent box, so they get the most practice.
  4. [1 mark]A card follows the Leitner rules with intervals 1, 2 and 4 days. What does this print?

    INTERVAL = {1: 1, 2: 2, 3: 4}
    box, day = 1, 1
    for correct in [True, True, True, False]:
        box = min(box + 1, 3) if correct else 1
        day = day + INTERVAL[box]
        print(box, day)
    Answer:
    2 3
    3 7
    3 11
    1 12

    Right answers move it to boxes 2, 3 and 3 again, due on days 3, 7 and 11; the wrong answer sends it to box 1, due on day 12.

  5. [1 mark]Put the steps for using a past paper question in order.

    Number the lines 1 to 4 to put them in the right order.

    1. Read the examiners' report for it
    2. Mark it strictly with the mark scheme
    3. Answer it under time, closed book
    4. Record the mistake and schedule the topic again
    Answer:
    Answer it under time, closed book
    Mark it strictly with the mark scheme
    Read the examiners' report for it
    Record the mistake and schedule the topic again

    Practise, mark honestly, learn what went wrong, and space the topic back into revision.

The 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],
}

The hint students can ask for: Keep two dictionaries: the box each card is in, and the day each card is next due. On each day, go through the cards in order and review only those due today, updating the box first and then the due day from the new box.

A solution

# 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],
}

box = {card: 1 for card in cards}
due = {card: 1 for card in cards}
for day in range(1, DAYS + 1):
    today = []
    for card in cards:
        if due[card] == day:
            correct = answers[card].pop(0)
            box[card] = min(box[card] + 1, 3) if correct else 1
            due[card] = day + INTERVAL[box[card]]
            today.append(card)
    print(f"day {day}: " + (", ".join(today) if today else "rest"))
for b in (1, 2, 3):
    in_box = [c for c in cards if box[c] == b]
    print(f"box {b}: " + (", ".join(in_box) if in_box else "empty"))

Any program that meets the task's checks is marked correct in the simulator; this is one way, not the only way.