//Сейчас код системы поддержки практикумов (для Кумира и Питона) совпадает, если не на 100%, то на 98 точно. Хотим ли мы и дальше поддерживать
//единство кода? И делать его модульным? Нужно понять насколько ситемы практикумов для Питона и Кумира должны быть похожи.
В Python есть механизм для Unit-testinga, но я не разу не встречал ни одного учебного курса, где используется или хотя бы упоминается юнит-тестирование. Таким образом, перед нами не ставятся жесткие рамки на формат тестирующих программ и их возможностей.
В отличии от языка Кумир, где есть прибитый гвоздями главный алгоритм с входными и выходными параметрами, мы должны допускать тестирование *произвольной* Python-программы. Таким образом, для проверки заданий нужно уметь:
1) перехватывать вывод программы для дальнейшего анализа;
// Возможно это нужно и для Кумира.
2) имитировать ввод с клавиатуры входных данных;
3) уметь работать вообще без ввода-вывода: изменять на лету значения определенных переменных и уметь получать их значения.
//Это делает не система поддержки практикума а проверяющая программа.
Замечание: это все уже реализовано.
Кроме того, часто требуется не только анализ работы программы, но и анализ ее исходного текста. Механизм проверки заданий должен уметь общаться с синтаксическим анализатором, и на усмотрение автора задания, требовать, чтобы текст программы соответствовал определенным требованиям.
Например, у меня по 10-бальной шкале, за домашнее задание снималось 3 балла, если программа содержала ошибку анализатора PyLint, и 1 балл, если ошибка PEP-8. При этом программа могла работать и выдавать корректный результат. Эту проверку хочется автоматизировать.
//Это, скорее всего, совсем не сложно. Но нужно понять насколько сильно этот функционал должен быть настраевыемым учителем.
Требования к организации взаимодействия преподавателя с учениками (Практикум)