Тенденции IT образования

Тенденции IT образования

Нынешнее образование сильно страдает, об это не хочется спорить, или рассуждать, об этом нужно задумываться. Недавно видел на itblogs . ru статьи о том, что какие то директора писали письма президенту о том, что они недовольны нынешним положение и нужно бы что то сделать, хотя сами предложений никаких не предоставляли... В общем - странная позиция, если люди видят проблему, то наверняка есть и какие-то идеи по способу решения. В том случае более важную роль, скорее всего, играл пиар, но не хочу никого обижать. У нас в университете ЯрГУ мы тоже иногда задумываемся о проблемах IT образования, и меня просили написать, то, как я вижу, что должно быть. Вот этот документ я и решил тут опубликовать, может, кому и пригодится.

Прежде чем составлять схему IT образования на настоящий момент, необходимо ознакомиться с текущими тенденциями IT эволюции. В данное время основной процент проектов средних фирм-разработчиков является автоматизация среднего и малого бизнеса – это могут быть и долгосрочные проекты на несколько лет, и краткосрочные на несколько месяцев (учитывается, что в проектах принимают участия несколько человек) – с дальнейшими сопровождениями проектов (исправлениями ошибок, дополнения функциональности). К таким же проектам можно отнести государственные заказы, вроде информатизации государственных учреждений (автоматизации процессов). Более мелкие фирмы могут заниматься разработкой сайтов или реализации мелких проектов. Более крупные фирмы (или их филиалы) разрабатывают собственное ПО на продажу в специализированные круги (это не прикладное ПО, а в большинстве случаем некоторая автоматизация каких-либо процессов). Все это связано с тенденцией российской IT индустрии.

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

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

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

Попробуем сформулировать план обучения квалифицированного выпускника:

1 Курс
На момент поступления в ВУЗ студенты уже имеют некоторые знания в программировании (по крайней мере, программирование включено в школьную программу).
На первом курсе обучения студентам необходимо повторить немного вообще о принципах программирования, а основной упор в обучении делать на объектно-ориентированном программировании, причем рассказывать нужно не просто о каком-то определенном языке, вроде С++, C# или JAVA, а вообще абстрактно о ООП, с примерами на каком либо одном языке. В качестве литературы и основного пособия можно взять книгу Стива Макконнелла «Совершенный код», которая в большей мере дает представление об ООП.
На этом же курсе необходимо рассказать студентам об основных паттернах программирования, за основу можно взять информацию из книги «Э.Гамма, Р.Хелм, Р.Джонсон, Дж.Влиссидес – Приемы объектно-ориентированного проектирования. Паттерны проектирования». Паттерны программирования – это основные примеры зачем и для чего ООП и чем оно так отличается от процедурного, изучаемого в школе.

2-3 Курс
На втором курсе необходимо познакомить студентов с базами данных. Рассказать о стандарте ANSI баз данных, о языке SQL. На примере одной из базы данных рассказать немного об администрировании баз данных и о принципах работы с базами данных. Цель этого курса должна быть в объяснении построения баз данных, о задачах выполняемых основными SQL операторами. По окончании курса студенты должны уметь создавать реальные схемы баз данных, уметь писать функции, хранимые процедуры, триггеры, ну или хотя бы знать о том, как и зачем их применять. В этом же курсе нужно четко дать понять студентам о необходимости использования транзакций, и о разделении ресурсов в базах данных (о таком понятии как deadlock – одновременное использование данных двумя пользователями).
На втором курсе так же можно познакомить студентов с оконными приложениями. В течение этого курса они научаться создавать полноценные приложения. Во время лекций о создании оконных приложений нужно четко объяснить студентам многопоточность в приложениях, рассказать о том зачем она нужна, какие проблемы бывают, и как их избежать.
Лабораторные работы они должны писать в синтезе с базами данных, чтобы они уже четко представляли необходимость баз данных для хранения информации, и могли эту информацию предоставлять пользователю при помощи оконных интерфейсов – это одна из самых частых задач: хранение данных и предоставление интерфейсов работы с данными.

3-4 Курс
Третий курс можно полностью посвятить web – приложениям. Сначала необходимо рассказать студентам о HTML ввертке,  использовании JavaScript на страницах, а так же о CSS стилях, важнейшем компоненте создания web сайтов. Эти знания им дадут возможность создавать статические веб страницы, и дадут основные понятия о HTML верстке.
Следующий шаг изучения web – технологий – это лекции о возможности создания динамических страниц, взять за основу можно одну из современных технологий: ASP.NET 2.0, либо php. Во время лекций помимо чистого программирования необходимо объяснить студентам о жизненных циклах динамических страниц,  немного о web-серверах, http протоколе (GET и POST заголовках) и опять же обратить внимание на многопоточность, и совместном использовании ресурсов.
По окончании курса студенты должны уметь создавать web-приложения, основанные на динамических страницах, с возможность хранения, отображения и изменения информации в базах данных.

4-5 Курсы
После того как студенты научатся создавать типичные приложения можно построить курсы:
•    Разработка приложений. Объяснение жизненных циклов разработки. Инструменты разработки. UML диаграммы.
•    Тестирование и отладка приложений. Одно из важнейших направлений в разработке программных обеспечений.
•    Защищенный код и Криптография. Использование сертификатов. Практика использования сертификатов в приложениях.

Написание защищенного кода. За основу можно взять книгу: «Безопасность: Защищенный код. Ховард М., Лебланк Д.»

Возможные дополнительные дисциплины:
•    Создание асинхронных веб – приложений. Технология WEB 2.0.
•    Использование математических пакетов для вычислений (matlab, mathcad, mapple).
•    Использования программ статистической обработки данных.
•    Сетевое администрирование.

Рекомендуем посетить сайт подбор it персонала