Содержание вузовского ИТ-образования стало сегодня предметом активных дискуссий с участием представителей университетской науки и практиков из ИТ-компаний. Их точки зрения подчас очень сильно разнятся, поскольку первые ратуют за фундаментальность подготовки, а вторые сетуют на недостаток у выпускников сугубо практических знаний и умения быстро адаптироваться к работе в конкретной области. Истина же, как всегда, лежит где-то посередине. Выпускник современного вуза должен иметь возможность на финальных стадиях своего обучения пройти «доводку», чтобы быть готовым к карьере в той или иной области ИТ. В этом высшему образованию сегодня все активнее помогает бизнес, однако успех этой карьеры во многом определяется прочностью базы, которую способна заложить только фундаментальная подготовка студента.
Не вызывает возражений и тот факт, что компетентность в информационных технологиях сегодня необходима не только тем, кто избрал эту область своей профессией. ИТ-обучение становится неотъемлемой частью учебных планов для самых разных специальностей. Поводом для встречи с профессором механико-математического факультета МГУ им. М.В. Ломоносова Александром Михалевым стала разработка коллективом специалистов мехмата и химфака МГУ «Предложений по преподаванию информатики и математических основ информатики для непрофильных специальностей классических университетов». Однако в центре разговора оказалась проблема, отраженная и в названии этого проекта: какова роль математической составляющей в обучении студентов информационным технологиям?
Математика как основа информатики
По убеждению Михалева, глубина и содержательность преподавания информатики напрямую зависят от объема фундаментальных математических знаний, полученных студентом. Понимание значимости математических основ для фундаментального образования в России восходит еще к Петру I, который даже в военных условиях находил возможность собственноручно корректировать математические учебники и всегда считал получение математических знаний приоритетным по сравнению с изучением сугубо прикладных проблем. Традиции российской математической школы, по мнению Михалева, заложили основу для подготовки на мехмате и в других центрах математического образования элиты отечественного программирования. Сохранение подобного фундамента в совокупности с реализацией международных стандартов ИТ-образования — основное условие формирования системы качественного ИТ-обучения студентов.
Математика, самая абстрактная из наук, стоит особняком. Не зря классификация научных дисциплин включает естественно-научные, гуманитарные дисциплины и — математику. Но развитие математики всегда было тесно связано с задачами других наук: формированию геометрии способствовали проблемы земледелия, важные математические задачи возникли в механике и артиллерии, а квантовая механика и теории ядра определили очередной вектор развития математики. На современном этапе, по убеждению Михалева, одним из основных постановщиков задач для математики становится «информатика во всем ее неупорядоченном, развивающемся состоянии. В то же время, математика помогает информатике формировать ее теоретическое ядро. Неразрывную связь этих двух областей необходимо сохранять и в образовании. Если эти дисциплины разойдутся, серьезные потери понесут обе».
Примером проблемы из области ИТ, представляющей большой интерес с точки зрения математики, служат параллельные вычисления. Эффективность загрузки многопроцессорного комплекса, поиск математических алгоритмов, поддающихся распараллеливанию, разработка программного обеспечения для реализации параллельных вычислений — все это серьезные научные проблемы, к решению которых можно привлекать и студентов. Кластерные конфигурации недорогих серверов, пришедшие на смену малодоступным для отечественных вузов суперкомпьютерам, теперь становятся рабочим инструментом для исследований даже в масштабе факультетов и кафедр и обеспечивают активное развитие теоретического фундамента параллельных вычислений.
Имеется еще много других примеров взаимопроникновения математики и ИТ. С другой стороны, сейчас идет сложный процесс преобразования ИТ не просто в отдельную область человеческой деятельности, но и в самостоятельное научное направление. Как некогда в физике, в информатике происходит выделение теоретической и экспериментальной областей, и одной из приоритетных задач математики становится обеспечение эффективного развития теоретической информатики. Математические основы теоретической информатики прослеживаются уже в классическом трехтомнике Дональда Кнута «Искусство программирования» — книге, которая, по словам Михалева, «пронизана математикой». Конструктивная математика, задачи, предполагающие наличие алгоритмов для их решения, становятся основой современной теоретической информатики, изучение которой, по мнению Михалева и его коллег, должно быть обязательной составляющей любой вузовской программы по ИТ. По его словам, «это единственная возможность в ограниченные сроки заложить фундамент, который позволит будущему специалисту не только быть на современном уровне, но и опережать его». Именно поэтому авторы «Предложений по преподаванию информатики» на первое место в предлагаемых учебных программах ставят математические и теоретические основы информатики, которые включают в себя комбинаторику, теорию автоматов, актуальные для ИТ проблемы алгебры, матанализа, вычислительной математики, теории формальных языков и т.д.
Программирование для математиков и информатика для всех
Михалев цитирует одного из корифеев отечественной компьютерной школы — Льва Николаевича Королева, который считал, что для серьезной работы в компьютерной сфере стопроцентный объем математической подготовки мехмата не будет лишним. Действительно, выпускники механико-математического факультета МГУ, начиная с первого, «звездного» выпуска учеников Алексея Ляпунова в 50-е годы, составляют значительную часть элиты отечественной информатики. Сила мехматовской подготовки в области программирования и в ИТ в целом, безусловно, вытекает из высокого уровня теоретической составляющей. По словам Михалева, это самый экономный способ вырастить хорошего ИТ-специалиста — добавить к сильной математической базе грамотно построенный курс по программированию для младших курсов, а затем с помощью спецкурсов дать возможность старшекурсникам расширять свои познания в различных областях ИТ.
На мехмате курс программирования, который студенты изучают в течение первых двух лет обучения, всегда рассматривался как равноправный парт?нер многочисленных математических курсов. В начале 80-х традиционный курс, базировавшийся на изучении Фортрана, сменила новая программа, разработанная коллективом сотрудников кафедры вычислительной математики. В ней основам программирования учили на абстрактных конструкциях, не привязанных к конкретному языку, но в то же время дававших возможность освоить не только теорию, но и практику построения больших систем. Эта абстрактная база курса сохраняется и по сей день, дополненная новыми направлениями: современные языки программирования, среди которых наряду с С++ и Java достойное место продолжает занимать модернизированный Фортран, сетевые технологии, компьютерная графика, теория баз данных. При этом курс по программированию тесно связан с базовой высшей математикой, которую студенты мехмата постигают на первых этапах своего обучения. Примеры, используемые алгоритмы, практикумы курса требуют знаний по математическому анализу, алгебре и аналитической геометрии. В дальнейшем студенты имеют возможность дополнить приобретенные базовые знания, изучая на спецкурсах и семинарах проблемы компьютерной графики, теории и практики баз данных, компьютерной алгебры, компьютерной геометрии и т.д. В целом, по словам Михалева, уровень ИТ-подготовки на мехмате позволяет выпускать специалистов с квалификацией архитектора больших программных комплексов, способных участвовать в реализации и руководить проектами по созданию крупномасштабных программных систем.
Аналогичный уровень подготовки профильных специалистов, но со своей спецификой и соотношением теории и практики обеспечивают ВМК и физический факультеты МГУ. Однако сейчас необходимость преподавания ИТ стала очевидна для всех факультетов университета, поскольку информационные технологии присутствуют в научном процессе не только в химии и биологии, но и в истории и филологии. Разработчики «Предложений по преподаванию информатики и математических основ информатики для непрофильных специальностей классических университетов» положили в основу проекта идею об обязательном базовом математическом компоненте учебной программы. На фундаменте, который должен быть реализован в базовых курсах математических дисциплин, строится все здание преподавания курса информатики в течение первых двух лет обучения студентов.
«Предложения» охватывают максимально широкий спектр тем, предполагая, что каждый конкретный факультет сформирует на этой основе учебный план с учетом потребностей своего научного направления и необходимостью достижения определенного уровня ИТ-подготовки. Для этого все темы в документе соотнесены с одним из трех возможных уровней: начальным, базовым и углубленным. В «Предложениях» формулируются и общие задачи, которые должны быть последовательно решены в ходе изучения курса:
- воспитание «квалифицированного пользователя», способного с максимальной эффективностью применять компьютерные технологии в профессиональной деятельности;
- формирование фундаментальных принципов математического и программистского мышления, позволяющих на основе владения основными алгоритмами и одним из языков программирования решать практические задачи, возникающие в профессиональной деятельности;
- подготовка специалистов, владеющих основными современными информационными технологиями и способными применять их в своей профессиональной деятельности.
Одной из главных областей для преподавательского творчества будет практическая составляющая курса, которая является столь же необходимой в изучении информатики, как и теоретико-математические основы. Как поясняет Михалев, выбор задач, которые могут быть предложены студентам на практикумах, можно уподобить искусству — чтобы по-настоящему заинтересовать студента, нельзя не учитывать современные тенденции в ИТ-индустрии. В то же время необходимо соблюдать законы жанра «учебной задачи», которая не может быть сопоставима по масштабам с реальными проектами (в этом случае студенты будут просто не в состоянии ее решить), но должна иллюстрировать применение теоретического материала и в то же время отражать проблематику предметной области. Так, например, на химфаке много внимания уделяется задачам, связанным с управлением базами данных и базами знаний по химии, на гуманитарных факультетах актуальной проблемой является классификация различных аспектов культурного наследия страны, а также работа с графической информацией и т.д.
Авторский коллектив «Предложений» стремился объединить в них положения международного стандарта подготовки ИТ-специалистов и российские традиции фундаментального образования. По словам Михалева, поддержка в полном объеме образовательного стандарта Computing Curricula — принципиальная позиция МГУ, но, по мнению авторов проекта, только выделение серьезного теоретического компонента позволяет в концентрированной форме охватить все тематическое многообразие Computing Curricula.
Университетское образование и наука в России всегда были флагманами образовательного процесса и несли ответственность за его качество, поэтому подходы МГУ к ИТ-образованию как для профильных специальностей, так и для всех остальных факультетов, заслуживает самого пристального внимания. Базовые принципы этих подходов: строить обучение информатике на прочном математическом фундаменте, способствовать формированию теоретической информатики и укреплению взаимосвязей информатики и математики. Михалев убежден: только всестороннее развитие фундаментального компонента, а не желание следовать сиюминутным технологическим веяниям, позволит достигнуть опережающего эффекта в образовании — подготовить специалистов, способных к эффективному решению задач.
Суть "Предложений..."
«Предложения по преподаванию информатики и математических основ информатики для непрофильных специальностей классических университетов», разработанные совместными усилиями специалистов мехмата и химфака МГУ, носят рекомендательный характер и учитывают практику преподавания информатики на химическом факультете. В «Предложения» включены требования к совокупности знаний по информатике для непрофильных специальностей и вариант программы соответствующего курса. Совокупность знаний определяет области знаний, которые должны составлять основную часть учебных программ по информатике и математике на непрофильных факультетах университетов. В документе вводится иерархическая трехуровневая структура совокупности знаний: области знаний, разделы совокупности знаний, темы совокупности знаний. Материалы определенной темы могут быть рассчитаны на разные уровни подготовки специалистов. В «Предложениях» определены три уровня: начальный, базовый и углубленный.
«Предложения» выделяют несколько областей знаний по информатике и ее математическим основам.
Область знаний «Математические и теоретические основы информатики» охватывает все уровни подготовки и включает разделы:
- множества, отношения, функции;
- алгоритмы, сложность, структуры данных;
- вычислительная математика и численные методы;
- математическая логика и теория доказательств;
- графы и деревья;
- автоматы;
- элементы теории формальных языков и грамматик;
- элементы теории алгебраических структур;
- комбинаторика.
Область знаний «Компьютерная грамотность» включает разделы «Работа на ЭВМ. Офисные технологии», «Web и Internet», темы которых относятся преимущественно к начальному уровню подготовки, а также раздел «История информатики и социальные вопросы». В последнем разделе рассматриваются темы, связанные с историей возникновения и развития аппаратного и программного обеспечения, в том числе, отечественной вычислительной техники и компьютерных наук, а также проблемы сложности программного обеспечения и рисков его применения, вопросы интеллектуальной собственности и экономической эффективности использования ИТ.
Область знаний «Программирование и организация ЭВМ» включает разделы:
- основы программирования;
- архитектура и организация ЭВМ;
- операционные системы;
- низкоуровневое программирование;
- императивное программирование;
- функциональное программирование;
- объектно-ориентированное программирование;
- языки разметки.
Значительная часть тем этой области знаний, за исключением раздела «Основы программирования», рассчитаны на базовый и углубленный уровни подготовки.
Область знаний «Информационные технологии и компьютерные науки» включает разделы:
- языки программирования;
- информационные системы;
- сети и телекоммуникации;
- компьютерная графика и визуализация;
- интеллектуальные системы;
- программная инженерия;
- компьютерная алгебра и символьные вычисления;
- теоретическое программирование.
Подавляющее большинство тем этой области знаний рассчитаны на базовый и углубленный уровни подготовки.
Предметом особой гордости разработчиков «Предложений» является «путеводитель по литературе» — внушительный список из почти 700 пунктов, который включает в себя названия книг, публикаций, учебных пособий и ресурсов Сети по математическим основам информатики, программированию, информационным технологиям и истории отечественной информатики. Для каждого пункта этого списка указан раздел совокупности знаний, к которому он имеет отношение.