A method and a system to teach a user a subject based on his questions. The
system allows the user to control his learning process, and helps to fill
in gaps of misunderstanding in the subject. In one embodiment, the system,
including a database, presents study materials on the subject to the user.
After working on the presented materials, the user enters his question
into the system, which generates an answer to the question, and presents
it to him. Then the system compares the question with one or more
questions previously entered by the user to determine his understanding
level in the subject. Based on the determination, the system may present
to the user appropriate study materials. The user typically asks more than
one question, and the process of answering his question by the system
repeats.