В качестве семинарской оценки у нас будет оценка за проект.
Страничка с проектами: TBD
Проекты прошлых годов:
к - конспект
yt - ссылка на запись ютуб
vk - ссылка на запись вк
- [к][yt][vk] - Терминал. vim. tmux. Устанавливаем qemu с убунтой на мак. Смотрим, как сдавать дз.
- [к][yt][vk] - x64 asm. Арифметика, условные и безусловные переходы, gdb, сдвиги.
- [к][yt][vk] - Первая "переменная", массивы, стек
- [к][yt][vk] - Стек, соглашение о вызовах, пролог, эпилог
- [к][yt][vk] - Соглашение о вызовах. Вызываем c/c++ код из асм кода и наоборот. Указатели на функции.
- [к][yt][vk] - Язык C. Printf/scanf. Строки/массивы. Опасности UB.
- [к][yt][vk] - Динамическая память. Устройство аллокатора. malloc(0) в цикле. OOM-killer.
- В одном блоке кода (участок кода отделенный новой строкой сверху и снизу) между командами и аргументами должен быть отступ одного размера. Отступ должен быть сделан табом, а не пробелом. То есть все аргументы должны быть выравнены.
pushl %ebp
movl %esp, %ebp
subl $4, %esp
and $-16, %esp
leal -4(%ebp), %eax
Сданный код проходит тестирование в тестирующей системе, а затем проверяется глазами семинариста и ассистентов.
Прошедший тесты код может быть отправлен на исправление (получен статус reject), если решение является неоптимальным, если нарушает условия, установленные в задаче или если нарушает форматирование.
Проверка на списывание запускается в случайное время. При обнаружении списывания обнуляется ВЕСЬ контест и составляется записка в УО.
В проверке на списывание участвуют все доступные онлайн материалы, в том числе известные репозитории с решениями и решения прошлых годов.
Если вы берете код из общедоступного источника, то нужно прикладывать ссылку на этот источник и пояснять комментариями код, чтобы было видно, что вы этот код понимаете.