Отчет о деятельности проекта "Шифровка"

(лето 1995г, Протвино)

Руководитель: Березин А.В.;
Ассистент:не было;
Временная помощь:Кочетков К.А.; Гавриченков И.А.; Филатова А.С.;
Постоянная помощь:Руководитель проекта "Плагиат" Келлин Н.С.
Участники проекта:
    "Московская группа"
  1. Солнцев Сергей - 9 кл.
  2. Губанков Григорий - 8 кл.
  3. Надеждин Никита - 8 кл.
  4. Свирщевский Алексей - 8 кл.
  5. Пучков Михаил - 8 кл.
  6. Филатов Станислав - 8 кл.
  7. Надеждин Дмитрий - 7 кл.
    "Иногородняя группа"
  8. Кубышкин Максим - 10 кл.
  9. Коржевский Дмитрий - 10 кл.
  10. Малов Дмитрий - 10 кл.
  11. Казак Филипп - 9 кл.
    "Младшая группа"
  12. Жиров Михаил - 6 кл.
  13. Григоревский Иван - 6 кл.
  14. Лайко Александр - 7 кл.
  15. Ломов Александр - 7 кл.

Основные цели проекта

а) Получение участниками проекта навыка реальной работы в коллективе.

б) Создание ряда программных модулей общего назначения (которые могут быть использованы и в других проектах): простейшее меню, программа анализа текста, программа замены символов в тексте.

Основные задачи

а) Разработка диалогового программного комплекса "Шифровальный блокнот", позволяющего:

б) Разработка диалогового программного комплекса "Помощь лингвистам", предусматривающего возможность:

в) В связи с приходом школьников - непрограммистов была поставлена задача разработки графического шрифта "Пляшущие человечки" (по А. Конан-Дойлю).

Так как летний проект являлся непосредственным продолжением одноименного зимнего проекта, проводимого тем же преподавателем в ВКШ при ИПМ им. М.В.Келдыша, г. Москва, часть поставленных задач была выполнена во время зимней работы. Вместе с тем, в силу объемности задач и разного уровня подготовленности участников, в полном объеме все цели проекта не могли быть реализованы и работу над их выполнением предполагается продолжить зимой 1995 - 1996 годов.

Ход реализации проекта

"Московская группа" - была поставлена задача разработки диалогового программного комплекса "Шифровальный блокнот". Лекций было очень мало, так как группа была хорошо подготовлена в теоретическом плане.

"Иногородняя группа" - была поставлена задача разработки программного комплекса "Помощь лингвистам".

"Младшая группа" - была поставлена задача разработки графического шрифта "Пляшущие человечки".

Для последних двух групп был прочитан (в довольно краткой форме, в виде совместных бесед) курс по основам шифрования (тот же, который был прочитан в Москве осенью 1994 года). Были рассмотрены вопросы:
- Что такое шифрование?
- Что такое взлом шифра?
- Что такое ключ к шифру?
- Простейшие методы шифрования (замена, перестановка, сциталь, ключевое слово, решетка).
- Простейшие методы скрытия информации (стеганография).
- Метод взлома шифра перестановки с использованием частотного анализа.
- и некоторые другие.

Для первых двух групп был прочитан (в той же форме) дополнительный курс, включавший вопросы:
- методы шифрования с открытым ключом и
- методы минимизации средней длины ключевого слова.

Для них же Кочетковым К.А. была прочитана лекция о некоторых методах кодирования, Гавриченковым И.А. - прочитана лекция и проведены практические занятия по машине Тьюринга. Кроме того местным учителем математики (к сожалению, не помню его фамилии) прочитаны лекции по основам теории групп и теории чисел.

Для "иногородней группы" также была прочитана лекция по формальной лингвистике, связанная с постановкой их задачи а также проведено несколько бесед с Келлиным Н.С. и Филатовой А.С. по тому же кругу вопросов.

В остальном работа преподавателя свелась к постановке конкретных (в основном программистских) задач каждому участнику и контролю их выполнения, а также необходимой помощи.

Необходимо отметить, что помимо разработки своей задачи, младшая группа, а временами и участники из других групп, решали задачи по взлому различных шифров (без компьютера).

Участники младшей группы также посещали лекции по Pascal'ю.

Во время работы были проведены несколько экспериментов:
- эксперимент со сциталем (в качестве его использовался карандаш);
- самостоятельное вырезание решетки (младшая группа);
- обширный лингвистический компьютерный эксперимент (ход его подробно изложен в отчете проекта "Плагиат");
- несколько компьютерных экспериментов по взлому шифров.

По окончании проекта все участники написали отчет о своей работе.

К недостаткам работы проекта можно отнести следующее:

а) Отсутствие настоящих ассистентов. Основная вина падает на руководителя проекта, не предусмотревшего в Москве возможности прихода такого большого количества участников и не подготовившего полноценного ассистента (интересно, из кого?).

б) В связи с этим основная работа проводилась в одной аудитории, где стояла вся вычислительная техника, чтобы не оставлять ее без присмотра.

в) Некоторый недостаток вычислительной техники (либо неумение организовать работу при ее нехватке). Всего использовались (совместно с проектом "Плагиат" 4 компьютера IBM - совместимых (586, 486 и два 286) с принтером и 1 головная Ямаха с принтером. (Один из компьютеров был в нашем распоряжении не весь срок.) Так как задания были в основном индивидуальными, этой техники на всех (19 человек с проектом "Плагиат") не хватало и мы иногда использовали простаивающие компьютеры в других аудиториях.

г) Неумение и даже нежелание части участников работать (даже просто распечатывать тексты) на Ямахе.

д) Сложность в приведении к общему уровню людей, целый год работавших в проекте и новичков.

е) Не удалось в полной мере выдержать уровень написанных программ так, как это было принято в проекте в Москве. (В частности, не во всех программах есть достаточное количество комментариев.) Этот недостаток будет устранен в Москве, когда будет устроен прием в золотой фонд (GOLD.FND) написанных в Протвино программ.

В ходе реализации проекта были созданы следующие программные средства:

"Московская группа" - первая версия диалогового программного комплекса "Шифровальный блокнот". Более подробно по участникам:

"Иногородняя группа" - создан набор программ, объединенных в программный комплекс "Помощь лингвистам":

"Младшая группа"


Обширные плоды деятельности проекта (не только выездной сессии лета-95, но и работы в ИПМ в течение года) хранятся в так называемой директории GOLD.FND.


Несколько слов о проекте "Шифровка"

(1999 г.)

Проект "Шифровка" предлагался для школьников, перешедших в 7-11 классы. В проект пришло более 40 человек, что во многом объясняется отсутствием других математических проектов для слушателей данной возрастной группой. Это стало основной причиной разделения проекта на три части, чего первоначально не планировалось. Разделение произошло по результатам входного теста по математике и информатике и во многом совпало с распределением по классам. В самую сильную группу вошли десяти- и одиннадцатиклассники и трое девятиклассников. Этой группой руководил Комаров Михаил, и, по-моему, мнению, студенты этой группы слишком много (практически всё) время проводили за компьютером, что не очень хорошо. В слабую группу вошли школьники, перешедшие в 7 класс, а также "слабые" восьми- (1 студент), девяти- (2) и десяти- (1) классники. Этой группой занимались Березин Андрей Всеволодович и Ворожцов Артем, привлеченный по этому случаю из другого проекта ("Кривые на плоскости"). В младшей группе основной акцент делался не на написание программ (которых было написано мало), а на "ручном" (без использования компьютера) шифровании и расшифровке. Это объясняется как уровнем знаний студентов, так и стилем работы преподавателей. Андрей Всеволодович Березин также осуществлял (пытался осуществить) общее руководство проектом. В средней группе, с которой я работал, принимали участие 7 девятиклассников, 1 десятиклассница, 1 восьми- и 1 семиклассник. Для школьников этой группы характерны средний уровень знаний, показанный на входном тесте.

Далее я буду рассказывать о своей подгруппе. Основной задачей, поставленной перед участниками проекта, являлось создание шифров, не поддающихся расшифровке. В процессе решения поставленной задачи предполагалось ознакомление с различными видами шифров, способам их взлома, с понятием информация, и рассмотрение проблемы осмысленности текста.

В самом начале все участники группы были разделены на подгруппы по 2-3 человека. Это несколько облегчило мою работу в проекте, и дало студентам навыке работы в команде, однако снизило интенсивность и, отчасти, полезность работы в проекте. Разделение произошло на основании пожеланий школьников, а не путем сочетания школьников, сильных в различных областях знаний. В ходе работы проекта одна школьница (Меркулова Елена) попросила перейти (и ушла) в другой проект, а Жиров Михаил перешел из сильной части проекта в среднюю, поскольку особенности работы студентов в "моей" части проекта, наверное, наиболее подходили ему.

В начале работы проекта среди студентов оного было проведено обсуждение о том, что такое шифр, зачем он нужен, какие существуют способы кодирования информации. Были рассмотрены преимущества и недостатки каждого из шифров. Потом каждая из подгрупп выбрала один из шифров и приступила к реализации его на ЭВМ. Подгруппы, написавшие свои первые программы, могли (по своему выбору) либо начать писать новый шифровщик, либо программу, декодирующую или взламывающую шифр.

Одна из подгрупп состояла из двух человек, не знавших Паскаль, поэтому за все время ЛУ ими под моим "чутким руководством" был разработан алгоритм и составлена программа простейшего способа шифрования. Зато они много работали без компьютера, о чем будем более подробно рассказано в следующем абзаце.

Одновременно с написание программ осуществлялась и работа по "ручному" шифрованию текстов. Однако вскоре это всем наскучило, и школьники перешли на расшифровку текстов. То есть, давался зашифрованный текст, и нужно было, не зная никакой дополнительной информации, расшифровать его. Если это не удавалось, то происходило обсуждение о того, каким способом (скорее всего) зашифрован данный текст и как можно подобрать ключ к шифру.

Ближе к концу проекта было рассказано об условиях, которым должен отвечать шифр, не поддающийся расшифровке, и приведены примеры таких шифров. Также было объяснены принципы и механизмы новых, сложно взламывающихся шифров, которые реально используются в настоящее время. В ходе этого были затронуты ряд тем математики, которые отсутствуют в школьной программе (теория остатков от деления и др.).

Среди проблем, возникших в моей части проекта (большинство из них характерно и для двух остальных частей) одной из основных является слишком большое число участников проекта. Поэтому, сложно было работать отдельно с каждой группой и приходилось общаться сразу с несколькими командами, каждая из которых имела свои проблемы. То есть подгрупп были частично "пущены в свободное плаванье" и им не уделялось мною "должное" количество внимания. Другой проблемой является недостаточная глубина проработки проекта. То есть мы при разработке проекта не предполагали, что работа в проекте пойдет так быстро. Еще одной проблемой стала разная скорость работы в подгруппах (командах). Как я уже упоминал, было сложно работать с каждой командой индивидуально, и в связи с различной скоростью их работы приходилось ориентироваться на некоторый средний уровень, поэтому наиболее сильные подгруппы имели менее интенсивный режим работы.

Следующая проблема у меня возникла с Ардаровым Евгением, которого я долгое время не мог ничем заинтересовать и который лишь к концу ЛУ начал что-то делать. Я его спросил, чем он хочет заняться в рамках нашего проекта, что ему интересно. Он ответил, что не знает и что ничего его не привлекает. Я поинтересовался, почему он выбрал проект "Шифровка" и может ему стоит поработать в другом проекте. Евгений сказал, что ему другие проекты еще меньше интересны. Я предлагал ему заняться различными видами работы в рамках проекта, но он ни к одной из не проявлял энтузиазма (в отличие от других школьников). Я не знаю, как с ним надо было поступать.

Последней из проблем, которую я хотел отметить является разобщенность трех групп проекта, которые частично дублировали друг друга и мало общались между собой. Можно считать, что у нас было три почти полноценных проекта, занимавшихся во многом одним и тем же. Андрей В. Березин пытался периодически выяснить, чем занимаются две другие группы, у нас периодически происходили обсуждения состояния дел в проектах, но это происходило не постоянно и в недостаточном объеме. Также я предполагал, что мне придется участвовать в работе проекта в качестве ассистента, а не (практически) со-руководителя проекта.

В качестве основной рекомендации на тот случай, если проект будет проводить проводиться еще раз, я хотел бы дать следующую - ограничить число школьников, участвующих в проекте, цифрой в 2-3 раза меньше, чем было у нас и сузить возрастные рамки до 2, в крайнем случае, 3 классов. Также стоит разрабатывать проект с таким расчетом, чтобы даже самые сильные школьники с большим трудом дошли бы до конца.

Солнцев Сергей

сентябрь-октябрь 1999 г.

Москва.