Idioma is a not-entirely-user-friendly program for studying foreign languages. There are nicer programs out there with GUIs like Anki but I found myself in a foreign country with no internet connection and a pressing need to learn a lot of vocabulary and grammar as quickly and efficiently as possible. Thus, Idioma was born: quick and to-the-point, built strictly for getting the job done.
In principle, the software is based around the notion of boxes of flash cards, each box being further divided into 5 sub-boxes. New cards go into the first sub-box. You then test your knowledge of the cards, one sub-box at a time. If you get a card correct, it moves to the next sub-box, otherwise it goes back to box 1. You can assign testing times for each of the sub-boxes (as a list in the main file, idioma.py), but by default they're set at 0 days, 1 day, 2 days, 7 days, and 14 days, which I find to be effective. Once a card reaches the last sub-box, it will stay there until you remove it. It's good to re-test old words occasionally though, I think.