Review of the development of the SuperMemo method and software (1982-1995)


CALENDAR OF MAJOR DEVELOPMENTS

1982 - Application of the recall principle
1984 - Application of the minimum information principle
1985 - Application of the optimum spacing of repetitions
1987 - First computer implementation: SuperMemo 1.0 (introducing the concept of E-factor)
1988 - SuperMemo 2 and SuperMemo 3
1989 - SuperMemo 4 - optimization based on the matrix of optimal intervals
SuperMemo 5 - optimization based on the matrix of optimal factors
1990 - Completing "Optimization of learning. A new approach and computer application" (including the model of intermittent learning and a comprehensive theoretical analysis of the learning process conducted along a schedule determined by SuperMemo)
1991 - SuperMemo 6 - optimization based on approximation of forgetting curves
July 5, SuperMemo World was formed
November, SuperMemo 6 becomes a finalist of the Software for Europe 1992 Award Competition
1992 - March, SuperMemo World displays its products at CeBIT '92
September, SuperMemo 6 receives the first degree award at Softarg '92, Katowice, Poland
September, SuperMemo 6 receives a special award of the Polish Computer Science Society
December, SuperMemo 6 is awarded in the Product of the Year 1992 competition organized by PC Kurier, Poland
1993 - January, releasing SuperMemo 7 for Windows
March, releasing SuperMemo 5 Shareware
March, SuperMemo World displays its products at CeBIT '93
May, releasing AudioVisual SuperMemo 7 for Windows
August, releasing SuperMemo for Amiga
September, SuperMemo tops the chart of best Polish software hits for Amiga (Amiga Magazine)
September, SuperMemo 7 is awarded at Softarg
December, SuperMemo becomes the first ever Polish software reviewed in Byte International
December, SuperMemo 7 is awarded in Product of the Year 1993
1994 - January, SuperMemo is voted 4-th most popular Polish software by readers of Polish PC World (behind anti-virus and word-
processing products)
March, SuperMemo for Amiga is voted the Product of the Year 1993 among Polish software for Amiga by readers of Amiga Magazine
March, SuperMemo World displays its products at CeBIT '94
March, SuperMemo is awarded for the best price/value ratio by the CENA/VYKON journal, Czech Republic, March 1994
April, SuperMemo USA Inc. is established
May, SuperMemo 7 is awarded a prestigious Gold Medal at Infosystem Computer Fair in Poznan
July, 10,000-th copy of SuperMemo has been sold
August, SuperMemo USA, Inc. publishes SuperMemo on CD-ROM, including the audio release of Advanced English best-seller. This title becomes the first Polish Windows software title on CD-ROM ever
September, SuperMemo World is granted the special award of the fair's president at Softarg and receives a free display for 1995
September, SuperMemo World signs its first OEM bundling deal with JTT, second largest computer-maker in Poland
October, SuperMemo World publishes the European release of SuperMemo on CD-ROM
October, SuperMemo 7.2 tops the ranking of best-selling software sold at illegal software market, ahead of Microsoft Word 6.0 and Microsoft Works 3.0 (published by PC World Komputer, Vol. 11, 1994)
December, SuperMemo for Windows receives the Reader's Choice distinction from PC World Komputer (Vol. 12, 1994) by being voted second most popular Polish software in Poland and the most popular Polish software for Windows in Poland
1995 - January, releasing SuperMemo 6 shareware
February, SuperMemo received a positive review in the most prestigious European journal: German Chip
March, releasing SuperMemo for MacIntosh
March, SuperMemo displays its Multilingual SuperMemo CD-ROM atCeBIT '95

==========================================================================

SUPER-MEMO SOFTWARE

VERSION 1.0 - Written in December 1987

CHANGES TO VERSION 1.1 (Feb 88)

1. Comprehensive help
2. The lower limit for E-factors set to 1.3
3. An improved formula for E-factor evaluation
4. Outstanding parameter in PROCESS INFORMATION used to
indicate the number of repetitions in the final drill

CHANGES TO VERSION 1.2 (Mar 88)

1. TRANSFRM.COM used to convert databases to the intact form (later called RESET.EXE)
2. Applying final drill to newly memorized items
3. Applying the rule that if an E-factor was equal to 1.3 then the quality lower than five decreased the new interval (without changing the factor). This solution was later given up as
inappropriate
4. Using Home in the INTACT QUEUE (PRIORITY QUEUE) option to increase the current queue position to make modifications easier (the INTACT QUEUE option was later given up)

========================================================================

VERSION 2.0 (Jul 88)

1. Upgrading the program to Turbo Pascal 4.0 (previously Turbo
Pascal 3.0).
2. Improved ITEM EDITOR (with commands such as End, Home, Ctrl-Y,
etc.)
3. Dates rather than day numbers used to inform the user about
the process
4. Screen attributes changed to meet the requirements of
Hercules Graphic Card

CHANGES TO VERSION 2.1 (Jul 88)

1. Simplified and rebuilt menu structure
2. Source code file shortened by 6300 bytes
3. Letters instead of numbers used to select options
4. Option SOUND OFF

CHANGES TO VERSION 2.2 (Nov 88)

1. New Help compiled as a separate file

(SUPER-MEMO 3.0, October 1993, see further)


CHANGES TO VERSION 2.3 (Jan 89)

1. Shorter and faster COMPRESS procedure

CHANGES TO VERSION 2.4 (Sep 89)

1. New help in a new format (modelled after Borland products)

CHANGES TO VERSION 2.5 (Jun 91)

1. Adapting SuperMemo 2 for shareware distribution
2. Information about SuperMemo World
3. Simplified system of messages
4. Help file corrected from the linguistic standpoint
5. Item editor imported from SuperMemo 5

CHANGES TO VERSION 2.6 (Feb 93)

1. Converting SuperMemo 2 to Public Domain software


==========================================================================

VERSION 3.0 (Oct 88)

1. The whole program was written again from scratch
applying the then popular standards of windows, pull-down
menus and other elements of user-friendly interface
2. Databases with separate names
3. Option for editing items during testing
4. Computing the average quality in Random Test (this option
was later given up)
5. Average burden change for a session
6. Average quality for a session
7. Option for changing the date
8. OS Shell option
9. No intact queue editor

===========================================================================

VERSION 4.0 (Feb 89)

1. Improved optimization method: function of optimal intervals
is modified to adjust it to a given learner and given knowledge
2. Option for displaying optimal intervals
3. Option for displaying the number of repetition cases used in
computing optimal intervals
4. Option for displaying distribution of intervals
5. Burden parameter (defined as a sum of interval reciprocals)

CHANGES TO VERSION 4.1 (Mar 89)

1. Assembly language procedures used to search for items containing
a given substring (search rushes 1000 items per second: 8086,
RAM-disk)

CHANGES TO VERSION 4.2 (Mar 89)

1. Continuous optimization: In versions 4.0 and 4.1 all items having
factors from the same class (e.g. 1.4, 1.432, 1.499) were subject
to the same optimization procedure. Now, each of them has its own
set of optimal intervals (later this solution was given up)

CHANGES TO VERSION 4.3 (Sep 89)

1. A new comprehensive help
2. Directory system extended to include separate paths for
databases, parameters, help and COMMAND.COM
3. Optimized source code used to make the program smaller,
faster and easier to modify

=========================================================================

VERSION 5.0 (Oct 89)

1. A new, advanced optimization technique based on computing
optimal factors rather than optimal intervals
2. Option for displaying optimal factors
3. Option for displaying the approximate values of optimal
intervals
4. Storing the last repetition date and the U-factor in the
database

CHANGES TO VERSION 5.1 (Mar 90)

1. Option for printing items in the browsing mode
2. New recovery mechanisms in the compression procedure
(option Compress was later renamed to Garbage collection)

CHANGES TO VERSION 5.2 (Mar 90)

1. Optimal factors greater than 6
2. New function for modifying factors on the base of quality,
consistent with the one used to modify optimal factors:
quality equal to four does not change the factor
3. Automatic closing the database before leaving to DOS

CHANGES TO VERSION 5.3 (Mar 90)

1. Reset operation in the browsing mode
2. Date of the next repetition displayed in the item window
3. Choosing the last-used item in Select instead of providing
an item number
4. Inputting grades in the random test no longer necessary

CHANGES TO VERSION 5.4 (Jul 90)

1. Full propagation of changes in the OF matrix
2. Qualities 0, 1 and 2 have the same impact on the optimization


(SUPER-MEMO 6.0, May 1991, see further)


CHANGES TO VERSION 5.5 (Jul 91)

1. Improved procedures for window management, string
editing, item editing, etc.
2. Increased database fault tolerance
3. Introducing mechanisms for preventing piracy (e.g.
passwords, database marking, registration number, etc.)
4. Introducing some of the advanced procedures from
SuperMemo 6

CHANGES TO VERSION 5.6 (Jan 92)

1. Using the COMSPEC parameter to establish the default value
of the COMMAND.COM path
2. Adapting window procedures to a wider range of graphic
controllers

CHANGES TO VERSION 5.7 (Mar 92)

1. Removing anti-piracy protections (e.g. passwords)

CHANGES TO VERSION 5.8 (Mar 93)

1. Adapting SuperMemo 5 for shareware distribution

=======================================================================

VERSION 6.0 (May 1991)

1. The whole program was written anew from scratch
2. New optimization technique based on sketching forgetting curves
for particular difficulty categories and repetition numbers.
The whole record of repetitions is stored in the database
3. Programmable forgetting index used to control the speed
of learning!!!
    4. Simplified structure of the database (4 instead of 6 files) with
the INF file stored in the compressed form (reducing the size by
80%)
    5. Fast daily burden with the possibility of editing
items scheduled for a given day
6. Monthly and annual burden
    7. New process parameters:
    - Average repetition, lapses, interval, factor
    - Requested and measured forgetting index
    - Retention approximation
    - Mean repetition time
    - Workload
8. Keyboard shortcuts (Alt, functional keys)
9. Simplified and economized menu structure
    10. Smoothing of the matrix of optimal intervals by means
of hill-climbing approximation
    11. Random-hit, real-time smoothing scheme
12. Extended fault tolerance mechanisms
13. Protection against using unclosed databases
14. Extending the Editor by commands such as Paste, Cut, Delete
Word, Delete-EOL, Copy Block, Move Block, Delete Block,
Word Right/Left, Replace String, Swap Lines, etc.
15. Option Find extended by Replace
16. New file selection option with separate panes for changing
the drive, path and template
17. Option Duplicate Item in the browsing mode
18. Final drill file (*.REP) not deleted upon closing the database
(unless empty)
    19. New, context-sensitive, 180-page help
    20. UK/US date format as a parameter
    21. Option for changing all directory paths
22. Option for turning the color on and off
    23. Single stage compression. No regular garbage-collection
    required
    24. Extension of Optimal factor and Optimal interval option
for factors higher than 2.5
25. Separate option for closing the database in use
26. Mechanisms for preventing piracy (e.g., passwords, database
marking, registration number, etc.)
27. Maximum number of items in a database increased from 10,000
to 60,000

CHANGES TO VERSION 6.1 (Jan 1992)

1. Using the COMSPEC parameter to establish the default value
of the COMMAND.COM path
2. Using the SM6.EXE directory as the default parameter
directory (previously the working/current directory was
used)
3. Adapting window procedures to a wider range of graphic
controllers
4. Preventing DAT files from having zero size (problems with
COPY in DOS)
5. New, 100-page User's Guide including a chapter devoted to
paper-and-pencil applications of SuperMemo

CHANGES TO VERSION 6.2 (Mar 1992)

1. Removing anti-piracy protection mechanisms (e.g. passwords)

CHANGES TO VERSION 6.3 (Apr 1992)

1. Option Schedule item in the browsing mode (used to memorize
selected intact items)

CHANGES TO VERSION 6.4 (Jun 1992)

1. Option Mercy on the Miscells menu (used to evenly distribute
outstanding items in the future schedule in order to minimize
the damage to memories)
2. Word-wrapping in the item editor
3. Faster Find and Delete for large databases
4. Command interpreters different from COMMAND.COM may be used in
OS Shell
5. File selection window can be used to determine the paths to
(1) help file, (2) command interpreter, and (3) parameter file
6. Chapter on theoretical aspects of SuperMemo in the User's
Guide

CHANGES TO VERSION 6.5 (Oct 1992)

1. Option Wipe on the Miscells menu (used to reduce the number of
repetitions by elongating intervals of short-interval items)
2. Option Reset-Wipe on the Miscells menu (used to reduce the
number of repetitions by resetting short-interval items)
3. Text buffer used by option Cut block and Paste block is
preserved when editing more than one item
4. Simplified block operations in the item editor (F7 - mark,
F8 - cut, F9 - copy, F10 - paste)
5. Reducing the size of the program by compiling it with Turbo
Pascal 6.0 compiler (previously Turbo Pascal 4.0)

CHANGES TO VERSION 6.6 (Jan 1993)

1. Possibility of defining dedicated fonts for databases using
non-standard characters (EGA/VGA only)
2. New installation utility
3. Compiling the program with Borland Pascal 7.0
4. REPSTR.EXE utility for font and substring conversion


(SUPER-MEMO 7.0, January 1993, see further)


CHANGES TO VERSION 6.7 (May 1993)

1. Possibility of redefining keyboard codes with KBD files
2. Font Designer shareware included in the package
3. Allowing full path specification in Toolkit programs instead
of just a database name

=========================================================================

SUPER-MEMO 7.0 FOR WINDOWS (Jan 1993)

1. The whole program was written anew from scratch in Borland
Pascal for Windows version 7.0
2. New database file managing options:
- Delete Database
- Rename Database
- Cut Drills (removing items scheduled for Final Drill)
3. Possibility of using several database editing windows at
the same time; plus independent Learn, Search and Random
Test windows with all operations of the editing mode
available. This allows, for example, to browse, search,
edit or expand the database during learning
4. Possibility of using up to 4 independent Append
windows at the same time (e.g. to add or duplicate items
at Learn or at Search)
5. Possibility of transferring items and text blocks between
all sorts of item windows (via Clipboard)
6. Possibility of duplicating items in the Append window
7. Forgetting curves available from all options displaying
optimization matrices (R-Factors, O-Factors, optimal
intervals, and Cases)
8. Possibility of working with a few databases at the same
time using separate instances of the program
9. New, 140-page manual with an extended FAQ chapter, and a
chapter describing the SuperMemo Database Toolkit

CHANGES TO VERSION 7.1 (May 1993)

1. Adding Image menu in editing windows (creating up to
60,000 graphic images associated with items)
2. Adding Audio menu in editing windows (recording and playing
up to 60,000 sound files associated with items)
3. Configuration AutoSave
4. Remembering location and sizes of working windows in the
program configuration
5. Possibility of associating icons with databases in the
SuperMemo group (database name as a parameter for SM7.EXE)
6. Adding Advanced English and SuperMemo Toolkit to every SM7
package (compressing all installation files on two 1.44 MB
floppy diskettes)
7. Database name in window captions (for switching with Alt-Tab
between multiple databases used at the same time with shared
code of many program instances)
8. Parameter Future Reps estimating the number of repetitions of
a given item in the nearest 30 years
9. Possibility of resuming search with a new substring parameter,
upon finding an item
10. Adding the option View Text Files
11. Providing names for grades (bright, good, pass, fail, bad,
and null)

CHANGES TO VERSION 7.2 (Sep 1993)

1. Possibility of using any of the Windows fonts in any color
in SuperMemo items (option Font)
2. SETUP.EXE added to the installation utility to install
SuperMemo databases and selected SuperMemo components
3. Adapting the program to run on Windows NT
4. Adding the Import option on the Image and Audio menus
5. Adding case insensitive item search
6. Adding a option for viewing the matrix of retention at
repetitions for particular E-factors and reptition nos
7. Adding options Copy and Move database
8. Adding an option for defining text, sound and graphic
editors in Options
9. Adding a configuration file for each database with parameters
such as desktop, font, color, search string, etc.
10. Enhancing SuperMemo Toolkit by operations on bitmap and
    sound files
11. Option Word-wrapping in the Options dialog
12. Option Demo on the Miscellaneous menu

CHANGES TO VERSION 7.3 (Mar 1994)

1. Adding full-screen item browsers (e.g. for all items,
for intact items, for memorized items, for outstanding
items, for intractable items, etc.)
2. Possibility of searching for all items containing a given
substring, and reviewing these items in the search
browser (the search browser sequence is preserved between
sessions)
3. Possibility of changing the order of items in the database
(by means of the general browser)
4. Possibility of editing the intact queue (by means of the
intact browser)
5. Option Item:Transfer in editing windows (used to quickly
transfer the current item to another database)
6. Rescue integrated with the program as File:Recover
7. Introducing the concept of a leech (item which slows down
the learning process). Possibility of extracting leeches
using the criteria of E-factor, number of lapses, and
the interval. Possibility of browsing leeches and randomly
reviewing leeches.
8. Possibility of using filter files with TO_TEXT.EXE that
allow defining (1) items that should be included/excluded
in/from the output, (2) strings that should be replaced, (3)
comment that should be cut, (4) ordinal number delimiters,
(5) definitions of ordinals used in sorting databases, etc.
9. Possibility of quickly opening one of the 5 recently used
databases from the pick list on the File menu
10. Automatically opening the last used database at running
SuperMemo (second instance opens the last but one database,
etc.)
11. Resizable question-and-answer field in editing windows
12. Implementing the Append window which is orthogonal to Edit
windows (e.g. to allow adding bitmaps and sounds at Append)
13. Possibility of fast switching between appending and editing
modes (e.g. to edit recently appended items)
14. Possibility of independently passing one of the three stages
of learning: outstanding, memorizing and final drill
15. Random test on item subsets: intact items, memorized
items, intractable items, outstanding items, etc.
16. Possibility of alternative viewing items scheduled for a
particular day in the item browser (in Analysis:Burden)
17. Preserving the intact sequence in Garbage and in Recover
(and RESCUE.EXE)
18. Possibility of viewing items scheduled for a particular
month by clicking entries in the Monthly Burden
19. Possibility of arbitrarily choosing the first interval when
memorizing an item
20. Possibility of installing database True Type fonts with
SETUP.EXE (TTF files)
21. True Type support in printing
22. 256-color bitmap support
23. Optimized design of menus and accelerators (faster, more
orthogonal, more Windows-like and more intuitive)

CHANGES TO VERSION 7.4 (Sep 1994)

1. Integrated Toolkit (including tools such as: Recover, Reset,
Transfer, Sort, Export text, Import text, Export SM6,
Import audiovisual files, Cross-section, SetUp, etc.)
2. Child browsers (e.g. Child:Search makes it possible to
selected from the browser all items containing a given
substring; Child:Leech extracts all difficult items, etc.)
3. Lexicon and Audio lexicon make it possible to instantly
access words and audio phrases stored in the database (the
lexicon may be built for a custom-made database with
Build Lexicon using user-definded filter file)
4. Mercy into the future (e.g. in order to pass all repetitions
scheduled for a vacation period)
5. Possibility of spelling drills with the Spell-Pad
6. Fuzzy search (e.g. in order to find 'bureaucracy' without
remembering the exact spelling)
7. Multiple user menu that makes it possible to define a number
of users with separate database directories and database
password protection
8. Possibility of using different fonts in questions and in
answers (e.g. Latin alphabet in questions and Cyrillic in
answers)
9. Four modes of accessing audiovisual files (e.g. in order to
repeat audiovisual items whose bitmaps and sound files come
from a database stored on CD-ROM, in a colleague's
directory, etc.). Possibility of editing audiovisual links
in a database with BMP and WAV files stored on CD-ROM.
10. Smart Garbage makes it possible to clean the database
directory from all optional files
11. Smart Reset makes it possible to selectively reset the
elements of the learning process (e.g. forgetting index,
optimization matrices, entire database, etc.)
12. A synchronous Browser's Edit window in browsers makes it
easier to browse multiline items, and items illustrated with
bitmaps
13. Possibility of defining user's keyboard (by defining KBD
files that will assign selected character codes to Alt-key
combinations in the item editor)
14. Possibility of comparing one's vocal responses with original
audio records in the database
15. 3-D graphs with optimization matrices
16. More accurate approximation of forgetting curves

CHANGES TO VERSION 7.5 - Programmable SuperMemo (Jan 1995)

1. Database programmability, i.e. the ability to execute DLL
database modules (to open the way to using SuperMemo in
procedural learning, problem solving, playing musical
instruments, creativity training, etc.)
2. Adding Touch-typing programmed database to every package
3. Tools menu in the browser makes it possible to perform
database operations on the contents of the browser
4. Operations Print All, Delete All, Memorize All and Reset All
in the browser
5. Subset operations on the contents of the browser (Open, Save,
Add, Subtract, and Intersect)
6. Option of selecting individual items in the browser, and
creating a child browser with selected items
7. Option Action : Previous in editing windows provides access
to up to fifty recently reviewed items
8. Adding final drill browser and history browser (for up to 50
recently used items)
9. Option Item : Drill in editing windows makes it possible to
add an item the final drill queue
10. Option Move : Randomize in the browser makes it possible to
scramble the browser's content (e.g. to randomly reshuffle the
final drill queue, etc.)
11. Options Edit : Replace and Search : Replace all in the
browser
12. Option Browser : Random test makes it possible to run a random
test on items kept in the browser
13. Option Item : Kick in random tests makes it possible to eliminate
items from random test (e.g. by providing passing grades)
14. Sound importing options in the browser
15. Output of Tools : Cross-section can be imported to standard
spreadsheets (e.g. Quattro Pro, Excel, etc.)
16. Show answer, Next and Cancel buttons in learning windows
17. Two menu variants: (1) simple (default) and (2) professional.
18. Adapting SuperMemo 7 to run in Windows 95

1.3.21