Современные курсы информатики, преподаваемые практически во всех высших учебных заведениях страны, обладают целым рядом особенностей, как правило не характерных для других учебных дисциплин. С одной стороны, учитывая относительную молодость информатики как учебной дисциплины, а также постоянное совершенствование информационных и телекоммуникационных технологий, содержание учебных курсов, относимых к информатике, не фиксировано. Большинство педагогов, работающих со студентами, используют для преподавания собственные авторские программы, содержание которых может достаточно сильно отличаться друг от друга. С другой стороны, все многообразие и разрозненность учебных программ по информатике компенсируются практически повсеместным выделением во всех учебных курсах содержательных блоков, связанных с технологиями разработки алгоритмов и принципами их кодирования на нескольких популярных языках программирования. В связи с этим научные исследования, нацеленные на совершенствование методических систем обучения алгоритмизации и программированию, до сих пор остаются актуальными.
В частности благодаря массовости обучения программированию в вузах большинство выпускников имеют определенные навыки программирования. Однако, несмотря на это, современный рынок труда испытывает острую нехватку специалистов, способных решать насущные информационные проблемы наиболее эффективными и экономичными методами.
Вместе с тем постоянное совершенствование информационных технологий привело не только к появлению большого колическтва языковых средств кодирования алгоритмов, но и к довольно четкому выделению четырех основных способов разработки самих алгоритмов. Такие способы в специализированной литературе получили название парадигм. Условно можно выделить процедурную, объектно-ориентированную, логическую и функциональную парадигмы. Подобное разделение всех методов конструирования алгоритмов на парадигмы вполне приемлемо, так как под него попадают все известные на сегодняшний день языки программирования.
К сожалению, невозможно говорить о явных преимуществах какой-либо одной парадигмы перед остальными. Каждая из них, наряду с большим количеством продолжительных особенностей, имеет и свои отрицательное аспекты. Как правило, выбор способа обработки информации определяется спецификой предметной области решаемой задачи. Так, например, для решения сложной вычислительной задачи целесообразно использование языков процедурной парадигмы. Однако в ряде случаев лаконичное, доступное и обозримое изложение решения задачи при помощи языков логической или функциональной парадигмы может быть хорошей альтернативой программам, написанным на процедурных языках.
Возвращаясь к проблеме вузовской подготовки специалистов в области информатики, хотелось бы отметить, что все образовательные учреждения обучают, как правило, лишь одному из подходов к реализации алгоритмов, а выпускники, соответственно, владеют одним-двумя языками программировании, относящимися лишь к одной из существующих парадигм. Это, в свою очередь, приводит к тому, что выбор методов и технологий решения конкретной практической задачи выпускником не зависит от типа решаемой задачи. Молодой специалист всегда использует лишь тот подход, которому его научили.
Проблема выбора языка и метода программирования на самом деле гораздо шире, чем проблема обучения нескольким языковым средствам. Среди программистов нередко существует мнение, что знание одного-двух языков программирования делает тривиальной задачу изучения нового языка. Здесь обязательна оговорка — если новый язык принадлежит к известной данному человеку парадигме. Опыт показывает, переход от изучения одного технологического подхода к языкам другой парадигмы всегда сопряжен с возникновением целого ряда сложностей.
При переходе к программированию методами, относящимися к другой парадигме, человек обязан изменять подход к решению поставленной задачи, что неизбежно приводит к перестройке мыслительного процесса. Можно утверждать, что овладение обучаемыми методами нескольких парадигм программирования должно сопровождаться несколькими способами мыслительной деятельности.
Естественно поставить вопрос о подготовке в системе высшего образования кадров, способных применять различные методы, стили и инструментальные средства при разработке программных продуктов. Изучение языковых средств, относящихся к различным парадигмам программирования, предоставило бы будущим выпускникам возможность выбора наиболее подходящего метода решения практических задач. В этом случае основными критериями определения технологии стали бы эффективность, экономичность, удобство в эксплуатации конечного программного продукта.
На наш взгляд, целесообразно создание и внедрение специализированной интегративной системы учебных курсов, предусматривающей обучение информатике в вузе на основе объединения всех существующих парадигм программирования.
Очевидно, что задача интеграции обучения различным парадигмам в рамках одной методической системы обучения информатике является не такой простой и не может быть решена одномоментно. Тем не менее, уже сейчас можно определить основные шаги, которые можно сделать в направлении построения желаемой интегративной системы.
Основной линией, которой должны придерживаться разработчики единой системы обучения программированию, должно стать нацеленность на объединение и унификацию различных компонент, входящих в методическую систему обучения информатике. Речь идет о целях, содержании, методах, формах и средствах обучения. В идеале интеграция различных подходов к программированию должна найти адекватное отражение в единообразии всех пяти компонент методических систем до этого разрозненных курсов обучения процедурной, объектно-ориентированной, логической и функциональной парадигмам программирования.
Учитывая содержательные и методические аспекты современной подготовки будущих специалистов в вузах, можно выделить следующие более узкие и конкретные направления совершенствования учебного процесса в области информатики:
- корректировка содержания обучения методам обработки информации на основе перехода от изучения отдельных языков программирования к изучению системы методов, интегрирующей в себе основные преимущества всех парадигм программирования;
- фундаментализация обучения программирования за счет выделения научных основ и общих принципов алгоритмизации, инвариантных относительно выбора парадигм и языковых средств;
- приближение подготовки будущих специалистов к современным реалиям научно-технического прогресса на основе обучения критериям отбора необходимого вида технологического процесса для разработки программных средств в зависимости от особенностей решаемой задачи.