Exemplo n.º 1
0
 def send_next_question(self):  # THIS IS NOT USED
     control_message = ControlMsg()
     control_message.nextStep = "QUESTION-NEXT"
     control_message.questionNum = self.current_question
     control_message.questionLevel = self.level
     control_message.robotSpeech = self.questions[self.level][
         self.current_question]['Spoken Question']
Exemplo n.º 2
0
    def give_structure_hint(
            self):  # give a hint in the form of the structure of the problem
        control_message = ControlMsg()
        control_message.nextStep = "SHOWSTRUCTURE"
        control_message.questionNum = self.current_question
        control_message.questionLevel = self.level
        control_message.robotSpeech = "Let's look at how to structure a solution"

        self.decisons_pub.publish(control_message)
        print "sent:", control_message
Exemplo n.º 3
0
    def repeat_question(
        self
    ):  # send this message to have the student try the same question again
        control_message = ControlMsg()  # with no tutoring behavior
        control_message.nextStep = "QUESTION-REPEAT"
        control_message.questionNum = self.current_question
        control_message.questionLevel = self.level
        control_message.robotSpeech = ""  #Try that again." #we don't want to say anything here.

        self.decisons_pub.publish(control_message)
        print "sent:", control_message
Exemplo n.º 4
0
    def no_action(self):
        control_message = ControlMsg()
        control_message.nextStep = "NOACTION"
        control_message.questionNum = self.current_question
        control_message.questionLevel = self.level
        control_message.robotSpeech = ""

        question_id = self.questions[self.level][
            self.current_question]['QuestionID']
        self.log_transaction("NO-ACTION", question_id, self.level)
        self.decisons_pub.publish(control_message)
        print "sent: ", control_message
Exemplo n.º 5
0
    def give_think_aloud(self):  # ask the student to think aloud
        control_message = ControlMsg()
        control_message.nextStep = "THINKALOUD"
        control_message.questionNum = self.current_question
        control_message.questionLevel = self.level
        control_message.robotSpeech = ""  #"What is the first thing you want to do to solve this problem?"

        question_id = self.questions[self.level][
            self.current_question]['QuestionID']
        self.log_transaction("THINKALOUD", question_id, self.level)
        self.decisons_pub.publish(control_message)
        print "sent:", control_message
Exemplo n.º 6
0
    def tic_tac_toe_break(self):  # trigger a game of tic tac toe for a break
        control_message = ControlMsg(
        )  # the robot message here is the speech for the beginning of the game
        control_message.nextStep = "TICTACTOE"
        control_message.questionNum = self.current_question
        control_message.questionLevel = self.level
        control_message.robotSpeech = "Lets take a break and play a game of tic-tac-toe. You will be exes, and I will be ohs. You can go first. Click any square on the board."

        question_id = self.questions[self.level][
            self.current_question]['QuestionID']
        self.log_transaction("TICTACTOE-START", question_id, self.level)
        self.decisons_pub.publish(control_message)
        print "sent:", control_message
Exemplo n.º 7
0
    def give_tutorial(
        self
    ):  # give an interactive tutorial. like the worked example, this is controled by node_tablet
        control_message = ControlMsg()
        control_message.nextStep = "SHOWTUTORIAL"
        control_message.questionNum = self.current_question
        control_message.questionLevel = self.level
        control_message.robotSpeech = ""

        question_id = self.questions[self.level][
            self.current_question]['QuestionID']
        self.log_transaction("INTERACTIVE-TUTORIAL", question_id, self.level)
        self.decisons_pub.publish(control_message)
        print "sent:", control_message
Exemplo n.º 8
0
    def give_example(
        self
    ):  # give a worked example - what example is given is determined by node_tablet code
        control_message = ControlMsg(
        )  # and is based on the level. node_tablet controls all tablet and robot actions
        control_message.nextStep = "SHOWEXAMPLE"  # during this
        control_message.questionNum = self.current_question
        control_message.questionLevel = self.level
        control_message.robotSpeech = ""

        question_id = self.questions[self.level][
            self.current_question]['QuestionID']
        self.log_transaction("WORKED-EXAMPLE", question_id, self.level)
        self.decisons_pub.publish(control_message)
        print "sent:", control_message
Exemplo n.º 9
0
    def first_question(self):
        self.total_num_questions += 1
        self.tries = 0
        control_message = ControlMsg()
        control_message.nextStep = "QUESTION-FIRST"
        control_message.questionNum = self.current_question
        control_message.questionLevel = self.level
        control_message.robotSpeech = self.questions[self.level][
            self.current_question]['Spoken Question']

        print self.level, self.current_question, self.questions[self.level][
            self.current_question]

        #time.sleep(3) #wait a little before sending first question message so robot can finish intro
        self.decisons_pub.publish(control_message)
        print "sent:", control_message
Exemplo n.º 10
0
    def question_next_level(
        self
    ):  #aditi - no longer using         # indicates that the student should move to the next level
        self.tries = 0  # so we increase the level number and go to question 1
        self.current_question = 1
        self.level += 1

        control_message = ControlMsg()
        control_message.nextStep = "QUESTION-LEVEL"
        control_message.questionNum = self.current_question
        control_message.questionLevel = self.level
        control_message.robotSpeech = self.questions[self.level][
            self.current_question][
                'Spoken Question']  # give the text for the question to the robot

        self.decisons_pub.publish(control_message)
        print "sent:", control_message
Exemplo n.º 11
0
    def next_question(
        self
    ):  # indicates that the student should move on to the next question
        #self.total_num_questions += 1                           # keeps track of the total number of questions student has seen
        self.tries = 0  # reset the number of attempts on the question
        self.level = self.total_num_questions % 3
        if self.difficultyGroup == 0:
            self.level += 1
        else:
            self.level += 3

        if self.total_num_questions % 3 == 0:
            self.current_question += 1

        self.total_num_questions += 1

        if (self.current_question >= len(self.questions[self.level])):
            print "this should only happen if student has really finished all questions"
            #return self.question_next_level()

        control_message = ControlMsg()
        control_message.nextStep = "QUESTION-NEXT"
        control_message.questionNum = self.current_question
        control_message.questionLevel = self.level
        if (self.current_question < len(self.questions[self.level])):
            control_message.robotSpeech = self.questions[self.level][
                self.current_question][
                    'Spoken Question']  # we give the text for this question  to the robot here
        else:
            control_message.robotSpeech = ""  #no speech in case they finish all questions
        #print self.level, self.current_question, self.questions[self.level][self.current_question]

        time.sleep(
            3
        )  #wait a little before sending next question message so robot can say correct/incorrect
        self.decisons_pub.publish(control_message)
        print "sent:", control_message