You may want to try a program like Mnemosyne or Anki. These use a technique called spaced repetition, a product of research on long-term memory, to optimize the process of learning by calculating exactly when to show you a flash card. I've been using Mnemosyne to learn Chinese characters, and I find it to be very effective. Take a look at http://nihongoperapera.com/mnemosyne-anki-review.html, which is a review comparing Anki, Mnemosyne, and an older program: Supermemo.