План лабораторных, баллы и защита

Как устроен курс

Практические занятия по курсу «Промышленное программирование на языке C» включают в себя выполнение четырёх обязательных лабораторных работ в осеннем семестре. Занятия проходят раз в неделю в компьютерных классах. Теорию читают на лекциях, а на практике осваивается синтаксис через решение задач, даются консультации по лабораторным.

Цель курса — базовые навыки программирования на C: работа с памятью, указателями, файлами и простыми структурами данных. Это фундамент для системного программирования и встраиваемых систем.

Лабораторные работы

№ТемаКлючевые понятия
ЛР1Одномерные массивы и последовательностиввод/вывод, циклы, условия, статические одномерные массивы
ЛР2Многомерные массивы и функциидвумерные и трёхмерные массивы, вложенные циклы, обход по измерениям, разбиение программы на функции, передача массивов в функции
ЛР3Структуры, списки, динамическая памятьstruct, связные списки, обход, адреса, malloc/free, работа с текстовыми файлами
ЛР4Бинарные файлыfread/fwrite, сериализация записей

Начиная с ЛР2 программа обязательно разбивается на функции. Минимальный набор: ввод данных, вывод результата, обработка. Если вся логика осталась в main — оценка не выше 3 баллов.

Календарный план занятий

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

ДатаТипСодержание
10 сен.Вводноезнакомство со средой, ЛР1: консольный и форматированный ввод-вывод, типы данных
17 сен.ПрактикаЛР1: условия, ветвления, циклы
24 сен.ПрактикаЛР1: одномерные массивы, ввод-вывод массива, обход по индексам
1 окт.Защита ЛР1защита первой лабораторной
8 окт.ПрактикаЛР2: двумерные и трёхмерные массивы, вложенные циклы, обход по строкам, столбцам и слоям
15 окт.ПрактикаЛР2: разбиение программы на функции, передача массивов в функции
22 окт.Защита ЛР2защита второй лабораторной
29 окт.ПрактикаЛР3: динамическая память, указатели, структуры, списки
5 ноя.Практиказадачи по динамической памяти, указателям
12 ноя.Практиказадачи по структурам и спискам, подготовка к защите ЛР3
19 ноя.Защита ЛР3защита третьей лабораторной
26 ноя.ПрактикаЛР4: бинарные файлы
3 дек.Практиказадачи по бинарным файлам
10 дек.Практикаподготовка к защите ЛР4
17 дек.Защита ЛР4 + зачётзащита четвёртой работы, подведение итогов
24 дек.Интерактивитоги семестра, ответы на вопросы, интерактив

Система оценивания

Каждая работа оценивается от 0 до 5 баллов. Итог за семестр — среднее арифметическое четырёх оценок. Зачёт выставляется при среднем балле не менее 2.5.

Из чего складываются баллы:

  • качество предварительно присланного кода: стиль, комментарии, обработка ошибок, полнота решения;
  • выполнение индивидуального задания на защите;
  • устные ответы на вопросы по теории и реализации.

Дополнительные баллы можно получить выполнением задания на добор после неудачной защиты — до +3 баллов.

Итоговый балл за работу не превышает 5.

Важные особые случаи:

  • студент не может изменить или объяснить свой код — 0.5 балла;
  • списывание (идентичный код, одинаковые ошибки, совпадающая структура) — 0.5 балла обеим сторонам;
  • неявка на защиту без уважительных причин — 0 баллов;
  • код не прислан к сроку — 0 баллов; сдачи с понижающим коэффициентом не предусмотрено.

Порядок защиты

Защита проходит в два этапа:

  1. Студент отправляет исходный код в установленный срок до даты защиты в специальную форму в личном кабинете.
  2. На защите выдаётся индивидуальное задание, которое заранее не известно. В течение 30 минут нужно внести изменения в свой код, после чего преподаватель проверяет результат, задаёт вопросы и выставляет оценку.

На защите запрещены интернет, готовые решения и любые источники, кроме оговорённых заранее.

Требования к оформлению кода

  • комментарии: назначение программы, автор, ключевые блоки;
  • осмысленные имена переменных и функций в стиле snake_case (element_count, input_matrix), кроме счётчиков i, j;
  • имена констант — UPPER_SNAKE_CASE (MAX_SIZE);
  • единый стиль отступов;
  • фигурные скобки — на отдельных строках;
  • каждый оператор — на новой строке;
  • проверка корректности вводимых данных с сообщением и завершением при ошибке;
  • начиная с ЛР2 — программа разбита на функции, прототипы объявлены до main.

Несоблюдение этих требований может привести к снижению оценки.

Что делать, чтобы не потерять баллы

  1. Сдавайте код заранее, а не в последний час: срочно исправить не успеете.
  2. Пишите комментарии и понятные имена — это прямо входит в оценку.
  3. Не копируйте: одинаковый код легко заметить.
  4. Готовьтесь объяснять: на защите обязательно будет спрошено почему так написано.
  5. Тренируйтесь на малых примерах и проверяйте граничные случаи (N = 1, пустые результаты, дубликаты).
  6. С ЛР2 — не забывайте про разбиение на функции: даже корректная программа с логикой только в main получит не выше 3 баллов.

Подтверждение

—