ViDA: A virtual debugging advisor for supporting learning in computer programming courses
Dr. V.C.S. Lee is an Assistant Professor in the Department of Computer Science, City University of Hong Kong. His research interest includes data management in mobile computing systems and computing education. Dr. Y.T. Yu is an Associate Professor in the Department of Computer Science, City University of Hong Kong. His research interest includes software engineering, software testing, and computers in education. Dr. C.M. Tang is a Graduate Teaching Assistant in the Department of Information Systems, City University of Hong Kong. His research interest includes software engineering and programming education. Dr. T.L. Wong is a Faculty Member in the Department of Computing Studies and Information Systems, Douglas College, BC, Canada. His research interest includes data analytics, information extraction, programming education, and e‐learning. Prof. C.K. Poon is a Professor and the Dean of School of Computing and Information Sciences, Caritas Institute of Higher Education, Hong Kong. His research interest includes databases and information retrieval, scheduling and planning, and computers in education.
Abstract
Many students need assistance in debugging to achieve progress when they learn to write computer programs. Face‐to‐face interactions with individual students to give feedback on their programs, although definitely effective in facilitating their learning, are becoming difficult to achieve with ever‐growing class sizes. This paper proposes a novel approach to providing practical automated debugging advice to support students' learning, based on the strong relationship observed between common wrong outputs and the corresponding common bugs in students' programs. To implement the approach, we designed a generic system architecture and process, and developed a tool called Virtual Debugging Advisor (ViDA) that was put into use in classes in a university. To evaluate the effectiveness of ViDA, a controlled experiment and a survey were conducted with first year engineering students in an introductory computer programming course. Results are encouraging, showing that (a) a higher proportion of students could correct their faulty code themselves with ViDA enabled, (b) an overwhelming majority of respondents found ViDA helpful for their learning of programming, and (c) most respondents would like to keep ViDA enabled when they practice writing programs.
Lay Description
What is already known about this topic:
- Debugging is often non‐trivial and can be very frustrating to many students when learning programming.
- Students easily lose interests due to the repetitive failure during debugging.
- Timely feedback can upkeep the motivation of students in programming learning.
- Relatively little work has been done on the provision of automated support on debugging to students when learning programming.
What this paper adds:
- ViDA automatically provides learning advice to students when learning debugging.
- ViDA provides practical automated debugging advice to support students' learning, based on the strong relationship observed between common wrong outputs and the corresponding common bugs in students' programs.
- Students achieve better performance and are better motivated with ViDA.
Implications for practice and/or policy:
- Efforts should be made to help students in learning debugging, so as to upkeep students' motivation in learning programming.
- Automated debugging advices could provide timely feedback to enhance students' programming learning.




