ИУП: интенсив 7 дней + диагностический пакет (32 вопроса, 9 задач с автопроверкой)

This commit is contained in:
Kodlo-chan
2026-09-23 16:05:09 +07:00
commit 4cd63b3d4d
40 changed files with 2464 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
# Диагностика уровня — пакет (C/C++, алгоритмы, Linux, сети)
Собран под вакансию Eltex «Разработчик C/C++» (Новосибирск, hh #136775547).
Цель — не «проверить себя на ощупь», а получить машинную оценку по доменам и список дыр.
## Что внутри
- `quiz.json` + `quiz.py` — 32 вопроса по 4 доменам (C/C++ и память, алгоритмы и структуры
данных, Linux/ОС, сети L2/L3 и TCP/IP). 24+ верных — уверенный вход.
- `tasks/` — 9 практических задач, у каждой автопроверка:
| # | Задача | Что проверяется |
|---|--------|-----------------|
| 01 | `01_bits` | битовые операции, без встроенных popcount |
| 02 | `02_list` | связный список: разворот, середина, цикл (Флойд) |
| 03 | `03_ring` | кольцевой буфер, wrap-around, ASAN |
| 04 | `04_ipv4` | разбор IPv4-заголовка из буфера + контрольная сумма |
| 05 | `05_lis` | НВП за O(n log n), тест на 100 000 элементов |
| 06 | `06_threads` | ограниченная очередь: mutex/condvar, ThreadSanitizer |
| 07 | `07_epoll` | TCP-эхо-сервер на epoll: несколько соединений, SIGTERM |
| 08 | `08_bash` | разбор лога доступа: TOTAL/TOP-3/5XX, 110k строк |
| 09 | `09_gdb` | отладка ASAN-падения + письменный разбор в `answer.txt` |
- `grade.py` — прогон задач с автооценкой (`PASS/FAIL`, число проверок, время).
- `solutions/` — **эталонные решения, в руки не отдавать**: они лежат здесь, чтобы
автопроверка не «протухла» (эталон → все PASS, заглушка → FAIL).
## Как проходить
```bash
cd diag
python3 quiz.py # вопросы по одному; ответы — номер варианта 1-4
python3 quiz.py --export # вывести вопросы текстом (можно отвечать в чате)
python3 grade.py # все задачи (с ASAN/UBSAN/TSAN)
python3 grade.py 01 04 # только выбранные
python3 grade.py --fast # без санитайзеров, быстрее
python3 grade.py --submit # результаты + свои файлы в submissions/
```
Порядок: сначала квиз, потом задачи с 01 по 09. Зависание = FAIL (есть таймауты).
Правила честности: без встроенных `popcount`/`reverse`-хелперов, без копирования чужих
решений, `answer.txt` в задаче 09 — обязательная часть (оценивается ход разбора).
## Что считается результатом
- `results_quiz.json`: балл по каждому домену + разбор промахов с пояснениями.
- `results_tasks.json`: по задаче — PASS/FAIL, число проверок, время, полный лог сборки.
- Итог и решение по плану (с каких модулей стартовать) собираются по этим двум файлам.
## Публикация и доступ
- Пакет в каталоге: `/home/pi/eduplan/diag` (мир читает; каталог доступен на исполнение).
- Инбокс для ответов: `/home/pi/eduplan/diag/submissions/` (0777).
- Архив для скачивания: `/home/pi/eduplan/diag/dist/eduplan_diag.tar.gz`.