Текущая ситуация: вопросы задаются учащимся из существующего банка вопросов в случайном или последовательном порядке.

Ожидаемое решение. Технология должна задавать вопросы в зависимости от ответа учащегося и уровня сложности вопроса.

Подход к решению:

  1. Разделите все вопросы на кластеры в зависимости от их уровня сложности и сохраните их в 2D-массиве.
  2. Теперь предположим, что таких кластеров пять, отсортируйте эти кластеры в порядке возрастания сложности. Например, есть пять банков вопросов Q0, Q1, Q2, Q3 и Q4, тогда банк вопросов Q0 состоит из вопросов легкого уровня, тогда как банк вопросов Q4 состоит из вопросов самого сложного уровня.
  3. Q0, Q1, Q2, Q3 и Q4 — это массивы, состоящие из элементов в виде номеров вопросов, поэтому нам нужно также отслеживать вопросы Q0 или Q1 и т. д. Для этого нам нужен другой массив, скажем, track[p]=track [p]+1, а вопросы можно получить как Q[p][track[p]]. (Изначально массив треков инициализируется нулем)
  4. Когда студент начнет викторину, ему сначала будет предложен вопрос из Q0. Нам нужна переменная, скажем, p, которая указывает на текущий банк вопросов. Первоначально p указывает на Q0.

а. Теперь, если студент дает правильный ответ, мы должны увеличить p так, чтобы он указывал на следующий банк вопросов, здесь Q1 и так далее. Мы не можем увеличивать p, когда он уже указывает на последний банк вопросов, здесь Q4.

б. В противном случае, если студент дает неправильный ответ, то это зависит от нашего требования, мы можем уменьшить уровень сложности (уменьшив p) или оставить как есть. Мы не можем уменьшить p, когда он уже находится в первом банке вопросов, здесь Q0.

5. С помощью другой переменной мы также можем указать, что после правильного ответа на количество вопросов этого уровня будут представлены вопросы следующего уровня сложности. Предположим, что в настоящее время студент находится на уровне 2, тогда после правильного ответа, скажем, на 5 вопросов уровня 2, ему будут представлены вопросы уровня сложности 3.

6. В некоторой переменной, скажем, res, мы можем хранить баллы, соответствующие уровню сложности, если студент отвечает правильно.

Я попытался объяснить приведенный выше алгоритм на примере и псевдокоде.

Массив вопросов: question_bank

question_bank[i][j] представляет номер вопроса j в банке вопросов i

(i обозначает уровень сложности)

      0    1     2
0 Q0  2    3     4
1 Q1  1    6     7
2 Q2  5    8     9
3 Q3  10   13    14
4 Q4  11   12    15

Всего вопросов: 15

Псевдокод:

p=0;
i=0;
res=0;
total =15
first=0
last=4
while(i<total)
{
ans=display_question(question_bank[p][track[p]]);
if(ans==Correct && p!=last)
{
p=p+1;
res=res+(p+1)*10;
}
else if(ans==Incorrect && p!=first)
p=p-1;
else
p=p;
track[p]=track[p]+1;
i=i+1;
}

Если вы нашли эту статью полезной, пожалуйста, хлопните в ладоши или прокомментируйте. И, пожалуйста, поделитесь с другими.