ABSTRACT
Code puzzles can be an engaging way to learn programming concepts, but getting stuck in a puzzle can be discouraging when no help or feedback is available. Intelligent tutoring systems can provide automatic individualized help, but they rely on having a robust and useful representation of student state. One common challenge for Intelligent tutoring systems in the programming domain is a large state space of possible students states. We propose a constrained set of features of student code based on detecting and classifying the bugs present in the code.
- John R Anderson, Albert T Corbett, Kenneth R Koedinger, and Ray Pelletier. 1995. Cognitive tutors: Lessons learned. The journal of the learning sciences 4, 2 (1995), 167--207.Google Scholar
- Sudarshan S Chawathe, Anand Rajaraman, Hector Garcia-Molina, and Jennifer Widom. 1996. Change detection in hierarchically structured information. In Acm Sigmod Record, Vol. 25. ACM, 493--504.Google ScholarDigital Library
- Michael Eagle, Matthew Johnson, and Tiffany Barnes. 2012. Interaction Networks: Generating High Level Hints Based on Network Community Clustering. International Educational Data Mining Society (2012).Google Scholar
- Barbara J Ericson, Lauren E Margulieux, and Jochen Rick. 2017. Solving parsons problems versus fixing and writing code. In Proceedings of the 17th Koli Calling International Conference on Computing Education Research. ACM, 20--29.Google ScholarDigital Library
- DJ Gilmore and TRG Green. 1988. Programming plans and programming expertise. The Quarterly Journal of Experimental Psychology 40, 3 (1988), 423--442.Google ScholarCross Ref
- Sumit Gulwani. 2010. Dimensions in program synthesis. In Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming. ACM, 13--24.Google ScholarDigital Library
- Kyle J Harms, Evan Balzuweit, Jason Chen, and Caitlin Kelleher. 2016. Learning programming from tutorials and code puzzles: Children's perceptions of value. In 2016 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). IEEE, 59--67.Google ScholarCross Ref
- Kyle J Harms, Noah Rowlett, and Caitlin Kelleher. 2015. Enabling independent learning of programming concepts through programming completion puzzles. In 2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). IEEE, 271--279.Google ScholarCross Ref
- Andrew Head, Elena Glassman, Gustavo Soares, Ryo Suzuki, Lucas Figueredo, Loris D'Antoni, and Björn Hartmann. 2017. Writing reusable code feedback at scale with mixed-initiative program synthesis. In Proceedings of the Fourth (2017) ACM Conference on Learning@ Scale. ACM, 89--98.Google ScholarDigital Library
- Andrew Hicks, Barry Peddycord, and Tiffany Barnes. 2014. Building games to learn from their players: Generating hints in a serious game. In International Conference on Intelligent Tutoring Systems. Springer, 312--317.Google ScholarDigital Library
- Caitlin Kelleher and Wint Hnin. 2019. Predicting Cognitive Load in Future Code Puzzles. In Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems (CHI '19). ACM, New York, NY, USA, Article 257, 12 pages. DOI: http://dx.doi.org/10.1145/3290605.3300487Google ScholarDigital Library
- Michael J Lee, Faezeh Bahmani, Irwin Kwan, Jilian LaFerte, Polina Charters, Amber Horvath, Fanny Luor, Jill Cao, Catherine Law, Michael Beswetherick, and others. 2014. Principles of a debugging-first puzzle game for computing education. In 2014 IEEE symposium on visual languages and human-centric computing (VL/HCC). IEEE, 57--64.Google ScholarCross Ref
- Ye Mao, Rui Zhi, Farzaneh Khoshnevisan, Thomas Price, Tiffany Barnes, and Min Chi. 2019. One minute is enough: Early Prediction of Student Success and Event-level Difficulty during a Novice Programming Task. (07 2019).Google Scholar
- Dale Parsons and Patricia Haden. 2006. Parson's programming puzzles: A fun and effective learning tool for first programming courses. In Proceedings of the 8th Australasian Conference on Computing Education-Volume 52. Australian Computer Society, Inc., 157--163.Google ScholarDigital Library
- Mateusz Pawlik and Nikolaus Augsten. 2015. Efficient computation of the tree edit distance. ACM Transactions on Database Systems (TODS) 40, 1 (2015), 3.Google ScholarDigital Library
- Mateusz Pawlik and Nikolaus Augsten. 2016. Tree edit distance: Robust and memory-efficient. Information Systems 56 (2016), 157--173.Google ScholarDigital Library
- Chris Piech, Mehran Sahami, Jonathan Huang, and Leonidas Guibas. 2015. Autonomously generating hints by inferring problem solving policies. In Proceedings of the Second (2015) ACM Conference on Learning@ Scale. ACM, 195--204.Google ScholarDigital Library
- Kelly Rivers and Kenneth R Koedinger. 2017. Data-driven hint generation in vast solution spaces: A self-improving python programming tutor. International Journal of Artificial Intelligence in Education 27, 1 (2017), 37--64.Google ScholarCross Ref
- John Stamper, Tiffany Barnes, Lorrie Lehmann, and Marvin Croy. 2008. The hint factory: Automatic generation of contextualized help for existing computer aided instruction. In Proceedings of the 9th International Conference on Intelligent Tutoring Systems Young Researchers Track. 71--78.Google Scholar
- Kurt Vanlehn. 2006. The behavior of tutoring systems. International journal of artificial intelligence in education 16, 3 (2006), 227--265.Google ScholarDigital Library
- An Yan, Michael J Lee, and Andrew J Ko. 2017. Predicting abandonment in online coding tutorials. In 2017 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). IEEE, 191--199.Google ScholarCross Ref
- Rui Zhi, Thomas W Price, Nicholas Lytle, Yihuan Dong, and Tiffany Barnes. 2018. Reducing the State Space of Programming Problems through Data-Driven Feature Detection. In Educational Data Mining in Computer Science Education (CSEDM) Workshop@ EDM.Google Scholar
Index Terms
- Bugs as Features: Describing Patterns in Student Code through a Classification of Bugs
Recommendations
Detect Related Bugs from Source Code Using Bug Information
COMPSAC '10: Proceedings of the 2010 IEEE 34th Annual Computer Software and Applications ConferenceOpen source projects often maintain open bug repositories during development and maintenance, and the reporters often point out straightly or implicitly the reasons why bugs occur when they submit them. The comments about a bug are very valuable for ...
Characterizing duplicate bugs: Perceptions of practitioners and an empirical analysis
AbstractBug handling is an essential part of the software development process. Ideally, in a bug‐tracking system, bugs are reported, fixed, verified, and closed. In some cases, bugs have to be reopened mostly due to an incorrect fix. However, instead of ...
Our study investigates the difference between unique and duplicate bugs and further categorizes duplicates into Master‐Unresolved (Category‐1) and Missed‐Reopen (Category‐2) bugs. Through investigation of bug reports, we found that duplicates are up to ...
Comments