Chapter 4 C++ STL and Bayesian-Fuzzy Student Modelling
4.5 Uncertainties Management
4.5.3 Tracking Student’s Progress during Tutorial Sessions
Based on the conditional probabilities obtained after the pre-test, the tutoring session is then tailored to suit the individual student’s understanding. Learning a programming language requires much drill and practice in problem solving. It was observed by McCraken et al (2001), as quoted by Kelly et al (2004), that problem solving difficulty is caused by the an inability to break programming problems up into smaller manageable tasks. Subsequently, the tutoring session for the C++ STL consists of problems that are organized according to sub-problems. In solving a problem, students are often taught to decompose the problem into sub-problems to reduce complexity. The two most common approaches in problem solving are top down and bottom up. Given a problem, students can break it into sub-problems in a top down manner. On the other hand, students can choose to solve the sub- problems independently and eventually combine them to solve the main problem. This is the bottom up approach.
The ITS for C++ STL employs a sandwich view of a given problem which combines top down and bottom up approaches. This allows more flexibility to students. The proposed interface is to provide students the problem specifications together with a program framework and sub-tutorials, which represents the sub- problems. Hence, students are shown the big picture of the solution, which is a top down view – from the problem specification to the program framework, and the sub-problems that form the main program giving a bottom up view. A sample layout of the interface is depicted in Figure 4.2. The Program Framework frame represents the top down view, where as the Sub Tutorial frame gives the bottom up
view. It is believed that showing two views of a problem to students gives them a better understanding of the requirements, and as a result, their problem solving tasks are simplified. Moreover, the top down and bottom up approaches are elementary forms of problem solving skills (Arvanitis, et al, 2001).
z
Figure 4.2 A Sample Layout of a Problem Specification during the Tutoring
Each step in the sub-tutorial is related to a series of teaching strategies or hints, and Problem Specification
Write a program that …
Sub-Tutorials
Program Framework – Fill in the answers below: #include <iostream>
#include // Header Declaration – Step 1 using namespace std;
int main() {
// Create a vector – Step 2 int i;
cout << “Please enter 10 integers: ” << endl;
// Populate the vector – Step 3 cout << “The integers are: ” << endl;
// Output the vector – Step 4 cout << endl;
return 0; }
Sub Tutorial 1
Sub Tutorial 2
Sub-Tutorial 1 Sub-Tutorial 2 Sub-Tutorial 3 Sub-Tutorial 4
Sub Tutorial 3
Sub Tutorial 4
Submit Answer
pre-test will determine the student’s level of understanding in a particular prerequisite sub-skill.
Figure 4.2 illustrates a problem specification that instructs the student to create a vector, populate it with some values and finally output the results. To perform the population and output, knowledge in iteration is required. From the previous example, suppose a student obtains a conditional probability P(U|C) of 0.89 for the prerequisite iteration in the pre-test. This indicates that the student understands the prerequisite sub-skill concept reasonably well. Therefore, the ITS will direct the student to the problem specification mentioned above, to solve. If the student fails to obtain a probability greater than 0.80, remedial lessons will be recommended to the student. This will enable them to improve the prerequisite concept before trying to solve the STL problems.
The algorithm for directing the student after the pre-test is outlined below: Calculate P(U|C)
If P(U|C) > 0.80 Then
Display the Problem Specification Else
Display choice – Remedial Lessons or Problem Specification Read choice
If Remedial Lessons Then
If conditional probability between 0.6 and 0.8 Then Display Pre-Test Review
Else If conditional probability less than 0.6 Then Display Pre-Tutoring
End If End If End If
During the tutoring session, the student’s progress needs to be tracked and updated. On completion of each problem specification, the acquired skills will be added to the student’s domain knowledge. The time taken to solve the sub problems will also be recorded. Another item to be taken into account is the number of times the student accesses the hints. All this information is useful in leading the students to various teaching strategies to suit their needs and abilities. The teaching strategies here also refer to different levels of hints to guide the students progressively to solve the problem. Four levels of hints (Table 4.3) are proposed for this C++ STL ITS:
i) Brief explanation ii) Pre-Test Review iii) Pre-Tutoring iv) Demonstration
Table 4.3 Four Levels of Hints
HINTS DESCRIPTION EXAMPLE – Output the vector
Brief Explanation
Provide brief explanation of sub-tutorial
vector is similar to array with elements accessed using subscript or index. Like array, a loop is required to output the contents of a vector.
Pre-Test Review
Show performance of student in the pre-test for a required prerequisite to promote reflective learning
Below are your pre-test question answers related to this sub-tutorial :
….
(The system will show the student’s answer and the correct answer.) Pre-Tutoring Guide student step-by-step to
complete the sub-tutorial
A for loop consists of 3 parts – initialization, test and incrementation separated by semicolons.
(A series of sub-tutorials follow.)
Write the statement for the initialization. …
The statement within the for loop should be a cout statement that outputs the element in the vector. Write the code to access the element in the vector using the subscript.
… Demonstration Demonstrate i.e. present
solution of the sub-tutorial based on actions taken in the Pre-Tutoring
A for loop consists of 3 parts – initialization, test and incrementation separated by semicolons.
The correct solution is: for (i = 0; i < 10; i++)
Within the for loop, a cout statement should be used to output the contents of the vector:
cout << v[i] << “ ”;
In the event that the student is unable to solve the sub-tutorial, he/she has the option to refer to the hints. The type of hint displayed depends on the performance of the student for the prerequisite sub-skill in the pretest. Suppose the student obtains a conditional probability of 0.89 for the prerequisite iteration, he/she will be directed to the first hint, which is, a brief explanation or notes on the sub-tutorial. Referring to Figure 4.2, an example of a sub-tutorial is Step 3 – Populate the vector. If the student still has difficulty in completing the sub-tutorial, then the Pre-Test Review will be invoked to show the student how he/she has responded to the pre-test question with respect to the prerequisite expected in the sub-tutorial. Pre-Tutoring will be offered next when the student still fails to answer correctly. Finally, if all fails, the solution will be demonstrated to the student. On the other hand, a conditional probability between 0.60 and 0.80, will direct student straight to the Pre-Test Review, whereas a value less than 0.60 will lead them to the Pre-Tutoring hint which guides the student step by step to solve the sub-tutorial. The selected threshold of 0.60 is justified from the range of sample results in Table 4.2. The algorithm below clarifies the various path during the tutoring session:
If Failed or Hint Selected Then
If conditional probability > 0.80 Then Display Brief Explanation
Update Student Model
If Problem Unable to Solve-1 Then Display Pre-Test Review Update Student Model
If Problem Unable to Solve-2 Then Display Pre-Tutoring
Update Student Model
If Problem Unable to Solve-3 Then Demonstrate solution
Update Student Model End If
End If End If
Else If conditional probability between 0.6 and 0.8 Then Display Pre-Test Review
Update Student Model
If Problem Unable to Solve-1 Then Display Pre-Tutoring
Update Student Model
If Problem Unable to Solve-2 Then Demonstrate solution
Update Student Model End If
End If
Else If conditional probability less than 0.6 Then Display Pre-Tutoring
Update Student Model
If Problem Unable to Solve-1 Then Demonstrate solution
Update Student Model End If
End If Else
Proceed to next sub problem End If