1.65 Mission

In this Mission, you will design and implement a quiz or flashcard app using Python.

This project brings together all the skills you’ve developed so far, including control structures, planning with pseudocode, and writing clear, maintainable code.

Purpose

This Mission challenges you to:

  • Combine sequence, selection, and repetition in a meaningful way

  • Plan a working program using pseudocode and/or flowcharts

  • Write a complete Python application with user interaction and scoring

  • Reflect on your design, testing, and improvements

Learning goals

By completing this Mission, you will:

  • Design a program that presents questions and checks user responses

  • Use loops, conditionals, and variables to track progress and scoring

  • Apply structured design principles to organise your code clearly

  • Test your program with different user inputs and edge cases

  • Build confidence in completing a holistic coding project

Task overview

Your goal is to develop a simple quiz or flashcard app that:

  • Presents at least five predefined questions to the user

  • Accepts user input as answers

  • Tracks the number of correct answers

  • Gives immediate feedback after each question

  • Displays the final score at the end

  • Offers the option to replay or exit

Requirements

Your program must:

  • Use at least one loop to repeat questions

  • Use selection (if, elif, else) to check answers and provide feedback

  • Use sequence to control the overall flow

  • Be implemented in a Python .py file, not a notebook

  • Include comments explaining key parts of your code

Optional extensions:

  • Randomise the order of questions

  • Load questions from an external file (e.g., questions.txt)

  • Allow the user to add new questions interactively

  • Keep a record of scores across runs

Submission instructions

  1. Clone or download the Mission folder from GitHub: ⬇ Download the starter project

  2. Work locally on your .py file using your preferred editor (PyCharm, VS Code, etc.).

  3. Test your program thoroughly.

  4. Commit and push your final version to your own repository.

Reflection

Along with your code, you should prepare a short written reflection:

  • What worked well in your design?

  • What challenges did you face, and how did you solve them?

  • How did you test your program?

  • What improvements or extensions would you add if you had more time?

Last updated

Was this helpful?