Про мехмат и Computer Science

Кстати, ознакомился со стандартом подготовки по специальности 010100 «Математика». Думаю, этим можно закрыть вопрос о том, в каком объеме изучается программирование на мехмате МГУ.

В «общей характеристике» говорится, что (орфография и пунктуация оригинала сохранены):

Математик подготовлен к выполнению деятельности, в областях, использующих математические методы и компьютерные технологии

и

Исходя из своих квалификационных возможностей выпускник по специальности 010100 Математика может занимать должности: математик, инженер-программист (программист) и другие в соответствии с требованиями Квалификационного справочника …

Ясно, что для использования компьютерных технологий и работы программистом выпускник должен знать некоторый объем того, что называется Computer Science. Он написан на 11 странице и включает в себя (кстати, он довольно близок к тому, что я считаю «Computer Science для математика»):

Понятие информации, общая характеристика процессов сбора, передачи, обработки накопления информации; технические и программные средства реализации информационных процессов. Основные понятия: алгоритм для ЭВМ, базовые конструкции для записи алгоритмов, циклы «для», «пока», «если-то-иначе», выбор, условный и безусловный переход; простейшие типы данных: целый, вещественный, символьный, логический и их представление в ЭВМ; массивы данных; организация ввода и вывода; понятие о файловой системе; файлы последовательного доступа и произвольного доступа; форматный и бесформатный ввод/вывод; простейшие алгоритмы обработки данных: вычисление по формулам, последовательный и бинарный поиск, сортировка, итерационные алгоритмы поиска корней уравнений, индуктивная обработка последовательностей данных, рекуррентные вычисления.

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

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

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

Компиляция и интерпретация: основные этапы компиляции, лексический, семантический анализ выражения, формальная грамматика, компилятор формулы, дерево синтаксического разбора.

Понятие об операционной системе: процесс, состояние процесса, прерывание, планирование процессов, понятие о тупиках и способах их устранения.

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

Понятие об архитектуре ЭВМ: процессор и система его команд, структура памяти ЭВМ и способы адресации, выполнение команды в процессоре, взаимодействие процессора, памяти и периферийных устройств.

Локальные и глобальные сети ЭВМ; основы защиты информации и сведений, составляющих государственную тайну; методы защиты информации.

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

На все это отводится 600 часов занятий. Это много, в такой объем можно впихнуть весьма и весьма «неслабый» курс (для сравнения: матан изучается четыре семестра по восемь часов в неделю и занимает 810 часов, согласно тому же документу). В реальности примерно половина из этих пунктов либо изучается формально, либо не изучается вовсе (например, «системно-низкоуровневые» вещи типа операционных систем, архитектуры ЭВМ и т. п.).

А при Сталине за ЭТО сажали!

Не так давно наш «всенародно и единогласно», как говорит моя бабушка, избранный президент кривлялся в зомбоящике, крепко ругая очередных чиновников. Напыжившись для пущей важности, он произнес такую фразу: «При Сталине за это сажали, вам разрешаю уволить!» Выглядело все, как всегда, комично — какой из него Сталин, в конце концов?

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

Поясню. Некоторое время назад А. С. Гутник (снова, кажется, исчезнувший из ЖЖ) выложил текст обвинительного заключения по делу С. П. Королева, где утверждалось, что тот виновен в растрате средств при создании очередной ракеты, а кроме того — еще начиная работать над ней, знал, что смежники не смогут изготовить необходимые узлы. В те времена это называлось «вредительством» (так как заранее знал, но начал работу — значит, хотел протратить побольше государственных денег, логика простая). Александр Сергеевич, изображая святую простоту, задавал публике вопрос: разве это не преступление по тогдашнему УК?

Да, в 1938 году «неудавшаяся» НИОКР называлась несколько иначе. Сейчас, в более гуманные времена, любой «стартапщик» (в традиционном значении слова — сумасшедший изобретатель, получивший деньги на реализацию своих безумных фантазий) имеет ненулевые шансы потерять деньги инвесторов, но в Кремниевой долине никто не ищет таких неудачников с утюгом и паяльником. В более гуманные советские времена конструктор-неудачник, скорее всего, мог бы, как максимум, потерять в должности — но не отправился бы на севера.

Довольно забавно видеть, как разного рода «интеллигентные люди» обсуждают, у кого кто из далеких предков «сидел при Сталине». В менее интеллигентной среде «хорошим тоном» считается наоборот, кто в тюрьме не бывал — тот жизни не видал. К сожалению, тезис про «полстраны сидело» применим не только к временам существования ГУЛАГа — численность «спецконтингента» что в 30-е, что в 70-е, что в 90-е годы составляла порядка миллиона человек. Это много, но никто (кроме совсем ударенных мозгом) не говорит, что в нынешней России имеют место «ужасы кровавого путинско-медведевского режима».

А почему? Рецепт прост: определенная часть населения знает, что поговорка «от сумы и от тюрьмы не зарекайся» к ним неприменима (если только они не будут стараться попасть за решетку). Даже самые страшные для них «проколы» либо трудно приравнять к преступлениям, либо они таковыми не считаются. Больная тема для политизированных ЖЖ-юзеров — это вопрос взяток. Почему-то считается, что государственный служащий не должен брать деньги, допустим, за то, чтобы допустить какую-то компанию к участию в тендере на госзакупки. При этом «персональный бонус» для сотрудника частной фирмы кажется чем-то практически безобидным (правда, в современном УК имеется статья «Коммерческий подкуп» — но говорят, что она давно уже не применяется). Я даже встречал подобные предложения в рекламе «околокомпьютерного» барахла, типа «Купите для организации столько-то комплектов лицензионного Microsoft Office и получите в подарок ноутбук!» Интересно, если отвечающий за закупки в каком-то ФГУП приобретет нужное количество лицензий на Office, подпадет ли это под статью? Мне кажется, что да.

Кстати, в порядке оффтопа. Сегодня у [info]qlman видел ссылку на новость о том, что основатель и вице-президент Amazon.com подали заявку на патент о методе защиты мобильных устройств от падения. Помните, сравнительно недавно было модно смеяться над «великим изобретателем» Ю. М. Лужковым с 40, кажется, патентами, касавшимися в основном пчеловодства? А кто всерьез считает, что владельцы Amazon.com — действительно авторы изложенной идеи? Подозреваю, что в бытовом тщеславии они недалеко ушли от среднего российского чиновника — тоже хочется туалет патентами обклеить. При этом почему-то мишенью для насмешек они не становятся.

Возвращаясь к тому, «за что сажали» при Сталине. Если вычеркнуть «чистую политику» типа анекдотов, то окажется, что «вредительство», «антисоветская деятельность» и тому подобные страшные сейчас формулировки скрывают не политические преследования, а, допустим, служебное несоответствие. Не справился с работой? Вредитель. Сорвал государственный заказ? Антисоветчик. Назвал начальника (партийного) козлом, не понимающим сути творческой работы? Снова антисоветская деятельность. При определенной фантазии можно приплести и участие в троцкистском заговоре, и работу на иностранные разведки.

Удивительно выглядят люди, которые одновременно требуют, скажем, массовых посадок чиновников (по принципу «утонул теплоход — посадить всех, кто выдавал разрешения») и пугают окружающих сталинизмом и «возвратом к 37 году». Как ни странно, но такая шизофрения происходит и на самом высоком государственном уровне.

Кстати, к вопросу о взятках. А как вы считаете, как надо наказывать берущего откаты менеджера в обычной коммерческой фирме?