PYTHON, STACK AND MOODLE: PROGRAMMING AND PRODUCTION OF THOUSANDS OF MATH EXAM EXERCISES WITH SPECIFIC STEP-BY-STEP FEEDBACK
Universidad Autónoma Metropolitana Unidad Azcapotzalco (MEXICO)
About this paper:
Conference name: 14th annual International Conference of Education, Research and Innovation
Dates: 8-9 November, 2021
Location: Online Conference
Abstract:
The authors have built an Online Assessment Center for Mathematics, with URL http://galois.azc.uam.mx for Precalculus, Differential Calculus, Integral Calculus, Linear Algebra, Cryptography, Discrete Mathematics courses at the Universidad Autonoma Metropolitana, Unidad Azcapotzalco in blended and online modalities, supporting the learning of mathematics for engineering students starting their studies.
Generally, mathematics exercises in textbooks show only the answer as a form of feedback. For the authors, it is important to show students the procedure followed to find the solution of each exercise.
This paper describes the process of automatically generating banks of thousands of mathematics exercises, with specific feedback, whose data are randomly chosen from sets of numbers appropriate to the level of the course.
The generation of the exercise banks involves the construction of an exercise prototype, which must be built considering validity, syntax, and mathematical content, following the evaluation indicators of the curricula, establishing the expected answers, accuracy, formal writing, insertion of graphics, etc.
The authors present two ways of generating exercises with feedback: one way with the Python Sympy library and another with a Moodle plugin, called STACK.
In both cases the construction and feedback of the exercises is automated, using STACK and Cloze questions in Moodle, and taking advantage of the feedback features of this type of questions.
The Sympy library of the Python language is used to process mathematical expressions of arithmetic, algebra, calculus, matrices, among others. The SymPy Gamma module, which is a computational algebraic system (CAS), allows solving mathematical problems online, like other CAS, such as Symbolab or Wolfram Alpha.
In the differential calculus course, when calculating the derivative of a function, it shows in the step-by-step development various procedures and formulas for the product, quotient, power, chain rule, implicit derivative, etc.
The implementation in this work is done with open-source code, which was incorporated into Moodle to generate Cloze type questions automatically and improve the feedback in the solution procedure of the exercises, also for the self-assessment activities in each exercise the answer to the question is shown along with the step-by-step solution procedure.
The Python code is dynamically generated because Python is an interpreter, there is flexibility to incorporate additional feedback for problems related to a particular topic, such as calculating tangents at a given point or calculating horizontal tangents to a function.
On this last point, to enrich the content and feedback offered to students, JSXGraph graphics are embedded in the feedback, and other properties are also implemented, such as the translation into Spanish (student’s native language) of all messages displayed by the program.
On the other hand, with the STACK plugin, the CAS MAXIMA calculation is used, which allows the program to validate the result written by the student, and searches for expressions mathematically equivalent to the answer written by the examinee.
As a contribution to the teaching community, the pseudocode, implemented in the STACK template in Moodle, is available at http://galois.azc.uam.mx.Keywords:
Assessment, Moodle, online assessment, automatic generation of exercises, automatic feedback.