A method and system for learning. Items to be learned are distributed
among an unmastered pool, a ready pool, a mastered pool, and a delayed
pool. Items from the unmastered pool are placed in the ready pool. A
current item randomly selected from the ready pool is presented to a user
who responds to the item. The current item is sent to the mastered pool
if the user's response is correct and (the current item was not
previously presented to the user or the user responded correctly to the
current item during the last J times that the user responded to the
current item). Otherwise, the current item is sent to the delayed pool
followed by transferring the current item to the ready pool after K
additional items are presented to by the user. J and K are each at least
1.