Skip to main content

System Overview

Project Abstract

The goal of this project is to develop an AI-powered coding assistant similar to GitHub Copilot, but with a strong emphasis on education. Unlike traditional educational tools that rely on structured coding modules, the assistant uses detailed logging and mistake recognition to analyze how students code, fostering a deeper understanding of their work while preventing over-reliance on AI-generated suggestions. By tracking user interactions and offering real-time feedback, the system serves as both a coding assistant and a learning aid for novice programmers. Additionally, users can access this data through a portal to review coding habits and track progress over time. The aim is to integrate seamlessly into the IDE, ensuring minimal disruption to the coding workflow while maintaining fast response times.

Conceptual Design

This project will integrate an AI model, such as Meta's Ollama or OpenAI’s ChatGPT, to deliver inline code suggestions within a Visual Studio Code extension. The extension will not only assist users in real-time but also track various statistics on how these suggestions are utilized. This data will be sent to a backend server, where it will be analyzed to identify patterns in user behavior. When necessary, the assistant will intervene with contextual feedback, helping users recognize mistakes, improve coding habits, and develop a deeper understanding of their work. Additionally, a dashboard will present these insights in an intuitive interface, allowing users to monitor their progress, review past interactions, and refine their skills over time. By combining real-time assistance with structured analytics, this system aims to create a more interactive and educational coding experience.

Background

AI-powered code assistants, such as OpenAI's ChatGPT and GitHub Copilot, have significantly transformed software development by helping programmers write code more efficiently and with fewer errors. However, these tools have also posed challenges for novice programmers. Many beginners rely on the suggestions provided by the AI without fully grasping the underlying concepts, sometimes even accepting solutions without reading or understanding them. This over-reliance can encourage poor programming habits and hinder skill development. This project seeks to address this issue by implementing a system that still provides intelligent code suggestions but requires users to demonstrate a clear understanding of the suggested code before it is integrated into their projects. This approach aims to strike a balance between convenience and education, ensuring that users not only receive assistance but also gain a deeper comprehension of their code.

While there are code analyzers that aim to provide feeback, such as Sourcery or PyLint, they are typically not real-time and operate outside of an IDE. These tools tend to focus on writing "clean" and effecient code, but fail to explain why such practices are imporant or how users can improve their understanding. This project's approach is to integrate directly with VSCode and provides realtime feedback in order to disrupt the programmer as little as possible. With this approach we hope that AI coding assistance can still be used by newer programmers while still promoting learning and good programming habits.