Я много искал такого рода вопросы и ничего не нашел, я думаю, что ответы здесь могут быть полезны для школ.
У моего коллажа проблемы с системой тестирования домашних заданий, и я хотел бы предложить им обновить или перестроить их систему тестирования.
Мой метод тестирования коллажей — полностью черный ящик. Учащиеся пишут все, что хотят, при условии, что они проходят автоматические тесты, проводимые на школьном сервере.
Затем ассистент преподавателя корректирует код всех учащихся, комментируя ошибочную логику и неправильные методы. Проблема в том, что по-человечески невозможно проверить весь этот код.
Мой вопрос таков:
Какой, на ваш взгляд, лучший метод проверки домашних заданий, который побудит (или, лучше, заставит ) студентов писать хороший код, а во-вторых, в результате сведет к минимуму задачу ассистента преподавателя по корректуре.
--Мы программируем на C++ под Linux.
Спасибо за ваши комментарии.
Вы запрашиваете полностью автоматизированный конвейер проверки кода, также известный как Святой Грааль.
По частям:
Так что, в общем, нет, это невозможно. Единственный способ, который я могу придумать, — упростить расширение вашей системы тестирования и оценки. Когда ТА находит ошибку в программе, добавляется тест, и все они проходят через пайплайн, и становится на одну проверку меньше.
Лучшее, что я могу придумать, чтобы обеспечить соблюдение хороших практик, - это заставить приложение увеличивать назначение за назначением. Если он плохо закодирован, его расширение и поддержка потребуют значительных усилий, и преимущества передового опыта станут очевидными. По моему мнению, создание больших баз кода — это единственный способ действительно понять и поверить в то, почему шаблоны и соглашения полезны, а не являются продуктом каких-то придирчивых парней с ОКР.
Но вы можете обмануть. Например, вы можете вручную тщательно проверить материалы с наименьшими оценками стиля, которые проходят все тесты (предполагая, что они будут плохо закодированы), и найти их крайние случаи, когда они не пройдут, и добавить их в свою батарею тестов. Однако это несправедливо, поскольку вы нацеливаете свое наказание на конкретные представления.
мхвомбат