All workSoftware Development

Student Performance
Monitoring

A Python assessment data pipeline and monitoring system, built for comparisons across tests.

Student Performance<br>Monitoring

Programming Fundamentals / January 2026

Stack
Python · Jupyter · ipywidgets · Pandas · NumPy · SQLite · Matplotlib
Purpose
Assessment data processing and student performance monitoring

From raw test results
to useful comparisons.

This programming project cleans and standardises assessment results, stores them in SQLite and presents student performance across formative and summative tests.

A preprocessing class manages loading, cleaning, standardising and storage. Analysis modules compare an individual student with class averages, combine results across assessments and identify students below the summative lower quartile.

Question counts and maximum scores are derived from the assessment data rather than hard-coded, so the processing can accommodate different test structures.

A connected monitoring application

From the supplied notebook and Python modules
01

Assessment Data Tables

Inspect raw, cleaned and standardised results for each of the six assessment tables. The preprocessing workflow supplies the selected DataFrame to the interface.

02

Student Results

Enter a student ID to retrieve a combined table of results across tests and an overall grade graph.

03

Analyse Student Performance

Select a student and test to compare question scores with class averages. Navigation carries the student ID between results and performance views.

04

Underperforming Students

Review students below the summative lower quartile, their formative grades, a summative boxplot and individual formative charts.

The original interface is built with ipywidgets in Jupyter. The application below includes all four workflows, with student lookup and connected views.

Explore the monitoring system

Four connected workflows

A browser adaptation of the submitted Jupyter application, using outputs from the original Python preprocessing pipeline. Coursework student IDs are displayed as aliases.

Student Monitoring System Python / Jupyter / ipywidgets

Loading assessment data…

Assessment Data Tables

The processing pipeline

Load. Clean.
Standardise. Analyse.

Raw, cleaned and standardised DataFrames are stored in dictionaries keyed by table name. Student analysis draws from the stored results to produce comparative charts and combined result tables.

Underperformance analysis uses the summative lower quartile as a reference point, alongside formative grades and individual charts.

Implementation detail

Clear modules.
Shared state.

The notebook manages page navigation and clears previous output to prevent tables and charts from stacking. Dedicated modules handle preprocessing, combined results, student comparisons and underperformance analysis.

Return to the work
Artwork detail