Teachers can message students and send announcements to the whole class.
View after the teacher has created a new announcement.
Teachers can create assignments for students to complete
Tackle assignments with the help of our AI Assistant, Polya.
Simulate the classroom experience with virtual "table groups"!
Don't know how to start the problem? Ask Polya where to start and it will give you a hint.
If you are stuck at a certain point in the problem, ask Polya and it can help you with the next step. (Look at the right)
Students can view some statistics of their own as well.
We found three main problems with online learning:
- Students lose the ability to engage with their classmates socially. This is especially true in large classes where it's difficult to communicate privately via video calls.
- The learning experience tends to be far worse due to lack of immediate teacher support. If I have a question regarding a math problem, it becomes tedious to email my teacher and wait for a response.
- Teachers often lack important data about how students are handling the class when it is entirely virtual. Even when they have data, it is very difficult to extract useful insights.
We built Homeroom to tackle these issues and revolutionize the state of online education!
What it does
Homeroom directly addresses the above problems by:
- Providing a real-time messaging service and the capability for teachers to organize students into "table-groups" to encourage discussion and collaboration
- Incorporating Polya, our specially-built AI assistant to guide students through problems and provide hints when students get stuck. Students can converse with Polya in natural language.
- Allowing teachers to access a data dashboard giving useful data on how students are progressing through assignments.
How we built it
Homeroom was a large and technically complex project involving numerous components.
Messaging, Assignments, and the Data Dashboard
The front-end of Homeroom is built with React. We used Tailwind to style the page. Homeroom uses Firebase's Firestore database to store all assignment and messaging data.
Polya is built as a Flask server in python. It parses any given problem's solution by tokenizing it and splitting it into different steps. Given a user's query, it automatically matches what the user types to a step in the solution. This happens based purely on the content of what the user types; they can talk to Polya in natural language! Polya then extracts hints from the next step of the solution using a couple different methods:
- Parsing and searching through a dependency tree of the next step
- Detecting the most salient tokens in the next step by computing each token's cosine similarity with a sentence embedding of the entire step
- Performing inference using a Text-to-Text Transfer Transformer (T5) Model fine-tuned on question generation. This state-of-the-art model uses attention mechanisms under the hood to provide great hints.
Challenges we ran into
Many on our team were completely new to React, and it was a challenge learning this new technology and applying it to this ambitious project. Along with that, our app has a lot of different parts to it that made integrating everything at the end a bit of a challenge. Another hurdle was communication. As there were a lot of different features for the application, those parts were split amongst all of our team members. However, due to the virtual nature of this hackathon, it wasn't always easy to check in how our teammates were doing and conflicting push schedules at the start made merge conflicts aplenty. Our AI, Polya, also proved to be a massiva challenge. It's not at all obvious how to do hint generation in a robust fashion, and it took a lot of exploration to figure out what works. This exploration was the toughest part of building Polya, as it called for a deep dive into the field of Natural Language Processing. Polya is built with a lot of different libraries and methods, each of which had their own quirks. A consistent challenge with Polya was how to preserve good latex formatting in the hints it outputs; in the end, some custom methods to parse the hints and detect things like where the latex fields begun and what tokens needed to be corrected worked pretty well.
Accomplishments that we're proud of
How complete the final product is. All of the features we set out to implement are present, and we even had the time to add some extra ones. It was incredibly satisfying to step back from all the hours of coding, start up the app, and see it do everything we set out to do from start to finish. Along with that, Polya's tutoring capabilities were actually effective and were really cool to see in action. To test Polya, we took hard math problems from AoPS and tried to solve them, asking Polya for hints along the way. There were quite a few times were we got geniuinely stuck, and Polya's hints helped get us to the solution without straight up giving the answer. It was what we were hoping for Polya, and we were very happy to see it working.
What we learned
Web development, React especially, was mostly new territory for us and the challenges we faced with React made this a great learning experience. Along with that, while we've worked with Firebase before, nothing was ever on this scale in terms of completeness and sheer amount of data. We learned quite a bit about how to efficiently use Firebase and how to properly manage and structure data. Finally, building Polya led us to gain a lot of insight into modern Natural Language Processing. In recent times, the tabula-rasa methods of deep learning have really started to dominate the literature of the field, but what's interesting is that what ended up working was actually a combination of these methods with some "old-fashioned" computational linguistics concepts like dependency parsing.
What's next for Homeroom
There is still a lot of room for growth with Homeroom, which makes us very excited for the future of the product. One new feature we see on the horizon would be video chat, as it would be a great addition that would further bolster Homeroom's goal of bringing the full classroom experience to the home. Homeroom's expansion can also come in the expansion of its pre-existing features. Further optimization of Polya can allow for more potent assistance on an even more diverse and complex set of possible questions. Support for questions that are subjective/have multiple answers can allow for analytics data that could provide insight beyond just numbers. Having a friend system that would allow users to take students from their table group and keep them as permanent contacts would be a great feature that helps students stay in touch with friends they've made through table groups. Interest based table groups could allow for more diverse minds to be mixed in one group, allowing for more enriching discussions. Our core features are versatile and important enough to where there is so much room for potential evolution. Our goal with future expansion is to allow Homeroom to surpass its original intention of bringing the classroom home to the point where teachers still use Homeroom in conjunction with in-person classes to take advantage of all the extra utilities we provide.