Инструменты пользователя

Инструменты сайта


courses:programming:course_work_defense_rules

Правила защиты курсовых работ

Пререквизиты

  1. Для допуска к защите у студента должен быть сделан пуллреквест по правилам: Правила создания PR к курсовой работе
  2. Курсовая должна быть выполнена в полном объеме и в соответствии с полученным студентом заданием.
  3. В назначенный день и время студент должен быть онлайн в discord. В случае, если студент хочет проверить заранее свои технические возможности использования системы прокторинга (записи камеры и экрана на его устройстве) возможности, он должен связаться с преподавателем не позднее, чем за 72 часа до защиты.

Как проходит защита

Перед основным заданием студент решает проходной тест, состоящий из утверждений, среди которых нужно выбрать верные. В тесте допускается сделать одну ошибку, то есть либо отметить как верный ответ, который является неверным, либо наоборот. Например: если в тесте два верных утверждения, и студент выбрал одно верное утверждение и одно неверное, то это будет считаться за две ошибки: верное утверждение выбрано как неверное и неверное утверждение выбрано как верное.

В случае успешного решения теста студент допускается к выполнению основного задания. В противном случае за курсовую работу выставляется оценка «неудовлетворительно».

Основное задание представляет собой дополнительную подзадачу курсовой работы: Порядок сдачи курсовых работ

После того, как студент решит задачу, студента будет ожидать разговор с преподавателем. На этот момент разрешается завершить прокторинг. Во время общения с преподавателем после успешно выполенного задания студент показывает преподавателю экран и изображение с веб-камеры. Студент:

  1. Демонстрирует работоспособность выполненного им на защите задания.
  2. Демонстрирует работоспособность остальных подзадач курсовой работы
  3. Отвечает на вопросы преподавателя по заданию на защите и основной курсовой работе. Вопросы охватывают не менее трех тем.

Правила оценивания (курсовой и задания на защиту)

Студент получает максимальную оценку согласно выбранному уровню курсовой работы, если выполнены все следующие условия:

  • Студент выполнил полностью задание на защиту, программа компилируется, запускается и демонстрирует корректность работы на тестах, предложенных студентом и преподавателем. Задание было успешно встроено в курсовую работу.
  • Студент верно отвечает на все вопросы преподавателя.
  • Студент способен прокомментировать свою работу как с точки зрения логики её выполнения, так и с точки зрения использования конструкций языка.

Студент получает оценку неудовлетворительно, если выполняется хотя бы одно из условий:

  • Не пройдена автоматическая проверка выполняемого задания
  • Студент не может скомпилировать курсовую работу с добавленной по итогам защиты функциональностью к моменту окончания времени на защиту. Иными словами, код к моменту завершения времени на выполнение задания не корректный.
  • Основная курсовая работа или курсовая работа с добавленным заданием аварийно завершается или выдает неверный ответ на всех тестах.
  • Основная курсовая работа или курсовая работа с добавленным заданием аварийно завершается или выдает неверный ответ на нескольких тестах, но студент не может объяснить причину такого поведения программы. Под объяснением следует понимать способность указать строчку в коде программы в которой присутствует ошибка, назвать причину ошибки и объяснить алгоритм исправления ошибки.
  • Студент не может прокомментировать логику работы своей программы и/или дать комментарии по программному коду. Неправильно данные ответы приравниваются к неспособности студента дать комментарии.

Основания для снижения оценки:

  • Задание выполнено полностью, но корректный результат работы программа показывает только на нескольких тестах.
  • Студент совершает более двух ошибок при ответе на вопросы.
  • Есть части программы, по которым студент не может дать комментарии

Минимально требуемый набор навыков для выполнения задания (курсовая осеннего семестра)

  • Сборка программы с использованием компилятора gcc
  • Умение запуска программы и ввода данных
  • Ввод и вывод текстовых данных в программе на языке Си
  • Работа с символами на языке Си
  • Операции над строками (символьными массивами) в языке Си: разделение строки на подстроки, копирование, вставка, конкатенация. Умение использовать функции из string.h
  • Указатели в языке Си (в том числе указатели на указатели)
  • Работа с динамической памятью в языке Си (выделение / высвобождение / изменение размера выделенной области)
  • Работа с динамическими массивами в языке Си, в том числе многомерными. Например, с динамическими массивами строк
  • Использование функции qsort из libc для сортировки массивов символов и массивов строк
  • Навык работы с датами в программах на языке Си (используя функции библиотеки libc)
  • Навыки работы с “широкими” символами (wchar_t) и строками в языке Си. (для заданий, где это требуется условием)