Professional Documents
Culture Documents
Real-Time Learning Analytics For C Programming Language Courses
Real-Time Learning Analytics For C Programming Language Courses
net/publication/314106259
CITATIONS READS
44 433
5 authors, including:
Daiki Suehiro
Kyushu University
27 PUBLICATIONS 103 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
A visualization system for supporting the meaningful learning of e-book users View project
Information Infrastructure for Supporting Education and Learning by using Educational Big Data View project
All content following this page was uploaded by Daiki Suehiro on 29 January 2021.
Complete less than 2 programs (all 6 X = Time of Programming / (programs + 1) + remaining errors
D programs), but try to program more than 20 The X is bigger, the student is work harder. This part of students needs
minutes. more help about simple knowledge in programming.
Complete less than 2 programs (all 6 X = Time of Programming / (programs + 1) + remaining errors
E programs), and the time of trying to The X is bigger, the student is work harder. This part of students do not
programming is less than 20 minutes. study hard, and enthusiasm is very low.
3.2.1.1 Discover students’ weaknesses and critical Students who try to compile two or more programs but do not
knowledge points for teaching address all errors are classified into level C; those who work on
only one program and try to compile it for more than 20 minutes,
We collected and analyzed students’ compiling logs with the
into level D. Students in levels C and D are the students who have
intention of identifying high-frequency errors and those which may
troubles with programming but are still trying hard to “get it.”
need more time to rectify. Besides allowing teachers to give
These students can be considered active students. Those who work
students timely, targeted feedback, the results can help conveyed
on only one program for less than 20 minutes before giving up are
effectively and modify class materials accordingly.
classified into level E, these students also can be considered as
Analysis was critical during the early stages of the system’s inactive students. Teachers and TAs should provide one-on-one
preparation. Since at the start of the analysis we had already instruction to students in levels C, D, and E.
collected 11,581 different error messages (62,812 by May 2016), it
was of course impractical to try to explain or provide resolutions 3.2.2 How does LAPLE support learning?
for each one individually. Instead, to understand the syntax errors LAPLE provides students an opportunity to engage in more
that novices commonly make and on this basis to effectively effective reflection on their learning process.
improve outcomes in C programming education, we classified 1. Relevant learning materials and one’s own previous related
these errors into 26 types; these initial findings have already been programming experience in previous assignments can be
discussed in previous work [6]. As more and more students take the referred to when one meets with troubles during compiling.
course and compile their programs, error messages are updated and
new ones may appear. At present, we have identified 36 (see 2. Common errors among students can be extracted and
appendix table 2). converted into new exercises.
3.2.1.2 Support teachers to grasp students learning 3. Similar examples can be provided to help students notice and
understand errors more clearly.
situation in real time
By grouping the students into different knowledge levels, we detect Work on precisely how to provide optimal reflection opportunities
which students are in trouble so as to provide support immediately. to students is still in process. A potential scenario is laid out in
figure 4. With LAPLE, when an error occurs, the system will
We group the students by the time they spend on programming,
analyze the most visited pages of BookLooper to detect the relevant
how many compiling errors they fix, and how many exercises they
materials. Here we present a very simple example involving
finish in class. We set 5 knowledge levels on the basis outlined in
knowledge of variables, which are usually taught at the beginning
table 2. Students in levels A and B can be considered outstanding
of the course. Novice programmers are usually not clear on the
students; teachers do not need to pay close attention to supporting
difference between programming language and natural language
them fix their programs, but can compose and provide them with
when they begin to learn programming. Errors of type 4 are often
more complex exercises to help them develop and produce the best
made by these students, who often take a long time to determine the
work they can. Level A students complete more exercises with no
cause of their error and experience flagging enthusiasm as a result.
compiling errors left, and can be considered excellent students.
To avoid this situation, LAPLE shows students the most-visited
Level B students have good performance in programming, and
pages at that time among their peers working on the same problems,
although they can’t finish all the exercises, they are able to modify
helping them locate needed knowledge quickly. One program
the errors that occur. Students in levels C, D, and E are the ones
example is provided at left in figure 4. There are errors in line 4
that need more help and the ones we especially want to identify.
here, colored in red. Our analysis results showed that the most 24, 8, 5, 28, 10, and 9 are most encountered by students in topic 4.
visited page at the time was page 7 of topic 2. Among these, type 26, 20 and 10 are mostly caused by missing
semicolons, while type 23 is caused by mistyping of the standard
library of C. From our experience, these kinds of errors do not
decrease as the course progresses; teachers should, therefore,
emphasize these error types and how to address them throughout
the course. Types 8 and 9 involve incorrect use of mathematical
functions in relation to content in topic 4; the high frequency rates
thus indicate that teachers should spend more time on explaining
mathematical functions, especially pow functions, during class
coverage of this topic. Further, these results are useful for
improving teaching materials, so that different knowledge points
can be explained more concretely.
Further, as the results remain visible until the next class, teachers
Figure 5. Learning dashboard of LAPLE. may summarily explain simple errors made on the previous class’s
topic. Additionally, the results can be referred to later on to
4.1 Learning Dashboard Data on Error Types optimize C education materials.
The error data are mainly used to discover students’ weaknesses
and critical knowledge points for helping them acquire the material. 4.2 Learning Dashboard for Grasping
The bar chart is used to show the error distribution by course topic,
Students’ Learning Situation
The charts shown in the figures help teachers grasp students’
based on the log data collected so far. Teachers may be able to
learning situation in real time. The intention is to identify students
provide more targeted explanations of C programming topics with
as “outstanding,” “active,” or “struggling.” The outstanding
which students have difficulty based on the results. For example,
students are those who can correctly complete most exercises by
figure 6 clearly illustrates that errors of types 27, 26, 11, 20, 23, 4,
themselves; active students are those who keep trying and
modifying their code although they meet many compiling errors; easily locate the student by name on the chart and provide
and inactive students are those who are frustrated by errors and give appropriate support.
up or do not spend enough time on programming. It is possible to
provide targeted guidance to students through this grouping.
Figure 8 use a heat-map chart to indicate the students’ activity. We
collect logs every 5 minutes and update the analyzed results to
Moodle so that teachers can get feedback almost in real time. The
numbers on the chart show how many times students try to compile
programs (with larger numbers in darker color). With this heat-map
chart, we can easily detect the activity and inactivity of students.
For example, the student highlighted in green on the image is active,
since he keeps trying to compile his program over the whole course
of the class. In contrast, the student in blue only tries to compile 4
times within one 10-minute period, across the whole class; this
student is inactive. In traditional evaluation in the C course,
students’ reports of these exercises are usually a big part of their
course mark. Some students do not really try to engage with
programming, and instead submit reports copied from other
students. We suggest that teachers can conduct a fairer evaluation
of the reports with reference to the heat-map chart.
6. APPENDIX TABLE