IP Library Granted Patent US 9,177,485
Granted Patent B2
US 9,177,485 · App. 12/319,566 · Granted Nov 3, 2015

Method and system for automatically generating questions for a programming language

Inventors: Alsaad Ishaq (Uttar Pradesh, IN); Satheesha Byadarahally Nanjappa (Mysore, IN); Seema Acharya (Maharashtra, IN)
Assignee: Infosys Limited
G09B19/0053G09B7/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,177,485
App. No.
12/319,566
Granted
Nov 3, 2015
Kind
B2
Abstract

The present invention provides a method, system and computer program product for generating a family of questions for a programming language. Generating the family of questions includes the generation of various questions from a particular compilable code, and the corresponding options for the questions. The options include various correct and incorrect options for the questions.

Claims (38)

1. A computer-implemented method for creating a family of programming language test questions, the method comprising:

generating the family of programming language test questions, each question in the family including a question body to be presented to a test taker and a plurality of response options to be correspondingly presented to the test taker, the question body comprising a segment of compilable program code, and at least one of the response options representing an outcome of execution of the segment of compilable program code, the step of generating comprising using at least one processor for:

a. storing in a memory, a pre-defined parent question comprising a first segment of compilable program code written in the programming language;

b. generating a template question comprising a second segment of compilable program code, by inserting one or more user-defined variables in the first segment of compilable program code of the pre-defined parent question;

c. generating a first question body for a first question in the family of questions, the first question body comprising a third segment of compilable program code generated by assigning a first set of unique random values to the one or more user-defined variables in the second segment of compilable program code of the template question; and

d. generating a first plurality of response options corresponding to the first question, the first plurality of response options comprising at least one correct option and at least one incorrect option,

wherein the at least one correct option is generated by a compiler program and is based on a compiler program input comprising the third segment of code; and

wherein the at least one incorrect option is generated by compiling one or more misinterpretation codes, a misinterpretation code being generated by:

generating a fourth segment of compilable program code, wherein the fourth segment of compilable program code includes (i) a first program statement that is also included within the second segment of compilable program code, and (ii) a second program statement that is not included within the second segment of compilable program code; and

assigning the first set of unique random values corresponding to the third segment of compilable program code, to one or more variables within the fourth segment of compilable program code.

2. The method according to claim 1 further comprising generating the first set of unique random values for the one or more user-defined variables.

3. The method according to claim 1 , wherein the at least incorrect option is generated based on at least one of the correct option and a second set of unique random values, the second set of unique random values being defined by the user.

4. The method according to claim 1 further comprising assigning one or more tags to one or more of the at least one correct option, the at least one incorrect option and each of the family of programming language test questions, the one or more tags being assigned based on the first set of unique random values for storing the family of programming language test questions.

5. A system for automatically creating a family of questions for a programming language, the system comprising a processor coupled to a memory, the processor being configured to generate a family of programming language test questions, each question in the family including a question body to be presented to a test taker and a plurality of response options to be correspondingly presented to the test taker, the question body comprising a segment of compilable program code, and at least one of the response options representing an outcome of execution of the segment of compilable program code, wherein the processor is configured to generate the family of questions by executing the following tasks:

a. storing in the memory, a pre-defined parent question comprising a first segment of compilable program code written in the programming language;

b. generating a template question comprising a second segment of compilable code by inserting one or more variables in the first segment of compilable program code, the one or more variables being defined by a user;

c. generating a first question body for a first question in the family of questions, the first question body comprising a third segment of compilable program code generated by assigning a first set of unique random values to the one or more variables in the second segment of compilable program code of the template question; and

d. generating a first plurality of response options corresponding to the first question, the first plurality of response options comprising at least one correct option and at least one incorrect option,

wherein the at least one correct option is generated by a compiler program and is based on a compiler program input comprising the third segment of code; and

wherein the at least one incorrect option is generated by compiling one or more misinterpretation codes, a misinterpretation code being generated by:

generating a fourth segment of compilable program code, wherein the fourth segment of compilable program code includes (i) a first program statement that is also included within the second segment of compilable program code, and (ii) a second program statement that is not included within the second segment of compilable program code; and

assigning the first set of unique random values corresponding to the third segment of compilable program code, to one or more variables within the fourth segment of compilable program code.

6. The system according to claim 5 wherein the processor is further configured to generate the first set of unique random values for the one or more variables.

7. The system according to claim 5 , wherein the processor is configured to generate one or more of the at least one incorrect option based on at least one of the correct option and a second set of unique random values, the second set of unique random values being defined by the user.

8. The system according to claim 7 , wherein the processor is further configured to generate the second set of unique random values, the second set of unique random values being defined by the user.

9. The system according to claim 5 , wherein the processor is further configured to assign one or more tags to one or more of the at least one correct option, the at least one incorrect option and each of the family of programming language test questions, the one or more tags being assigned based on the first set of unique random values for storing the family of programming language test questions.

10. A computer program product for use with a computer, the computer program product comprising a non-transitory computer usable medium having a computer readable program code embodied therein for creating a family of programming language test questions, the computer readable program code comprising instructions for:

generating the family of programming language test questions, each question in the family including a question body to be presented to a test taker and a plurality of response options to be correspondingly presented to the test taker, the question body comprising a segment of compilable program code, and at least one of the response options representing an outcome of execution of the segment of compilable program code, the step of generating comprising:

a. storing in a memory, a pre-defined parent question comprising a first segment of compilable program code written in the programming language;

b. generating a template question comprising a second segment of compilable program code by inserting one or more user-defined variables in the first segment of compilable program code of the pre-defined parent question;

c. generating a first question body for a first question in the family of questions, the first question body comprising a third segment of compilable program code generated by assigning a first set of unique random values to the one or more variables in the second segment of compilable program code of the template question; and

d. generating a first plurality of response options corresponding to the first question, the first plurality of response options comprising at least one correct option and at least one incorrect option,

wherein the at least one correct option is generated by a compiler program and is based on a compiler program input comprising the third segment of code; and

wherein the at least one incorrect option is generated by compiling one or more misinterpretation codes, a misinterpretation code being generated by:

generating a fourth segment of compilable program code, wherein the fourth segment of compilable program code includes (i) a first program statement that is also included within the second segment of compilable program code, and (ii) a second program statement that is not included within the second segment of compilable program code; and

assigning the first set of unique random values corresponding to the third segment of compilable program code, to one or more variables within the fourth segment of compilable program code.

11. The computer readable program code according to claim 10 , wherein the at least one incorrect option is generated based on at least one of the correct option and a second set of unique random values, the second set of unique random values being defined by the user.

12. The computer readable program code according to claim 10 further performing assigning one or more tags to at least one of the correct option corresponding to each of the one or more questions, the one or more incorrect options corresponding to each of the one or more questions and each of the one or more questions, the one or more tags being assigned based on the first set of unique random values for storing the family of questions.

Assignments (2)
CHANGE OF NAME Recorded Mar 18, 2013
From: INFOSYS TECHNOLOGIES LIMITED
To: INFOSYS LIMITED
Reel/Frame 030050/0683 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2009
From: ISHAQ, ALSAAD; NANJAPPA, SATHEESHA BYADARAHALLY; ACHARYA, SEEMA
To: INFOSYS TECHNOLOGIES LIMITED
Reel/Frame 023022/0165 →
Priority Claims (1)
IN 104/CHE/2008 · Jan 11, 2008 · national
Continuity (1)
Related Publication 20090280456A1 · Nov 12, 2009