Научная статья на тему 'Актуальные проблемы преподавания технологий программирования в России'

Актуальные проблемы преподавания технологий программирования в России Текст научной статьи по специальности «Науки об образовании»

CC BY
154
22
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ (ИТ) / JAVA / .NET / КОМПИЛЯТОРЫ / МЕТОДЫ ПРЕПОДАВАНИЯ ИТ

Аннотация научной статьи по наукам об образовании, автор научной работы — Сафонов Владимир Олегович

В статье анализируются актуальные научные и практические проблемы преподавания современных технологий программирования (и ИТ в целом) в России. Статья продолжает и развивает тематику доклада автора на всероссийской конференции по преподаванию ИТ (г. Тверь, 2007 г.).

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Актуальные проблемы преподавания технологий программирования в России»

падготпина специалистов

программы nRij- mi!■ iTi

Сафонов Владимир Олегович

АКТУАЛЬНЫЕ ПРОБЛЕМЫ ПРЕПОДАВАНИЯ ТЕХНОЛОГИЙ ПРОГРАММИРОВАНИЯ

В РОССИИ

Аннотация

В статье анализируются актуальные научные и практические проблемы преподавания современных технологий программирования (и ИТ в целом) в России. Статья продолжает и развивает тематику доклада автора на всероссийской конференции по преподаванию ИТ (г. Тверь, 2007 г.).

Ключевые слова: информационные технологии (ИТ), Java, .NET, компиляторы, методы преподавания ИТ.

ВВЕДЕНИЕ

Мотивацией данной статьи послужили... пустые аудитории, в которых не оказалось ни одного студента перед началом моих недавних лекций по компиляторам (для 5 курса) и по инженерии надежных и безопасных программ (для 4 курса) на мат-мехе СПбГУ.

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

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

© В.О. Сафонов, 2008

этому препятствуют и как эти проблемы можно было бы решить.

1. ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКИЕ ПРОБЛЕМЫ (или, не без юмора: Куда ушли студенты? Куда идут они?)

Ответ на вопрос, поставленный в заголовке, двоякий:

1. Студенты - на работе. Где-нибудь в американском университете, наверное, подобный ответ на такой вопрос вызвал бы шок, да и такая ситуация вряд ли возникла бы - довольно странно пропускать лекции, если платишь за обучение 10-20 тысяч долларов в год. Но у нас в России уже никого и ничем не удивишь. Как хорошо известно, в настоящее время, к сожалению, большинство российских студентов уже с первого курса, а тем более на старших курсах - четвертом и пятом -вынуждены работать параллельно с учебой, чтобы прокормить себя и свою семью. Как правило, они работают программистами, что безусловно положительно, с

точки зрения приобретения профессионального опыта в области ИТ. Однако этого недостаточно: необходимо фундаментальное ИТ-образование, которым мы с вами и занимаемся. Последствия работы студентов во время учебных занятий очевидны - вынужденный пропуск занятий, резкое падение уровня знаний и т.д. Это непростая общая проблема, и способов ее решения я лишь коснусь. На мой взгляд, адекватное решение проблемы требует значительного увеличения, в десятки раз, финансирования высшего образования (конкретно - стипендий студентов и аспирантов и зарплат преподавателей), что должно быть решено на президентском и правительственном уровне безотлагательно, если мы хотим, чтобы МГУ был в мировом рейтинге, например, третьим (а не... сотым, как сейчас), а СПбГУ - вторым (а не... где-то между 301-м и 400-м местом -это просто позор). Университеты Cambridge и Yale мы, так уж и быть, из уважения к ним пропустим пока на первое место.

2. Студенты - на других занятиях. То есть, расписание занятий (объективно) настолько перегружено, что диспетчер вынужден ставить в параллель учебные «пары» разных преподавателей одной специальности. В этом, разумеется, нет ничьей вины: наоборот, очень хорошо, если есть сразу несколько преподавателей, готовых вести интересные «элективные» курсы и семинары. При этом выбор, на какие занятия идти, остается за студентом. Однако решения студентами принимаются достаточно оригинальные. Приведу фрагмент моего диалога со студентом 4 курса, который все-таки пришел на мою лекцию:

- А где остальные студенты Вашей группы?

- На занятиях по... (студент называет «пару» другого преподавателя).

- А сколько сейчас человек на тех занятиях?

- Ммм... Человек 10...

- А сколько у вас всего человек в группе?

- Точно не знаю... (?! - В.С.)

На самом деле студентов 4 курса в нескольких группах этого потока - не менее 60 человек, так что остается предположить, что большинство студентов, действительно, либо на работе, либо... дома - в общежитии или в своей городской квартире. Один из студентов 4 курса честно признался мне, что ему очень интересны мои лекции, но он, живя в общежитии в Петродворце, работает каждый день full time в коммерческой фирме в городе и ездит по 1,5-2 часа в один конец. Поэтому на посещение лекций у него просто... нет времени, и сдавать он будет по чужим конспектам и по моим электронным презентациям, которые я всегда предоставляю всем студентам и выкладываю на сайты фирм-спонсоров -Microsoft, Sun и др.

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

В конце семестра, не сомневаюсь, картина будет, как всегда, следующая: курс по Java сдадут мне человек 150, курс по инженерии надежных и безопасных программ - человек 120-130, курс по компиляторам - человек 80-100. Казалось бы, все внешне благополучно, но, разумеется, это не так: хотелось бы, чтобы студенты учились ИТ в течение всего семестра, регулярно посещая лекции и семинары, а не только «залпом» во время сессии.

Думаю, суть возникших в нашем высшем образовании в области ИТ проблем данный пример иллюстрирует достаточно точно.

2. КАК УЛУЧШИТЬ СИТУАЦИЮ

Не буду здесь обсуждать, как повысить зарплаты преподавателям и стипендии студентам. Пусть этим важнейшим вопросом безотлагательно займутся Государственная Дума и Правительство Санкт-Петербурга. Рассмотрим такие способы решения проблем преподавания ИТ, которые зависят от нас.

2.1. УЧИМСЯ ЭЛЕМЕНТАРНОМУ ПОРЯДКУ

Как и в любой другой области, в области преподавания ИТ все начинается с наведения элементарного порядка. В каждой аудитории, в которой проходят занятия, должен быть мультимедийный проектор, экран и компьютер, которые должны нормально работать и помогать учебному процессу. На компьютере должны быть доступны для запуска и использования в ходе занятий все распространенные (изучаемые) среды и инструменты. В аудитории должно быть приятно находиться, вести занятия или слушать лекции. В здании, где проходят занятия по ИТ, должен быть быстрый и надежный Интернет. В расписании не должно быть ошибок, из-за которых студенты бегают по факультету, не зная, где найти преподавателя. Должен с радостью отметить, что в последние годы ситуация в этом отношении у нас на мат-мехе значительно улучшилась. Организовано несколько замечательных учебных классов, которые нравятся даже избалованным визитерам-американцам, организована Wi-Fi зона, установлено такое количество компьютеров, что оно, по-моему, уже превышает количество ИТ-студентов на одном курсе. Надеюсь, что ситуация еще улучшится. Еще года три назад мне приходилось таскать за собой в аудиторию свой личный проектор, теперь он спокойно лежит в моей лаборатории, а в аудиторию я могу приходить только с «флэшкой». Это очень радостно. Хотелось бы пожелать нашим вузам, включая и наш-мат-мех, приобщиться к некоторым другим современным способам ведения занятий, например, к Distance Learning. Представьте себе, что студенты слушают лекцию в аудитории, смотря на большой экран, на котором сам Бьярн Страуст-руп, либо какой-либо из наших известных профессоров, в данный момент работающий в США, читает лекцию, причем возможна двусторонняя связь с лектором - студенты могут задавать вопро-

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

2.2. УЧИМСЯ АНГЛИЙСКОМУ ЯЗЫКУ

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

Хрестоматийной истиной является то, что хорошее знание английского языка и практическое владение им совершенно необходимы1 для успешной работы1 в области ИТ. Однако, к сожалению, этот принцип в России до сих пор мало кто соблюдает. Студенты ленятся и не повышают свой уровень английского языка. Уважаемые преподаватели подчас не только не хотят учить английский язык, но даже находят нечто предосудительное в том, что кто-то из наших преподавателей его хорошо знает, считая его за это чуть ли не «врагом нации», но при этом гордо повторяя время от времени: «Ну, я в английском не силен...» Чем же здесь гордиться?! Тем, что Вы не владете одним из своих основных инструментов? Где же Ваш профессионализм?

Вот забавный пример: попробуйте угадать, как один наш академик читает английский термин PHYSICAL PROPERTIES (физические свойства). Догадались? Это, к сожалению, реальная история, которую мне рассказывал... другой академик.

Американцы и европейцы, посещающие наши вузы, просто в шоке от плохого знания английского языка нашими спе-

циалистами. Один мой американский заказчик три года назад после посещения главного здания и администрации нашего университета ошеломленно повторял: «His English was... perfect», саркастически улыбаясь. Позволю себе не упоминать, кого именно он имел в виду, да это и неважно, поскольку такая картина наблюдается почти везде.

Между тем проблема вполне решаема. Каждый человек - студент, аспирант, преподаватель - вполне в состоянии в любом возрасте улучшить свой английский язык. Есть прекрасные языковые курсы и преподаватели, в том числе - у нас в СПбГУ. Есть видео- и аудиокурсы, из которых особенно рекомендую «Westminster English». Наконец, изучение любого языка требует постоянного тренинга, практики. Очень полезно всегда помнить о том, что не знать английский специалисту по ИТ так же стыдно, как не знать русский. Помимо этого, незнание английского является препятствием для приема на высокооплачиваемую работу в любую известную фирму, для написания статьи и тем более - для преподавания на английском языке.

Считаю, что вправе об этом судить, -в этом году в издательстве John Wiley & Sons вышла моя монография [1], которую я написал на английском языке - никакого предварительного русского варианта книги или хотя бы ее плана на русском языке не существовало, и сейчас я работаю над ее собственным (авторским) переводом на русский язык, который будет издан в одном из российских издательств.

2.3. УЧИМСЯ ПИСАТЬ, ГОВОРИТЬ И ОБЩАТЬСЯ С КОЛЛЕГАМИ

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

лист теряется, мямлит, «экает, мекает», хвастается, слишком долго говорит об общих и очевидных вещах и так и не переходит к сути дела. Это в итоге серьезно препятствует его профессиональной карьере. Все эти типичные ошибки, а также ошибки в переводах терминов ИТ на русский язык описаны в моих статьях [2-4] в этом журнале, к которым я и отсылаю уважаемых читателей.

2.4. ПРАКТИКА И СЕМИНАРЫ, А НЕ ТОЛЬКО ЛЕКЦИИ

Очень важным элементом обучения ИТ являются практические занятия (по-английски - hand-on labs) и семинары - обзорные студенческие доклады по интересным и актуальным направлениям ИТ. Без них обучение ИТ просто немыслимо. Одних лишь лекций, «общих слов» о какой-либо новой технологии совершенно недостаточно. Необходим также тренинг студентов с целью практического овладения ею. Необходимо умение самих студентов интересно и конкретно рассказать об этих технологиях. Что касается моего личного опыта, то по нескольким актуальным направлениям ИТ - Java, .NET, компиляторы, - я не только читаю лекции, иллюстрируемые большим числом наглядных примеров, но и веду семинары, на которых студенты под моим руководством имеют возможность рассказать о технологиях и инструментах, которыми они практически овладели (а не просто отделываться общими словами о них - я этого не допускаю), и тем самым научить и заинтересовать других. Кроме того, я также каждый год руковожу 10-15 дипломными работами, в которых практически применяются полученные студентами знания, а также приобщаю студентов к серьезным исследовательским и коммерческим проектам (см. 2.5, 2.7).

2.5. СОПРИЧАСТНОСТЬ СТУДЕНТОВ К РАЗВИТИЮ ИТ

Один из наиболее важных принципов, которые я применяю в учебном процессе и в исследовательских работах сту-

дентов - личная сопричастность студента к развитию новой технологии. Каждый студент должен почувствовать, что новая технология (например, Java) не является чем-то застывшим и недоступным, покоящимся на некоем недоступном простым смертным «ИТ-Олимпе» - напротив, она постоянно развивается и совершенствуется, более того, сам студент может внести свой вклад в ее развитие, лично разработав какую-либо полезную программу, опубликовав ее на сайте проекта и тем самым получить известность и приобрести полезные профессиональные навыки и контакты. Нынешнее время c этой точки зрения можно охарактеризовать как «Open Source Paradise» - просто рай для любителей участия в проектах с открытым исходным кодом (open source, shared source), которые широко известны и развиваются в самых разнообразных областях ИТ:

- Java-технология (среды NetBeans и Eclipse, к которам студенты могут разрабатывать полезные расширения - plug-ins);

- операционные системы (OpenSolaris фирмы Sun, Windows Shared Source фирмы Microsoft, Linux и др.);

- платформа .NET - проекты с открытым исходным кодом SSCLI (Rotor), Mono, DotGNU;

- компиляторы и инструментальные средства с открытым исходным кодом -GNU (GCC - компилятор с C / C++ и др.).

Все это просто бесценно для практического освоения ИТ.

2.6. ERATO

ERATO (Experience, Retrospective, Analysis, Theory, Oncoming perspectives) -название моего подхода к преподаванию ИТ [1]. Напомню, что Erato (Эрато) - имя музы романтической (любовной) поэзии в древнегреческой мифологии.

Для «славянофилов» сразу же приведу русский вариант аббревиатуры - ТРОПА (Теория, Ретроспектива, Опыт, Перспектива, Анализ).

Почему у меня сложился подобный подход к преподаванию? Для сравнения,

во многих современных изданиях - учебниках, монографиях и особенно в материалах по ИТ известных фирм о своих программных продуктах - имеется тенденция к изложению какой-либо концепции, конструкции, технологии в отрыве от ее исторического контекста, от всего развития ИТ, без попытки какого-либо ее анализа и сравнения. Это происходит либо по причине недостаточной компетентности автора в данном вопросе (в статье [2] я называю это «свалиться с Луны»), либо вследствие желания «евангелиста» какой-либо ИТ-компании превознести и разрекламировать технологию фирмы как совершенно новую, чуть ли не этой фирмой изобретенную. Последнее, как мы хорошо понимаем, в наше время вряд ли возможно - любая технология, например Java, .NET, ООП, UML и др. - является «айсбергом», покоящимся на многолетних исследованиях ведущих специалистов. Дошло уже до того, что в монографии по академической версии .NET - SSCLI или Rotor (специально не буду приводить ссылку на эту книгу из воспитательных целей) - компетентные американские специалисты позволяют себе высказывания вроде: «Тип данных - это понятие, которое трудно точно определить. Легче посмотреть на код и показать в нем - вот это определение типа». Как будто не было многолетних работ Ч. Хоара, Б. Лисков, Д. Парнаса, Д. Скотта и других классиков ИТ о теории типов данных!

Считаю особенно важным, чтобы наши студенты правильно понимали ход развития ИТ, рассматривая каждую изучаемую технологию в ее историческом развитии, умели сравнивать ее с другими технологиями, чувствовали бы достоинства и недостатки каждой из них, а также, разумеется, владели теорией, лежащей в основе данной концепции, и понимали ее перспективы. В этом - суть моей парадигмы ERATO. Интересующихся приглашаю прочесть мою книгу [1], а также презентации моих учебных курсов, список Web-ссы-лок на которые доступен на сайте моей лаборатории Java-технологии.

2.7. РАВНОПРАВНОЕ СОТРУДНИЧЕСТВО С ВЕДУЩИМИ ФИРМАМИ

Мой профессиональный опыт на данный момент - это более 31 года исследовательской, коммерческой (промышленной) и преподавательской работы в области ИТ, включая более 16 лет международных ИТ-проектов. Мои основные партнеры в течение многих лет - это Институт точной механики и вычислительной техники (ИТМ и ВТ) РАН, различные промышленные и военные институты СССР и РФ, а начиная с 1990-х гг., - ведущие мировые фирмы в области ИТ - Sun Microsystems, Microsoft, Panasonic и другие.

Разумеется, ко всем этим работам (по хоздоговорам и грантам, исследовательским и коммерческим проектам) я, в первую очередь, приобщаю своих студентов и аспирантов. Для них это подчас суровое испытание, но и неоценимый опыт. Большинство из них после окончания мат-меха остается работать в Петербурге в ИТ-компаниях, но (и я горжусь этим) десятки моих учеников работают во всем мире -в США, Европе, Азии - во многих ведущих фирмах мира - Sun, Microsoft, Intel, Samsung. Но не это является моей целью. Считаю, что в настоящее время хороший молодой программист, выпускник мат-меха, может найти себе достойное место с достойной зарплатой в какой-либо из ИТ-фирм Петербурга. Более того, многие фирмы еще испытывают нехватку таких специалистов и стараются привлечь наших выпускников.

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

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

ЗАКЛЮЧЕНИЕ

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

Разумеется, данная статья - лишь начало дискуссии на эту важную тему.

Ваши отзывы о статье присылайте, пожалуйста, по электронной почте: v_o_safonov @ mail. ru.

Литература

1. Safonov V.O. Using aspect-oriented programming for trustworthy software development // Wiley Interscience. John Wiley & Sons, June 2008. ISBN 978-0-470-13817-5.

2. Сафонов B.O. Молодым программистам: Как писать научные работы по ИТ // Компьютерные инструменты в образовании, 2007, № 5.

3. Сафонов B.O. Как подготовить презентацию и сделать доклад по программированию // Компьютерные инструменты в образовании, 2007, № 6.

4. Сафонов В.О. КПП: Коллекция правильных переводов // Компьютерные инструменты в образовании, 2007, № 4.

5. Сайт лаборатории 1ауа-технологии математико-механического факультета СПбГУ // иЯЬ: http://polyhimnie.math.spbu. ти/р! .

Abstract

The paper covers some present-day scientific and organizational issues of teaching informational technologies in Russia. The paper continues and enhances the author's talk at IT teaching conference in Tver, Russia, 2007.

Сафонов Владимир Олегович, доктор технических наук, профессор кафедры информатики СПбГУ, руководитель лаборатории ]аха-технологии, v_o_safonov@mail.ru

i Надоели баннеры? Вы всегда можете отключить рекламу.