Skip to content

JBourton/Mathematics-Testing-Program

Repository files navigation

Mathematics Testing Program

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.

Project Purpose

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.

Tech Stack

  • Language: VB.NET
  • Framework: Windows Forms
  • IDE: Microsoft Visual Studio
  • Data storage: local text files and fixed-length records
  • Application type: desktop GUI application

Key Features

  • 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.

Why This Project Matters

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.

Skills Learnt

  • 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.

How to Run the Program

To run the program:

  1. Fork or clone this repository locally.
  2. Open Mathematics Testing Program.sln in Microsoft Visual Studio.
  3. Build and run the solution.
  4. The user should be presented with a login/create account page.
  5. Create an account as either a student or a teacher.

Student User Type

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.

Teacher User Type

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.

Repository Structure

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.

Notes

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.

About

NEA A Level project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors