Abstract
The ProgramCritic is a system designed to analyze and critique students' computer programs. After analyzing a program, the ProgramCritic provides the student with a list of Englishlanguage comments detailing the strengths and weaknesses of the student's program. The foundation of the ProgramCritic's analytic abilities is a set of “knowledge bases” which describe a range of programming problems and the ways in which parts of the problem can be solved. Several other systems have been built by other researchers with a functionality similar to the ProgramCritic's; notable among them is PROUST [Johnson 1986], Differences between the ProgramCritic and PROUST are described through a detailed explanation of how one might build a compiler for PROUST's knowledge base language. Shortcomings with PROUST's knowledge base language are pointed out one-by-one and for each shortcoming a fix is proposed. Integrating the proposed fixes together serves to explain the knowledge base language used in the ProgramCritic.
Preview
Unable to display preview. Download preview PDF.
References
Anderson, John R. (1983) The Architecture of Cognition, Harvard University Press, Cambridge, MA.
Brown, J.S. and Burton, R. (1978) Diagnostic models for procedural bugs in basic mathematics skills, Cognitive Science, 2, 155–192.
Brown, John Seely and VanLehn, Kurt (1980) Repair theory: a generative theory of bugs in procedural skills, Cognitive Science, 2.
Chapman, David et al. (1987) How to be a graduate student at the MIT AI Lab, MIT AI Lab Memo, Cambridge, MA.
Charniak, Eugene, Riesbeck, Christopher, McDermott, Drew and Meehan, James (1986) Artificial Intelligence Programming, 2nd Edition, Lawrence Erlbaum associates.
Johnson, W. Lewis (1985) Intention-Based Diagnosis of Errors in Novice Programs, Yale University Computer Science Department Research Report #395, New Haven, CT.
Johnson, W. Lewis (1986) Intention-Based Diagnosis of Novice Programming Errors, Morgan Kaufmann, Los Altos, CA.
Johnson, W. Lewis and Soloway, Elliot (1985a) Micro-PROUST, Yale University Computer Science Department Research Report #402, New Haven, CT.
Johnson, W. Lewis and Soloway, Elliot (1985b) PROUST: An automatic debugger for Pascal programs, BYTE, April 1985, 179–190.
Kuhn, Thomas S. (1962) The Structure of Scientific Revolutions, 2nd Edition, U of Chicago Press, Chicago.
Latour, Bruno (1987) Science in Action: How to follow scientists and engineers through society, Harvard U. Press, Cambridge, MA.
Minton, S., Carbonell, J.G., Knoblock, CA., Kuokka, D.R., Etzioni, O., and Gil, Y. (1989) Explanation-based Learning: A Problem Solving Perspective, Artificial Intelligence 40, 63–118.
Sack, Warren (1990) Technical Description of the Analytic Component: A Pattern Matcher for Analyzing Computer Programs. (Unpublished Working Paper) Princeton, NJ: Educational Testing Service.
Sack, Warren (1991) Knowledge Engineer's Manual: How to Build KBs for the ProgramCritic. (Unpublished Working Paper) Princeton, NJ: Educational Testing Service.
Sack, Warren, Soloway, Elliot and Bennett, Randy (in preparation) The Advanced Placement Computer Science Practice and Feedback System.
Sack, Warren and Bennett, Randy (patent pending) United States Patent Application: Method and System for Interactive Computer Science Testing, Analysis and Feedback.
Schank, Roger and Abelson, Robert (1977) Scripts Plans Goals and Understanding: An Inquiry into Human Knowledge Structures, Lawrence Erlbaum Associates, Hillsdale, NJ.
Soloway, Elliot and Ehrlich, Kathrine (1984) Empirical Investigations of Programming Knowledge, IEEE Transactions on Software Engineering SE-10(5).
Steele, Guy Lewis and Sussman, Gerald Jay (1975) Scheme: An interpreter for the extended lambda calculus, MIT Artificial Intelligence Laboratory Memo 349, Cambridge, MA.
Sterling, Leon and Shapiro, Ehud (1986) The Art of Prolog, MIT Press, Cambridge, MA.
Sussman, Gerald Jay and Abelson, Harald (1985) Structure and Interpretation of Computer Programs, MIT Press, Cambridge, MA.
van Harmelen, F, and Bundy, A. (1988) Explanation-based generalization = Partial evaluation, Artificial Intelligence 36401–412.
Warren, D.H.D. (1977) Implementing Prolog: Compiling Predicate Logic Programs, DAI Report Nos. 39 & 40, U. of Edinburgh.
Wenger, Etienne (1986) Artificial Intelligence and Tutoring Systems, Morgan Kaufmann Publishers, Los Altos, CA.
Wittgenstein, Ludwig (1960) The Blue and Brown Books: Preliminary Studies for the “Philosophical Investigations,” Harper & Row, New York.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sack, W. (1992). Knowledge base compilation and the language design game. In: Frasson, C., Gauthier, G., McCalla, G.I. (eds) Intelligent Tutoring Systems. ITS 1992. Lecture Notes in Computer Science, vol 608. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-55606-0_29
Download citation
DOI: https://doi.org/10.1007/3-540-55606-0_29
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55606-0
Online ISBN: 978-3-540-47254-4
eBook Packages: Springer Book Archive