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

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

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

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

и

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *