Exam preparation · GCSE · about 15 min
Retrieval practice, spacing and interleaving, and a planner that schedules them.
[1 mark]Which revision method has the strongest evidence behind it?
[1 mark]What is spacing?
[1 mark]Why does interleaving feel harder?
[1 mark]Re-reading notes feels effective. Why is it not?
[1 mark]A topic is rated 2 for confidence. With sessions = 6 - confidence, how many sessions?
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"]The hint students can ask for: Sessions are six take the confidence. Sort the topics by confidence, least first, and print them. Then walk the days, taking the next topic that still has sessions left and going back to the start of the list when you reach the end.
from bugbot import *
connect()
topics = [("Networks", 2), ("Algorithms", 4), ("Cyber security", 3), ("Data representation", 1)]
days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
order = sorted(topics, key=lambda t: t[1])
left = {}
for name, confidence in order:
left[name] = 6 - confidence
print(f"{name}: {left[name]} sessions")
planned = 0
i = 0
for day in days:
for tries in range(len(order)):
name = order[i][0]
i = (i + 1) % len(order)
if left[name] > 0:
left[name] = left[name] - 1
planned = planned + 1
print(f"{day}: {name}")
break
print("sessions planned:", planned)
print("needs the most:", order[0][0])
Any program that meets the task's checks is marked correct in the simulator; this is one way, not the only way.