← Back to Python series
🛠
Practice Projects · ★★
Dicts · Random · Score tracking · Spaced repetition

Project 6 — Vocabulary Quiz

Create an interactive vocabulary quiz that shuffles questions, tracks performance per word, and prioritizes words you get wrong (basic spaced repetition).

dictrandomquizspaced repetition
Duration
2 hours
Level
📊 Intermediate Applied
Prerequisite
🎯 Basic Weeks 7, 9
OUTCOME
A vocabulary quiz app with performance-based question selection

What you'll learn

  • 1Load vocabulary from a JSON or CSV file
  • 2Randomize question order with random.shuffle
  • 3Track correct/incorrect counts per word
  • 4Implement basic spaced repetition (repeat wrong answers)

Features

  • Load word list from vocab.json: [{word, definition, example}]
  • Multiple-choice (4 options) and fill-in-the-blank modes
  • Track per-word accuracy across sessions
  • End-of-session report: accuracy, time per question, weak words
  • Save progress to progress.json

Sample Session

text
=== Vocabulary Quiz ===

[1/10] What does 'ubiquitous' mean?
  A) rare and unusual
  B) present everywhere
  C) unclear in meaning
  D) easily broken
Answer: B  ✓ Correct!

[2/10] What does 'ephemeral' mean?
  ...

📝 Exercises

Try them yourself first, then open the solution to compare.

Exercise 1

Build the vocab quiz

Goal: Implement multiple-choice quiz with spaced repetition.

Requirements
  • Load from JSON file
  • 4-option multiple choice
  • Track per-word accuracy
  • Repeat wrong answers twice
Example code / lecture materials

All lecture materials and example code are openly available on GitHub.

View on GitHub ↗