Inspiration

Education today follows a “one size fits all” approach. Whether it be homework assignments or lesson plans, teachers simply do not have the bandwidth to tailor their teaching methods for each student’s individual preferences and weaknesses. For example, all students are often assigned the same subset of textbook problems for homework, which is rigid and prone to academic dishonesty. As a result, students neglect the importance of actually learning the material in favor of simply completing the assignment and “getting the grade”.

Furthermore, pedagogy has implemented and relied much more on the integration of online platforms. However, despite greater accessibility and convenience, personal experience and abundant evidence highlights the poorer quality of online learning. Nevertheless, there is unexplored potential for a new way to think about education.

All in all, the signs point to a need for a revamping of education as we see it today. We need to find a solution that addresses the pitfalls of the current education system while utilizing the benefits of online learning.

What it does

tAI is an AI-powered teaching assistant (TA) for both students and teachers. Students can complete their personalized homework assignments on the platform, while having 24/7 access to “office hours” with an intelligent chatbot to guide them through conceptual roadblocks. The chatbot reports back to the teacher feedback on student progress through helpful data visualizations.

Teachers can also communicate with the chatbot to get help developing new worksheets tailored towards student needs as well as ask about new teaching strategies. Through the online platform, teachers can easily track student progress with the click of a button, and generate unique, fresh problems for students to learn. Thus, tAI can help alleviate the workload of teachers, freeing up their time to be even more available to students.

How we built it

For the backend, we used Node.js, Express.js, and the OpenAI API. The first thing we did was to build a baseline REST API so our client-side app platform can interact with our server. Using Express, we defined our routes and controllers while some of our other team members worked on the frontend.

Our frontend work is all contained in Retool. We chose Retool because it would expedite frontend development so we could focus more on OpenAI API and connecting our backend. We found Retool fun and efficient to work with and were able to develop four different views.

Next, we connected our backend to our frontend. Retool does not allow localhost to act as a server, so we used ngrok to bring our server online and connect to Retool.

Finally, we implemented our REST API to interact with Retool components.

Challenges we ran into

Prompt engineering – We tested various text completion prompts to help create a consistent user experience with diversified questions and accurate solutions. After several iterations, we developed a paragraph of context to input into the model every time the app is opened. This context includes the name of the chatbot (Ms. Pocari), its role (virtual teaching assistant), and goal (to help students reach proficiency in state standards). We also developed prompts to tell GPT to start office hours and generate problems. We found that prompts had to be very specific directions for what to and what not to do (ex. “Do not include the answer or solution. Do not generate any problems that involve images.”) in order to receive the intended response. Additionally, stating the exact format we wanted the responses to be in “Standard: | Standard Description: | Question: | Solution: “ ensured standardized format across all questions, even though the questions were randomly generated.

Inaccurate or inconsistent AI responses – The AI model occasionally validated incorrect answers to the autogenerated questions. For example, the question was to evaluate f(5) where f(x) = 2x + 3, and the solution correctly stated 13, but the model also considered 7 and 12 to be correct when asked. In most other cases, the model accurately classified user answers as correct or incorrect.

“Heisenbugs” – Retool components have an option where it updates automatically when any input also updates. This led to some weird and inconsistent behavior that was hard to find. Luckily, we finally found the bug and made sure to be careful with that option in the future.

Accomplishments that we're proud of

This is the first in-person hackathon for everyone on our team, and that came with exciting new challenges that we adapted to quickly as a team. Overall, we’re proud that we were able to communicate a complex product idea clearly, contribute creative technical work, and have lots of fun at our first in-person hackathon! Here is what each of us are proud of individually:

(Anita) I am proud that I was able to try front-end development for the first time, and learn how to use Retool with the help of sponsors and the Internet. I also enjoyed designing the UI of our web app, and making it an aesthetically pleasing classroom theme.

(Allen) I’m proud that I got more familiar with backend through this project. I worked with the OpenAI API and was able to use Retool to form the crucial connection between backend and frontend.

(Steven) I am proud of myself for learning about front-end development and having fun using Retool for the first time. It was also great getting more familiar with AI and gaining hands-on exposure to one of the most exciting technologies, ChatGPT.

(Steph) I’m proud of becoming more familiar with backend. Setting up the OpenAI models and debugging the API requests was also a challenging, but rewarding experience.

What we learned

This was our first experience with front-end development, and we learned a lot of the ins and outs of Retool and other design principles. On the backend, we got experience with the OpenAI API and using Node.js.

What's next for tAI

Seeing as we aim to rethink public school education from first principles, we still have several features left to implement.

For example, in the future we would like to implement progress tracking and checkpoints for students and to be able to give them a greater sense of success for accomplishing learning objectives. Another feature we could implement is making the web app an “all-in-one” stop for an educational classroom. We also want to finish integrating tAI with the teacher-side view and create a user management system where students and teachers can have their own accounts and manage their classrooms. In addition, the accuracy of tAI in assessing the correctness of homework answers and interacting with students could be further improved and optimized.

There are many other exciting directions to take tAI as well. We believe that tAI could also be applicable and useful to other careers and professions and is definitely worth exploring.

Built With

Share this project:

Updates