A platform that combines spaced repetition and code-katas, to teach python more effectively.

Tom Kelross


Supervised by Martin J Chorley; Moderated by Federico Liberatore

Spaced repetition[0] is a proven evidence based learning technique.

It is most commonly talked about in relation to learning a modern foreign langauge, however it can also be used to assist in learning a programming language[1].

A code kata[2] is a programming drill that helps programmers hone their skills through practice and repetition.

For this project, I would like to build a platform that makes it easy for teachers to create a set of flashcards/programming drills that students can practice.

I would like to investigate 1) Using AWS's firecracker engine to rapidly and securely evaluate if a students answer to a programming drill is correct https://github.com/firecracker-microvm/firecracker

2) Using containerisation to create usable and replicable environments for learning programming https://code.visualstudio.com/docs/remote/containers

3) A few other things, need to come back and finish this description.

If this sounds interesting please get in touch!

More than happy to talk through my ideas in a teams call / zoom call etc

Kind regards, Tom


[0] For an introduction to the topic check out https://ncase.me/remember/ - A great(!!) twenty minute webcomic explaining the topic https://www.gwern.net/Spaced-repetition - A very thorough, more academic explanation with some great links at the end.

[1] https://sive.rs/srs

[2] https://en.wikipedia.org/wiki/Kata_(programming)

Initial Plan (08/02/2021) [Zip Archive]

Final Report (28/05/2021) [Zip Archive]

Publication Form