Commit 64dd5cba authored by Denis Khachko's avatar Denis Khachko

no message

parent 712aab3d
......@@ -27,18 +27,24 @@
Требования к механизму тестирования заданий
===========================================
//Сейчас код системы поддержки практикумов (для Кумира и Питона) совпадает, если не на 100%, то на 98 точно. Хотим ли мы и дальше поддерживать
//единство кода? И делать его модульным? Нужно понять насколько ситемы практикумов для Питона и Кумира должны быть похожи.
В Python есть механизм для Unit-testinga, но я не разу не встречал ни одного учебного курса, где используется или хотя бы упоминается юнит-тестирование. Таким образом, перед нами не ставятся жесткие рамки на формат тестирующих программ и их возможностей.
В отличии от языка Кумир, где есть прибитый гвоздями главный алгоритм с входными и выходными параметрами, мы должны допускать тестирование *произвольной* Python-программы. Таким образом, для проверки заданий нужно уметь:
1) перехватывать вывод программы для дальнейшего анализа;
// Возможно это нужно и для Кумира.
2) имитировать ввод с клавиатуры входных данных;
3) уметь работать вообще без ввода-вывода: изменять на лету значения определенных переменных и уметь получать их значения.
//Это делает не система поддержки практикума а проверяющая программа.
Замечание: это все уже реализовано.
Кроме того, часто требуется не только анализ работы программы, но и анализ ее исходного текста. Механизм проверки заданий должен уметь общаться с синтаксическим анализатором, и на усмотрение автора задания, требовать, чтобы текст программы соответствовал определенным требованиям.
Например, у меня по 10-бальной шкале, за домашнее задание снималось 3 балла, если программа содержала ошибку анализатора PyLint, и 1 балл, если ошибка PEP-8. При этом программа могла работать и выдавать корректный результат. Эту проверку хочется автоматизировать.
//Это, скорее всего, совсем не сложно. Но нужно понять насколько сильно этот функционал должен быть настраевыемым учителем.
Требования к организации взаимодействия преподавателя с учениками (Практикум)
......
......@@ -595,6 +595,9 @@
<height>41</height>
</rect>
</property>
<property name="toolTip">
<string>Сбросить</string>
</property>
<property name="text">
<string>...</string>
</property>
......
......@@ -182,7 +182,7 @@ int tasks=course->loadCourse(fileName);
course->setTeacher(isTeacher);
if(tasks==-1)
{
QMessageBox::information( 0, "", trUtf8("course->loadCourse : Ошибка открытия файла: ") + fileName, 0,0,0);
QMessageBox::information( 0, "", trUtf8("Ошибка открытия файла: ") + fileName, 0,0,0);
return;
};
ui->treeView->setModel(course);
......@@ -247,7 +247,7 @@ if(cursFile!=krsFile){//Esli ne udalos po puti - ishem v toyje direktorii
QString fileN=fileEl.attribute("fileName");
//qDebug()<<"KURS ZAGRUZILI";
if(cursFile!=krsFile){
QMessageBox::information( 0, "", trUtf8("Не наеден файл курса:") + fileEl.attribute("fileName"), 0,0,0);
QMessageBox::information( 0, "", trUtf8("Не найден файл курса:") + fileEl.attribute("fileName"), 0,0,0);
fileN=getFileName(krsFile);
loadCourseData(fileN);
if(cursFile!=fileN)return;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment