Revision that works
Retrieval practice, spacing and interleaving, and a planner that schedules them.
Do this lesson in the simulatorMost revision is re-reading, and re-reading is the least effective thing you can do with the time. The methods that work are uncomfortable, which is why people avoid them: they feel harder because they are doing more. This lesson is what the evidence supports, and a planner that builds you a schedule.
Three methods worth your time
Retrieval practice. Close the book and write down everything you can remember, then check. Getting something back out of your memory strengthens it far more than putting it in again. Every quiz at the end of these lessons is retrieval practice.
Spacing. Study a topic, leave it, come back to it days later. Five sessions spread over three weeks beat five sessions in one evening, even though the total time is the same. You will forget a little in between, and recovering it is what makes it stick.
Interleaving. Mix topics in one session rather than doing one for an hour. It feels worse and works better, because you have to decide which method a question needs, which is exactly what the exam asks.
What to stop doing
- Re-reading notes and highlighting: it feels like learning because it is familiar, not because it is known.
- Copying out whole pages.
- Revising only the topics you like, which are usually the ones you already know.
A plan you will actually follow
- List the topics: the twelve modules of this course are a good list.
- Rate each one 1 to 5 for how confident you are.
- Give the weak ones more sessions, and space every topic at least twice.
- Finish each session by writing three things you could not remember, and start the next one with them.
# the two lines every program starts with: the commands, then the robot
from bugbot import *
connect()
topics = [("Networks", 2), ("Algorithms", 4), ("Cyber security", 3)]
for name, confidence in sorted(topics, key=lambda t: t[1]):
sessions = 6 - confidence # less confident, more sessions
print(f"{name}: confidence {confidence}, {sessions} sessions")
Use what is already here
- Redo the quiz at the end of any lesson: it marks you and explains the answers.
- Redo a task without looking at your old answer: that is retrieval practice for programming.
- Read the exam box on each lesson: it says what your board expects on that topic.
- Ask your teacher to set a test in the class tools, which gives you tasks under exam conditions.
The night before
Sleep beats cramming: memory is consolidated while you sleep, so a late night costs you more than the extra hour gains. Pack your things, check the time and place, and read your weakest topic's exam boxes for ten minutes. That is enough.
Task: build a revision plan
For each topic in topics (a name and a confidence from 1 to 5), the number of sessions is 6 - confidence. Print <name>: <n> sessions for each, from the least confident to the most. Then spread them over the days in days, one session a day in turn, starting with the least confident topic, and print <day>: <topic> for each day. At the end print sessions planned: <n>, the number of days you filled, and needs the most: <name>, the topic needing the most sessions.
# the two lines every program starts with: the commands, then the robot
from bugbot import *
connect()
# name, confidence 1 to 5
topics = [("Networks", 2), ("Algorithms", 4), ("Cyber security", 3), ("Data representation", 1)]
days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
Challenges
- Change the plan so no topic appears two days running.
- Add your own topics and confidences, and print a plan for the next fortnight.
- Why does spacing work better than doing it all at once, even with the same total time?