Project Overview
As college students studying computer science, we've often struggled to meaningfully connect modern technologies with the theoretical concepts taught in class. At the same time, artificial intelligence tools are becoming more powerful and accessible, yet their use in academic settings is often discouraged due to concerns about cheating.
Our project aims to bridge this gap by creating an AI powered student assistant designed specifically for classroom use. Instead of replacing learning, the tool is built to support it, helping students understand concepts, reason through problems, and engage more deeply with course material while operating within boundaries set by instructors.
Who We Built This For
We built this tool primarily for computer science students at the University of Maryland, with an initial focus on those taking CMSC330. This course is known for its conceptual difficulty, covering topics like functional programming, type systems, and formal semantics, and students often need guided explanations to problems rather than just answers.
More broadly, this project is intended for universities that want to embrace AI as a learning aid without compromising academic integrity. It gives professors a way to officially integrate AI into their courses in a controlled and transparent manner.
How It Works
Rather than connecting students to any AI product, such as ChatGPT or Gemini, TerpTutor is grounded in the actual course material. There are three core pieces to how this works:
- First, we scraped the entire CMSC330 course website. Every lecture page, course resource, and syllabus section was pulled, cleaned, and structured into a knowledge base the assistant can reference. The assistant isn't guessing at the curriculum, rather it's reasoning over the real one.
- Second, we parsed all of the lecture code and documentation. This includes code examples, type signatures, edge cases, and inline explanations that instructors wrote for students. When a student asks about OCaml pattern matching or substitution rules, TerpTutor can reason using the exact material from their course.
- Third, we built a retrieval and reasoning pipeline on top of Claude. Student questions are matched against the indexed course content, and the assistant synthesizes a response grounded in that context, walking through the logic step by step, referencing relevant lecture material, and explaining not just what the answer is, but why it works.
How We Used Claude / AI
Claude serves as the core engine behind our assistant. Its strengths in reasoning and code generation made it well suited for interpreting student questions, referencing course materials, and producing structured, step-by-step explanations.
In addition to powering the end user experience, we also used Claude during development. It helped us write and refine the scraper, debug the parsing pipeline, and think through system design decisions. This significantly accelerated development and allowed us to focus more on the educational experience rather than just implementation details.
A key design goal was to ensure that responses go beyond giving answers. Claude is prompted to explain why a solution works, reinforcing conceptual understanding for students.
What Could Go Wrong (and How We Addressed It)
One major concern is that students might try to bypass restrictions and use the system to generate direct answers for assignments. This is a real risk, and there's no perfect solution, but there are several mitigation strategies:
- Prompt and output constraints: The system is designed to guide students toward hints, explanations, and step-by-step reasoning rather than final answers.
- Context-aware restrictions: Responses are limited for questions that closely resemble known assignment -problems, either by detecting similarity or through instructor-tagged restricted content.
- Instructor controls: Professors can configure what the assistant can and cannot help with, including disabling certain features during exams or assignments.
- Transparency and logging: Visibility into how the tool is being used discourages misuse and gives instructors meaningful oversight.
Another challenge is handling course materials. Due to academic policies, we cannot publicly distribute class content in our repository. To address this, we documented a clear process in the README explaining how instructors or users can securely integrate their own materials into the system.
What We'd Build Next
Given more time, we would focus on scaling and integration. Our goal is to expand beyond a single course to support most core computer science classes at UMD, each with its own indexed knowledge base built from that course's public materials.
We would also develop this into a full web application or browser extension that integrates directly with university platforms like Canvas. This would allow institutions to adopt the tool in a way that aligns with their curriculum and policies.
Longer term, we envision this as a university supported AI learning layer that preserves academic integrity while giving students access to modern tools that enhance understanding, not replace it.
Built With
- claude
- fastapi
- javascript
- python
- react
Log in or sign up for Devpost to join the conversation.