Автор: Илья Щуров Voyager
Эта статья — самый настоящий долгострой: рассказать о применении свободного ПО и связанных с ним идей в образовании я порываюсь уже полтора года. Однако все мои попытки написать что-нибудь восторженно-захватывающее по этому поводу упирались в банальную нехватку материала: по большому счету, писать было почти не о чем. Ситуация кардинально изменилась буквально за два дня: в конце января в Переславле-Залесском прошла конференция «Свободное ПО в вышей школе», организованная ALT Linux совместно с рядом российских вузов. И материал сразу появился — за что хочется поблагодарить организаторов и всех участников[Cо сборником тезисов конференции можно ознакомиться на www.heap.altlinux.ru/pereslavl2006 ].
К моему большому удовольствию, несмотря на прагматичное название, в основном конференция была посвящена не софту как таковому, а гораздо более общим и интересным вопросам. Тон обсуждению задал первый же доклад под заголовком «Какая информатика нужна информатикам?». Николай Николаевич Непейвода, профессор Удмуртского государственного университета, рассказал о проблемах, неизбежно возникающих всякий раз, когда речь идет о подготовке высококвалифицированных ИТ-специалистов, а не «кодеров». Отсутствие системного подхода к построению учебного курса и ориентированность на конкретные «модные» технологии приводят к тому, что к моменту выпуска знания студентов успевают значительно устареть. Усугубляют ситуацию и сами студенты, зачастую научившиеся кое-как писать код еще в школе и считающие себя «крутыми спецами» с первого курса: изучать базовые понятия им не интересно, не говоря уже о таких «устаревших» языках, как Pascal или Lisp.
Решение видится (и реализуется на практике в УдГУ) в создании сбалансированного учебного плана, включающего в себя как весьма серьезную базовую подготовку в логике, математике[Отдельный большой вопрос, обсуждавшийся на конференции, но выходящий за рамки статьи, — какая именно математическая база нужна ИТ-специалисту? Пока ограничусь ссылкой, но надеюсь, что мы к этому вопросу еще вернемся: Непейвода Н.Н., "Какая математика нужна информатикам?", Открытые системы, 2005, #9,] и computer science, так и знакомство с современными технологиями разработки (индустриальное и экстремальное программирование), методами проектирования и управления программистскими коллективами, а также освоение конкретных продуктов — именно в таком порядке. Например, параллельно идущие в самом начале обучения курсы традиционного и нетрадиционного программирования (сентенционального, событийного, функционального) действуют на многих «продвинутых» студентов как холодный душ, показывая истинный масштаб их (не)знания.
Близким темам были посвящены и другие доклады. Андрей Столяров с ВМК МГУ рассказал о выборе инструмента для преподавания функционального программирования. Использование для этих целей современных языков (например, OCaml) и даже многих диалектов Lisp приводит к излишнему акцентированию внимания на особенностях конкретных реализаций, уводя студента от основ. В то же время само функциональное программирование и тем более простые диалекты Lisp отторгаются студентами как неприменимые в практической жизни. Бороться с этим можно по двум направлениям: с одной стороны, показывая возможности функционального подхода для решения соответствующих задач (например, символьные вычисления), а с другой— используя Lisp в связке другими технологиями, где он может получить реальное применение.
Рассказам об использовании конкретного открытого софта в образовании, конечно, тоже нашлось место: начиная с построения учебного процесса на базе Linux и заканчивая использованием свободного ПО в моделировании металлургических агрегатов. Часть докладов носила характер «историй успеха» (success story), — например, Евгений Алексеев из Донецка рассказал об опыте преподавания курса информатики с элементами численных методов для студентов общеинженерных специальностей с помощью пакета Scilab: начиная с азов программирования и заканчивая (в перспективе) сложными специальными расчетами. Другие участники рассказывали скорее о теоретических возможностях: так, Вадим Житников поведал о Maxima— свободной системе компьютерной алгебры (кстати, первой в своем роде), не уступающей по функциональности Maple и Mathematica— но, увы, пока уступающей по простоте освоения и удобству использования.
Говоря о преимуществах применения открытого софта в образовательных учреждениях, часто рассуждают в терминах противостояния: «свободное ПО против ворованного проприетарного». Однако такая формулировка не вполне корректна и не очень продуктивна. Свободный софт— это больше чем бесплатная альтернатива дорогим коммерческим продуктам. Это в первую очередь сообщество пользователей и разработчиков, это процесс, это идея, а не набор программ. И эффективное использование свободных разработок невозможно без участия в деятельности сообщества, без общения с другими участниками, без выкладывания в открытый доступ собственных достижений— даже если они не кажутся завершенными. Пока же этого почти не происходит, и отдельные преподаватели действуют скорее в одиночку: пишут методички, создают курсы, адаптируют софт и т.д. Вопрос «ну а где на ваши решения можно посмотреть?» звучал после многих докладов— и обычно оставался без ответа. А при таком подходе потенциал open source не работает.