This program was my final submission for my A Level Computer Science NEA project, where it received an A* grade.
It is a VB.NET Windows Forms desktop application designed to help A Level Maths students revise through quizzes, while also giving teachers a way to view student performance over time. Although this is one of my earlier projects, I keep it in my portfolio because it shows a different technical stack from most of my later work and demonstrates that I was already building complete, user-facing software with authentication, persistence, adaptive quiz logic, and teacher/student workflows.
My program has the following purposes:
- To provide a virtual quiz environment for a student to revise A Level Maths.
- To learn from the student's previous answers to quiz questions, identify student weaknesses, and display more personalised questions each time the student takes a quiz.
- To provide an environment for the teacher to view student results from quizzes recorded by the program.
- Language: VB.NET
- Framework: Windows Forms
- IDE: Microsoft Visual Studio
- Data storage: local text files and fixed-length records
- Application type: desktop GUI application
- Student and teacher account creation/login.
- Randomised quizzes and sub-topic quizzes.
- A structured A Level Maths question bank covering pure maths, statistics, and mechanics.
- Multiple-choice and free-response question handling.
- Marking, scoring, and mark scheme review.
- Teacher tools for creating classes and viewing student/class progress.
- Progress tracking across maths modules, topics, and attempts.
This project matters because it was the first time I had to build software as a complete system rather than as isolated programming exercises. I had to think about different user types, navigation flow, data persistence, input validation, progress tracking, and how a teacher or student would actually use the program.
It also gave me early experience with product-style thinking. The core idea was not just "make a quiz", but make a revision tool that adapts to student weaknesses and gives teachers useful visibility over progress. Even though I would build parts of it differently now, the project shows an important stage in my development: taking a real educational problem, designing a solution, implementing it, and documenting it thoroughly enough for formal assessment.
- Desktop application development: building a multi-form Windows Forms application in VB.NET.
- Event-driven programming: wiring form controls, navigation buttons, quiz actions, and user workflows.
- File-based persistence: storing account details, quiz attempts, class data, and progress records in local files.
- Authentication and validation: implementing student/teacher login, account creation, and input checks.
- Adaptive logic: selecting quiz questions based on previous performance and topic weaknesses.
- Data visualisation: displaying student and class progress through teacher-facing views.
- Project documentation: producing a full NEA write-up covering analysis, design, implementation, testing, and evaluation.
To run the program:
- Fork or clone this repository locally.
- Open
Mathematics Testing Program.slnin Microsoft Visual Studio. - Build and run the solution.
- The user should be presented with a login/create account page.
- Create an account as either a student or a teacher.
As a student, you will be presented with a quiz containing five questions.
You can cycle between these questions and input your response to each one. After you have finished answering the questions you wish to attempt, click End Quiz and you will be presented with a score. You will then have the option to view the mark scheme for those questions.
As a teacher, you will first be presented with the option to create a new classroom.
You can cycle between the different modes of grade analysis using the navigation bar at the top of the page. One option is to view the progress of a student in a specific topic by selecting a student, choosing a module, and then selecting a topic within that module.
You can also view the progress of different classes over time.
| Path | Purpose |
|---|---|
Mathematics Testing Program.sln |
Visual Studio solution file. |
Mathematics Testing Program/ |
VB.NET Windows Forms source code and project files. |
Mathematics Testing Program/Questions/ |
Question, answer, and metadata assets used by the quizzes. |
Mathematics Testing Program/Design Images/ |
Design assets and image credits. |
NEA Project.pdf |
Full A Level Computer Science NEA write-up. |
This program was not created for commercial use and is not designed to be used in the real world. The purpose of the project was to demonstrate the programming techniques I had learnt at A Level and to develop new skills while building a larger piece of software.
Please refer to NEA Project.pdf for the full project write-up.