Analysis of a Process for Introductory Debugging

Jacqueline L. Whalley, Amber Settle, Andrew Luxton-Reilly
{"title":"Analysis of a Process for Introductory Debugging","authors":"Jacqueline L. Whalley, Amber Settle, Andrew Luxton-Reilly","doi":"10.1145/3441636.3442300","DOIUrl":null,"url":null,"abstract":"Debugging code is a complex task that requires knowledge about the mechanics of a programming language, the purpose of a given program, and an understanding of how the program achieves the purpose intended. It is generally accepted that prior experience with similar bugs improves the debugging process and that a systematic process is needed to be able to successfully move from the symptoms of a bug to the cause. Students who are learning to program may struggle with one or more aspect of debugging, and anecdotally, spend a lot of their time debugging faulty code. In this paper we analyse student answers to questions designed to focus student attention on the symptoms of a bug and to use those symptoms to generate a hypothesis about the cause of a bug. To ensure students focus on the symptoms rather than the code, we use paper-based exercises that ask students to reflect on various bugs and to hypothesize about the cause. We analyse the students’ responses to the questions and find that using our structured process most students are able to generalize from a single failing test case to the likely problem in the code, but they are much less able to identify the appropriate location or an actual fix.","PeriodicalId":334899,"journal":{"name":"Proceedings of the 23rd Australasian Computing Education Conference","volume":"18 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-02-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 23rd Australasian Computing Education Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3441636.3442300","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4

Abstract

Debugging code is a complex task that requires knowledge about the mechanics of a programming language, the purpose of a given program, and an understanding of how the program achieves the purpose intended. It is generally accepted that prior experience with similar bugs improves the debugging process and that a systematic process is needed to be able to successfully move from the symptoms of a bug to the cause. Students who are learning to program may struggle with one or more aspect of debugging, and anecdotally, spend a lot of their time debugging faulty code. In this paper we analyse student answers to questions designed to focus student attention on the symptoms of a bug and to use those symptoms to generate a hypothesis about the cause of a bug. To ensure students focus on the symptoms rather than the code, we use paper-based exercises that ask students to reflect on various bugs and to hypothesize about the cause. We analyse the students’ responses to the questions and find that using our structured process most students are able to generalize from a single failing test case to the likely problem in the code, but they are much less able to identify the appropriate location or an actual fix.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
介绍性调试过程分析
调试代码是一项复杂的任务,需要了解编程语言的机制、给定程序的目的以及程序如何实现预期目的。人们普遍认为,以前处理类似错误的经验可以改进调试过程,并且需要一个系统的过程才能成功地从错误的症状转移到原因。正在学习编程的学生可能会在调试的一个或多个方面遇到困难,而且据说,他们会花费大量时间调试错误的代码。在本文中,我们分析学生对问题的回答,旨在将学生的注意力集中在bug的症状上,并使用这些症状来产生关于bug原因的假设。为了确保学生关注症状而不是代码,我们使用基于纸张的练习,要求学生反思各种错误并假设原因。我们分析了学生对问题的回答,并发现使用我们的结构化过程,大多数学生能够从单个失败的测试用例归纳到代码中可能出现的问题,但是他们很少能够确定适当的位置或实际的修复。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Lecture Recordings, Viewing Habits, and Performance in an Introductory Programming Course A Simple, Language-Independent Approach to Identifying Potentially At-Risk Introductory Programming Students Rethinking CS0 to Improve Performance and Retention Assessing Understanding of Maintainability using Code Review Novice Difficulties with Analyzing the Running Time of Short Pieces of Code
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1