Inspiration

Figuring out a studying method isn't easy for everyone. We wanted to see if there was a scientific answer to the question of maximizing studying efficiency. That's where spaced repetition comes in - a concept based on the idea of forgetting curves, or how we retain information.

What it does

The app uses our version of the SM5 spaced repetition algorithm to compute repetition intervals and adapt to user preferences. A user is able to store courses and different topics, and is able to adjust their studying speed every repetition by using a 3 point confidence rating.

How we built it

We analyzed different spaced repetition algorithms and decided on the SM5. Using Python, we translated it into code and tested/refined the algorithm to better suit our app. We then mirrored the functions into Swift.

Challenges we ran into

Porting Python into Swift was definitely not as easy as we thought. And even though the algorithms weren't long by any means, dealing with all of the matrices were quite difficult as there wasn't much information out there.

Accomplishments that we're proud of

Pulling an all-nighter and successfully implementing the full functions of our algorithm. There were so many bugs in our first app version, but we fleshed most of them out in the early morning.

What we learned

There is a whole world of study dealing with learning techniques and spaced repetition. This was a much larger field than we anticipated, and some of the things that we saw were quite interesting. For example, spaced repetition can be used to train neural networks!

What's next for Spaced

We'll be beta-testing the app with other students and collecting the feedback to improve Spaced as much as possible. Try out the beta below if you'd like to participate!

Built With

Share this project:

Updates