Если вы выбрали тему, необходимо отредактировать файл, добавив в скобках после темы свои фамилии (не более двух), а также ссылку на репозиторий, в котором вы будете выполнять работу. Если тема уже была выбрана кем-то ранее — не страшно, можно сделать форк и доработать код. Проверять такие работы буду гораздо внимательнее, но если увижу, что вы действительно усовершенствовали чужой код (исправили, добавили новые фичи, убрали старые бага, провели рефакторинг и т.д.), и он от этого стал лучше, хорошая оценка вам гарантирована.
- Не стоит устраивать "войн правок", когда уже выбранная кем-то тема потом переходит к кому-то другому. Мы работаем в системе версионного контроля, т.е. все изменения будут видны в истории коммитов.
- Спам не допускается, нарушители будут забанены.
- Если вы придумали свою тему, допишите её в конец списка (фамилии исполнителей и ссылка на репозиторий также обязательны).
- Этот файл можно править либо напрямую, т.к. вы все являетесь членами этой группы и у вас есть права на запись в этот репозиторий, а также можно сделать форк у себя в аккаунте, а затем пул-реквест сюда. Последнее даже интереснее 😬.
| № | Тема | Ссылка на описание | Имя |
|---|---|---|---|
| 1 | Реализация кодов Рида—Соломона. | Восстановление данных | Кравчук |
| 2 | Реализация алгоритма циклического избыточного кода. | Проверка целостности данных | |
| 3 | Реализация кодов Боуза—Чоудхури—Окенгема. | Восстановление данных | |
| 4 | Реализация алгоритма Шеннона—Фано. | Сжатие данных | Борботько |
| 5 | Реализация алгоритма Лемпеля—Зива—Велча. | Сжатие данных | Генько |
| 6 | Реализация алгоритма быстрого умножения больших целых чисел Шёнхаге—Штрассена. | описание | |
| 7 | Реализация алгоритма быстрого умножения больших целых чисел Фюрера. | описание | |
| 8 | Реализация алгоритма быстрого деления больших целых чисел Бурникеля—Циглера. | описание | |
| 9 | Реализация алгоритма Ривеста—Шамира—Адлемана. | Криптография. Шифрование | |
| 10 | Реализация алгоритма Кнута—Морриса—Пратта. | Поиск подстроки в строке | |
| 11 | Реализация алгоритма Бойера—Мура. | Поиск подстроки в строке | Лабчук |
| 12 | Реализация алгоритма поиска по «радужным таблицам». | Криптография. Дешифровка хэшей | |
| 13 | Реализация приложения под Android (любое, лишь бы интересное). | ||
| 14 | Реализация приложения под iOS (любое, лишь бы интересное). | ||
| 15 | Реализация библиотеки определения языка текста. | ||
| 16 | Реализация простейшей игры с применением библиотеки PyGame. | PyGame | Зименко |
| 17 | Реализация простейшей игры с применением библиотеки Cocos2d-x. | Cocos2d-x | |
| 18 | Реализация алгоритма детектирования ошибок Дамма. | описание | |
| 19 | Реализация алгоритма поиска контрольной суммы. | Adler-32. | |
| 20 | Реализация алгоритма поиска контрольной суммы Флетчера. | описание (english) | |
| 21 | Реализация алгоритма Боейра—Ватсона для случая триангуляции Делоне. | Траингуляция | |
| 22 | Реализация алгоритма Гилберта—Джонсона—Кёрти. | min расстояние между выпуклыми множествами | |
| 23 | Информер погоды. | Плешков | |
| 24 | Переводчик. | Гашков |
Программы, написанные не на Си оцениваются в индивидуальном порядке.
- Соблюдение соблюдение единого стиля кодирования.
- Использования стандартной библиотеки Си.
- Модульность (несколько файлов с исходным кодом, заголовочные файлы).
- Создание собственных функций.
- Оригинальность идеи (если тема не из списка или язык не Си).
- Наличие коммитов и брэнчей.
- Наличие wiki-страницы с документаций и описанием программы или алгоритма (это не должна быть копипаста Википедии).
- Наличие файла README.md с коротким описанием программы (что делает, как запустить и т.д.).
- Кроссплатформенность — программа должна работать хотя бы под Виндоус и Линукс.
- Использование структур, перечислений и объединений; свои собственные типы через алиасы.
- Использование массивов, динамическое распределение памяти приветствуется, но не обязательно.
- Использование указателей (обязательно!).
- Работа со строками (в Си это весело!).
- Наличие понятного текстового интерфейса (можно и графического, можно на ncirses).
- Программа должна вести лог-файл и адекватно реагировать на нештатные ситуации. Как минимум нужно отображение того, что произошло непосредственно перед падением программы.
- Умение отвечать на вопросы по своей программе и объяснять, как работает тот или иной участок кода по моему выбору.
По каждому пункту вы можете получить 8 баллов, итого 16×8=128 баллов за программу.