home Преподавание Информационных Технологий в России
Открытая всероссийская конференция

Конференция

Информационное сообщение

Место проведения

Программа конференции

Участники

Комитеты

Программный комитет

Организационный комитет

Спонсоры

IBM


Intel

Microsoft

Лаборатория Касперского
1C

SAP
Инф. спонсоры

Открытые Системы



PC Week


Орг. поддержка

АПКИТ


ЛАНИТ-ТЕРКОМ


Форт-Росс


Как повысить качество подготовки программистов и смягчить «шок первого рабочего дня»

или о «неформальном образовании»

Бабич Александр Викторович

Старший преподаватель Полтавского государственного педагогического университета им. В.Г. Короленко, преподаватель Полтавского политехнического колледжа Национального технического университета «ХПИ». Член ACM, CSTA, COS. Сертифицированный Delphi 5, С# и HTML -разработчик RetraTech. Обладатель благодарственного сертификата RetraTech, как автор сертификационного теста «Windows XP для пользователей среднего и продвинутого уровня». Сертифицированный Win98, WinXP и Internet -пользователь Specialist.Ru (BMSTU). Сертифицированный мастер по техническому обслуживанию ПК, Win95/98-мастер, MS Access 2000-специалист Brainbench. Сертифицированный Web-дизайнер ДЛ ХПИ. Обладатель ряда сертификатов IBM Rational Corp. и Gentleware по технологиям, касающимся UML. Участник проекта «Виртуоз“-2004 (Intel Corp.).

кафедра математического анализа и информатики,
физико-математический факультет,
Полтавский государственный педагогический университет,
ул. Остроградского, 2, Полтава, Украина UA – 36000,

Тел.: 3 8 (05322) 7-90-34, +3 8 066 2906604,
E-mail: alexander.babich@rambler.ru
URL: http://alexander-babich@narod.ru
ICQ: 310-573-112

Ключевые слова: ИТ-образование, подготовка программистов, ППК, Computer Science, Software Engineering

Аннотация:
Подготовка конкурентоспособных программистов вроде бы никогда не была проблемой для отечественной системы высшего образования. Легенды о «русских программистах» уже несколько десятилетий ходят по миру. Но в то же время ни для кого не секрет, что, даже обладая отличным знанием теории, большинство выпускников наших ВУЗов не умеют применять ее на практике, ничего не слышали о методологиях разработки ПО и не понимают суть процесса разработки. Что же делать? Как повысить качество подготовки программистов? Как дать выпускникам реально, практически значимые знания? Что для этого нужно? В этой работе автор пытается ответить на подобные вопросы, делая некоторые выводы из опыта организации комплексной подготовки младших специалистов-программистов на примере Полтавского политехнического колледжа.

Вступление. Реалии жизни

  1. Кое что о легендах

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

    Но вернемся к Украине. Несмотря на некоторые трудности (языковый барьер, отсутствие поддержки отрасли со стороны государства и т.п.), объем экспорта ИТ-услуг растет с каждым годом. Конечно, Украина не была и никогда не будет мировым лидером по объему экспорта ИТ-услуг. Страна очень невелика и соответственно квалифицированных ИТ-специалистов в ней меньше, чем в России, Индии, Китае. Наши ИТ-компании никогда не смогут (и не стремятся к этому) конкурировать, например, с Microsoft. Но мы тоже можем занять свою нишу.

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

    Казалось бы, на этой приятной ноте надо закончить доклад – все у нас отлично, программисты квалифицированные и способны решать сложные задачи, за которые другие просто не берутся. Но проблема в том, что из потока выпускников соответствующих специальностей ВУЗов от силы 20% будут работать программистами и меньше половины из этих 20% действительно добьются на этом поприще успеха! Как же улучшить ситуацию? Что для этого нужно? Для того, чтобы ответить на эти вопросы, нужно понять причины происходящего, чем мы сейчас и займемся.


  2. И немного о реалиях жизни

    Если проанализировать процесс подготовки программистов в наших учебных заведениях, то столь низкий «КПД» наших преподавательских усилий кажется вполне объяснимым и закономерным. Тому есть две причины. Первая – неактуальность учебных курсов, несоответствие их содержимого требованиям рынка. Конечно, это очень смелое заявление. В конце концов, «голый» С++ учат везде! Но ВУЗы, где изучение С++ продвигается далее реализации классических алгоритмов сортировки, где учат паттерны проектирования, повторно используемые решения, frameworks и API, можно пересчитать по пальцам. Часто выпускники многих ВУЗов имеют весьма смутное представление об ООП. Достаточно много ВУЗов (автору известно множество примеров) в качестве базового языка при обучении программированию используют вообще Pascal/Delphi. Результат – понятен…

    Вторая причина того, что лишь малая часть выпускников действительно становится программистами, - отсутствие практических навыков разработки ПО и навыков работы в команде. Часто на лабораторных работах по программированию студенты решают надуманные задачи, которые не имеют ничего общего с реальностью и в лучшем случае могут представлять лишь чисто теоретический интерес. Не так давно автор этих строк был членом жюри на олимпиаде по программированию одного из полтавских ВУЗов. Олимпиада проходила в два этапа. На первом этапе все участники должны были решить некоторые задания, пользуясь любым, на их выбор, языком программирования. Из 20 участников один выбрал VB.NET, остальные – Turbo Pascal для DOS. В свете того, что было сказано выше, эта ситуация очень показательна. И это все студенты «околокомпьютерных» специальностей! Второй этап олимпиады, в котором студенты могли участвовать по желанию (но участие приносило дополнительные баллы) – конкурс программных продуктов студентов. Из 14 программ автор не увидел ни одной, которую можно было бы использовать хоть для чего-то! Один продукт вообще поразил своей оригинальностью – смысл программы состоял в том, чтобы закрашивать точки плоскости определенным цветом, определяемым по сложной формуле, в которую входило расстояние от некоторой точки, псевдослучайное число и число, водимое пользователем. На вопрос автора «Это что-то моделирует или для чего это нужно?» студент ответил «Не знаю, это просто красиво. Мой преподаватель поставил мне за эту программу «пять» за семестр!». Без комментариев!

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

    Еще одна больная тема – практика. В идеале это 1-3 месяца, проведенные в дружественной организации, во время которых студенты решают реальные задачи под руководством опытного бадди. Но это лишь в идеале! Часто студенты проходят практику лишь на бумаге, так как их просто не допускают к «ответственным работам», или же будущие программисты в течение всего срока практики выполняют обязанности оператора или секретаря, набирая и распечатывая различные документы. О командной разработке речь практически всегда не идет – не допущенные к «производству» студенты просто быстренько пишут какой-то проект в последние дни практики. Иногда доходит даже до того, что практика проходит в лабораториях колледжа, где студенты решают выдуманные задачи, не имеющие ни малейшего отношения к реальному бизнесу. О каких бы то ни было методологиях разработки ПО речь вообще не идет! Что же делать? Один из возможных способов решения вышеизложенных проблем – «неформальное образование».

Что можно сделать

  1. Неформальное образование

    Говоря «неформальное образование», мы подразумеваем образовательный процесс, который происходит параллельно «официальному» обучению в ВУЗе. Как это реализовать? А очень просто – создав студенческую лабораторию или клуб [2],[3], в котором студенты прослушают дополнительные ИТ-курсы, смогут усовершенствовать свой английский, поработать над реальными проектами, попробовать себя в роли преподавателя и т.д.

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

    «Неформальное образование» сулит много преимуществ. Во-первых, содержание учебных курсов не ограничено типовыми программами, так что можно читать курсы, соответствующие международным стандартам, например, Computing Curricula [4] или вообще взять фирменные курсы вендоров. Можно гибко реагировать на потребности рынка, изучать именно те технологии, которые востребованы именно сейчас, не дожидаясь, когда соответствующие темы появятся в типовых учебных программах.

    Во-вторых, можно смело вводить сквозной проект в качестве лабораторного практикума, работать над заказными проектами и таким образом совмещать полезное с приятным. Думаю, никто не сможет привести пример ВУЗа, в котором студенты получали бы деньги за выполнение лабораторных работ! В рамках же «неформального образования» это возможно (правда, лучше для этой цели создать фирму на базе ВУЗа, но об этом позже). В-третьих, вряд ли администрация какого бы то ни было ВУЗа позволит студентам читать лекции. В студенческой же лаборатории это нормальное явление – студенты учат студентов. Это действительно здорово и позволяет каждому почувствовать себя в роли преподавателя.

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

    В этой работе хотелось бы рассказать о первом такого рода опыте автора, полученном в ходе организации студенческого клуба ИТ в Полтавском политехническом колледже НТУ «ХПИ». Этот клуб только начинает работать, но уже есть некоторые успехи, о которых хотелось бы рассказать. Хочется отметить, что клуб пока на самом деле неформален, он создан скорее на общественных началах. Руководство колледжа не выделило почти никаких средств на его создание, не купило новой аппаратуры, лишь предоставило в наше распоряжение одну из лабораторий с имеющимся в ней компьютерным оборудованием и купило пару свичей да 100 метров «витой пары» и оплатило скоростное (более менее) подключение к Интернет. Но и в таких условиях мы работаем и пока вполне успешно! Как? Читайте дальше.


  2. Борьба за право быть причисленным к элите

    Начать стоит с того, что по сути представляет собой такой клуб. С одной стороны это модель реальной ИТ-компании со всеми ее службами. Здесь есть СЕО, есть менеджеры проектов, есть ИТ-подразделение, которое выполняет запросы на обслуживание... Здесь есть все! Все как в настоящей компании. Включая определенную этику поведения, корпоративную культуру и традиции (которые достаточно сложно было придуматьJ).

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

    Эту проблему мы решили просто – с помощью «глобального» рейтинга. Как это ни странно звучит, идея пришла в голову автору после прочтения книг о Гарри Потере – там было описано нечто подобное. И вот мы ввели на первом курсе специальности 5.080405 «Программирование для ЭВТ и АС» (мы решили начать готовить специалистов именно с первого курса, хотя многие подобные лаборатории берут студентов только начиная со 2-3 курса) «глобальную» шкалу: получил человек «пять» по спецпредмету – плюс 10 баллов, не выполнил поручение вовремя – минус 30 баллов, уладил конфликт в команде – плюс 50 баллов, проявил инициативу, сделал что-то полезное – плюс 30 баллов и т.д. В конце каждого месяца мы подводим итоги, выбираем лучших, вручаем им сертификаты «Студент месяца», награждаем разными сувенирами и «почетными звездами», которые дают им право на отпуск в любой день по их желанию или право получить «прибавку» в 1 балл на контрольной по любому предмету или еще что-нибудь. В клуб берем только лучших. Это действительно элита!

    Кроме того, у нас разработан аналог семестровой аттестации, как принято в большинстве крупных фирм(правда там она ежегодная). То есть в конце семестра человек пишет отчет, в котором излагает свою точку зрения на свою работу. Такие же отчеты пишут его «коллеги», менеджер и подчиненные. Потом собираются менеджеры и ранжируют членов клуба, распределяя их по 12 категориям (в момент прихода в клуб у всех категория одна – первая). Те, кто не поднялся по этой лестнице за прошедший семестр, получают предупреждение и, если, в следующем семестре ситуация не изменится, покидают клуб. Остаются лишь те, кто постоянно «растет» и «маги вне категорий» (вспомним «Ночной дозор»J). Плюс постоянная, жесткая еженедельная отчетность.

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


  3. Практика «в полевых условиях»

    Чем же мы там занимаемся? Направление деятельности клуба несколько. Первое направление - разработка современных и актуальных учебно-методических материалов. Это конспекты и презентации лекций, электронные учебники, тесты, учебное ПО, симуляторы, поддержка сайтов методического обеспечения дисциплин, разработка и поддержка электронной библиотеки колледжа, портала ДО. Так сейчас мы делаем УМК по «Операционным системам» и «Технологиям разработки ПО», где освещаем некоторые практические аспекты применения средства моделирования TAU G2, любезно предоставленного нам фирмой Telelogic [5].

    Плюс возможность попробовать себя в роли преподавателя! Студенческие семинары – норма жизни. Каждую неделю один из членов клуба читает открытую (для всех желающих, не обязательно только для членов клуба) лекцию о какой-то технологии, программном продукте, методологии разработки, о чем угодно интересном для него и что, как он думает, может быть интересно для других. Например недавно у нас состоялись такие лекции по GPS, WiFi и WiMax, сенсорных сетях.

    Также мы организуем и осуществляем поддержку мероприятий – конференций, открытых лекций, мастер-классов, семинаров. Стоит вспомнить, например, уже традиционную ежегодную студенческую конференцию «Применение MSF в разработке АИС», которая, по сути, представляет собой публичную защиту курсового проекта по предмету «Проектирование АИС», где студенческие работы оцениваются группой независимых экспертов.

    Занимаемся мы и представительской деятельностью. Студенты пишут статьи на различные конференции, например «Информационные технологии в образовании, науке и технике» (г. Черкассы). Мы участвуем в различных конкурсах, например, SIEMENS Join Multimedia, викторинах. Ездим на различные выставки, конференции, форумы, круглые столы. Список мероприятий, в которых мы участвовали вместе со студентами, достаточно велик – это и Intel Developer Forum и IBM Developer Work Live! и Software Engineering Conference Russia и Microsoft Developer Day и P-modeling…

    И, конечно, углубленная подготовка. Это технологические курсы, основанные на материалах Microsoft, IBM, Intel, материалах, полученных из других источников. Это сертификации [6]. Это курсы по корпоративной культуре. Это и углубленное изучение английского языка. К сожалению, мы пока не можем проводить английский киноклуб, т.к. не имеем проектора, но, надеемся, со временем эта проблема будет решена.

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

    Отдыхаем мы тоже вместе. Весело отмечаем праздники, занимаемся спортом, ездим на экскурсии, посещаем выставки, музеи, кинотеатры.

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


  4. И все?

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

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

    Плюс есть еще несколько задумок, о которых пока говорить не будем – боимся сглазить. Но это такие же амбициозные планы. Надеемся, у нас получится!

Выводы

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

Ссылки

  1. Юрий Кублановский. Фокус и потенциал Украины. http://www.inno.ru/news/index.php?id=1044
  2. Гергель В.П. Учебно-исследовательские лаборатории, как инновационная форма сотрудничетва университетов и ИТ-компаний. http://www.itlab.unn.ru/Uploads/ITEducation.pdf
  3. V.Gergel, S.Belov, A.Zheglov, R.Mitin, O.Rybakova «Information technologies» laboratory. http://www.itlab.unn.ru/uploads/ITLab.ppt
  4. ACM/IEEE Computing Curriculum - Software Engineering. Final Report (May 21, 2004). http://sites.computer.org/ccse/volume/FinalReport-5-21-04.pdf
  5. Telelogic Corp. Homepage http://www.telelogic.com/
  6. А.В. Бабич Сертификация-шаг к успеху. О внедрении обязательной ИТ-сертификации в ВУЗах. http://www.it-education.ru/
  7. А.В. Бабич. Рынок ИТ-труда Днепропетровска. Взгляд со стороны.
 

В начало :: О конференции :: Программа :: Доклады :: Контакты

Техническая поддержка сайта:
Copyright © АП КИТ, 2005
hosted by TERCOM
webmasters: perez&helga