Учебное пособие содержит описание алгоритмов сжатия данных без потерь, включающее классификацию этих алгоритмов, их обсуждение на концептуальном уровне и на уровне программной реализации, сравнительный анализ результатов их практического применения, рекомендации по выполнению курсового проекта по данной теме. Также обсуждаются смежные вопросы: особенности работы с двоичными данными, формирования заголовочной части сжатого файла, применение вспомогательных алгоритмов, повышающих эффективность сжатия, и объектно-ориентированного подхода к реализации алгоритмов сжатия. Пособие предназначено для бакалавров направления «Программная инженерия».