In high school I took German, but was unable to memorize most of the non-cognate vocabulary, so I got only "C" grade in class. In college I took French, but was unable to memorize nearly all of the vocabulary, even with the help of a set of flashcards I made, so I actually failed the French 2 class. Later I took Russian, and made another set of flashcards for both the alphabet and the vocabulary, but after 2 semesters I still hadn't been able to memorize even the Cyrillic alphabet, never mind any actual words, so I refused to show up for the final exam, and converted my incomplete to an "F" in order to be allowed to graduate from college.
On or before 1969.Feb.02, but probably as early as 1968.Dec.24, when I was in an extremely pessimistic emotional state about my inability to memorize vocabulary, I conceived a totally pessimistic algorithm for proving that I can't learn vocabulary effectively. The idea was to practice a single word until I could remember it immediately after seeing it, then set it aside and look at a second card and remember it likewise, then go back to the first card to verify that I had forgotten it already, in which case I'd need to re-learn it, back and forth. In the unlikely event that I ever could remember a card immediately after having been distracted by the other card, then I record how long I remembered that card, i.e. the time span before and after the distraction, and then double that time before testing that card again, on the idea I can remember it a few seconds but probably not twice that long, and I'd have to **prove** I could remember it twice as long before believing it. Each time I get a card right on seeing it again after distractions by other cards or passage of time, I'd double the delay before testing again. Unfortunately with physical flashcards it's totally impractical to do all this time-delay accounting per card.
But then I conceived a watered-down version of the algorithm, where during a study session I don't keep track of precise time but instead merely keep track of how many distracting cards intervened, doubling the number of intervening cards before each re-test. I invented a physical trick for keeping track of this easily: I stick cards between my thumb and index finger to implement the current one or two cards I haven't gotten right yet, then between index finger and middle finger up to two cards I've tested correctly once and which are then waiting their turn for re-test, another slot between middle and ring finger with up to four cards, another between ring and little finger with up to eight. When a card from the not-yet-correct slot finally tests correct, it moves to the 2-card re-test slot. When that slot gets a third card, the oldest card in the slot is re-tested immediately and if it re-tests correct it moves to the 4-card slot. Likewise when the 4-card slot gets a 5th card, the oldest slot is immediately re-tested, and if correct again it goes into 8-card slot. When any card fails to test correctly from any of the 2/4/8-card slots, it goes back to the not-yet-correct slot. Any cards that test correctly up front, and again after 2 distractions, and again after 4 distractions, and again after 8 distractions, drop out to a "learned for today" stack. All of that "in hand" testing is just by imagining the answer, sub-verbalizing it, and trusting myself to check the back of the card and notice if I got it wrong in any way. Then at the end of a session, I take all those "learned for today" cards and re-test by actually writing the answers on paper to make sure I hadn't halucinated my correct answer, another example of my pessimistic attitude, not trusting myself to fully believe that I have actually learned any card until and unless fully verified. If and only if the final on-paper test is correct, then the cards go into a deck that is set aside until the next calendar day before re-testing on paper only. Cards that test correctly the next day are re-scheduled after two more days, then if correct again re-scheduled after four more days, etc., doubling the number of days before each re-test. Any time I get a word wrong during written testing, it goes into a deck of "hurdles" which will eventually need to be re-learned from scratch, ahead of any totally new cards I might like to learn, but after any re-testing that was already due.
So most likely on 1968.Dec.24 I tried an experiment, the in-hand algorithm combined with the days-delay decks. But almost immediately had a problem: I couldn't remember the algorithm itself, so how could I actually do it??? My solution was three additional cards that I needed to learn before the regular cards: One card that tells the overall algorithm priorities, one that tells exactly how to do the in-hand algorithm, and one that tells how to manage the decks of cards going into days of delay. It was really hard trying to remember enough of the algorithm to effectively use it to memorize the contents of the three algorithm cards to remember the algorithm used to memorize the algorithm, a classic chicken and egg problem, but with much effort I was finally able to learn the three cards, after which I proceeded to try to learn the Cyrillic alphabet.
It worked! Thanks to my manual version of the delay-doubling flashcard-drill algorithm, I was able to learn the Cyrillic alphabet, so then I proceeded to memorize the Russian vocabulary. It worked! By learning about 20-30 cards per day, mostly hurdles (words that I had tried to learn before but then forgot), and some brand-new words each day, I managed to learn *all* the appx. 900 Russian vocabulary cards, whereby on 1969.Jul.14 0904 GMT I specially annotated the very last deck of cards I had learned (set aside for one day at that time). Then I continued re-testing the Russian cards as they came due, but started mixing in as many French language cards as I had room for (in the 20-30 cards I had energy to learn from scratch each day). I got them all learned too a few months later. Then I got out a German language coursebook, don't remember where it came from, and made flashcards for about 300 German words, and learned them too.
Then I tried making flashcards for languages I had never
taken in school, including the Sanskrit and Hindi (Devanagari)
alphabets, Chinese characters, and some Spanish and
Kiswahili words and common phrases. Each card (these new cards and also
the earlier Russia+French+German cards) has English on the front,
with language
code in upper-right corner, but the cards from the various
languages were all mixed together. The foreign language
equivalent of the English is on the back. Thus all testing
is:
Front=Question: English + languageCode
Back=Answer: Foreign Language.
(Going back the other way is much easier, and can be done by guessing,
which doesn't really teach anything.)
My algorithm allowed me to learn *all* these cards
as I continued to use the algorithm through 1970 and 1971.
I also tried using the system to memorize amateur radio handles and other trivia, but not to the same extent as my big foreign-language experiment. After I got all the cards learned, for a few more years I simply re-tested per schedule to maintain my 2000+ words of foreign language vocabulary, re-learning as-needed any cards that I got wrong on re-test, so it took less and less of my time each month to maintain the decks as they needed re-testing at longer and longer intervals. Typically I'd miss only a few cards each week, so every couple weeks I'd get enough cards in the hurdles to warrant re-learning all of them in one batch to then go into a mixed-langauge batch for delayed re-testing. But after several more years I got busy with other tasks and stopped re-testing.
Sometime during the 1970's, at the Stanford A.I. lab, I met Sarah McCarthy, daughter of John McCarthy who invented Lisp, and we got along well, but she was fascinated about race horses, so she insisted I learn the names of the winners of the Kentucky Derby etc., so I wrote a crude implementation of the delay-doubling algorithm in SAIL (version of Algol 60), and thereby memorized a few horse names, but then we lost interest in that, so now I still remember "Citation" as one of the winners but don't remember which race he won.
In 1989 I married a woman from the Philippines, and in early 1990 I bought a Macintosh Plus, and a year or so later she insisted I learn Tagalog, so I had her tell me various English/Tagalog word pairs, which I transcribed into a text file. Then I tried to implement my flashcard algorithm in HyperCard, with each flashcard on a separate Card, with HyperTalk for the algorithm, but HyperTalk was very very much too slow at finding the next card that was due to re-test, so I gave up on that project.
In late 1995, our firstborn son was in kindergarden, and I decided to try to teach him how to read, but since the HyperCard program was too slow to be practical, I just used a text editor to emulate the in-hand algorithm, by cutting text from one spot in the file and moving it to another spot to emulate moving a card from one finger-slot to another. I worked from a tabulation of word-frequency, sorted from most-common ("the" "to" "and" "but" ...) downward, limited to just the 2000 most-common words. My son did well, learning a couple hundred words at the start (most common), but also figuring out the algorithm all by himself and correcting me every time I moved a card to some incorrect place. The errors and his corrections became so frequent that they become a major frustration, but the algorithm itself was working **great**, so 1996.Jan I implemented the full algorithm using Macintosh Allegro Common Lisp. He quickly re-tested all the words he had learned by the manual text-editor algorithm, then proceeded to learn all the rest of the words. By the time he had finished kindergarden, he had learned to read the 2000 most common words of English, but actualy after about 1500 words he was reading almost every new word correctly the very first time he saw it, so forcing him to test all the way to 2000 really was overkill. Also, after he'd learned several hundred words that way, I added to the program a new kind of flashcard, where instead of seeing a word and reading out loud, he saw a sentence or phrase with a common word missing, requiring him to keyboard in the missing word. By the time he had learned to read 2000 words out loud, he had also learned to key-in several hundred missing common words spelled correctly.
Meanwhile, almost as soon as my son in kindergarden was
using the computer program for learning to read and spell,
my daughter only 4 years old at the time was begging to try
it too. She was too young to read whole words out loud
easily enough to not be frustrating, so I devised a new type
of missing-letter exercise:
*arney is a dinosaur from our imagination. -> B
B*rney is a dinosaur from our imagination. -> a
Ba*ney is a dinosaur from our imagination. -> r
etc. and she took to that very quickly. Then about the time she
was 4.5 years old (1996.Jun), she was mature enough to do the
reading-out-loud lessons easily too, and finally the
spelling of whole words. By 1997.June, three months before she was due to
start Kindergarden, she had already learned to read the 1500
most common words (and could in fact read at a near-adult
level already) and had learned to keyboard a couple hundred
most common missing words.
In 2002.Nov-Dec, I ported the flashcard program to the Web, using
CGI + CMUCL, starting with reading-out-loud and spelling-missing-word in
English using the data from what my children had used on my Mac,
then added new decks of cards to it in later years.
It's still available now if anybody wants to try everything except the
reading-out-loud.
It includes these decks of cards, all keyboard in the answer:
500 English most-common words #1..500, spelling missing-words
400 English semi-common words #501..900, spelling missing-words
80 English --> Spanish common words, spelling missing-words
32 English --> Mandarin (pidgin+tones) useful words
26 Pre-reading, alphabet, missing-letters
52 Pre-reading, missing first letters
129 Pre-reading, Barney Dinosaur, missing-letters
35 Pre-reading, quick brown fox, missing-letters
177 Pre-reading, Star Spangled Banner, missing-letters
69 Pre-reading, local phrases (where I reside), missing-letters
100 Good commercial products, missing letters
100 Good commercial products, missing words
If you want to make use of my Web-based service to learn any of those
decks, you need to ask me to set you up with your own personal account.
But for a quick trial to get a general feeling for the algorithm,
you can use the guest account: TinyURL.Com/uh3t -> login form ->
User: guest1 / Password: free