Education Algorithms

I have an idea for some kind of algorithm which will form a level of adaptive education responding to an individuals ability.

The crux of this involves heavy usage of questioning to verify what a person does and doesn’t know.

So, let’s have a go at formulating it somehow.

I sit at the application and select the topic I wish to learn about, Physics for example.

The application has pre-programmed a series of problems which are able to effectively measure an individuals knowledge on a particular subject.

The application will choose some easy to medium questions to start with and start testing an individual. When an individual cannot answer a question the application will find questions which test the underlying knowledge required for the unknown topic.

Once the application has found a known topic then the application will re-present questions from the next topic up the chain.

When a person can then not answer a series of questions the application will present some material explaining the key concepts of that particular area and level, it will use simple questions to build confidence and then increasingly difficult questions to cement the ideas. Once a person is competent (say 70%) then the application will start introducing more questions from further up the tree and repeat the process over again.

I suppose this can be pseudo coded as

  1. Ask some sample questions
  2. Find questions that are unanswerable
  3. Within the questions that are unanswerable build a tree of supporting knowledge required to answer those questions
  4. Traverse this tree and find any areas that are unknown
  5. If some areas are found then go to step 3 for the new topic
  6. If no areas are found then go to step 7 for the unknown topic
  7. Introduce some basic information about the topic
  8. Ask some basic questions about the topic
  9. If the questions are answered competently then go to step 12
  10. If the questions are not answered competently then go to step 11
  11. Re-present the concepts in a different way and resume at step 8
  12. If there is more to learn then go to step 14
  13. If there is not more to learn then go to step 16
  14. Introduce more concepts to increase knowledge
  15. Go to step 7 for the increased concepts and difficulty
  16. Move up the tree and resume at step 1

There isn’t really an exit clause to this, there doesn’t need to be either. There are varying levels of competence that can be attained.

I think that this algorithm, whilst not perfect, represents a better way of using questions. All too often questions are used to quiz and examine people rather than to help a person learn something new. Using this kind of technique and asking different questions in different ways can be a very powerful method of helping a person evolve their understanding of a particular topic.

This is just an idea at the moment, I’d love to code it up and turn it into an actual application, and one day I will.