After waiting weeks to receive a grade on an FRQ assignment in our AP class, we realized that teachers have to spend countless hours of dedicated attention to grade assignments like these. There are too many students for teachers to be able to thoroughly read every single assignment and understand each student's mastery of the content offered in the course. That number only continues to rise, and this apparent problem inspired us to create GradePuppet, an AI grading tool for teachers. Our goal was to make auto-grading text-based assignments just as efficient and accurate as auto-grading multiple-choice based assignments.

What it does

GradePuppet uses an AI algorithm to grade text-based assignments based on the rubric/scoring guidelines entered by the teacher. GradePuppet also allows teachers to view their students' performance on every assignment, and the program generates mastery levels for each student based on the assignments they've completed. This initial version of GradePuppet can grade specifically FRQ (free-response-question) assignments, which have specific right answers in word format, which are inputted by the user. The app then uses these right answers as a point of comparison in our natural language processing model, which returns whether or not the student answer matches the actual answer. This is done using a number of NLP techniques, such as word tokenization, lemmatization, and word embedding.

How we built it

GradePuppet was built using React on the frontend for the web application and Django on the backend for the server-side code. We used Natural Language Processing to perform the tasks required to auto-grade text. We also used libraries like Material UI and Bootstrap for design and used libraries like NumPy and SciPy to assist with the AI algorithm.

Challenges we ran into

We ran into numerous challenges with building the NLP model, as we were both learning this technology while simultaneously utilizing it. We tried many different approaches to building the core language model of the NLP algorithm and eventually landed on using the word embedding approach through an algorithm called word2vector.

Accomplishments that we're proud of

We're proud of building a full-stack application revolving around AI, as both of us haven't implemented AI into a real-world application before. We are also very proud of building the app according to our initial vision.

What we learned

We learned a lot about Natural Language Processing and integrating it into a backend system.

What's next for GradePuppet

We plan on making GradePuppet able to grade essays as well, using sentiment analysis techniques. We also plan on fine-tuning our current NLP model to handle all kinds of FRQ assignments and possibly integrate a learning component into the algorithm so it continues to better understand these kinds of assignments. We also want to focus more on student analytics and using machine learning to deliver useful insights to teachers about their students that they otherwise wouldn't have.

Share this project: