Skip to main content
Log in

Automatic Problem Description from Model Program for Knowledge-based Programming Tutor

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

Knowledge-based programming tutors are supposed to analyze the students' programs using knowledge of the concepts of programming language, skills to build programs, misconceptions of novice programmers, and information about the programs to be analyzed. The last one provides the programming tutor with the intentions of programmers, and this allows the tutor to do an intention-based diagnosis (Johnson, 1996). This is given to the system in the form of a problem description by human instructors. However, it is very hard for instructors to write a problem description. For instructors, the simplest way to describe a problem may be to write a model program of that problem. This paper describes the system named GOES, a GOal Extraction System, which extracts the purposes (Goals) of a model program automatically.

GOES is a susbsystem of C-Tutor, a knowledge-based C Programing Tutor (Hahn et al., 1996). GOES extracts implemented plans from a model program, and then extract goals from the plans according to goal/plan hierarchies. The efficiency of GOES depends on the process of plan extraction. In GOES, only pairs of labels and variables of each statement are used to extract candidate plans. Exact matching is followed only for theses candidate plans. In addition, to extract plans more efficiently, we introduce the concept of necessary and sufficient conditions of a plan to the model program. Using this method, plan candidates can be extracted efficiently and successfully.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • S. K. Abd-El-Hafiz and V. R. Basili, A Knowledge-based Approach to Program Understanding. Norwell, Massachusetts: Kluwer Academic Publishers, 1995.

    Google Scholar 

  • J. R. Anderson, C. F. Boyle, and G. Yost, "The geometry tutor," in The 9th International Joint Confenrence on AI, pp. 1–7, 1985.

  • K. Bertels, P. Vanneste, and C. D. Baeker, "A cognitive approach to program understanding," in Proc.the Working Conference on Reverse Engineering, (Baltimore Maryland), pp. 1–7, 1993.

  • R. Brooks, "Towards a theory of the comprehension of computer programs," Int.J.Man-Machine Studies, vol. 18, pp. 543–554, 1983.

    Google Scholar 

  • I. Goldstein, "The genetic graph: a representation for the evolution of procedural knowledge," in Intelligent Tutoring Systems (D. Sleeman and J. Brown, eds.), Academic Press, 1982.

  • S. H. Hahn, J. Song, S. Kim, K. Tak, and J. Kim, "A programming tutoring system for novice c programmers," in PRICAI 96 Workshop on Knowledge-based Instructional Systems in an Industrial Setting, (Cairns, Austrailia), pp. 1–12, 1996.

  • M. T. Harandi and J. Q. Ning, "Pat: a knowledge-based program analysis," IEEE Trans.on Software Engineering, vol. 7, no. 1, pp. 74–81, 1990.

    Google Scholar 

  • J. Hartman, "Understanding natural programs using proper decomposition," in Proc.of the 13th INternational Confenrence on Software Engineering, (Austin, Texas), pp. 62–73, 1991.

  • P. A. Hausler, M. G. Pleszkoch, R. C. Linger, and A. R. Henver, "Using function abstraction to understand program behavior," IEEE Trans.on Software Engineering, vol. 7, no. 1, pp. 55–63, 1990.

    Google Scholar 

  • W. L. Johnson and E. Soloway, "Proust: An automatic debugger for pascal programs," Byte, vol. 10, no. 4, pp. 179–190, 1985.

    Google Scholar 

  • W. Johnson and E. Soloway, "Proust: An automatic debugger for pascal programs," in AI and Instruction (G. Kearsley, ed.), Addison-Wesley, 1987.

  • W. L. Johnson, Intention-Based Diagnosis of Novice Programming Errors. Los Altos, California: Morgan Kaufmann, 1986.

    Google Scholar 

  • R. A. Kemmerer and S. T. Eckmann, "Unisex: a unix-based symbolic executor for pascal," Software Practice and Experience, vol. 15, no. 3, pp. 439–458, 1985.

    Google Scholar 

  • B. W. Kernighan and D. M. Ritchie, The C Programming Language, 2nd ed. New Delhi: Printice-Hall Software Series, 1989.

    Google Scholar 

  • S. W. Kim, S. H. Hahn, and J. Kim, "Algorithm recognition using flow graph transformation," in Proc.Pacific Rim Int.Conf.of Artif.Intell, (Beijing, China), pp. 686–692, 1994.

  • K. H. Lee and et al, C language easy to learn. Seoul, Korea: Hong Rung Press, 1990.

    Google Scholar 

  • S. Letovski, "Program understanding with the lambda calculus," in Int.Joint Conference on Artificial Intelligence, (Milan, Italy), pp. 512–514, 1987.

  • W. R. Murray, Automatic Program Debugging for Intelligent Tutoring Systems. San Mateo, California: Morgan Kaufmann, 1988.

    Google Scholar 

  • J. Q. Ning, "A knowledge-based approach to automatic program analysis," tech. rep., Univ. of Illinois, Urbana-Chanpaign, 1989. PhD thesis.

  • A. Quilici, "A hybrid approach to recognizing programming plans," in Proc.the Working Conference on Reverse Engineering, (Baltimore Maryland), pp. 126–133, 1993.

  • C. Rich and R. C. Waters, The Programmer's Apprentice. Massachusetts: Addison-Wesley, 1990.

    Google Scholar 

  • C. Rich, "Inspection methods in programming," Tech. Rep. AI-TR-604, MIT-AILAB, 1981.

  • G. R. Ruth, "Intelligent program analysis," Int.J.Artificial Intelligence, vol. 7, pp. 65–85, 1976.

    Google Scholar 

  • H. E. Shrobe, "Dependency directed reasoning in the analysis of programs which modify complex data structures," in Int.Joint Conference on Artificial Intelligence, (Tokyo, Japan), pp. 829–835, 1979.

  • E. Soloway, J. Bonar, and K. Ehrlich, "Cognitive strategies and looping constructs: an emperical study," Commu-nications of the ACM, vol. 26, no. 11, pp. 853–860, 1983.

    Google Scholar 

  • E. Soloway, "Learning to program = learning to construct mechanisms and explanations," Communications of the ACM, vol. 29, no. 9, pp. 850–858, 1986.

    Google Scholar 

  • J. Song and J. Kim, "Exbug: An automatic debugger by plan matching and program execution," in PRICAI 92, (Seoul, Korea), pp. 638–644, 1992.

    Google Scholar 

  • K. Y. Tak, "Curriculum description and design of tutoring module for programming tutoring system," tech. rep., Korea Advanced Institute of Science and Technology, Taejon, Korea, 1995. MS thesis.

    Google Scholar 

  • H. Ueno, "Alpus: A program understanding system by means of algorithm-based programming knowledge," in Proc.Pacific Rim International Conf.on Artificial Intelligence, pp. 693–698, JISS, 1990.

  • P. Vanneste, "Areverse engineering approach to novice program analysis," tech. rep., KULeuven Campus Kortrijk (KULAK), Holland, 1994. Ph.D dissertion.

  • M. Ward, F. Calliss, and M. Munro, "The maintainer's assistant," in Proc.of the Conference on Software Maintenance, (Miami, Florida), pp. 307–315, 1989.

  • C. R. Waters, "Kbemacs: A step toward the programmer's apprentice," Tech. Rep. AI-TR-753, MIT-AILAB, May 1985.

  • M. Weiser, "Program slicing," IEEE Trans.on Software Engineering, vol. 10, no. 4, pp. 352–357, 1984.

    Google Scholar 

  • L. M. Wills, "Automated program recognition by graph parsing," Tech. Rep. AI-TR-1358, MIT-AILAB, July 1992.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Hahn, SH., Kim, J. Automatic Problem Description from Model Program for Knowledge-based Programming Tutor. Automated Software Engineering 4, 439–461 (1997). https://doi.org/10.1023/A:1008632729798

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008632729798

Navigation