CruxBit
Back to catalog
EasyTechnologyeducation

Draw-and-Predict Digit Classifier Using K-Nearest Neighbors

Added Jun 2025 3 design docs

Handwritten digit recognition is the classic first pattern recognition problem, and it lands hardest when the input is your own handwriting rather than rows of a benchmark file. This project closes that loop: draw a digit on screen, and watch a model you trained yourself read it.

The intern trains a K-Nearest Neighbors classifier on the MNIST dataset with scikit-learn, then builds a Streamlit application with a drawing canvas where users sketch a digit with the mouse. The app preprocesses the sketch to match MNIST's format — grayscale conversion, centering, and resizing to 28 by 28 pixels — and returns the predicted digit, optionally alongside the most similar training examples so the algorithm's reasoning by proximity becomes visible. Users quickly discover which sloppy sevens and ambiguous fours fool the model, and can reason about why.

The intern learns how images become feature vectors, the mechanics and limits of distance-based classification, and the often-underestimated importance of matching inference preprocessing to training data — all wrapped in an application that makes an excellent live demo for their portfolio.

Related projects

You might also like

TechnologyMedium

Prompt Template Design and Testing Workbench for Educators

Teachers and instructional designers increasingly build AI-driven learning modules, such as quiz generators, explanation assistants, and feedback tools, and every one of them lives or dies by its prompts. Yet educators typically iterate on prompts by trial and error in a chat window, with no way to save what worked, compare variations, or enforce consistent output formats. Prompt engineering needs a workbench, the way code has an IDE. The intern builds that workbench as a Streamlit application in Python, using LangChain as the engine. The tool lets users create parameterized prompt templates with variables such as subject, difficulty, and student level; run them against OpenAI models; and compare outputs across template variations side by side. Output parsers enforce structured results, so a quiz template reliably yields well-formed questions and answers rather than loose prose, and chain sequencing lets users compose multi-step flows in which one prompt's output feeds the next, mirroring how real learning modules are assembled. The intern implements template storage, the comparison runner, and the parser configuration interface. The project demonstrates systematic prompt engineering as a discipline: template design, structured output enforcement, chain composition, and building a tool that turns an ad hoc craft into a repeatable process for a non-technical audience.

educationgenerative-ailangchainopenai+2
PRD · HLD · LLD includedView