Analysis of a Process for Introductory Debugging

作者: Andrew Luxton-Reilly , Jacqueline Whalley , Amber Settle

DOI: 10.1145/3441636.3442300

关键词: Computer scienceDebug codeSystematic processProcess (engineering)Software engineeringFocus (computing)Code (cryptography)Test (assessment)DebuggingTask (project management)

摘要: Debugging code is a complex task that requires knowledge about the mechanics of programming language, purpose given program, and an understanding how program achieves intended. It generally accepted prior experience with similar bugs improves debugging process systematic needed to be able successfully move from symptoms bug cause. Students who are learning may struggle one or more aspect debugging, anecdotally, spend lot their time faulty code. In this paper we analyse student answers questions designed focus attention on use those generate hypothesis cause bug. To ensure students rather than code, paper-based exercises ask reflect various hypothesize We students’ responses find using our structured most generalize single failing test case likely problem in but they much less identify appropriate location actual fix.

参考文章(52)
Amjad Altadmri, Neil C.C. Brown, 37 Million Compilations: Investigating Novice Programming Mistakes in Large-Scale Student Data technical symposium on computer science education. pp. 522- 527 ,(2015) , 10.1145/2676723.2677258
Davin McCall, Michael Kolling, Meaningful categorisation of novice programmer errors 2014 IEEE Frontiers in Education Conference (FIE) Proceedings. pp. 1- 8 ,(2014) , 10.1109/FIE.2014.7044420
L. Ma, J. Ferguson, M. Roper, M. Wood, Investigating and improving the models of programming concepts held by novice programmers Computer Science Education. ,vol. 21, pp. 57- 80 ,(2011) , 10.1080/08993408.2011.554722
John D. Gould, Some psychological evidence on how people debug computer programs International Journal of Human-computer Studies \/ International Journal of Man-machine Studies. ,vol. 7, pp. 151- 182 ,(1975) , 10.1016/S0020-7373(75)80005-8
Kiran L.N. Eranki, Kannan M. Moudgalya, Application of Program Slicing Technique to Improve Novice Programming Competency in Spoken Tutorial Workshops 2014 IEEE Sixth International Conference on Technology for Education. pp. 32- 35 ,(2014) , 10.1109/T4E.2014.1
Juha Sorva, Notional machines and introductory programming education ACM Transactions on Computing Education. ,vol. 13, pp. 1- 31 ,(2013) , 10.1145/2483710.2483713
Marzieh Ahmadzadeh, Dave Elliman, Colin Higgins, An analysis of patterns of debugging among novice computer science students Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education - ITiCSE '05. ,vol. 37, pp. 84- 88 ,(2005) , 10.1145/1067445.1067472
Teemu Sirkiä, Juha Sorva, Exploring programming misconceptions Proceedings of the 12th Koli Calling International Conference on Computing Education Research - Koli Calling '12. pp. 19- 28 ,(2012) , 10.1145/2401796.2401799
Lisa C. Kaczmarczyk, Elizabeth R. Petrick, J. Philip East, Geoffrey L. Herman, Identifying student misconceptions of programming Proceedings of the 41st ACM technical symposium on Computer science education - SIGCSE '10. pp. 107- 111 ,(2010) , 10.1145/1734263.1734299
Sue Fitzgerald, Gary Lewandowski, Renée McCauley, Laurie Murphy, Beth Simon, Lynda Thomas, Carol Zander, Debugging: finding, fixing and flailing, a multi-institutional study of novice debuggers Computer Science Education. ,vol. 18, pp. 93- 116 ,(2008) , 10.1080/08993400802114508