jMemorize is a spaced repetition learning tool (based on a modifed Leitner system) written in Java and published as open source.
It lets you create items that contain questions and answers (so called flash cards) and quizzes you against them in intervals. Every time you recall the answer to a card correctly, the level of card is raised. When you fail, it gets reset to the very first level. Over time this results in more difficult cards being found in lower levels and better known cards in higher levels.
This allows the software to present the user with a interesting mix of difficult questions in every learn session and through the chart that is displayed on top of the window, the user is always able to get a quick grasp of how well he knows the current lesson.
I created the software during my studies at Freie Universität Berlin, basically out of my own needs and frustration of what I found to be available at that time. I was especially fascinated by combining gaming elements (like quantifying your progress in easily understandable numbers) and a serious concern while studying.
Development was mainly done by me, with some occasional help from patch contributing developers and translators.
Homepage: Sourceforge project
(still working on occasional bug fixes but main development has stopped)
Reach: Over 175,000 downloads
Technologies: Java, Java Swing