Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.cmc-online.ru/faculty/?id=IT-education
Дата изменения: Unknown
Дата индексирования: Fri Feb 28 20:30:23 2014
Кодировка: koi8-r
ВМиК - Online! : Факультет - IT-образование: факультет ВМиК МГУ
ВМиК-Online! - проект о ВМК МГУ Информационный сайт о ВМиК МГУ - ВМиК-Online! ВМиК-Online! 

Сообщество ВМиК-Online! В Контакте   Я люблю этот сайт!   Это моя домашняя страница!   Показать страницу для печати!    
 

IT-образование: факультет ВМиК МГУ

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

Давайте начнем с истории. Расскажите, как возник факультет ВМиК, и вообще, с чего начиналось IT-образование в МГУ.
В принципе, образование в этой области в МГУ началось одновременно с появлением вычислительной техники в Советском Союзе, то есть в 1950-е годы. Сотрудники, которые занимались тем, что сейчас называется «компьютерными науками», работали в основном на мехмате. Там была кафедра Андрея Николаевича Тихонова, который в 1970 году предложил руководству университета создать специализированный факультет вычислительной математики и кибернетики. Сегодня его, наверное, назвали бы факультетом компьютерных наук, но тогда терминология была другая. Именно с 1970 года началось обучение компьютерным наукам на уровне факультета. Хотя специалистов-компьютерщиков в МГУ готовили и до этого на механико-математическом и физическом факультетах; в МГУ также был вычислительный центр.

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

Чему стали учить студентов на новом факультете? Программированию?
Конечно, не программированию в чистом виде. Само по себе программирование - вообще понятие расплывчатое. Идея была в изучении численных методов, методов дискретной математики, теории вероятностей и т.д. То есть всего спектра фундаментальных наук, которые могут быть основой компьютерных наук. С самого начала у нас было два направления обучения, два потока. На первом потоке изучались различные области прикладной математики, например, численные методы, а на втором - программное обеспечение. Позже направлений стало три: вычислительная математика, затем комплекс наук, таких как дискретная математика, теория вероятностей, исследование операций. И есть третье направление - чисто компьютерное. Из этих трех направлений, трех блоков кафедр и состоит факультет сегодня.

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

Фактически названия кафедр - это как бы торговые марки коллективов; в каждом коллективе работает набор специалистов, как штатных, так и приглашенных. Эти специалисты занимаются достаточно разнообразными вещами.

Теперь о форме обучения. На сегодняшний день базовая форма обучения у нас двухступенчатая. Первые два года из пяти все студенты, не разделяясь по кафедрам, проходят одни и те же курсы дисциплин - общий базовый набор. Если говорить о компьютерных дисциплинах из этого набора, то изучаются предметы, связанные с базовыми понятиями программирования, с архитектурой вычислительных систем, с системным программированием. Сейчас появляются и некоторые новые курсы, связанные с освоением передовых технологий, например, объектно-ориентированного программирования.

Студенты, кроме посещения обязательных лекций, участвуют в семинарских занятиях, связанных с соответствующими курсами лекций. На семинарских занятиях изучаются более практические аспекты программирования. А вне аудиторий, в компьютерных классах, студенты осваивают практические навыки работы. На первом году обучения есть два больших курса. Первый - начала программирования, освоение первого алгоритмического языка. В качестве, собственно, языка используется Паскаль. Можно спорить, насколько Паскаль подходит для этой цели. Я думаю, что с методической точки зрения, в качестве учебного языка он вполне хорош: он прост для понимания, имеет элегантный синтаксис, простую семантику. Этот курс убивает сразу несколько зайцев: освоение самого языка высокого уровня и средств программирования на этом языке, освоение формальных средств описания синтаксиса и, наконец, студенты изучают основы алгоритмизации, базовые алгоритмы.

Второй курс - программирование на ассемблере. Это курс лекций, семинарских и практических занятий, на которых изучается ассемблер процессора Intel. Лично мне не очень нравится то, что ассемблеру посвящен целый семестр. Мне это кажется некоторым рудиментом, я бы сделал больший упор на рассмотрение современных архитектур ЭВМ.

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

Рассматриваются на каком-то примере?
Да. Конечно, изучаются какие-то обобщенные понятия и принципы, а в качестве примера выбрана операционная система UNIX. Такой выбор сделан, потому что с точки зрения операционных систем UNIX - одна из самых прозрачных, понятных и элегантных систем, и для обучения она наиболее удобна. Если взять системы от фирмы Microsoft, то от студентов надо требовать слишком сильной начальной подготовки, чтобы можно было использовать их в качестве иллюстрации, либо же этот курс должен быть очень большим.

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

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

Следующий курс связан с системным программированием и технологиями программирования. Здесь делается попытка рассмотреть методы организации систем программирования, и в качестве иллюстрации рассматривается подход к организации объектно-ориентированного программирования. Этот курс также сопровождается семинарскими и практическими занятиями.
Вот так проходят первые два года.

Это все - помимо базовых математических курсов?
Да, параллельно идет очень серьезная математическая подготовка, которая сравнима с мехматовской. У этих математических курсов есть и противники, и сторонники. Я считаю, что в любом случае они дают пользу даже тем, кто с математикой никогда в жизни не столкнется. Математика - это замечательная гимнастика для ума. Сильная математическая подготовка выгодно отличает наших выпускников. При этом надо отметить, что спектр трудоустройств выпускников ВМиК очень широк.

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

А какие критерии отбора на более «престижные» кафедры? Успеваемость?
Не совсем. Скорее, критерий такой: всем сестрам по серьгам. То есть в идеале на каждую кафедру положено распределять отличников и троечников в равной пропорции. Кстати, например, мы, когда отбираем студентов, смотрим на их успехи не только в компьютерных дисциплинах, но и в математических. В конце концов, программированию мы можем научить, а математические способности многое говорят о человеке.

Начиная с третьего курса, учеба происходит параллельно по двум линиям. Первая линия - обязательные курсы лекций и семинарских занятий, как математические, так и программистские. Набор таких обязательных дисциплин свой на каждом потоке. Из программистских курсов на нашем потоке есть курсы по базам данных, операционным системам, курсы по программированию высокопроизводительных машин, курсы, связанные с сетевой тематикой, с технологией программирования. Есть, конечно, и математические курсы.

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

Почему «как правило»?
Бывают случаи, когда студент меняет научного руководителя, это абсолютно нормальная ситуация. Выбрать научного руководителя, с которым тебе будет комфортно работать, который разделяет твои научные интересы - это не всегда легко.

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

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

Успеваете ли вы обучать студентов новым технологиям? Они ведь быстро развиваются.
Специфика нашего факультета такова: изучение новейших, передовых технологий происходит в рамках спецсеминара. А базовые курсы, я считаю, должны быть немножко консервативны. Университетский курс по computer science должен охватывать общие, фундаментальные проблемы. А конкретные технологии должны лишь служить иллюстрациями, ориентироваться на них не нужно. Базовые курсы, скорее, должны дать человеку возможность со знанием дела осваивать новые технологии самостоятельно. Да и не получится обучить сразу всему, а потом вы и сами сказали, что технологии развиваются очень быстро. Так что есть базовая, консервативная часть, а есть узкоспециальная часть.

Которая связана с самостоятельной работой?
Да. Что значит спецсеминар? Это - в некотором смысле клуб по интересам. В рамках спецсеминара руководители, аспиранты, студенты готовят доклады по некоторым темам и читают всем остальным. Темы докладов варьируются в пределах определенных направлений исследований.

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

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

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

В помещениях лаборатории работают студенты, аспиранты, сотрудники. Кто-то занимается диссертацией, кто-то курсовой работой, кто-то работает над проектами. Проекты самые разные - от исследовательских проектов до реально внедренных проектов. Например, знаете интернет-аукцион molotok.ru? Его делали наши сотрудники совместно с компанией Advanced Algorithm Inc. Недавно мы разрабатывали систему программирования специализированных вычислительных машин для прикладных областей высокой надежности. В этом всем так или иначе принимают участие студенты.

На коммерческой основе?
Как правило - да. Тематика курсовых работ студентов обычно отличается от тематики их работы над проектами, мы стараемся их не смешивать. Хотя иногда такие пересечения бывают.

Например, сейчас мы выполняем совместно с одной канадской фирмой проект для фирмы IBM, который требует создания специализированной системы моделирования поведения операционной системы в зависимости от работы планировщика системы, это нужно для мэйнфреймов фирмы IBM.

Это большой проект, который мы делаем уже давно. Из этой прикладной задачи выросла научная, и скоро один из аспирантов будет защищать диссертацию по этой теме.

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

В подобных проектах могут участвовать все студенты, или это привилегия самых способных?
Скажем так, все зависит от ситуации. Когда проектов много - стараемся привлекать всех по максимуму. Когда меньше - это не всегда получается. Есть, конечно, и другой момент: не всякий способен работать над проектом, по многим причинам. Во-первых, не все умеют работать в коллективе в той мере, в какой этого требуют реальные проекты. Во-вторых, проекты бывают разные и требуют от людей самых разных качеств, и бывает так, что толковый, умный человек в проекте работать не может.

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

Учатся ли на ВМиК иностранцы?
Да, учатся, и их достаточно много. Точное количества я не скажу, но я думаю, что в общей численности около 200-300 человек. Много китайцев, были индийцы, были японцы... Не говоря уже о гражданах стран СНГ.

То есть на международном образовательном рынке ВМиК котируется?
Да, можно сказать, что котируется. Наши выпускники котируются очень хорошо на рынке специалистов; долгие годы большая их часть немедленно уезжала работать за границу, хотя это, наверное, печальный факт. В Microsoft, например, работают целые группы наших выпускников.

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

Сотрудничает ли факультет с крупными фирмами, работающими в области информационных технологий, и если да, то на какой почве?
Да, сотрудничество есть, мы работаем, например, с Intel, Microsoft. Сотрудничество принимает самые разные формы, к сожалению не всегда удачные.

На заре этого сотрудничества была тенденция подбора сотрудников. Был, например, прецедент, когда одна компания, не буду ее называть, набрала сотрудников из числа наших выпускников. Полгода они поработали здесь, а потом их всех перевели работать в Соединенные Штаты. Я считаю, что это было не вполне корректно.

Сейчас больше распространена другая форма сотрудничества - фирмы присутствуют на факультете, и таким образом продвигают свои продукты. Кроме того, начинает проявляться и третья форма сотрудничества: появляются совместные проекты. Например, сейчас мы работаем над одним проектом для Microsoft, разрабатываем учебный курс по современным интернет-технологиям. Есть большие связи с фирмой Samsung.

Под проекты, которые мы выполняем, наши партнеры поставляют технику, свои продукты, технологии.

И последний вопрос: как вы оцениваете состояние компьютерного образования в России вообще и на ВМиК в частности?
Общую картину мне оценить сложно. Я знаю, что достойное образование можно получить у нас, высокий уровень традиционно держат в МИФИ, Физтехе, в Бауманском университете. Про другие вузы мне сложно сказать. Иногда, когда видишь их учебные программы, действительно хочется зажмуриться.

Впрочем, выводов я бы не стал делать. Но все равно погоду в IT-образовании, по большому счету, делает связка ведущих вузов, а у них уровень хороший.

Проблемы, конечно, есть. Надо, например, доводить до ума методические материалы, которых сейчас очень мало. Книг, хороших фундаментальных книг по компьютерным дисциплинам у нас очень мало. То, что выходит сейчас - это в основном переработанные инструкции по использованию тех или иных продуктов, а для университетского образования необходимы фундаментальные книги. Они есть на западе, а у нас их почему-то переводят и издают катастрофически мало. Я недавно привез из Америки несколько хороших, нужных, известных книг - Танненбаума, Хэннеси и пытался как-то простимулировать наши издательства заняться ими, но результат был нулевой. Хотя, с другой стороны недавно было переиздание Кнута...

Но в целом состояние образования у нас отнюдь не плачевное. Хотя всегда есть, что улучшить.

А что бы вы хотели улучшить?
Ну, например, хотелось бы привлекать более квалифицированных специалистов читать лекции. В американских университетах, например, принято приглашать человека на год, скажем, читать курс. Если курс хороший - пригласят снова. У нас такой возможности нет: курс десять лет читает один и тот же человек. Это и ему тяжело, и застой может наблюдаться.

Хотелось бы видеть преподавательский состав более динамичным. Хотелось бы иметь возможность более гибко и оперативно вести методическую работу. Не всегда просто выйти с предложением изменить такой-то курс в том или ином направлении - сказывается определенная консервативность. Хотя новые курсы все же появляются, так что прогресс есть.

Журнал «Программист»








 
    Rambler's Top100

   

Ресурс МГУ