Книга написана по материалам занятий программированием со школьниками математических классов школы №57 г. Москвы и студентами младших курсов (Московский государственный университет, Независимый московский университет, университет г. Uppsala, Швеция).
Книга написана в убеждении, что программирование имеет свой предмет, не сводящийся ни к конкретным языкам и системам, ни к методам построения быстрых алгоритмов.
Кто-то однажды сказал, что можно убедить в правильности
алгоритма, но не в
В принципе, возможность практического исполнения программ не является непременным условием изучения программирования. Однако она является сильнейшим стимулом - без такого стимула вряд ли у кого хватит интереса и терпения.
Выбранный жанр книги по необходимости ограничивает ее "программированием в малом", оставляя в стороне необходимую часть программистского образования - работу по модификации больших программ. Автор продолжает мечтать о наборе учебных программных систем эталонного качества, доступных для модификации школьниками.
Кажется, Хоар сказал, что эстетическая прелесть программы - это не архитектурное излишество, а то, что отличает в программировании успех от неудачи. Если, решая задачи из этой книги, читатель почувствует прелесть хорошо написанной программы, в которой "ни убавить, ни прибавить", и сомнения в правильности которой кажутся нелепыми, то автор будет считать свою цель достигнутой.
Характер лекций различен: в одних предлагается набор мало связанных друг с другом задач с решениями, в других по существу излагается один-единственный алгоритм. Темы лекций во многом пересекаются, и мы предпочли кое-какие повторения формальным ссылкам.
Уровень трудности задач и лекций весьма различен. Мы старались включить как простые задачи, которые могут быть полезны для начинающих, так и трудные задачи, которые могут посадить в лужу сильного школьника. (Хоть и редко, но это бывает полезно.)
В качестве языка для записи программ был выбран
Неудачный опыт писания "популярных" учебников по программированию учит: никакого сюсюканья - писать надо так, чтобы потом самим было не стыдно прочесть.
Практически все задачи и алгоритмы, разумеется, не являются
новыми. (В некоторых редких случаях приведены ссылки
на конкретную книгу или конкретного человека. См. также
список книг для дальнейшего чтения.) Вместе с тем мы
надеемся, что в некоторых случаях алгоритмы (и особенно
Это не только и не столько учебник для школьника, сколько справочник и задачник для преподавателя, готовящегося к занятию.
Об "авторских правах": право формулировать задачу и объяснять ее решение является неотчуждаемым естественным правом всякого, кто на это способен. В соответствии с этим текст является свободно распространяемым. Адреса автора:
shen@mccme.ru, shen@landau.
При подготовке текста использовалась (свободно распространяемая) версия LaTeXа, включающая стилевые файлы, составленные С.М. Львовским (см. ftp://ftp.mccme.ru/pub/tex/).
Я рад случаю поблагодарить всех, с кем имел честь сотрудничать, преподавая программирование, особенно тех, кто был "по другую сторону баррикады", а также всех приславших мне замечания и исправления (специальная благодарность Ю.В. Матиясевичу). Автор благодарит В. Шувалова за хлопоты по верстке, а также издательство МЦНМО и лично главного редактора Юрия Николаевича Торхова Ю.Н. за то, что издательство ограничилось дизайном обложки (немного странным) и не вмешивалось в процесс подготовки оригинал-макета (включая текст на обложке). Благодарю также Институт проблем передачи информации РАН, Американское математическое общество (фонд помощи бывшему СССР), фонд Сороса, университет г. Бордо, фонд " Культурная инициатива", фонды STINT (Швеция), CNRS (Франция), Ecole Normale (Лион, Франция), LIF (Марсель, Франция), университет г. Уппсала (Швеция), Российский фонд фундаментальных исследований (гранты 02-01-22001 НЦНИа, 03-01-00475 и другие), а также Совет поддержки научных школ при Президенте РФ (грант НШ-358.2003.1) за поддержку. Вместе с тем содержание книги отражает точку зрения автора, за ошибки которого указанные организации и лица ответственности не несут (и наоборот).
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.