Abstract
Model-based Diagnosis is a well known AI technique that has been applied to software debugging for senior programmers, called Model-Based Software Debugging (MBSD). In this paper we describe the basis of MBSD and show how it can be used for educational purposes. By extending the classical diagnosis technique to a hierarchical approach, we built a programming learning system to allow a student to debug his program in different abstraction levels.
Similar content being viewed by others
Notes
Parsimony is the principle that the simplest explanation is to be preferred.
We used the term test case to denote the examples of inputs and outputs for the student’s program; and test problem to verify the soundness of the Dr. Java Pro.
References
Abreu R, Zoeteweij P, van Gemund AJC (2007) On the accuracy of spectrum-based fault localization. In: Proceedings of the Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION, TAICPART-MUTATION ’07. IEEE Computer Society, Washington, DC, pp 89–98
Abreu R, Zoeteweij P, Gemund AJCv (2009) Spectrum-based multiple fault localization. In: Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering, ASE ’09. IEEE Computer Society, Washington, DC, pp 88–99
Barros LN, Mota APS, Delgado KV, Matsumoto PM (2005) A tool for programming learning with pedagogical patterns. In: Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange. ACM Press
Beck K (2002) Test Driven Development: By Example. Addison-Wesley Longman Publishing Co., Inc., Boston
Benjamins R (1993) Problem solving methods for diagnosis. Ph.D. thesis. University of Amsterdam
Benjamins R (1995) Problem solving methods for diagnosis and their role in knowledge acquisition. Int J Expert Syst Res Appl 8(2):93–120
Bergin J Patterns for selection. Retrieved 2014. http://csis.pace.edu/~bergin/patterns/Patternsv4.html
Binkley D, Harman M (2004) A survey of empirical results on program slicing. Adv Comput 62:105–178
Chang KE, Chiao BC, Chen SW, Hsiao RS (2000) A programming learning system for beginners: A completion strategy approach. IEEE Trans Educ 43(2):211–220
Chittaro L, Ranon R (2004) Hierarchical model-based diagnosis based on structural abstraction. Artif Intell 155(1-2):147–182
Daly C, Horgan J (2004) An automated learning system for Java programming. IEEE Trans Educ 47(1):10–17
Delgado KV, de Barros LN (2006) In: Sichman J, Coelho H, Rezende S (eds) Diagnostic of programs for programming learning tools, Advances in Artificial Intelligence - IBERAMIA-SBIA 2006 Lecture Notes in Computer Science, vol 4140, pp 7–16. Springer, Berlin Heidelberg
Hashim N, Salam S (2009) Integration of visualization techniques and completion strategy to improve learning in computer programming. In: International Conference of Soft Computing and Pattern Recognition, pp 665–669
Johnson WL, Soloway E (1984) PROUST: Knowledge-based program understanding. In: Proceedings of the 7th International Conference on Software engineering (ICSE). IEEE Press, Piscataway, pp 369–380
de Kleer J, Williams BC (1987) Diagnosing multiple faults. Artif Intell 32(1):97–130
Kȯb D, Wotawa F (2004) Introducing alias information into model-based debugging. In: Proceedings of the 16th Eureopean Conference on Artificial Intelligence (ECAI), Valencia, pp 833–837
Mateis C, Stumptner M, Wotawa F (2000) A value-based diagnosis model for Java programs. In: Proceedings of the 11th International Workshop on Principles of Diagnosis. Morelia
Mayer W, Stumptner M (2003) Model-based debugging using multiple abstract models. In: Proceedings of the 5th International Workshop on Automated and Algorithmic Debugging (AADEBUG). Ghent, Belgium, pp 55–70
Mayer W, Stumptner M (2007) Model-based debugging - state of the art and future challenges. Electronic Lecture Notes in Theoretical Computer Science 171:61–82
Mayer W, Stumptner M (2008) Evaluating models for model-based debugging, In: International Conference on Automated Software Engineering (ASE), pp 128–137
Mayer W, Stumptner M, Wieland D, Wotawa F (2002) Can AI help to improve debugging substantially? debugging experiences with value-based models. In: Proceedings of the 15th Eureopean Conference on Artificial Intelligence (ECAI), Lyon, pp 417–421
Mayer W, Stumptner M, Wieland D, Wotawa F (2002) Observations and results gained from the JADE project. In: Proceedings of the 13th International Workshop on Principles of Diagnosis. Semmering
Mayer W, Stumptner M, Wieland D, Wotawa F (2002) Towards an integrated debugging environment. In: Proceedings of the 15th Eureopean Conference on Artificial Intelligence (ECAI), Lyon, pp 422–426
Mozetič I (1991) Hierarchical model-based diagnosis. International Journal of Man-Machine Studies 35(3):329–362
Nica M, Nica S, Wotawa F (2013) On the use of mutations and testing for debugging. Software: Practice and Experience 43(9):1121–1142
Porter R, Calder P (2003) A pattern-based problem-solving process for novice programmers. In: Proceedings of the 5th Australasian Computing Education Conference (ACE), pp 231–238
Reiter R (1987) A theory of diagnosis from first principles. Artif Intell 32(1):57–95
Weimer W, Nguyen T, Le Goues C, Forrest S (2009) Automatically finding patches using genetic programming. In: Proceedings of the 31st International Conference on Software Engineering, ICSE ’09. IEEE Computer Society, Washington, DC, pp 364–374
Wieland D (2001) Model-based debugging of Java programs using dependencies. Phd thesis. Vienna University of Technology
Winslow LE (1996) Programming pedagogy: A psychological overview. SIGCSE Bull 28(3):17–22
Wotawa F, Nica M, Moraru I (2012) Automated debugging based on a constraint model of the program and a test case. The Journal of Logic and Algebraic Programming 81(4):390–407
Zhang X, He H, Gupta N, Gupta R (2005) Experimental evaluation of using dynamic slices for fault location. ACM, New York, pp 33–42
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
de Barros, L.N., Pinheiro, W.R. & Delgado, K.V. Learning to program using hierarchical model-based debugging. Appl Intell 43, 544–563 (2015). https://doi.org/10.1007/s10489-015-0659-9
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10489-015-0659-9