Если вы выбрали тему, необходимо отредактировать файл, добавив в скобках после темы свои фамилии (не более двух), а также ссылку на репозитарий, в котором вы будете выполнять работу. Если тема уже была выбрана кем-то ранее — не страшно, можно сделать форк и доработать код. Проверять такие работы буду гораздо внимательнее, но если увижу, что вы действительно усовершенствовали чужой код (исправили, добавили новые фичи, убрали старые баги, провели рефакторинг и т.д.), и он от этого стал лучше, хорошая оценка вам гарантирована.
- Не стоит устраивать "войн правок", когда уже выбранная кем-то тема потом переходит к кому-то другому. Мы работаем в системе версионного контроля, т.е. все изменения будут видны в истории коммитов.
- Спам не допускается, нарушители будут забанены.
- Если вы придумали свою тему, допишите её в конец списка (фамилии исполнителей и ссылка на репозитарий также обязательны).
- Этот файл можно править либо напрямую, т.к. вы все являетесь членами этой группы и у вас есть права на запись в этот репозитарий, а также можно сделать форк у себя в аккаунте, а затем пул-реквест сюда. Последнее даже интереснее 😬.
- Реализация алгоритма Брезенхема ([Генько] (https://github.com/gen-maksim/Homework-2015-1652-)).
- Реализация алгоритма DDA-линии (Бурков, Воробьёва).
- Реализация кодов Хэмминга (Поволоцкий).
- Реализация кодов Рида—Соломона.
- Реализация алгоритма циклического избыточного кода.
- Реализация кодов Боуза—Чоудхури—Окенгема.
- Реализация кодов Хаффмана (Цветков, Жукова).
- Реализация алгоритма Шеннона—Фано (Красногорская, Гусманов).
- Реализация алгоритма Лемпеля—Зива—Велча.
- Реализация алгоритма быстрого умножения Карацубы (Лупова).
- Реализация алгоритма быстрого умножения больших целых чисел Шёнхаге—Штрассена.
- Реализация алгоритма быстрого умножения больших целых чисел Фюрера (Богданов).
- Реализация алгоритма быстрого умножения матриц Штрассена (Головатый).
- Реализация алгоритма быстрого деления больших целых чисел Бурникеля—Циглера.
- Реализация алгоритма Ривеста—Шамира—Адлемана.
- Реализация алгоритма Кнута—Морриса—Пратта ([Карнаухова, Михайлова] (https://github.com/Sanchuha/Knut-Morris-Pratt)).
- Реализация алгоритма Бойера—Мура.
- Реализация алгоритма поиска по «радужным таблицам».
- (128+ баллов за выбор модуля) Реализация парсера G-кодов, стандарт ISO 6983-1:2009 (Михалькова).
- (128+ баллов за хорошую реализацию) Индивидуальное задание по LaTeX'у и Питону (Михайлин, Ковалёв).
- P2P messenger (Котельников, Неменчинский).
- Space Odyssey ([Зименко] (https://github.com/stwinter2014)).
- Conversion_tests ([Плешков] (https://github.com/mz15/Conversion_tests/tree/new)).
- Сравнение эффективности различных алгоритмов поиска подстроки в строке ([Гашков] (https://github.com/nikitagashkov/SubstringSearchEfficiency)).
- Реализация приложения под Android (любое, лишь бы интересное).
- Реализация приложение под iOS (любое, лишь бы интересное).
- Реализация библиотеки определения языка текста .
- Реализация простейшей игры с применением библиотеки PyGame(Жесткова,Звонов).
- Реализация простейшей игры с применением библиотеки Cocos2d-x.
- Дополнение для Firefox для почти полного выполнения дз по информатике (Журавлев).
- Реализация алгоритма детектирования ошибок Дамма.
- Реализация алгоритма поиска контрольной суммы Adler-32.
- Реализация алгоритма поиска контрольной суммы Флетчера.
- Реализация алгоритма Боейра—Ватсона для случая триангуляции Делоне.
- Реализация алгоритма Гилберта—Джонсона—Кёрти.
- Игра. Платформер (Китов,Мерцалов)
- Коммутатор звуковых каналов [HexAxis] AudioSwitcher (Колесников)
- Cnake game (Мельничук)
- Calculator(Поволоцкий)
- 2 семестр. 2048(Китов)
- Блокнот (Головатый)
Программы, написанные не на Python оцениваются в индивидуальном порядке.
- Соблюдение требований PEP 8, PEP 257.
- Использование исключений.
- Использование функций.
- Создание собственных модулей и пакетов.
- Оригинальность идеи.
- Наличие коммитов и брэнчей.
- Наличие wiki-страницы с документаций и описанием программы или алгоритма (это не должна быть копипаста википедии).
- Наличие файла README.md с коротким описанием программы (что делает, как запустить и т.д.).
- Использование списковых, словарных, множественных включений.
- Использование элементов функционального программирования (lambda, map, zip и т.д.).
- Базовое использование классов (хотя бы простейших).
- Использование модулей из стандартной библиотеки (лучше не просто math, а что-нибудь поинтереснее).
- Работа со строковыми методами.
- Наличие понятного текстового интерфейса (можно и графический, но мы его в этом семестре не проходим).
- Программа должна вести лог-файл и адекватно реагировать на нештатные ситуации, как минимум нужно сделать так, чтобы по логу можно понять, что произошло непосредственно перед падением программы.
- Умение отвечать на вопросы по своей программе и объяснять как работает то или иной участок кода по моему выбору.
По каждому пункту вы можете получить 8 баллов, итого 16×8=128 баллов за программу.