A Feedback System Supporting Students Approaching a High-Level Programming Course

This study analyzes the mistakes students are prone to make in programming and uses the GDB and Valgrind tools to implement dynamic analysis techniques for their eventual application to programs created by students. In the analysis process, spectral error localization technology is used to strengthe...

Full description

Bibliographic Details
Main Authors: Jong-Yih Kuo, Hui-Chi Lin, Ping-Feng Wang, Zhen-Gang Nie
Format: Article
Language:English
Published: MDPI AG 2022-07-01
Series:Applied Sciences
Subjects:
Online Access:https://www.mdpi.com/2076-3417/12/14/7064
_version_ 1797407591091929088
author Jong-Yih Kuo
Hui-Chi Lin
Ping-Feng Wang
Zhen-Gang Nie
author_facet Jong-Yih Kuo
Hui-Chi Lin
Ping-Feng Wang
Zhen-Gang Nie
author_sort Jong-Yih Kuo
collection DOAJ
description This study analyzes the mistakes students are prone to make in programming and uses the GDB and Valgrind tools to implement dynamic analysis techniques for their eventual application to programs created by students. In the analysis process, spectral error localization technology is used to strengthen the dynamic analysis to find errors more accurately. The analyzed results are sorted and corresponding feedback is given to students in order for them to better understand the content of errors when revising the program and classifying and counting the types of errors made. This study sorts mistakes frequently made by students and topics in which students are likely to make certain mistakes. The developed system was implemented in experiments including students from a programming course who were divided into two groups, namely the experimental group and the control group. A system for both groups of students to upload and submit assignments and a code analysis and feedback improvement system were used. Students in the control group only used the assignment uploading and submitting system for basic assignment uploading, verification, and the comparison of test data. After the program was entered, declarative sentence disassembly and dynamic slicing were suggested. Data were sent to GNU Debugger (GDB) and Valgrind for spectral error location; the classification and recording of error types; and the interpretation of the number of error lines, error types, and related variables. Feedback and a generated report were sent back to the student interface to provide effective and useful feedback to the students in the experimental group for them to revise their homework and record the types and number of errors they made in that week’s homework in the database. The answers provided by the students to the questions were recorded. The analysis of the pass rates of the students in the experimental and control groups for each homework test aided the understanding of the differences in the learning success of the two groups of students each week. The weekly pass rates and the numbers of measured errors in the experimental group compared with in the control group were input into a distribution map to allow us to better understand whether there was any positive correlation between the detected information, feedback to the students, pass rates of the tests, and other related data. The system statistically obtained feedback and the degree of improvement of homework programs; then, it distributed specially designed questionnaires to all students to directly obtain and quantify their feedback and perceived benefits of this system, thereby verifying the effectiveness of the system and its practicality.
first_indexed 2024-03-09T03:44:45Z
format Article
id doaj.art-b82e9432ec8b4dea825fada138882abb
institution Directory Open Access Journal
issn 2076-3417
language English
last_indexed 2024-03-09T03:44:45Z
publishDate 2022-07-01
publisher MDPI AG
record_format Article
series Applied Sciences
spelling doaj.art-b82e9432ec8b4dea825fada138882abb2023-12-03T14:36:09ZengMDPI AGApplied Sciences2076-34172022-07-011214706410.3390/app12147064A Feedback System Supporting Students Approaching a High-Level Programming CourseJong-Yih Kuo0Hui-Chi Lin1Ping-Feng Wang2Zhen-Gang Nie3Department of Computer Science and Information Engineering, National Taipei University of Technology, Taipei 106344, TaiwanDepartment of Computer Science and Information Engineering, National Taipei University of Technology, Taipei 106344, TaiwanInstitute for Information Industry, Taipei 10622, TaiwanSchool of Information and Electronics Beijing, Institute of Technology, Beijing 100081, ChinaThis study analyzes the mistakes students are prone to make in programming and uses the GDB and Valgrind tools to implement dynamic analysis techniques for their eventual application to programs created by students. In the analysis process, spectral error localization technology is used to strengthen the dynamic analysis to find errors more accurately. The analyzed results are sorted and corresponding feedback is given to students in order for them to better understand the content of errors when revising the program and classifying and counting the types of errors made. This study sorts mistakes frequently made by students and topics in which students are likely to make certain mistakes. The developed system was implemented in experiments including students from a programming course who were divided into two groups, namely the experimental group and the control group. A system for both groups of students to upload and submit assignments and a code analysis and feedback improvement system were used. Students in the control group only used the assignment uploading and submitting system for basic assignment uploading, verification, and the comparison of test data. After the program was entered, declarative sentence disassembly and dynamic slicing were suggested. Data were sent to GNU Debugger (GDB) and Valgrind for spectral error location; the classification and recording of error types; and the interpretation of the number of error lines, error types, and related variables. Feedback and a generated report were sent back to the student interface to provide effective and useful feedback to the students in the experimental group for them to revise their homework and record the types and number of errors they made in that week’s homework in the database. The answers provided by the students to the questions were recorded. The analysis of the pass rates of the students in the experimental and control groups for each homework test aided the understanding of the differences in the learning success of the two groups of students each week. The weekly pass rates and the numbers of measured errors in the experimental group compared with in the control group were input into a distribution map to allow us to better understand whether there was any positive correlation between the detected information, feedback to the students, pass rates of the tests, and other related data. The system statistically obtained feedback and the degree of improvement of homework programs; then, it distributed specially designed questionnaires to all students to directly obtain and quantify their feedback and perceived benefits of this system, thereby verifying the effectiveness of the system and its practicality.https://www.mdpi.com/2076-3417/12/14/7064program analysisautomated debuggingfault localizationdynamic slicingdebugquestionnaire
spellingShingle Jong-Yih Kuo
Hui-Chi Lin
Ping-Feng Wang
Zhen-Gang Nie
A Feedback System Supporting Students Approaching a High-Level Programming Course
Applied Sciences
program analysis
automated debugging
fault localization
dynamic slicing
debug
questionnaire
title A Feedback System Supporting Students Approaching a High-Level Programming Course
title_full A Feedback System Supporting Students Approaching a High-Level Programming Course
title_fullStr A Feedback System Supporting Students Approaching a High-Level Programming Course
title_full_unstemmed A Feedback System Supporting Students Approaching a High-Level Programming Course
title_short A Feedback System Supporting Students Approaching a High-Level Programming Course
title_sort feedback system supporting students approaching a high level programming course
topic program analysis
automated debugging
fault localization
dynamic slicing
debug
questionnaire
url https://www.mdpi.com/2076-3417/12/14/7064
work_keys_str_mv AT jongyihkuo afeedbacksystemsupportingstudentsapproachingahighlevelprogrammingcourse
AT huichilin afeedbacksystemsupportingstudentsapproachingahighlevelprogrammingcourse
AT pingfengwang afeedbacksystemsupportingstudentsapproachingahighlevelprogrammingcourse
AT zhengangnie afeedbacksystemsupportingstudentsapproachingahighlevelprogrammingcourse
AT jongyihkuo feedbacksystemsupportingstudentsapproachingahighlevelprogrammingcourse
AT huichilin feedbacksystemsupportingstudentsapproachingahighlevelprogrammingcourse
AT pingfengwang feedbacksystemsupportingstudentsapproachingahighlevelprogrammingcourse
AT zhengangnie feedbacksystemsupportingstudentsapproachingahighlevelprogrammingcourse