Phonetic Flashcards

In late August 2023, my partner and I went to Yorkshire to visit a friend of her family. On the drive back her car broke down, and the experience of relaying number plates over the phone made me realise that I did not know the phonetic alphabet, and really I should.

So, while we sat by the side of the A11 waiting for a rescue car to come and diagnose the problem, I used my laptop to write a little python program to learn it.

The underlying idea came from Colin Wright, who introduced me to a method of learning which he referred to as "stacks" which is a system of organised repetition. Essentially you have a stack of flashcards which have a question and an answer on them. If you get the question right it's put the bottom of the stack as a "low priority retry", but if you get it wrong, it's put down the stack but at "fairly high priority" so that you'll retry it sooner. While it's efficacy relies completely on the honor system, if you can be honest with yourself about getting something wrong, I've found it to be a very effective method of learning something.

Of course I was sat by the A11 with no access to documentation, and only my existing knowledge of python to work with, so I didn't implement that. Instead I just got it to choose a letter at random to prompt. This isn't too bad because it's a fairly small data set, but if you were learning something with more entries like the periodic table, a more curated algorithm would be much better.

I did patch this twice after I got back home, once to add a screen clear so that it wasn't possible to check your previous answers (although I have noticed this clear screen working improperly on MINGW. Works perfectly on Unix systems and WSL2, however). The other patch was to fix the fact that I'd accidentally told it there were 24 letters in the alphabet rather than 26.

This was a good little project because it proved to me that I can cobble together a functioning python program quickly and without needing to refer to documentation for the syntax of simple functions. However, while the project is finished, I think I would like to remake it in C++ at some point because it seems like a good opportunity to practise arrays and memory allocation, which is something I always want to be working on.