Figure 2 shows the relationships among the modules and the database. The teacher prepared the standard algorithm st(j,k) for step S
j,k
during exercise E
j
in advance. The teacher can create the standard algorithm st(j,k) from the correct programs for step S
j,k
or can modify st(j,k) using an existing PAD editor.
Information extraction server
During a lecture, the information extraction server operates in the following steps.
-
1.
A program p(s,t) is collected and stored in the database when the server receives the program.
-
2.
The server executes the following operations during each step S
j,k
. Second item in the first level
-
(a)
In the k-th step S
j,k
, the server calculates sar(s,j,k) from p(s,t) and st(j,k) using the existing evaluation module.
-
(b)
The server stores information for p(s,t), which is obtained from the evaluation.
-
(3)
The server assesses step S
j,k’
, which corresponds to p(s,t), using the Eq. (4.1).
$$ {S}_{j,k\hbox{'}}=\underset{S_{j,k}\hbox{'}}{ \arg \max }sar\left(s,j,k\right) $$
(4.1)
-
(4)
The system stores the assessment information extracted from the database.
The proposed environment had 11 tables in the database, as shown in Table 2. A teacher prepared the first four data (1–4) in advance. The information extraction server updated the next four data (5–8) in real time during the class. The teacher could register the last three data (9–11) before/during/after the class.
Instruction support viewer
The instruction support viewer has five functions, which help the teacher to provide appropriate instructions to students. The five functions are described in the “Function that displays the exercise progress of students in lectures” to “Function that displays the program” sections.
Function that displays the exercise progress of students in lectures
If a teacher wants to know the exercise progress of all the students, he/she can use a function that displays the exercise progress ep(s) in a circle graph. The progress ep(s) is calculated using Eq. (4.2).
$$ ep(s)= latest\left(\left\{{E}_j\Big|sar\left(s,j,k\right) of\kern0.5em required\kern0.5em {S}_{j,k}\kern0.5em > Threshhold\right\}\right) $$
(4.2)
Figure 3 shows the viewer for exercise progress. In screenshot, the teacher can understand that five students create a program for exercise ex1. Furthermore, the teacher can show these students’ names.
Thus, the teacher can provide appropriate instruction to the whole class because they can monitor the exercise progress of the class as a whole.
Function that displays the step progress of students in exercises
If a teacher wants to know the step progress of all students in an exercise, he/she can use a function that displays the step progress sp(s,j) as a bar graph. The progress sp(s,j), in an exercise Ej is calculated using Eq. (4.3).
$$ sp\left(s,j\right)=\underset{S_{j,k}\hbox{'}}{ \arg \max }sar\left(s,j,k\right) $$
(4.3)
The teacher can check the change of the step progress over time. Therefore, the teacher can provide detailed instruction on a particular step that most students have been working on for a long time and give initial instruction on the next step to all students.
Function that displays the classification results for student programs in an exercise
A teacher may want to know how many students made the same mistake in an exercise. If most students make the same mistake, the teacher may well want to give instruction to the whole class. If a small number of students make the same mistake, the teacher may well want to give specific instruction only to those students.
In this study, a teacher can check each student’s positionDiff(s,j,k) and/or contentDiff(s,j,k). If the teacher focuses on a particular positionDiff(s,j,k), the system finds the collection p(s,t) that includes the same positionDiff(s,j,k) or both the same positionDiff(s,j,k) and contentDiff(s,j,k). The instruction support viewer then shows the list of the students whose programs include the same positionDiff(s,j,k) or both the same positionDiff(s,j,k) and contentDiff(s,j,k).
Function that displays a student list tagged with comments
A teacher can tag the student records with comments using the instruction support viewer if the student has unique characteristics (e.g., a student has very high programming skills or his/her attendance is poor). The teacher can then browse the list of students tagged with comments. If there are several teachers or teaching assistants, it is also possible to share information on students using tagged comments.
The instruction support system can display the list of the comments tagged for a particular exercise. The teacher can also read a student’s comments tagged for all exercises if the teacher wants to focus on the student.
Function that displays the program
The teacher can examine students’ programs using the viewer if he/she wants to assess the programming progress of those students. The viewer displays the student programs in different windows so that the teacher can compare a student program with those of other students’.
Integration of the five functions
A teacher may want to assess the step progress during exercises using the function described in the “Function that displays the step progress of students in exercises section” section while looking at the exercise progress using the function described in the “Function that displays the exercise progress of students in lectures” section. A teacher may also want to tag comments using the function described in the “Function that displays a student list tagged with comments” section while looking at a program produced by a student using the function described in the “Function that displays the program” section. Therefore, the five functions described above should be integrated seamlessly so that several functions can be used together.