4.7 The User Interface
4.7.3 CSTutor’s Main Window
CSTutor’s main window is used to deliver all the remaining functionality that is not handled by the Login Window or Pre-test Window. When the main window is displayed, all information related to the student’s work is retrieved and CSTutor will start at the point where the student left CSTutor last time. The information itself is saved automatically based on events that occur in CSTutor, that is when the student asks for help, when the student fixes their program, and when the student completes a task.
Figure 4.9 shows the design of this window. In the middle of this window is a rich text box that is used to present information to the student. The information that is displayed in this rich text box is:
• Messages from the (role playing) software development company.
• The description of each task given to the student.
• Feedback and help..
Figure 4.9 CSTutor’s Main Window
At the top of the window is a combo box that is used to display the title of the current task or to select another task. The titles of the available tasks are postfixed with the word “Recommended” for the tasks that are currently recommended to be performed by the student, and “Completed” for the tasks that have already been completed. No postfix is given for the tasks that are not recommended to be done at the current time. A list that shows all the tasks (recommended, completed, and not
recommended), at the current level, can be seen by the student by expanding the combo box.
A recommended task is displayed automatically in the combo box when the student first starts using the system and after he/she completes each task (see Figure 4.10). However, the student can change this selected task to another task if they prefer. Figure 4.11 shows a case where there are three recommended tasks for the student. And, in that same Figure, instead of doing the auto-selected recommended task, the student chooses to do another recommended task .
Figure 4.10 The recommended task for student
Figure 4.11 Task selection
At the bottom of the window are buttons that provide these functions:
• Is My Code Correct?
This button is used to allow minimal feedback to the student – the student will get a “yes/no” answer. The purpose of providing minimal feedback is to encourage the student to try to fix the program by themself.
• Give Me Help
This second button provides a more elaborate feedback than just yes/no feedback. The feedback and help is displayed on several levels, starting from the general to more detailed feedback and help. The student can click this button several times to get more detailed level of help and feedback. The source code to do the current step of the task is given at the most detailed level of help.
• Re-Display Task
This button is provided to re-display the current task description. The task description is actually never erased from the rich text box. However after having some help and feedback has been displayed inside the same control, this task description can scroll off the visible screen. Pressing this button displays the task description again without the need to search for it in the rich text box.
• Rewrite Program
This button was added after the prototype version of CSTutor was evaluated. In the observation, one particular student was gaming the system by always clicking the “Give Me Help” button until he reached the final help that shows the actual code needed. The student then just copied the code and continued asking help to get the next code. This behaviour certainly cannot help the student learns to program.
To discourage students from doing such things, the current version of CSTutor has this button. When the student completes a task by getting too
much help with actual code, CSTutor asks the student to rewrite the solution again. If the student agrees, he presses the button “Rewrite program” to allow CSTutor to delete his current code and replace it with a skeleton of code that is needed for the current task. Although this control will not completely prevent the student from gaming the system, it is aimed at discouraging the student from just copying-and-pasting the code from CSTutor.
• Accept my Answer
This button is another addition after the first evaluation of CSTutor. In the first release of CSTutor, the student must write their code correctly before the task is considered complete. Unfortunately, there are cases where the student thinks that his program solves the task correctly but CSTutor thinks differently.
In the first release, when this thing happened the student cannot continue to the next level of tasks because all the recommended tasks have not been completed. In order to solve this problem, CSTutor now provides the “Accept my Answer” button. When the student presses this button, CSTutor will not check the correctness of the student code but just accepts it and stores it in the database. The student code is considered as correct and the task is complete. This difference between the student and CSTutor about the code is analysed further in the evaluation step, with a view to seeing whether there is a problem with CSTutor or whether the student fails to understand why they are wrong.