diff --git a/BUGS.md b/BUGS.md index 05fb929..9959fe2 100644 --- a/BUGS.md +++ b/BUGS.md @@ -1,6 +1,7 @@ BUGS: +- level depender do numero de respostas correctas - pymips: activar/desactivar instruções - tabs em textarea nao funcionam correctamente (insere 1 espaco em vez de 4) - reportar comentarios após submeter. diff --git a/knowledge.py b/knowledge.py index 81d8e9c..6450e12 100644 --- a/knowledge.py +++ b/knowledge.py @@ -32,7 +32,7 @@ class Knowledge(object): if topic is None: # select the first topic that has level < 0.9 for topic in self.topic_sequence: - if topic not in self.state or self.state[topic]['level'] < 0.9: + if topic not in self.state or self.state[topic]['level'] < 0.8: break logger.debug(f'Student {self.student}: new_topic({topic})') @@ -42,6 +42,8 @@ class Knowledge(object): self.questions = self.generate_questions_for_topic(topic) self.current_question = None self.finished_questions = [] + self.correct_answers = 1 + self.wrong_answers = 0 # ------------------------------------------------------------------------ def generate_questions_for_topic(self, topic): @@ -85,7 +87,7 @@ class Knowledge(object): # keep going if there are no questions in the next topics while not self.questions: self.state[self.current_topic] = { - 'level': 1.0, # FIXME depends on how many are correct + 'level': self.correct_answers / (self.correct_answers + self.wrong_answers), 'date': datetime.now() } self.new_topic() @@ -103,8 +105,12 @@ class Knowledge(object): question = self.current_question if question is not None: question['finish_time'] = datetime.now() - question.correct(answer) + grade = question.correct(answer) + if grade > 0.9: + self.correct_answers += 1 + else: + self.wrong_answers +=1 - logger.debug(f'Student {self.student}: check_answer({answer}) = {question["grade"]}') + logger.debug(f'Student {self.student}: check_answer({answer}) = {grade}') return question -- libgit2 0.21.2