Fresh Memory is a program for studying foreign words. It can manage flashcards stored in dictionaries. The user can create and edit the dictionaries. The flashcards are used to study words with one of the tools:

Fresh Memory can also be used to study any structured data. The examples could be capitals of countries, chemical elements, or even friends' birthdays.

The cards can have multiple fields to store, fore example, a word in different languages + example. One field is selected to be the question, other fields are answers. The user creates ready card packs, which define the configuration of fields in the card. Thus, it is possible to learn foreign words in both direct and reversed order. The configuration of card packs can be easily edited at any time. The fields can be formatted with different font styles, sizes and colores. By default, a new dictionary has three fields: Question, Answer and Example, and two card packs. The first pack uses Question field as the question, and Answer and Example as the answer. The second pack uses the fields in reverse order: Answer field becomes the question.

The Word drill mode is a simple review of flash cards. It is a fairly basic tool, which can be used to quickly look through the cards. The cards are shown in random order. The randomization can be switched off in the settings, if needed. By default, the questions are shown together with answers. When the "Show answers" checkbox is unchecked, the question is shown first, and the user then presses the "Answer" button to open the answer. The next card is shown on pressing the "Next" button. At any time, the user can browse the history of all cards browsed in the current session by pressing the "Back/Forward" buttons.

The Spaced repetition is an important tool. The user can repeat cards with high efficiency. The cards are repeated in comparatively small portions, which are spaced in time with the repetition intervals. The program automatically schedules cards for repeating depending on how well they are known by the user. The better the card is known, the longer interval is automatically selected for its next repetition. If certain card is subsequently answered correctly, its repetition interval grows, which lets the user see that card rarer. The scheduling uses an SM-2 based algorithm. The user tries to recall the shown card (its question field), presses the "Answer" button to check the answer, and evaluates his/her knowledge of this card on the scale from 0 to 5. Grades from 2 to 5 are correct answers of different flavours, 0 and 1 grades are incorrect ones. Here is more detailed meaning of the grades:

In the very beginning, all cards are considered new. If there are too many cards in the dictionary, the application will limit the number of new cards introduced in each session. Currently, the day limit is 20 new cards (this value can be changed). Thus, all new cards are gradually introduced during several sessions. However, after the day limit for new cards is reached, the user may choose to continue studying the rest of new cards.

Typically, the user creates his/her dictionaries himself/herself. New cards are added to an opened dictionary in the main window of Fresh Memory. Having his/her own dictionary allows the user to meet his/her specific study needs. The dictionaries are saved in an XML-based format, specific to Fresh Memory, and have fmd-extension. The user can freely choose where to store the dictionaries. On the other hand, it is possible to export a dictionary to a CSV text file to further work with it in another program. As well it is easy to import ready-made dictionaries from CSV files (which were created in another program or just a text editor).

The user's study data is stored in a file beside the dictionary, with the same name, but different extension: fms. The dictionary file itself always stays clean from any user-specific data, thus it is always ready to share with other people. Note that the study file must be always in the same directory as the dictionary. If the dictionary file is moved to another place without the study file, the application will not be able to find the study data.

Portability. It is possible to continue working with your dictionaries on different computers and even operating systems. For that purpose, the dictionary and study files must be carried over to another computer. The dictionary files can be put to any place as long as its study file is copied together in the same directory.


Fresh Memory is written in C++ using Qt framework. It fully supports Unicode (UTF-8) and therefore is not restricted to Latin letters. The application can be translated to other languages using Qt Linguist tool.

Actively supported operating systems are Linux and Windows. The application can also be compiled under MacOS as any other QT project.