123&Me is a web app that uses machine learning to help children achieve proficiency in basic numeracy.

Inspiration

As a group, we wanted to make a full-stack machine learning project because we drew our inspiration from a few key things:

  • This project allows teaching for younger children to be fully autonomous, allowing for easy and accessible teaching, especially given high childcare costs
  • Aids in the increasingly important need to move towards a paperless world
  • Capitalises on the widespread access to touchscreen devices
  • Allows educators to help children gain numerical literacy more quickly.
  • Generally contributing to society via an avenue we're passionate about!

What it does

123&Me is designed to be simple and intuitive, especially for it's younger audience. With fewer, larger buttons and a large canvas on which children can draw, it is easy to understand and use, possibly required only a quick demo from a supervising adult. There are five buttons:

  • Clear: To clear your board
  • Check: To check your answer
  • Shuffle: To give you a new number to copy, to be used initially by kids
  • Add: Provides basic addition, randomises the numbers
  • Subtract: Provides basic subtraction, randomises the numbers

How we built it

  1. Started off with a basic idea, delegated within the group: Some people working on the training and optimising the model using the MNIST dataset; some on frontend and styling; some working on backend.
  2. After the respective components were (mostly) working, we began the monumental task of getting things to work together. After much heartache and much more error messages, we finally got it to work
  3. Further troubleshooting: we found the input data from the canvas to be difficult to process. After playing around with pen thickness, moving from average pooling to a compression algorithm we wrote and checking all our data structures were correct, we finally got it working.
  4. We then decided to add further features. Addition, subtraction and further styling were implemented.

Challenges we ran into

  • Our most significant challenge was far and away getting the framework to work together. After 3 hours of debugging, we did eventually manage to successfully get it to work. This involved lots and lots (and lots) of debugging, especially when looking at the weights of pixels within NumPy arrays. Our group did not have much experience in web development, which added a level of complexity but ultimately taught us a lot about the process, especially working in a group.
  • HTML/CSS also proved to be more difficult than expected. Whilst the initial aspects were easy, we had significant difficulty regarding taking the input of our drawing, as the implementation (which accounts for both touch and mouse, allowing for a better user experience across platforms) and CSS were having difficulty working in tandem. This was also balanced against the fact we wanted an aesthetically pleasing user interface that is both practical and reliable.
  • We also wanted to implement a responsive webpage, which provided its own challenge as it was often at odds with styling.
  • Learning Django from scratch given the time constraints proved an interesting but challenging task.

Accomplishments that we're proud of

  • We're very very pleased we have a working product: we did deliver what we hoped to.
  • We feel that our team worked well, and positively encouraged and reinforced each other throughout the process
  • We enjoyed the new challenges posed to us throughout the process

What we learned

  • Teamwork: This is the first group project any of us had done before. As such, it proved useful to employ strategies such as delegation and planning to aid a better design process and product. It was also fun to debate and engage with teammates, overcoming the many inevitable difficulties throughout the process
  • Persistence: Debugging is often a difficult and trying process! As such our determination was frequently tested. By working together and playing off each other's strengths we could usually find a way.
  • Learning: 24 hours of constant working is hard enough but coming across unfamiliar subjects and topics and having to learn very quickly on the fly was a skill that we all feel we have developed through this process.
  • Patience: Between the lack of sleep and various problems we came across, it was a difficult task to keep emotions from running high; despite this, collectively we were successful at keeping on task and not letting things get out of hand. Brainstorming, frequent check-ins and discussion allowed us to gauge the collective mood and act accordingly.

What's next for 123&Me

Our aim is to further develop 123&Me to allow us to check how young children spell words and handle more complex arithmetic operations like multiplication and division, in fact we even made some strides towards this, by having the program required to train the model ready to be implemented. Furthermore, another feature that we would’ve loved to have implemented if we had the time would be to help teach users how to write in different fonts using a trace layout on the canvas to give them practice writing in various and elegant fonts. The future of 123&Me is limitless, our services could be sold to schools, tutoring companies on a subscription basis or they could pay a one time fee for the service to improve the efficiency and quality of teaching delivered in schools across the country and the world. Account implementation and provisions for teachers and students could allow for testing and further developing handwriting skills, ultimately serving in its goal to both better the world by improving educational resources and helping move to paperless, whilst also proving monetarily beneficial.

Share this project:

Updates