Сначала нужно определить список предметов, список тем и сопоставить их со списком предметов. Для каждой темы определить ее сложность (по какой либо шкале). Для каждого вопроса нужно определить его сложность (вес), тему и предмет.
Таким образом имея данную информацию можно на основе правильных ответов по всем вопросам данного ученика определить, какие темы он знает хорошо, какие не очень или не знает. Тут элементарно можно определять вес тех вопросов, что он ответил правильно по отношению к весу всех вопросов в теме\предмете. Получится чтото вроде "знает на 42% мат.анализ, на 89% правильно ответил в теме "как убиться об стену после 42% матана""
Нейронная сеть тут можно и не использовать. Выбирать вопросы можно просто по принципу "выбирать те, темы, что имеют меньший вес решенных". Тут еще желательно настроить зависимости, к примеру данная конкретная тема зависит от знания такой и такой темы, и при выборе вопросов нужно учитывать это и выбирать первыми те, что не имеют зависимостей или их зависимые темы\вопросы уже решены. Если уже совсем хорошо делать можно еще к каждому вопросу привязывать "тэги", это например определения, формулы и тп. и соответственно по тегам решенных можно будет сказать что вот этот еще не решенный вопрос он вероятно решит, потому как тэги в нем теже, что были в том вопросе что он уже решил.