ExponWords » Help

The basics

ExponWords is a web application for learning words. It helps learn the word pairs fed by the user using the principle that the more we have already practiced a word, the less we need to practice it again.

So the main point of ExponWords is that the more times the user was able to remember a word when the program asked, the less frequently it will be asked (because it will be considered "stronger"). When a word is asked and the user states that he remembers it, the word will be asked the next day; if the users remembers the word the next day, it will be asked in 2 days; if he knows it in 2 days, it will be asked in 4 days; and so on with powers of 2. If the users admits on any of these occasions that he does not remember the word, the strength of the word as stored by ExponWords will go back to the initial level, and it will be asked again in 1 day, then 2 days afterwards, then 4 days afterwards etc.

ExponWords stores word pairs to be learnt. These can contain not only words, but also expressions or anything the users wants to learn. For the sake of simplicity though, they will be only referred to as word pairs. Word pairs have the following elements:

User interface

ExponWords has a global menu and a separate menu for each dictionary.

The global menu is available on the main page: the user can log in, log out, create dictionaries, set the options.

The dictionary menus are available from the dictionary page, which can be accessed from the main page by clicking on the name of the dictionary. The user can view, edit and delete the dictionary, add and import new words, and practice.

Main page

The main page has the following menu items if nobody is logged in: The main page has the following menu items for logged in users:

Dictionary page

The dictionary page shows activities that can be done to the selected dictionary. It has the following menu items:

Text formats

A dictionary uses one of the following text formats: plain text, HTML (keep linebreaks) and HTML (unmodified). The text format determines how words and notes are displayed to the user during practice sessions, or when listing words. With using one of the HTML text formats, you can use bold text, italic text, colors, images, tables, etc. in your words and notes. For further demonstration, let's see a more complex example using the HTML (keep line breaks) format:

Custom CSS

A custom CSS can be set for each dictionary in the "Modify dictionary" page. If the dictionary format is HTML, then the custom CSS will be applied on all web pages where words of that dictionary are shown (practice page, list words, etc.)

Importing word pairs

Importing word pairs as text
This page lets you import word pairs in a textual format.
Importing word pairs as tab-separated values
This page lets you import words from a spreadsheet for example.


The practice page contains the following elements:

Practice early

The "Practice early" page is a practice page where not only those words are asked that are due today, but those too that could benefit from practicing. (That means words whose dimness is larger than 0.75. So for example if a word is due after 100 day of its last practice, then it is asked in early practice sessions from day 75. From day 100, it is asked in normal practice sessions.)

In early practice sessions, the words are always ordered according to the I am a little behind ordering, which means that first those words are asked that are better suited for early practice (because their dimness is higher).

Word orders on the practice page

Words can be asked in several orders on the practice page. (Note that these orderings specify only the order of words within the practice page, not which word is asked which day.) You can set your preferred ordering globally on the Settings page, or only for one dictionary on the Modify dictionary page.

Note: words in the same category above (e.g. words with the same dimness tomorrow and strength) are asked in a random order.

The concept of dimness

Dimness is a measure that shows how many times a word should have been asked. For example, let's say that a word is practiced and "YES" is pressed, and it is due in 4 days. After the practice, the dimness of the word is zero, because it just has been asked. Then the dimness increases by one quarter each day: 0.25, 0.5, 0.75, 1, 1.25, etc. On the day when the word is due to be asked, it is 1 (by definition). Normally, the word is asked on this day so its dimness goes back to 0; but if the user does not practice it, the dimness will just increase by each day. The dimness of weak words increases rapidly, while the dimness of strong words increases slowly.

When the dimness of a word is greater than 1, it means that the word should be practiced: the higher the dimness, the more urgent the practice is. If the user has quite a few words larger than dimness 1 for the practice session, then the "I am a little behind" word ordering is recommended.

For those interested, here is the formula that calculates the dimness of a word with positive strength (words with nonpositive strength do not have dimness):

dimness = (("today - word_date" in days) + 2 ^ (word_strength - 1)) / (2 ^ (word_strength - 1))

Methods of strengthening a word

When the "YES" button is pressed during a practice session, the strength of the given word will be increased. There are two methods for strengthening the word. They both work on the basic principle that they double the time interval for the next practice: 1 day, 2 days, 4 days, 8 days, etc.

The difference is how they handle the situation when the word is not practiced on the day when the word is due, but later. For example let's say that a word was practiced on January 1st, 2nd, 4th, 8th, but even though ExponWords asked the word on 16th, 17th, etc., it was only practiced on 20th. Let's see how the two methods calculate the next practice time of the word:

In both cases, the strengths of the words will be calculated so that they provide the time intervals described above.

Generally, the first method is better (that's why that is the default), because it means less practice time. In some circumstances, though, the second one may be useful too. In case of early practice, always the first method is used.

You can use the "Search and operations" page to search in your dictionaries. You can select the dictionary, and the label in which to search. The text you type into the textbox will be split into words (words are separated by spaces). ExponWords will list those word pairs that contain all search words. If the search box is empty, it lists all word pairs.

The searchbox is case insensitive and accent insensitive, so for example a search for "haz" will find the word pairs that contain the text "Ház".

You can use prefixes to filter your search:

The long and short forms of prefixes are equivalent. For example, the search expressions "label:oldwords" and "l:oldwords" find the same word pairs.

When using the "label", "word1", "word2" or "explanation" prefix, you can use the "^" character to find only word pairs where the specified word matches to the beginning of the specified field. You can use the "$" character to find only matches at the end. For example:

The program shows the search hits in a table. Showing this table can be turned off by unchecking the "Show hits" checkbox. In this case, the program will still perform the search and display the number of hits. The usual operations can be performed as well; but they will be performed on all found word pairs, there is no possibility of manually selecting a subset of them.


The "Search and operations" page can also be used to perform certain operations on word pairs that have been selected. Word pairs can be selected with a single click on them. The selected word pairs are indicated by their gray background and the state of their checkboxes in the "Selected" column.


The followings can be set:

Similar applications

ExponWords in not the only web application for learning words and other items.

The algorithms of Supermemo (English) and szokincs.hu (Hungarian) are similar to the algorithm of ExponWords in that it has you practice the same word less and less often. The creator of Supermemo (Dr Piotr Wozniak) has articles about this kind of learning, and there is an article in Wired magazin about him.

Other applications for learning words include memorize.com (English), Quizlet (English), Brainscape (English) and Szókincsfejlesztő (Hungarian).

Frequently Asked Questions (FAQ)

Other help pages


ExponWords v1.3.0.
Copyright (C) 2010-2023 Csaba Hoch

ExponWords is open source software and is distributed under the Apache Licence version 2. The source code repository can be found here.