Generation of Test Tasks in Systems of Computer Mathematics for Educational Purposes Michael Lvov, Hanna Shmarova Kherson State University, UnΓ­versitets'ka, 27 73000, Kherson, Ukraine lvov@ksu.ks.ua, hanna.shmarova@gmail.com Abstract. The study of exact sciences includes not only lectures but also the ac- tive forms of learning (practical classes, laboratory work and so on). Thus, it is necessary to control not only declarative knowledge but also procedural knowledge of the students (the knowledge of methods for solving problems). This article describes functional requirements, mathematical models, and algo- rithms for the development of the modules of procedural knowledge testing in the systems of computer mathematics for educational purposes. We present methods of generation of test tasks implemented in the web application β€œTest on Mathematics”. Keywords: Systems of computer mathematics for educational purposes, gener- ation of test tasks, procedural knowledge, computer software, template. Key Terms: Educational process, computer software. 1 Introduction There are two approaches to solve the problem of the generation of specific test tasks: saving a series of similar tests in the database and using algorithms for automatic generation of tests implemented as system procedures. Each of these approaches has its advantages and disadvantages. In the first case, it is necessary to spend a lot of time to fill the database, and tests are repeated. In the second case, the large amount of time is spent on the implementation of algorithms for automatic generation, but each test is unique. The weighted approach is to: 1. Develop a single common model for each sufficiently wide class of tests, as well as models and algorithms for generating conditions and answers for this model. 2. Develop common CASE-technologies for description subclasses of test tasks based on a single common model. 3. Develop joint mechanisms for storing and calling of algorithms for generation of specific test tasks. 2 Test Tasks-Templates The expression 𝐹(π‘₯1 , … , π‘₯π‘š ; π‘Ž1 , … , π‘Žπ‘˜ ) in signature βˆ‘π‘†π· in subject domain 𝑆𝐷 is called expression template. Variables π‘₯1 , … , π‘₯π‘š are called variable templates or metavariables. The common range of values for metavariables is set π‘‰π‘Žπ‘Ÿ (π‘₯𝑖 ∈ π‘‰π‘Žπ‘Ÿ). It follows that in each par- ticular case, each of the variable templates represents one of the variables. Variables π‘Ž1 , … , π‘Žπ‘˜ are called coefficient templates or parameters. The range of values for parameters is numerical sets (π‘Žπ‘— ∈ π‘π‘’π‘š). It follows that in each particular case, each of the coefficient templates is a number. Example 1 π‘Ž1 π‘₯1 + π‘Ž2 π‘₯2 is expression template. 2 Specific instances of this template: 2π‘Ž + 3π‘₯, βˆ’ 𝑒 + 5π‘₯ and so on. Suppose 3 𝐹(π‘₯1 , … , π‘₯π‘š ; π‘Ž1 , … , π‘Žπ‘˜ ) is expression template and π‘₯𝑗 ∈ π‘‰π‘Žπ‘Ÿ, π‘Žπ‘— ∈ π‘π‘’π‘š, then 𝑣 ,…,𝑣 𝑐 ,…,𝑐 𝑆𝑒𝑏π‘₯11,…,π‘₯π‘š π‘š π‘†π‘’π‘π‘Ž11 ,…,π‘Žπ‘šπ‘˜ 𝐹(π‘₯1 , … , π‘₯π‘š ; π‘Ž1 , … , π‘Žπ‘˜ ) = 𝐹(𝑒1 , … , π‘’π‘š ; 𝑐1 , … , π‘π‘˜ ) is called specialization (a special case or instance) of 𝐹(π‘₯1 , … , π‘₯π‘š ; π‘Ž1 , … , π‘Žπ‘˜ ). Expression templates define the common view of the model and common view of the answer for test task. It follows that the basis of determining the test task 𝑇 is pair < πΉπ‘‡π‘Žπ‘ π‘˜ , 𝐹𝐴𝑛𝑠 >, where πΉπ‘‡π‘Žπ‘ π‘˜ , 𝐹𝐴𝑛𝑠 are expressions templates (Fig.1), defined on common lists of metavariables ( π‘‹π‘£π‘Žπ‘Ÿ ) and parameters (π΄πΆπ‘œπ‘’π‘“ ).Then 𝑇(π‘‹π‘£π‘Žπ‘Ÿ , π΄πΆπ‘œπ‘’π‘“ ) =< πΉπ‘‡π‘Žπ‘ π‘˜ (π‘‹π‘£π‘Žπ‘Ÿ , π΄πΆπ‘œπ‘’π‘“ ), 𝐹𝐴𝑛𝑠 (π‘‹π‘£π‘Žπ‘Ÿ , π΄πΆπ‘œπ‘’π‘“ ) > In tests on equivalent expressions transformation πΉπ‘‡π‘Žπ‘ π‘˜ =𝑆𝐷 𝐹𝐴𝑛𝑠 , where " =𝑆𝐷 " means semantic equality in domain 𝑆𝐷. Fig. 1. Forms for displaying task and answer templates in the interface of web application β€œTest on Mathematics” Example 2 𝑇(π‘₯, 𝑦; π‘š1 , 𝑛1 , π‘š2 , 𝑛2 ) =< π‘₯ π‘š1 𝑦 𝑛1 βˆ™ π‘₯ π‘š2 𝑦 𝑛2 , π‘₯ π‘š1 +π‘š2 𝑦 𝑛1+𝑛2 > In addition to the signature of the domain system function π‘‰π‘Žπ‘™(𝐹) is used in the definition of a template of test task. It is defined on the set of expressions of the sub- ject domain. System interpreter of function π‘‰π‘Žπ‘™(𝐹) computes a special canonical form of the expression. Function π‘‰π‘Žπ‘™(𝐹) is used in algorithms for generation and verifica- tion of test task. 3 Descriptions of Variables and Coefficients in Samples Set π‘‰π‘Žπ‘Ÿ is common range of values for metavariables and basic set. Description of metavariables conforms to the following rules: π‘‰π‘Žπ‘Ÿπ·π‘’π‘ π‘π‘Ÿπ‘–π‘π‘‘π‘–π‘œπ‘› ∷=< π‘‰π‘Žπ‘ŸπΏπ‘–π‘ π‘‘ >∈< π‘‰π‘Žπ‘Ÿπ‘‡π‘¦π‘π‘’ >|.π‘‰π‘Žπ‘Ÿπ·π‘’π‘ π‘π‘Ÿπ‘–π‘π‘‘π‘–π‘œπ‘›; < π‘‰π‘Žπ‘ŸπΏπ‘–st >∈< π‘‰π‘Žπ‘Ÿπ‘‡π‘¦π‘π‘’ > π‘‰π‘Žπ‘ŸπΏπ‘–π‘ π‘‘ is a list of variables separated by commas, π‘‰π‘Žπ‘Ÿπ‘‡π‘¦π‘π‘’ ∷= π‘‰π‘Žπ‘Ÿ|[π‘‰π‘Žπ‘ŸπΌπ·. . π‘‰π‘Žπ‘ŸπΌπ·]|π‘‰π‘Žπ‘ŸπΌπ·|{π‘‰π‘Žπ‘Ÿπ‘†π‘’π‘‘}|π‘‰π‘Žπ‘Ÿπ‘‡π‘¦π‘π‘’ βˆͺ π‘‰π‘Žπ‘Ÿπ‘‡π‘¦π‘π‘’. π‘‰π‘Žπ‘Ÿ is a basic set of variables; π‘‰π‘Žπ‘ŸπΌπ· is one letter; [π‘‰π‘Žπ‘ŸπΌπ·. . π‘‰π‘Žπ‘ŸπΌπ·] is a segment with type π‘‰π‘Žπ‘Ÿ, initial and final value of segment are various letters without indices, or different letters with the same index, or the same letter with different indices (Fig.2); {π‘‰π‘Žπ‘Ÿπ‘†π‘’π‘‘} is a set of variables separated by commas; π‘‰π‘Žπ‘Ÿπ‘‡π‘¦π‘π‘’ βˆͺ π‘‰π‘Žπ‘Ÿπ‘‡π‘¦π‘π‘’are two combining types of descriptions. Variables VarList (i.e., the left side of the definition) are metavariables. Variables that are included only in π‘‰π‘Žπ‘Ÿπ‘‡π‘¦π‘π‘’ are instances. Both metavariables and instances of variables can be used in the template. Metavariables and instances of variables should be denoted by different letters to avoid the complication of semantics. For example: ο‚· 𝑋, π‘Œ ∈ π‘‰π‘Žπ‘Ÿ are metavariables are defined in the π‘‰π‘Žπ‘Ÿ; ο‚· 𝐴, 𝐡, 𝐢 ∈ [π‘Ž. . 𝑑] βˆͺ [𝑒. . 𝑧] are metavariables take value π‘Ž, 𝑏, 𝑐, 𝑑, 𝑒, 𝑣, 𝑀, π‘₯, 𝑦, 𝑧; ο‚· 𝐴 ∈ [π‘Ž. . 𝑑]; 𝐡 ∈ [𝑒. . 𝑧] are metavariables A and B have different do- mains; ο‚· 𝐹 = π‘Žπ‘₯ + 𝑏𝑦 + 𝑐; π‘Ž, 𝑏, 𝑐 ∈ [𝐴. . 𝑅]. π‘Ž, 𝑏, 𝑐 are metavariables, π‘₯, 𝑦 are in- stances of variables; ο‚· π‘Ž1 , π‘Ž2 , π‘Ž3 , π‘Ž4 , π‘Ž5 , π‘Ž6 ∈ {𝑒, 𝑣}; 𝑒, 𝑣 ∈ [π‘Ž. . 𝑧] are metavariables take value 𝑒 and 𝑣, that take as values small Latin letters. Numerical algebras π‘π‘Žπ‘‘ βŠ‚ 𝐼𝑛𝑑 βŠ‚ π‘…π‘Žπ‘‘ are common ranges of values for parameters and basics sets (Fig.3). Parameters with type π‘…π‘Žπ‘‘ are defined by the value of their numerator and denominator: π‘Ÿ ∈ π‘…π‘Žπ‘‘, π‘π‘’π‘š(π‘Ÿ) ∈ [π‘€π‘–π‘›π‘π‘’π‘š, π‘€π‘Žπ‘₯π‘π‘’π‘š], 𝐷𝑒𝑛(π‘Ÿ) ∈ [𝑀𝑖𝑛𝐷𝑒𝑛, π‘€π‘Žπ‘₯𝐷𝑒𝑛] with default constraints: π‘€π‘–π‘›π‘π‘’π‘š ≀ π‘€π‘Žπ‘₯π‘π‘’π‘š, 𝑀𝑖𝑛𝐷𝑒𝑛 ≀ π‘€π‘Žπ‘₯𝐷𝑒𝑛, π‘π‘’π‘š(π‘Ÿ) ∈ 𝐼𝑛𝑑, 𝐷𝑒𝑛(π‘Ÿ) ∈ π‘π‘Žπ‘‘, 𝐺𝐢𝐷(π‘π‘’π‘š(π‘Ÿ), 𝐷𝑒𝑛(π‘Ÿ)) = 1. Descriptions for test tasks’ templates are used in a procedure for generation in- stances of tests. In the simplest case, the procedure 𝐺𝑒𝑑𝑇𝑒𝑠𝑑 has specification: π‘‡π‘Žπ‘ π‘˜π‘‡π‘’π‘ π‘‘ 𝑃 ≔ 𝐺𝑒𝑑𝑇𝑒𝑠𝑑(π‘‡π‘’π‘šπ‘π‘™π‘Žπ‘‘π‘’π‘‡π‘’π‘ π‘‘ 𝑇), where 𝑇 =< πΉπ‘‡π‘Žπ‘ π‘˜ , 𝐹𝐴𝑛𝑠 >. Fig. 2. Form for adding variable with a given range of values in the interface of web application β€œTest on Mathematics” Fig. 3. Form for adding parameter with a given range of values in the interface of web applica- tion β€œTest on Mathematics” Example 3. Apply the formulas of abridged multiplication: 𝑇 =< (π‘Ž + 𝑏)2 , π‘Ž2 + 2π‘Žπ‘ + 𝑏 2 > Suppose the user describes following template for this test task: 𝑇1 =< (𝑋 + π‘Œ)2 , 𝑋 2 + 2 β‹… 𝑋 β‹… π‘Œ + π‘Œ 2 >, 𝑇2 =< (π‘Ž β‹… 𝑋 + 𝑏)2 , π‘Ž2 β‹… 𝑋 2 + 2 β‹… π‘Ž β‹… 𝑏 β‹… 𝑋 + 𝑏 2 >, 𝑇3 =< (π‘Ž β‹… 𝑋 + 𝑏 β‹… π‘Œ)2 , π‘Ž2 β‹… 𝑋 2 + 2 β‹… π‘Ž β‹… 𝑏 β‹… 𝑋 β‹… π‘Œ + 𝑏 2 β‹… π‘Œ 2 >, 𝑇4 =< (π‘Ž β‹… 𝑋 π‘š + 𝑏 β‹… π‘Œ 𝑛 )2 , π‘Ž2β‹…π‘š β‹… 𝑋 2β‹…π‘š + 2 β‹… π‘Žπ‘š β‹… 𝑏 𝑛 β‹… 𝑋 π‘š β‹… π‘Œ 𝑛 + 𝑏 2⋅𝑛 β‹…β‹… π‘Œ 2⋅𝑛 >. 𝑋, π‘Œ are metavariables, π‘Ž, 𝑏, π‘š, 𝑛 are parameters. Using conditions leads to a reduc- tion of templates’ number and extension of test tasks’ classes. Thus, test task 𝑇4 describes all classes of test tasks with templates 𝑇1 , 𝑇2 , 𝑇3 in conjunction with addi- tional conditions = 1, 𝑏 = 1, π‘š = 0 ∨ π‘š = 1, 𝑛 = 0 ∨ 𝑛 = 1. Description of the con- ditions corresponds to the syntax: πΆπ‘œπ‘›π‘‘πΏπ‘–π‘ π‘‘ ∷= πΆπ‘œπ‘›π‘‘; |πΆπ‘œπ‘›π‘‘, πΆπ‘œπ‘›π‘‘πΏπ‘–π‘ π‘‘; πΆπ‘œπ‘›π‘‘ ∷= π΄π‘‘π‘œπ‘šπΆπ‘œπ‘›π‘‘|π΄π‘‘π‘œπ‘šπΆπ‘œπ‘›π‘‘ & (πΆπ‘œπ‘›π‘‘)|π΄π‘‘π‘œπ‘šπΆπ‘œπ‘›π‘‘ ∨ (πΆπ‘œπ‘›π‘‘), π΄π‘‘π‘œπ‘šπΆπ‘œπ‘›π‘‘ ∷= π‘‰π‘Žπ‘ŸπΌπ· = πΆπ‘œπ‘›π‘ π‘‘|π‘‰π‘Žπ‘ŸπΌπ· = π‘‰π‘Žπ‘ŸπΌπ·. In this example condition has the form: Ξ¦πΆπ‘œπ‘›π‘‘ = (π‘Ž = 1, 𝑏 = 1, π‘š = 0 ∨ π‘š = 1, 𝑛 = 0 ∨ 𝑛 = 1). The semantics of condition description is: ο‚· Each atomic condition divides all set of tests into two classes. First class is a class, where this condition is satisfied, second class is a class, where it fails (in this case corresponding value is randomly generated from the range of values, that are de- fined by parameter descriptions): π‘‰π‘Žπ‘ŸπΌπ· ≔ πΆπ‘œπ‘›π‘ π‘‘|π‘‰π‘Žπ‘ŸπΌπ· ≔ π‘…π‘Žπ‘›π‘‘π‘œπ‘š(). ο‚· Independent conditions are listed with separation by commas. All particular cases are defined by all possible combinations of conditions. ο‚· Conjunction unites independent conditions that describe the same particular case. ο‚· Disjunction combines dependent conditions, each of which defines different indi- vidual cases. Test generation algorithm returns a single particular test in each of its call. There- fore, the condition is reduced to canonical form Ξ¦πΆπ‘œπ‘›π‘‘ = Ξ¦1 + Ξ¦2 + . . . +Φ𝑁 where Φ𝑗 defines one particular case. Let’s use logical variables that are corre- sponding to atomic conditions: 𝐴 = (π‘Ž = 1), 𝐡 = (𝑏 = 1), 𝑀0 = (π‘š = 0), 𝑀1 = (π‘š = 1), 𝑁0 = (𝑛 = 0), 𝑁1 = (𝑛 = 1). Then various tests are described via a Zhegalkin polynomial: 𝐺 = (𝐴 + 1)(𝐡 + 1)(𝑀0 + 𝑀1 + 1)(𝑁0 + 𝑁1 + 1) Each monomial describes one particular test. It is necessary to write the polynomi- al in standard form 𝐺 for describing Ξ¦πΆπ‘œπ‘›π‘‘ in canonical form: 𝐺 = 𝐴𝐡𝑀0 𝑁0 + 𝐴𝐡𝑀0 𝑁1 + . . . + 𝐴 + 𝐡 + 𝑀0 + 𝑀1 + 𝑁0 + 𝑁1 + 1. Presentation of tests’ set for given template via polynomial 𝐺 is used in the classi- fication of tests according to their computational complexity. The complexity of the test is determined by a degree of the monomial (the number of boolean variables). The smaller is the degree of monomial, the more complex is a case of the test. In giv- en example, the simplest tests are tests 𝐴𝐡𝑀0 𝑁0 , 𝐴𝐡𝑀0 𝑁1 , 𝐴𝐡𝑀1 𝑁0 , 𝐴𝐡𝑀1 𝑁1 . The most difficult test is test with all randomly generated parameters. Semantics for the 𝐺𝑒𝑑𝑇𝑒𝑠𝑑 procedure: 1. Randomly substitute one of the variables that are listed in the description of the metavariables into the 𝑇 template instead of each metavariables π‘₯𝑗 (Fig.4). 2. Randomly substitute one of the values that are listed in the description of the pa- rameters into the T template instead of each parameters π‘Žπ‘— (Fig.5). 3. Calculate the function π‘‰π‘Žπ‘™ in the resulting instance (Fig.6). 4. Return the result of calculations in the form 𝑃 =< πΉπ‘‡π‘Žπ‘ π‘˜ , 𝐹𝐴𝑛𝑠 >. Fig. 4. Table for displaying the description of the variables and their generated values in the interface of web application β€œTest on Mathematics” Fig. 5. Table for displaying the description of the parameters and their generated values in the interface of web application β€œTest on Mathematics” Fig. 6. An example of a specifically generated test task based on template in the interface of web application β€œTest on Mathematics” 4 Conclusion In this article, we describe functional requirements, mathematical models, and algo- rithms for the development of the modules of procedural knowledge testing in the systems of computer mathematics for educational purposes. Using of generation of test tasks saves time because there is no need to spend a lot of time to fill a database with conditions and answers for each task. The generator provides a large number of similar tasks based on a single template and each instance of the test is unique. The testing system based on the results of this research is implemented in the web application β€œTest on Mathematics”. The system of computer mathematics for educa- tional purposes β€œTest on Mathematics” will reduce the burden on teachers via auto- matic generation of the tests and verification of the answers. Thus, it is easy to control procedural knowledge during the absence of student (during his illness, during quar- antine, etc.). References 1. Lvov M.S. Proektirovanie logicheskogo vyvoda kak poshagovogo reshenija zadach v matematicheskih sistemah uchebnogo naznachenija / M. S. Lvov // Uprav- ljajushhie sistemy i mashiny. – 2008. –No1. – S.25–32. 2. Lvov M.S. Koncepcija proghramnoji systemy pidtrymky matematychnoji di- jaljnosti./ M.S.Lvov // Komp'juterno-orijentovani systemy navchannja: Zb. nauk. praci/ K.:NPU im. M.P.Draghomanova.– Vyp. 7.–2003.– S.36–48. 3. Lvov M.S. Koncepcija, arhitektura i funkcional'nost' gibkoj raspredelennoj pro- grammnoj sredy uchebnogo naznachenija dlja srednej shkoly. Rabochee mestometodista /M. Lvov //Upravljajushhie sistemy i mashiny. –2009. –No 6. –S. 71-78. 4. Lvov M.S. Raspredelennye programmnye sredy uchebnogo naznachenija. Podsistema upravlenija uchebnym processom / M.S. Lvov // Upravljajushhie sistemy i mashiny. – 2010. –No1. – S. 66 – 71. 5. Lvov M.S. Matematicheskie testy v sistemah komp'juternoj matematiki uchebnogo naznachenija. / M.S.Lvov // Upravljajushhie sistemy i mashiny. –2011. – No6. – S.60–67 6. Lvov M.S. Matematychni modeli ta metody pidtrymky khodu rozv'jazannja navchaljnykh zadach z analitychnoji gheometriji/ M.S.Lvov // Iskustvennyj intel- lekt. –No1. – 2010. –C. 86–92.