Method and system for interactive computer science testing, anaylsis and feedback
First Claim
1. A method of evaluating a solution program input to a computer in response to a computer science problem in which the solution program may contain a plurality of errors, said method comprising the steps of:
- a) converting the solution program in response t the computer science problem into an abstract syntax tree representation;
b) comparing a first predetermined pattern against a first portion of the abstract syntax tree, said first portion representing certain nodes of the abstract syntax tree;
c) repeating step (b) against a plurality of portions of the abstract syntax tree until the first predetermined pattern matches a portion of the abstract syntax tree;
wherein the first predetermined pattern has been specified so as to match a range of abstract syntax tree portion; and
d) providing information correlated to the first predetermined pattern so matched;
wherein said information is a textual message indicative of the correctness of the solution program.
3 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a method and system for administering to a student a problem in computer science for testing, analysis and feedback. The student is provided with an item pool of predetermined test problems to be selected by the student. The student inputs a solution in response to the problem selected, and the solution program is converted, by lexing and parsing, into an abstract syntax tree representation. Predetermined knowledge base patterns are selected from a knowledge base and compared against portions of the abstract syntax tree. Messages and a score are provided to the student which indicate the correctness or incorrectness of the solution program, as determined by the knowledge base patterns which were matched against the portions of the abstract syntax tree. The present method and system is especially qualified to analyze free-response test items.
335 Citations
22 Claims
-
1. A method of evaluating a solution program input to a computer in response to a computer science problem in which the solution program may contain a plurality of errors, said method comprising the steps of:
-
a) converting the solution program in response t the computer science problem into an abstract syntax tree representation; b) comparing a first predetermined pattern against a first portion of the abstract syntax tree, said first portion representing certain nodes of the abstract syntax tree; c) repeating step (b) against a plurality of portions of the abstract syntax tree until the first predetermined pattern matches a portion of the abstract syntax tree;
wherein the first predetermined pattern has been specified so as to match a range of abstract syntax tree portion; andd) providing information correlated to the first predetermined pattern so matched;
wherein said information is a textual message indicative of the correctness of the solution program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of administering to a student a problem in computer science for analysis and feedback comprising the steps of:
-
a) providing an item pool to the student, said item pool comprising a plurality of predetermined test problems in computer science to be selected by the student; b) recording the student'"'"'s solution program to a particular test problem selected; c) lexing the solution program into a list of tokens, each token being representative of a part of the solution program and its location within the solution program; d) parsing the list of tokens into an abstract syntax tree representation; e) comparing a predetermined pattern against a first portion of the abstract syntax tree; f) repeating the comparison step with a plurality of portions of the abstract syntax tree until the predetermined pattern matches a portion of the abstract syntax tree; g) repeating steps (e) and (f) for a plurality of predetermined patterns; h) providing to the student text messages correlated to the predetermined patterns so matched; whereby the student is automatically provided with information embodied in the text messages which is indicative of the correctness or incorrectness of the solution text entered by the student in response to the test problem selected.
-
-
12. A method of administering an examination in computer science to a student comprising the steps of:
-
a) providing to the student a predetermined test problem in computer science from an item pool comprising a plurality of different predetermined test problems; b) recording the student'"'"'s solution program in computer science to the predetermined test problem so provided; c) lexing the solution program into a list of tokens, each token being representative of a part of the solution program and its location within the solution program; d) parsing the list of tokens into an abstract syntax tree representation; e) comparing a predetermined pattern against a first portion of the abstract syntax tree; f) repeating the comparison step with a plurality of portions of the abstract syntax tree until the predetermined pattern matches a portion of the abstract syntax tree; g) repeating steps (e) and (f) for a plurality of predetermined patterns; and h) storing a score correlated to the predetermined patterns so matched; whereby the student'"'"'s solution program to the predetermined test problem is automatically evaluated and scored, the score being indicative of the correctness or incorrectness of the solution text entered by the student in response to the test problem provided. - View Dependent Claims (13)
-
-
14. A computer system for administering a problem for analysis and feedback in a computer science programming language to a student, said system comprising:
-
a) a user interface comprising i) an item pool comprising a plurality of predetermined test problems in computer science to be selected by the student; ii) output means for providing to the student the particular test problem selected; and iii) input means for providing communications from the student to the system; iv) editor means for recording to student'"'"'s solution program in computer science to the particular test problem selected; b) a knowledge base comprising a set of predetermined knowledge base patterns; c) an analytic component comprising i) means for converting the student'"'"'s solution program into an abstract syntax tree; ii) means for comparing each of the predetermined knowledge base patterns against portions of the abstract syntax tree until matched successfully; and d) means for providing to the output means of the user interface a text message correlated to the knowledge base patterns so matched; whereby the student is automatically provided with information embodies in the text message which is indicative of the correctness of the solution text entered by the student in response to the test problem selected. - View Dependent Claims (15, 16, 17)
-
-
18. An expert system for evaluating a solution program into to a computer in response to a computer science problem comprising:
-
a) interface means for providing communication to and from a user; b) lexing means for converting said solution program into a list of tokens, each of said tokens being representative of a part of the solution program and its location within the solution program; c) parsing means for converting the list of tokens produced by the lexing means into an abstract syntax tree representation of the solution program; d) a knowledge base comprising a plurality of predetermined knowledge base patterns wherein each of said knowledge base patterns represent a certain part of a model solution program; e) an inference engine comprising means for comparing each of said knowledge base patterns against portions of the abstract syntax tree until successfully matched; and f) means for providing to the interface output messages correlated to the knowledge base patterns successfully matched. - View Dependent Claims (19)
-
-
20. A method for interactively compiling knowledge base patterns of computer science programs for matching against portions of abstract syntax tree representations of model solution programs in response to the computer science problems, said method comprising the steps of:
-
a) lexing a model program into a list of tokens, each of said tokens being representative of a part of the model program and its location within the model program; b) parsing the list of tokens into an abstract syntax tree representation of the model program; c) querying a user to select the part of the model program against which the knowledge base pattern will be used to compare; and d) generating a knowledge base pattern in accordance with the user'"'"'s selection such that said knowledge base pattern will match against a portion of the abstract syntax tree correlated to the part of the model program selected by the user. - View Dependent Claims (21)
-
-
22. A method of administering to a student problems in computer science for analysis and feedback comprising the steps of:
-
a) providing an item pool to the student, said item pool comprising a plurality of predetermined test problems in computer science to be selected by the student; b) recording the student'"'"'s solution program to a particular test problem selected; c) lexing the solution program into a list of tokens, each token being representative of a part of the solution program and its location within the solution program; d) parsing the list of tokens into an abstract syntax tree representation; e) comparing a predetermined pattern against a first portion of the abstract syntax tree; f) repeating the comparison step with a plurality of portions of the abstract syntax tree until the predetermined pattern matches a portion of the abstract syntax tree; g) repeating steps (e) and (f) for a plurality of predetermined patterns; h) providing to the student text messages correlated to the predetermined patterns so matched; and i) storing a score correlated to the predetermined patterns so matched; whereby the student is automatically provided with a score and information embodied in the text messages which is indicative of the correctness or incorrectness of the solution text entered by the student in response to the test problem selected.
-
Specification