Российский технологический журнал (Jun 2022)
Pedagogical design of a digital teaching assistant in massive professional training for the digital economy
Abstract
Objectives. The active digitalization of the Russian economy has resulted in a shortage of IT personnel; this is particularly true of software developers. Thus, the Russian university education is faced with the task of undertaking the large-scale professional training of such specialists. The purpose of the present work was to support the largescale (“massive”) professional training of programmers through the creation and implementation of Digital Teaching Assistant (DTA) computer system, allowing teachers working under stressful conditions to concentrate on functions that require a creative approach, namely, drawing up and discussing nontrivial programming tasks.Methods. Pedagogical methods for the personification of learning processes were employed. The general approach was based on satisfying the constraints for creating programming task generators. Tasks were generated using methods for generating random programs and data based on probabilistic context-sensitive grammars, along with translation methods using an abstract syntax tree. The declarative representation of the task generator was performed using functional programming methods, allowing the creation of a domain-specific language using combinators. The solutions were checked using automated testing methods.Results. The developed structure of the proposed DTA system was presented. Considering the automatic generation of programming tasks, classes of practical tasks that reflected the modern specifics of software development were identified along with examples of their generation. A diagram of the programming task generator was provided along with a description of the procedure for automatically checking the solutions of the tasks using a set of program tests generated by the task generator. The presented procedure for comprehensive assessment of a student’s solution included verification of the correctness of the result and plagiarism checks in the case of tasks created manually by the teacher; this also involved validation for compliance with coding style standards, along with metrics for assessing program complexity, etc. The means for recording of statistics of academic achievement of students was characterized along with the interface of interaction between students and teachers.Conclusions. The experience of introducing a DTA into the learning process of teaching programming in Python confirmed the possibility of personifying the learning process in the form of individual learning paths.
Keywords