
                        TUTOR by Daniel Green
                        Copyright 1992, 1996, 1998
                        Superliminal Software

TERMS OF USE:

Tutor is a shareware program. I simply ask that if you find Tutor
useful, that you send me a check for $25 to the address at the end
of this file. Please include your email address so I can inform you
of improved versions. Purchasing the product entitles you support and
free point releases. I'll also offer free license to anyone that 
creates and sends me a useful dictionary to make public.

You may use tutor freely and share it with anyone you like, however I
retain all rights to this work and expect you to honor my copyright.
You may not disassemble or  otherwise attempt to reverse-engineer my 
work. You wouldn't want people to attempt to steal your creative 
works, so don't you do that. If you redistribute Tutor, you must 
distribute the complete package unchanged including this file. Better
is simply to always find the latest version at 
		http://www.superliminal.com/tutor.htm 
and to share that URL instead of the program itself. In the spirit of
shareware, this program is not crippled and does not display annoying
messages when a demo period has run out. 

DESCRIPTION:

This document describes the Tutor vocabulary teaching program.
Tutor is something like the ultimate flash-card partner.
A good human flash-card partner will know which words you know well,
and which you're having trouble with. They will then select mostly
those words which are most important for you at that moment, but
will occasionally select words which are less important or which
they know you already know fairly well, just to keep your memory
refreshed.

Other vocabulary teaching software simply select words at random.
That is a poor approach because users tend to become frustrated and
lost quickly. Attempts to fix that such as partitioning dictionaries
into lots of smaller groups of related words may help with this, but
risk boring the intelligent users with too much repetition.  The Tutor
program does this in a very optimal way. It adapts to the current
user's ability to learn, and takes into account their past performance
with each word. It also accounts for the basic importance of each word
in its language, and will continue to adapt to the user over multiple
sessions.

When using the program, it's best not to think very much at all
trying to puzzle out which answer to select. If you don't know a
word, then just make a quick guess. There's no harm in missing
lots of words since Tutor will quickly bring up problem words so
frequently that you can't help but quickly get them right. Tutor 
is not a test, but a learning tool, so don't be afraid to make
mistakes. Mistakes are a very important part of learning anything.

At any moment, the next selected word for you to translate appears
printed large at the top of the window. Simply click on the button
underneath which you believe is the correct translation.
When you make an incorrect selection, you will need to keep making
more selections until you pick the right one. Each time you get a
word right, a new one is selected and displayed. The word you just
got right is still displayed in the bottom left corner along with
its translation. This serves as a reminder and also shows you all
the possible correct translations for that word.

A good strategy for optimal learning is to move through as many words
as you can as quickly as you can while at least still reading all the
choices. A good idea would be to set yourself a goal of seeing a
certain number of flashes instead of a certain amount of time.
It doesn't matter at all how many words you get right, or the
ratio of right to wrong answers. Just do as many as you have
patience for at any one time. It's also a good idea to not set
your goals so high that it becomes a real chore to do. Tutor will
work very effectively when used often but for short periods rather
than a few long sessions.

The Tutor program learns a lot about your learning progress with each
dictionary. Before quitting a session, hit the "save" button if you
want Tutor to remember your progress for the next time.

Tutor can be used to train you in *any* vocabulary, and is not
restricted to natural languages, but could be used to memorize
technical terms, chemical compounds, anatomy, or any other such
word associations.

This distribution comes with a few dictionaries. "elements.dic" is a
simple dictionary to learn the names and symbols for the chemical
elements. "g2e.dic" is a very complete vocabulary set for learning
German. It contains over 2,800 of the most important words with their
English translations. Mastering this set would give you a very strong
start learning the German language. 

The file "words.dic" simply contains the nouns culled from that
set and makes for a good first dictionary for learning German.
The name "words.dic" is important because that is the file that
Tutor looks to load when it starts up. If you want to use another
dictionary, you may want to rename words.dic to be "g2e_noun.dic"
before overwriting words.dic. The file "g2e_art.dic" is a permuted
version of the German nouns formatted to quiz you on the proper
articles for each noun which is a very important part of German
grammar. Try this one after you are starting to do well with
the nouns. You will then likely want to switch to using the full
German to English dictionary "g2e.dic". You may even want to start
with the full dictionary even if you're a complete beginner with
German, because the Tutor program is designed to never overwhelm
you regardless of dictionary size.

DICTIONARY FILE FORMAT:

You can create a new dictionary by following the simple format of
the chemistry dictionary supplied with the program and
renaming the files so that your dictionary is named "words.dic".
Each line in the file represents a word to be learned which is the
first field of each line. The second field of each line
is a "type" descriptor.  This can be any single word you like and
is used to organize the flashes to only show decoy words of the
same type. The third field is the relative importance of that word 
on a scale from zero to ten.  Initially, the number should be it's
relative importance in the language, but as you use the program
and save the results, the numbers will reflect the importances of
those words to *you*.  You might want to therefore make copies of
any initial dictionaries before you start running Tutor on them.
After the importance number must come an equals sign followed by
the translation or definition of the word. The translation may contain
multiple correct definitions separated by colon characters. When Tutor
displays a word with multiple definitions it chooses one at random
each time, though it always displays all definitions for the previous
word in the lower left corner. Note that it's crucial
that these five fields exist for each word, that they are separated
from each other by one or more spaces, tabs or other white-space,
and that there *not* be any spaces anywhere else on those lines.
If you need spaces such as between the words of a phrase (like
"das Boot"), you must use an underscore character instead. All
underscores will be substituted with spaces when words or
definitions are displayed. If you create any useful dictionaries,
I'd love to add them to the distribution. Please send them to me at
the email address at the end of this file.

APPLICATIONS:

You'll note that the program interface is extremely simple.
The interface is simply a test bed for the underlying algorithm.
This is very much a work in progress, and I'd be especially
interested to hear your suggestions about potential applications
this algorithm might be integrated into. Licensing and collaboration
opportunities are most welcome. I'll also be very curious to hear any 
feedback you'd care to give.

I hope you find Tutor useful. I wrote it as an aid for me to learn 
German, but I think the underlying algorithm is general enough to be 
useful for many different applications.

Daniel Green
Superliminal Software
2340 Francisco St. #301
San Francisco, CA 94123

email: dgreen@superliminal.com
tel: 415-673-5965

