Difficult material: leeches
Learning material can be inherently difficult (e.g. numbers, sets, enumerations, etc.) or it can be wrongly formulated. Mnemonic techniques and other tools can be used in tackling inherently difficult material (see: 20 rules of formulating knowledge in learning)
Important! A small proportion of difficult material in SuperMemo can consume a large proportion of your time
The term leech is used in SuperMemo to refer to ill-formulated items. An element is called a leech when it meets user-defined leech criteria such as the number of memory lapses and the current interval. These parameters can be defined when using View : Other : Leeches (Shift+F3). An element becomes a leech when the number of memory lapses passes a defined limit. However, an element is no longer considered a leech if it is remembered beyond a certain interval (independent of the number of lapses).
Leech Hunting Options
Although View : Other : Leeches (Shift+F3) can be used to review, delete and reformulate leeches, the best approach to tackling most persistent leeches is to review them in detail one by one in the course of the learning process. In Tools : Options : Leeches, you can select the following leech management options:
- None - no leech management. During repetitions SuperMemo will treat leeches in the same way as other elements
- Wizard - upon encountering a leech during repetitions, SuperMemo will open the Leech Alert! wizard (see below). This is the recommended choice for rational supervision of the learning process
- Auto-forget - upon encountering a leech during repetitions, SuperMemo will automatically remove the leech from the learning process and put it at the end of the pending queue (i.e. the queue of elements awaiting memorization)
- Auto-postpone - upon encountering a leech during repetitions, SuperMemo will automatically reset the learning parameters of the element and schedule it for repetition after a sufficiently long interval. Quite often, taking a break from repetitions of a leech may help overcome an erroneous memory pattern. For example, if you tend to confuse Nigeria and Niger on the African map, taking a 50-100 day break from making repetitions on this subject may actually resolve the confusion by cleaning your memory from erroneous traces. Once you consciously re-memorize the position of both countries on the map, the problem may be solved once and for all. Important! Auto-postpone may also produce infinite leech loops in which you will indefinitely try to postpone ill-structured material never actually solving the problem!
Include semi-leeches checkbox can be used to tighten the criteria for a leech warning. A semi-leech is an element that is one memory lapse away from becoming a leech. For example, if a leech is defined as an element with five or more lapses and an interval up to 60 days, an element with four lapses and 1000 day interval will be a semi-leech (because after a single lapse, it will reach 5 lapses combined with a short interval thus becoming a leech). If your collection is well-structured and you do not encounter many leeches, you can turn Include semi-leeches on to tighten leech supervision.
Leech Alert Wizard
If you choose Tools : Options : Leeches : Wizard, the following dialog will be displayed each time you encounter a leech during repetitions:
This is the function of individual controls:
- Continue - continue with repetitions without taking any action (Esc)
- Show answer (default action) - show the answer to the question posed by the leech
- Help - display this page
- Lapses - graphically displays the number of memory lapses
- Interval - graphically displays the length of the current interval
- Postpone - reset the leech and schedule it at an interval defined in Postpone interval field
- Edit - edit the leech
- Forget - remove the leech from the learning process
- Dismiss - remove the leech from the learning process and the pending queue (i.e. dismiss the leech)
- Delete - delete the leech and all its children
- Auto-postpone - turn on the auto-postpone mode
- Auto-forget - turn on the auto-forget mode
- Include semi-leeches - allow of evoking the leech alert on semi-leeches
- Parameters - edit element parameters (e.g. forgetting index)
- Reschedule - reschedule the leech by specifying the next repetition date
- Save layout - save the current layout and preserve the position of the leech alert wizard
- Bright-Bad - grades that can be used to evaluate your response to the question posed by the leech (these act in the same way as grade buttons in the element window)
Recommended leech strategy
- In heavily overloaded incremental reading, use Auto-sort and Auto-postpone to reduce the flow of leeches to a trickle
- If you learn large volumes of items and you can afford lower retention, use Auto-forget
- If you are not sure you can use Auto-forget due to higher retention requirements but still press on high speed of learning, use Auto-postpone
- If you want to eliminate leeches without risking a drop in retention choose Wizard in leech management options
If you use the wizard, make the following choices upon encountering a leech:
- For less important leeches, choose one of the following in the increasing order of leech importance:
- Delete or Dismiss (use Dismiss if the leech may include valuable children or if you want leave it for future reference)
- Forget (the leech will come back once you memorize the whole pending queue)
- Postpone (the leech will come back after the period defined in Postpone interval passes)
- Reschedule (use Reschedule to bring the leech at a specified interval that may be shorter than Postpone interval)
- If you cannot make an evaluation without actually responding to the leech question, choose Show answer and reevaluate the leech. If you recall the answer correctly, you should rather grade your response and defer your action until the next repetition (chances are, your leech will fall out from the leech criteria)
- The most efficient method of dealing with leeches is to choose Edit; however, you will need lots of experience to figure out how to properly formulate the material, split it into smallest possible components and use mnemonic techniques (see: 20 rules of formulating knowledge)
- If you do not know what to do with a given leech, you can just press Esc and continue with repetitions. Warning! This can easily become a habit and all the idea behind the leech alert will be defeated! Before using Esc becomes automatic, read this text carefully and learn to make your leech-related decisions!
Defining and viewing leeches
The option View : Other : Leeches (Shift+F3) can be used to locate leeches in your collection. This option uses the element filter dialog box that can be used to find all element meeting a specific set of criteria such as the number of repetitions, number of memory lapses, length of the current interval, status (memorized, pending, or dismissed), type (item, topic or task), etc.
The purpose of locating leeches is to reedit most intractable items with a view to applying appropriate mnemonic techniques. Alternatively you can reset elements (e.g. to deal with them later), dismiss them (to use them only as reference, e.g. with Search : Find elements), or simply delete them.
A new powerful tool against leeches is a possibility of exporting your leeches to a handheld device (see: Revolution in the pocket). Although, it may seem that pocket repetitions are usually done in conditions of lesser focus, working in the leech-only mode sets your brain onto an emergency alertness level. You approach repetitions differently if recall failure is expected. At time, this is enough to wrap your mind around harder material and gradually reduce the leech load.
To maximize the effectiveness of the learning process, you should learn to use View : Other : Leeches and periodically remove from your collection most intractable and badly structured material.
The following fields can be used to select the minimum and the maximum values that fall into the range defined for difficult elements:
- Repetitions - number of repetitions made with a given element. This is not a good criterion for defining leeches and is turned off by default
- Lapses - number of times a given element was forgotten. This is the primary field for defining leeches. For example, if you want to find all elements that have been forgotten at least 5 times, set Minimum at five and Maximum at 100 (or other value that is greater than maximum number of lapses)
- Interval - number of days between the last repetition and the next repetition. You might want to limit intervals to some value (e.g. 1 to 50 days) to account for the fact that even elements that have been forgotten many times may be disregarded as leeches if they had passed a certain length of interval without being forgotten
- Last repetition - number of days between the first day of the learning process and the last repetition date (see Tools : Workload to view day numbering). This field should not be used in searching for leeches
- Next repetition - number of days between the first day of the learning process and the next repetition date. This field should not be used in searching for leeches
- A-Factor - value of A-Factor assigned to a given element. This is not a good criterion for defining leeches. If you want to use it, choose the lower range of A-Factors (e.g. from 1.2 to 1.5)
- Forgetting index - probability of forgetting a given element during each repetition. The forgetting index is set by the user and is by no means a reflection of element difficulty. You might use it however to locate items of lower priority (e.g. as defined by a higher forgetting index). By using the forgetting index field you might sharpen the leech criteria for elements that are of lower priority. For example, you might decide to reset all leeches and be more strict with resetting elements to which you assigned a higher forgetting index
- Ordinal number - ordinal number assigned to a given element. The ordinal number is set by the user and is by no means a reflection of element difficulty. You might use it however to locate items of lower priority (e.g. as defined by a higher ordinal numbers). This way you might sharpen the leech criteria for elements that are of lower priority
If you do not want to use a given criterion, uncheck the check-box associated with a given field. If you do want to use it, check the check-box and specify appropriate minimum and maximum values.
By definition, all leeches are memorized items. This is why Type and Status fields of the element filter are disabled.
Once you click OK, all leeches meeting the specified criteria will be found and will be displayed in a browser. You can then use Learn in the leech browser (Ctrl+L) to make repetitions in the leech subset only.
Using Tools : Random test : Leeches you can run a random test on all leeches. However, you should remember that part of the leech problem is repetition that is too frequent (i.e. causing the spacing effect). This is why Auto-postpone and Auto-forget are so efficient. This is also why leeches are much less of a problem in heavily overloaded Incremental reading.
Leech parameters are stored between sessions in the file <supermemo folder>\<systems>\<collection name>\collection.ini in the section [Leech]
You can clear the Leech Alert with Esc
Leech alert: Nice feature, but I hate that per default, the leech window becomes active. I don't want to move my mouse to another window to do the grading. I often use Space bar to activate the default button, and sometimes, it automatically moves to Postpone when I intended to grade myself Good
You can either disable leech alert entirely in Options or just clear it with Esc and continue the repetition cycle using standard keys
Semi-leeches cannot be auto-forgotten
Why can I not choose Include semi-leeches in leech manager for auto-postpone or auto-forget?
Semi-leeches are not leeches. They can be scheduled for repetition at very long intervals. Removing them from or reintroducing them to the learning process would add a substantial cost to learning