About CodeMentor
Inspiration Behind the Project
As computer science students, we code everyday, in class and at home, and know the feeling of being stuck on a coding problem. We spend hours working on a project, and sometimes, no matter how hard we try, we just can't figure out what's going wrong. That's when we turn to AI tools for help. But here's the problem: AI often provides us with the solution without helping us understand why the code works or what part of our approach is incorrect. This leaves us with a line of code that works but no real learning experience. We want to change that.
Many students have experienced this frustrating cycle. They ask AI for help, get a solution, but don't gain any real insight into the problem-solving process. This lack of understanding can become a major obstacle in their learning journey. When coding becomes an automatic process, and students rely on AI to give them answers without ever exploring the reasoning behind the code, they miss out on the opportunity to develop their critical thinking and problem-solving skills.
The idea for Code Mentor was born out of this frustration. We wanted to create a tool that students could use to get help with coding without giving them the direct solution. Instead, our tool would engage them in understanding the logic, concepts, and reasoning behind the code, fostering a deeper learning experience.
What We Learned
Through the development of this project, we learned a great deal about the intersection of education and technology. First, we recognized how much computer science education depends on practical experience and problem-solving. Simply giving students answers might solve an immediate issue, but it undermines their growth in the long term. We wanted to provide a resource that encourages learning through engagement rather than just offering shortcuts.
Additionally, we gained valuable experience in the technical aspects of creating an interactive coding platform. Code Mentor integrates a sidebar with an LLM (large language model), which allows students to ask questions about their code without receiving full solutions. This required us to build a responsive user interface using React and Flask, ensuring that it could handle real-time interactions while providing meaningful feedback.
Lastly, we gained insights into the educational ecosystem, particularly in how AI tools are being blocked in many schools due to concerns over academic integrity. This limitation presented a unique challenge for us, as we had to design our platform to be both effective and accessible within the boundaries of educational policies.
How We Built Code Mentor
The building process for Code Mentor was a challenging yet rewarding journey. We began by brainstorming ideas about how we could design a tool that would meet the needs of both students and educators. Our main goal was to ensure that our tool provided value to students without bypassing the learning process.
We used React for the frontend to create a dynamic and user-friendly interface. React’s component-based structure allowed us to break down the app into manageable pieces, making it easier to work on different sections without disrupting the overall functionality. The interactive sidebar, where students can chat with the AI, was an essential feature, so we focused on making it as intuitive and responsive as possible.
On the backend, we utilized Flask to handle the server-side functionality. Flask allowed us to set up the API that powers the communication between the AI and the user interface. We ensured that the AI would not provide direct code solutions but instead guide students to understand what part of their code might need attention and what concepts they should review.
One of the most exciting features of Code Mentor is its question-based interaction. Students can ask specific questions about their code (e.g., "Why does my loop not work?") without receiving full code answers. The AI responds by asking them clarifying questions or providing hints to help them troubleshoot their code and identify errors.
Challenges Faced
The development of Code Mentor was not without its challenges. One of the biggest hurdles we faced was ensuring that the AI responses were both helpful and engaging. We had to strike a balance between providing enough guidance to push students toward the right solution while not simply handing them the answer.
Another challenge we encountered was ensuring that Code Mentor would meet the needs of educational institutions, many of which have strict policies against AI tools that provide direct answers. Teachers often block certain AI tools because they undermine the learning process. To address this, we designed our platform in a way that does not simply solve students' coding problems but rather encourages critical thinking. This design ensures that Code Mentor complies with school policies and can be used as an educational tool in classrooms.
Finally, there was the technical challenge of building a scalable platform that could handle multiple students interacting with the AI in real time. We needed to ensure that the user experience remained smooth and responsive, even during peak usage times. Optimizing performance while maintaining the integrity of the user experience was a challenge that required thoughtful design and careful coding.
Addressing the Problem in Education
One of the key insights that shaped the development of Code Mentor is the recognition that many AI tools, while incredibly powerful, can unintentionally inhibit student learning. When students ask AI for help, they often receive a complete solution with little understanding of the underlying principles. This is especially true in computer science, where problem-solving and conceptual understanding are paramount.
Teachers have been blocking many AI tools because they provide direct answers, which can discourage students from actively engaging with the material. We saw this as an opportunity to create a tool that could enhance learning without bypassing the process of discovery. Code Mentor was designed to fit into classrooms where AI tools are restricted, offering a solution that encourages critical thinking and problem-solving rather than just presenting answers.
The Future of CodeMentor
We are excited about the potential for Code Mentor to partner with schools and educational institutions to ensure that computer science students can continue to learn and grow effectively. By providing a tool that enhances understanding rather than simply providing solutions, we believe we can support students in developing the skills they need to succeed as coders and problem-solvers.
Our platform is designed to be compatible with school policies, meaning that it can be used as a resource within classrooms where other AI tools might be restricted. We hope that through this, we can contribute to making computer science education more accessible, effective, and meaningful for students across the globe.
In terms of features, we plan on increasing accuracy of our responses through the implementation of RAG (Retrieval Augmented Generation). Additionally, we plan on developing database integration to be able to log in and have an account on our service. These accounts will contain data such as the user's skill level, the types of the projects they work on, and their past conversations with our LLM. This will not only improve user experience and convenience, but will also improve our model performance as there will be more data in our database to use as reference for the RAG implementation.
Conclusion
In conclusion, Code Mentor is more than just a coding tool; it is an attempt to reimagine how students approach learning in computer science. We built it with the understanding that true learning comes not from receiving the answer, but from working through problems, discovering patterns, and understanding the logic behind the solutions. With this in mind, we hope to provide a resource that supports students in their educational journeys, empowering them to become better coders and more critical thinkers in the process.
This project was not only a chance to build a functional tool, but it also gave us a deeper understanding of the challenges that students and educators face in today's AI-driven educational landscape. It is our hope that Code Mentor will play a role in shaping the future of computer science education, where understanding and problem-solving take precedence over shortcuts.
Log in or sign up for Devpost to join the conversation.