Архиватор (проект) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
м (Что это за проект?)
Строка 9: Строка 9:
  
 
=== Что это за проект? ===
 
=== Что это за проект? ===
Результатом работы должна стать консольная утилита -- архиватор -- программа, сжимающая файлы на диске без потери информации с целью сохранения места. В качестве алгоритма сжатия предлагается взять последовательность из преобразования Барроуза-Уиллера, Move-To-Front и кодирование Хаффмана.
+
Результатом работы должна стать консольная утилита -- архиватор -- программа, сжимающая файлы на диске без потери информации с целью сохранения места. В качестве алгоритма сжатия предлагается взять последовательность из преобразования Барроуза-Уилера, Move-To-Front и кодирование Хаффмана.
  
 
=== Чему вы научитесь? ===
 
=== Чему вы научитесь? ===

Версия 15:29, 3 января 2015

Ментор Филипп Синицин
Учебный семестр Весна 2015
Учебный курс 1-й курс



Что это за проект?

Результатом работы должна стать консольная утилита -- архиватор -- программа, сжимающая файлы на диске без потери информации с целью сохранения места. В качестве алгоритма сжатия предлагается взять последовательность из преобразования Барроуза-Уилера, Move-To-Front и кодирование Хаффмана.

Чему вы научитесь?

  • Писать надежный и понятный код,
  • Основам теории кодирования,
  • Использованию консольных утилит *nix.

Какие начальные требования?

  • Программирование на C/C++ (в рамках прослушанного курса),
  • Умение работать с *nix.

Какие будут использоваться технологии?

  • git, github
  • gtest

Темы вводных занятий

  • Основы теории кодирования (определение информации, префиксное кодирование, коды Шеннона-Фано, коды Хаффмана),
  • Промышленная разработка (системы контроля версий, модульное тестирование, ревью кода, стайл-гайды, профилирование, IDE и текстовые редакторы).

Направления развития

  • Улучшение энтропийного кодирования, BWT, MTF, RLE,
  • Многопоточная обработка файла,
  • Работа с директориями, линками,
  • Анализ аналогичных утилит (bzip, 7z, tar, ...)

Критерии оценки

  • "удв” : реализованное и протестированное кодирование Хаффмана,
  • “хор” : преобразование Барроуза-Уиллера + кодирование Хаффмана, оформленное в виде утилиты, которой можно пользоваться,
  • “отл” : BWT + Move-to-Front + Хаффман, в виде утилиты с интерфейсом похожим на что-то распространённое + сравнение с другими аналогичными утилитами по скорости и удобству использования.