CodeHelp project thumbnail

Overview

CodeHelp is a Python application that uses OpenAI's large language models to help novice programmers debug code, understand errors, and explore code explanations through a REPL-style conversational interface.

Problem

Novice programmers often struggle to interpret cryptic error messages and don't always know how to productively use general-purpose AI assistants for debugging. This project explored whether a purpose-built, conversational debugging tool could make error messages and AI-generated explanations more understandable and actionable for beginners.

My Role

I defined the tool's key features and built the REPL (read-eval-print loop) system that structured how users interacted with the AI, and I initiated usability testing to evaluate the tool's effectiveness for novice programmers.

System & Interaction Flow

The application ran as a Python-based REPL: a user could paste an error message or a snippet of code, and the assistant would return a plain-language explanation and a suggested fix. The conversational format let users ask follow-up questions and iteratively refine their understanding until the explanation made sense to them.

Technical Implementation

CodeHelp used OpenAI's large language model APIs to generate explanations and suggested fixes from user-submitted code and error text. I designed and implemented the REPL interaction loop that managed conversation state and structured the prompts sent to the model.

Evaluation / Usability Study

I initiated early usability testing with novice programmers to evaluate whether the tool's explanations were understandable, and whether users trusted and acted on the AI's suggested fixes.

Findings

The usability testing surfaced how novice programmers interpreted and reacted to AI-generated explanations — including where explanations built confidence in a fix versus where users remained unsure how to apply the AI's suggestion. These observations shaped how explanations and follow-up prompts were structured.

Limitations

This was an early-stage usability study with a small number of novice-programmer participants, so findings are directional rather than statistically robust. The tool was also evaluated in a controlled setting rather than in students' day-to-day coding workflows.

Links