close

Вход

Забыли?

вход по аккаунту

?

277 nurbekova j.k. teoretiko-metodologicheskie osnovi obucheniya programmirovaniyu

код для вставкиСкачать
Ж.К. НУРБЕКОВА
ТЕОРЕТИКОМЕТОДОЛОГИЧЕСКИЕ
ОСНОВЫ ОБУЧЕНИЯ
ПРОГРАММИРОВАНИЮ
МОНОГРАФИЯ
X  ( S i 1 y i  S i 1 xi )  C i 1
Y  ( S i 1 xi  S i 1 y i )  C i 1
Павлодар
Ж.К. НУРБЕКОВА
ТЕОРЕТИКОМЕТОДОЛОГИЧЕСКИЕ
ОСНОВЫ ОБУЧЕНИЯ
ПРОГРАММИРОВАНИЮ
Павлодар
УДК 004.45
ББК 32.973.26-018.1
Н 90
Рекомендовано ученым советом Павлодарского государственного
университета им. С. Торайгырова
Рецензенты:
доктор педагогических наук, профессор Е.Ы.Бидайбеков (заведующий
кафедрой информатики и прикладной математики Казахского
национального педагогического университета имени Абая)
доктор технических наук, профессор С.Г.Григорьев (заведующий
центром Информатики и информационных технологий в
образовании Российской Академии Наук)
Нурбекова Ж.К.
Н90
Теоретико-методологические
основы
обучения
программированию: Монография. - Павлодар, 2004. - 225 с.:ил.
ISBN - 9965-539-64-2
В данной работе рассматриваются методология обучения
программированию, построение методической системы обучения
программированию с применением методов информационного и
математического моделирования, а также теоретические основы
электронного обучения программированию.
Работа предназначена для преподавателей вузов, научных
работников, аспирантов, магистрантов и студентов.
ББК-32.973.26-018.1
3232.973-01я73
Н
1404000000
00 ( 05 )  04
ISBN 9965-539-64-2
© Павлодарский государственный
университет им. С.Торайгырова, 2004
© Нурбекова Ж.К., 2004
ВВЕДЕНИЕ
Каждое очередное пятилетие приносит нам
новый
взгляд
на
программирование.
Экстравагантный промежуточный этап в
решении задачи, математическая головоломка,
дело необычайной трудности, доступное лишь
посвященным,
своеобразное
инженерное
конструирование, особого рода логическое
рассуждение,
наконец,
основа
любой
целеустремленной
деятельности,
вторая
грамотность современного образованного
человека.
А. П. Ершов
Современный этап развития общества характеризуется
смещением общественных приоритетов в сторону информационной
индустрии и информационных ресурсов, который ставит перед
педагогической наукой проблему подготовки будущих специалистов
к жизни в информационном обществе, адаптации студентов к новым
условиям в обществе в процессе профессионального становления.
Проблема воспитания является главной задачей педагогической
науки. Опорой независимой Республики Казахстан должна стать
молодежь, воспитанная на непроходимых ценностях, как
профессионализм, нравственность и интеллект.
Специалист
с
высшим
образованием,
не
обладая
информационной культурой, не имея знаний, умений и навыков
работы в информационной среде, не будет осуществлять
полноценную профессиональную деятельность.
Научно-технический прогресс в мире приводит к ускоренным
темпам старения технических оснащений и научно-методических
ресурсов системы образования. В то же время современные
информационные технологии выступают в роли инструментальных
средств для решения проблем науки и образования. Информатизация
образования и общества в целом,
позволяет развить
интеллектуальные и творческие способности обучаемых и
реализовать комплексную информационно-методическую поддержку
учебного процесса.
Исследование проблем подготовки будущих специалистов в
условиях информатизации образования нашли отражение в работах
казахстанских
ученых
Е.Ы.Бидайбекова,
Т.О.Балыкбаева,
А.Е.Абылкасымовой, Ж.А.Караева, С.Кариева,
Е.Ы.Медеуова, Г.Д.Жангисиной и других.
А.А.Шарипбаева,
В настоящее время в соответствии с государственным образовательным
стандартом изучение алгоритмов и программирования, так или иначе, входит в
учебный план всех специальностей, то есть включается или как отдельный
раздел или как подраздел раздела «Инструментарий технологии
программирования». И одной из основных задач дисциплины «Информатика»
является обучение студентов алгоритмизации профессиональных задач,
основам программирования в информационных системах по областям. В этом
случае
дифференцированное
обучение
программированию
является
оптимальным, поскольку позволяет раскрыть как естественно-математическую,
так и гуманитарную сторону этой науки.
Таким образом, одной из составляющей основ информационной
культуры является владение основами программирования.
Известно мнение о том, что массовый пользователь
компьютерной техники непрограммирующий и в последнее время
при обучении информатике основной акцент делается на
пользовательский аспект.
Современное
преподавание
информатики,
новых
информационных технологий студентам, специализирующимся по
другим направлениям, сводится лишь к изучению пользовательских
аспектов курса, т.е. освоению простейших способов обработки
текстовой, табличной и др. информации.
Однако в этом случае роль и место программирования,
заключающегося в развитии мышления и воспитания, игнорируется.
Для овладения достаточного уровня знаний по информатике и для
будущей полноценной профессиональной деятельности, важно
умение использования возможностей прикладных программных
продуктов таких, как создание дополнительных кодов (скриптов) для
управления объектами в данной программной среде, необходимы и
программистские навыки. Например, в Microsoft Word (Microsoft
Excel) выполнение какой-либо задачи можно автоматизировать с
помощью макроса (набора команд и инструкций, выполняемых как
одна команда), который создается либо использованием средства для
записи макросов, либо программированием в редакторе Visual Basic.
Создание скриптов необходимо для полного использования и других
технологий (Internet-технологии, Flash-технологии и другие).
Э.И.Кузнецов отмечает, что в специальную подготовку
студентов должно быть включено изучение основ программирования.
Это даст возможность использовать компьютер в качестве
инструмента для решения задач. Обучение программированию
наиболее подвержено дифференциации в зависимости от
специальности. Для студентов гуманитарных и некоторых
естественных специальностей оно не должно быть глубоким.… Для
студентов специализирующих по физике, математике и особенно,
информатике изучение программирования должно быть организовано
с достаточной степенью глубины, чтобы будущие учителя этих
специальностей могли использовать компьютер в качестве
инструмента для решения задач1.
В научно-образовательном проекте «Информатика-21» целью
ставится
предоставление
программистам
(прежде
всего
«непрофессионалам»:
физикам,
химикам,
экономистам,
лингвистам…) ультрасовременных - простых, эффективных и
мощных средств программирования2. Это также указывает на
необходимость обучения их программированию.
Будущий
специалист
должен
освоить
средства
информационных технологий в достаточном объеме, необходимом
для полного использования компьютера.
Обучение программированию позволяет прививать умение
упорядочения, структурирования данных и знаний, систематизации,
понимать сущность информационного моделирования, способов
представления данных, необходимые для использования современных
информационных технологии для анализа изучаемых процессов и
принятия решений.
В
процессе
обучения
программированию
студентам
прививается и способность предвидеть последствия собственных
действий, умения подчинять свои интересы к существующим нормам
поведения в обществе. В педагогической литературе информатика
определена и как наука о правилах целеустремленной деятельности
человека.
Применение компьютера для решения задач и обработки
потоков информации разной природы связано с освоением
информационного моделирования и программирования.
Н.Вирт отмечал, что программирование является, возможно,
самой важной дисциплиной постиндустриальной эры3.
Кузнецов Э.И. Общеобразовательные и профессионально – прикладные аспекты изучения
информатики и вычислительной техники в педагогическом институте //Дисс.докт.пед.наук.М.,1990.-251 с.
2
Информатика-21 // www.inr.ac.ru.
3
Вирт Н. Преподавание информатики: потерянная дорога. Приветствие на открытии
Международной конференции по преподаванию информатики ITiCSE /г. Аархус (Дания), 24 июня
2002 г. Перевод на русский язык: Ф.В. Ткачев.
1
Проблемы теории, методики обучения программированию
рассматривались многими учеными с конца 60-х годов ХХ века.
Педагогические исследования С.И.Шварцбурда, В.М.Монахова,
М.П.Лапчика,
С.С.Минаева,
А.П.Ершова,
И.Н.Антипова,
Л.С.Шварцбурда, Э.А.Кузнецова, М.В.Швецкого, С.Г.Григорьева,
В.В.Гриншкуна и других были посвящены вопросам обучения
программированию.
Изучение трудов ученых и состояния сегодняшнего
преподавания программирования в ряде университетов, выявило
несоответствие парадигмы программирования для обучения к
будущей профессиональной деятельности, то есть вузовская
дисциплина, и практика программирования не имеют связи.
Основной целью обучения программированию является
привитие студентам культуры программирования, которая позволит
им облегчить процесс разработки и сопровождения программ.
Курс информатики в высшей школе в целом предназначен для
обобщения и углубления общеобразовательных знаний, полученных в
предыдущей ступени образования. Поэтому содержание курса вопервых, должно отражать наиболее общие и фундаментальные
понятия информатики и
вычислительной техники, применения
методологии информатики, информационных технологий в различных
сферах человеческой деятельности, во-вторых, должно заложить
фундамент общеобразовательных знаний.
Использование компьютера в качестве инструмента для
решения задач предполагает не только использование прикладного
программного обеспечения, но и умение программировать хотя бы на
одном из языков программирования высокого уровня. Умение
программировать должен быть дифференцированным в зависимости
от профессиональной направленности. Это означает, что если для
большинства специальностей необходимо понимание основных
принципов программирования, умения создания простейших кодов во
встроенной
среде
программирования,
то
для
студентов
специальностей физики, математики, информатики, компьютерной
обработки информации и систем управления необходимы практика
программирования и знание теории алгоритмов, методов
информационного моделирования, достаточных для решения
прикладных задач.
Таким образом, обучение программированию в системе курсов
информатики в высшей школе приобретает необходимость для
специальностей всех направлений. Обучение программированию в
зависимости от специальности должно быть дифференцированным.
В условиях гуманизации и гуманитаризации общества,
дифференциация обучения становится одним из важнейших
направлений развития сферы образования. Это определяется и тем,
что дифференциация образования играет большую роль в развитии
индивидуализации
обучения,
способностей,
познавательной
активности учащихся и т.д.
Одной из задач в области образования является приведение методов
обучения в соответствие с требованиями жизни. В условиях современного
общества образование должно быть личностно-ориентированным. В этой связи
возникает необходимость реализации индивидуализации и дифференциации
обучения, усиления развивающей и воспитательной функции обучения.
Одним из требований к подготовке специалиста является
востребованность его знаний на рынке, способность применения
своих знаний, умений и навыков для решения конкретных проблем. В
этой связи важно обучение деятельности самостоятельного
приобретения новых знаний. В этом случае деятельность студента
является продуктивной.
Методом познания действительности при обучении является
модель реального объекта. В этом плане важным методом обучения
является метод проектов и метод программированного обучения.
Среди организационных моделей изучения профильных
приложений оптимальным представляется проектная модель
индивидуальной деятельности. При методе проектов студенты,
выполняя проектные работы, начинают активно создавать
познавательные информационные продукты; думать и принимать
решения в ситуациях, требующих выбора; работать с различными
информационными ресурсами; осваивать новые технологии; работать
в коллективе для достижения общей цели; самостоятельно принимать
решения на основе анализа данных; реально использовать знания,
умения и навыки; приобретая знания, обучать друг друга новым
приёмам.
Определение видов профильных приложений и уточнение
понятия информационной культуры обучаемого позволило выявить
сущность связи между ними в целостном педагогическом процессе.
Это взаимодействие раскрывается через структурные компоненты
информационной
культуры,
являющиеся
подсистемой
профессиональной и общей культуры человека, связанной с ними
едиными категориями культуры мышления, поведения, общения и
деятельности.
Под профильными приложениями информатики понимают те ее
приложения, которые способны формировать информационную
культуру студента «в объеме, необходимом для нравственной
рефлексии своего профессионального поведения в информационной
среде, сознательном и ответственном отношении к определению
целей и средств информационной деятельности, реализации
творческих потенций личности с использованием современных
информационных технологий»4. К ним относят структуру и общие
свойства научной информации, методологию научного познания;
информационное моделирование в сферах профессиональной
деятельности; универсальные и профессионально ориентированные
средства информационных технологий.
Многие ученые (П.Я.Гальперин, Н.Ф.Талызина, В.П.Беспалько
и др.) рассматривали программированное обучение как процесс
управления на уровне психической деятельности человека и считают,
что основу программированного обучения составляет управление
учебным процессом путем построения его в полном соответствии с
психолого-педагогическими
знаниями.
При
методе
программированного обучения осуществляется определение условий,
в которых наилучшим образом раскрываются и корригируются
познавательные возможности. Применение обогащающей модели
программированного обучения создает оптимальные условия для
безболезненной
адаптации
учащегося
в
образовательном
пространстве,
развития
мотивационно-познавательной
и
интеллектуальной сфер, реабилитации и коррекции имеющихся
нарушений.5
В этой связи возникает необходимость исследований по
применению современных достижений педагогической науки при
обучении программированию.
В обучении программированию основным является построение
информационных моделей. Изучение различных подходов к
пониманию информационной культуры студентов позволило в
качестве
оптимальной
методологии
построения
курса
программирования выбрать информационное моделирование, которое
должно придать данному курсу профильный характер, подготовить
студентов к дальнейшему практическому использованию полученных
знаний.
Обучение программированию в условиях профильной
Журавлёва И.А. Методологические аспекты гуманитарных приложений информатики //
Актуальные философские и методологические проблемы современного научного познания:
Материалы 44 научно методической конференции «Университетская наука - региону». Ставрополь: Изд-во СГУ,2000. с.19-21.
5
Дутко Н.П. «Обогащающая модель» программированного обучения и ее роль в развитии
мотивационно-познавательной сферы младших подростков// Методические рекомендации, - УланУдэ: БГУ, 1999. - .35 с.
4
дифференциации способствует овладению студентами многими
важными умениями информационной деятельности профильной
направленности, что напрямую связано с решением задачи подготовки
будущих специалистов. При этом формируются представления о
моделировании как методе познания, об объектно-ориентированном
информационном моделировании, об исследовании на компьютере
информационных моделей из различных предметных областей.
Рассматривая обучение как форму информационного
моделирования объекта познания, мы тем самым создаем условия для
развития информационной культуры будущих специалистов.
Психолого-педагогические
и
дидактические
основы
дифференциации школьного образования исследованы во многих
работах ученых (С.И.Шварцбурда, В.М. Монахова, Г.В. Дорофеева,
В.В. Фирсова, и других). Различные подходы к дифференциации
содержания обучения информатике предложены Н.В.Апатовой,
С.А. Бешенковым, Т.А.Бороненко, М.В.Швецким, А.Г.Гейн,
С.Г.Григорьевым, М.П.Лапчик, Т.И.Захаровой и другими).
В педагогической науке дифференциацию содержания
образования
разделяют
на
профильную
и
уровневую
дифференциаций. В обучении программированию дифференциация
обучения должно включать в себя дифференциацию обучения
программированию по тематическим разделам и сложности. Для
осуществления подобной дифференциации необходимо составить
инвариантную и вариативную части содержания обучения
программированию.
Современные прикладные программные продукты имеют
встроенные языки программирования: языки создания макросов,
языки сценариев и т.д., (например, VBA, ActionScript и т.д.). Поэтому,
профильная
дифференциация обучения программированию
предусматривает,
прежде
всего,
встроенные
средства
программирования
для
специальностей
не
информатикоматематического профиля.
Современное программирование – это искусство описать задачу
в доступной компьютеру форме и решить задачу с применением
компьютера. В этой связи вариативная часть обучения
программированию должна соответствовать уровню и условиям
всеобщей информатизации, а также направлениям развития средств
программирования.
В новом веке, в «эпоху создания всемирной информационной
магистрали»6, которое предусматривает создание новых рабочих мест,
6
Гейтс Б. Бизнес со скоростью мысли. Изд. 2-е, исправленное-М.,2001.-480 с.
необходимо
включение
в
вариативную
часть
обучения
программированию по необходимости программирование для
Интернета, Web-дизайн. Здесь наряду с обучением созданию
гипертекстов, использованию макроязыка, для успешной реализации
анимации для Интернет-среды обучать встроенным языкам сценариев
типа Action Script .
Новая государственная политика в области образования
предполагает решения проблемы фундаментальной подготовки
специалистов в области информатики. Программирование как одна из
предметных областей науки информатики имеет огромное значение
при подготовке будущих специалистов. Фундаментальная подготовка
специалистов в области программирования характеризуется
целостностью, которая предполагает, во-первых, выявление
сущностных оснований и связей в изучаемых объектах, во-вторых,
обучение, ориентированное на внутренние связи системы курсов
информатики и междисциплинарные связи.
Как известно, математика и программирование имеют общую
основу, состоят из общих дисциплин таких, как теория вычислений,
математическая логика, теория множеств, теория графов, теория
вероятностей, теория информации. Поэтому, для будущих физиков,
математиков, специалистов в области информатики вариативную
часть курса составляет математическая основа программирования.
В целях фундаментализации, обучение программированию
необходимо
осуществлять
на
основе
теоретического
программирования, «математической дисциплины, изучающей
математические абстракции программ, трактуемых как объекты,
выраженные на формальном языке, обладающие определенной
информационной и логической структурой и подлежащие
исполнению на автоматических устройствах»7.
Абстракция исполнения, по мнению Дейкстры, лежит в основе
всего понятия «алгоритма» настолько глубоко, что обычно ее считают
само собой разумеющейся и оставляют без внимания. Её назначение в
том, чтобы сопоставлять между собой различные вычисления. Иначе
говоря, она предоставляет нам способ осмысливания конкретного
вычисления как элемента большого класса различных вычислений;
мы можем отвлечься от взаимных отличий элементов такого класса и,
руководствуясь определением класса в целом, высказывать
утверждения, применимые к каждому его элементу, а, следовательно,
Математическая энциклопедия/ Гл.ред. И.М. Виноградов.- М.: Советская Энциклопедия.
Т.4.,1984.- С.645-650.
7
справедливые и для конкретного вычисления, которое мы хотим
рассматривать8.
Модели вычислений, как модель последовательных программ с
памятью, или операторных программ, и модель рекурсивных
программ заложены в основе теоретического программирования и
строятся над некоторой абстрактной системой D , F , P , образованной
предметной областью, конечным набором F  { f , f ,... f }
D
функциональных, P  { p , p ,... p } предикатных символов с заданным
для каждого символа числом его аргументов.
Обучение программированию предполагает привитие навыков
построения подобных абстракций программ. Определение класса
программ предполагает в свою очередь построение конструктивного
объекта – схемы программы, задание конкретной предметной области
и сопоставление набором конкретных функций и предикатов –
интерпретацию, а также семантики - способа сопоставления каждой
программе результатов ее выполнения. Таким образом, возникает
необходимость изучения теории схем программ (функциональная
эквивалентность, протокол выполнения программ, детерминанты
(множество формальных протоколов), теоретические положения
А.А.Ляпунова, Ю.И.Янова и др.), логическую теорию программ
(методы доказательства правильности программ, метод Флойда,
динамическая логика (логики Хоара) и др.), алгебраическую теорию
программ, теорию формальных языков программирования и т.д.
Как мы видим, обучение программированию – как область
педагогической науки требует тщательного и всестороннего
исследования. Для построения целостной методической системы
обучения программированию необходимы исследования всех
компонент методической системы: целей обучения, содержание
обучения, методов, форм и средств обучения как в условиях
дифференциации образования предусматривающий, прежде всего,
личностно-ориентированный подход, так и в условиях всемирной
информатизации, которое предполагает технический прогресс на пути
создания всемирной информационной магистрали.
1
1
8
2
n
Дейкстра Э. 0 Дисциплина программирования. - М.: Мир, 1976. -276 с.
2
m
ЧАСТЬ 1. МЕТОДОЛОГИЯ ОБУЧЕНИЯ
ПРОГРАММИРОВАНИЮ В СИСТЕМЕ КУРСОВ
ИНФОРМАТИКИ
1.1 История становления и развития теории, методики
обучения и воспитания по программированию
1.1.1 Развитие и
фундаментальной науки
становление
информатики,
как
История становления и развития теории, методики обучения и
воспитания по программированию неразрывно связано с развитием и
становлением информатики, как фундаментальной науки, поскольку
программирование является одной из фундаментальных областей
информатики.
Один из объективных факторов, который ведет к проблеме
нашего исследования, это неустранимая новизна школьной и
вузовской информатики.
Изучение развития и становления информатики, как науки
невозможно без определения терминологии. Однако, как отмечал
Р.В.Хэмминг «… не существует ясного, четкого определения научной
области», четкого определения информатики как науки не
существует. «Это связано с бурным процессом ее развития, в
результате которого, определения, кажущиеся аккуратными сегодня,
становится неудовлетворительными уже в ближайшем будущем»9.
Проблема исследования информатики, как науки, ее развитие и
становление исследовались многими учеными. Известны различные
определения информатики.
А.Я.Савельев, Н.М.Когдов, Б.А.Сазонов, Э.К.Скуратович,
А.Г.Дьячко дали понятие информатики, как науки о методах и
средствах обработки информации и решения задач в электронных
вычислительных машинах и отмечают, что круг вопросов,
относящихся к информатике очень широк. Понятие информатики
«объединяет различные стороны программирования и использования
ЭВМ, а также методов их конструирования и разработки
программного обеспечения» (Бауэр Ф.Л., Гооз Г.).
В настоящее время предмет и задачи информатики определяют
суть этой науки.
В учебном пособии С.В.Симоновича дано следующее
определение:
«информатика
это
техническая
наука,
9
Лекции лауреатов премии Тьюринга. – М.: Мир, 1993. –560с.
систематизирующая приемы создания, хранения, воспроизведения,
обработки и передачи данных средствами вычислительной техники, а
также принципы функционирования этих средств и методы
управления ими». Там же сказано, что информатика очень близка к
технологии, поэтому ее предмет нередко называют информационной
технологией. … Информатика определяется как практическая наука.
«Ее достижения должны проходить подтверждение практикой и
приниматься в тех случаях, когда они соответствуют критерию
повышения эффективности. Одной из основных задач информатики
выделено направление для практических приложений, такое как
программирование (приемы, методы и средства разработки
компьютерных программ), где под эффективностью понимают объем
программного кода, создаваемого программистами в единицу
времени.
В информатике все жестко ориентировано на эффективность.
Вопрос как сделать ту или иную операцию, для информатики является
важным, но не основным. Основным же является вопрос, как сделать
данную операцию эффективно» (Симонович С.В., с.36).
Более общее определение информатики принадлежит
А.П.Ершову: «Информатика- это отрасль науки, изучающая вопросы,
связанные с поиском, сбором, хранением, преобразованием и
использованием информации в самых различных сферах человеческой
деятельности».
С точки зрения А.П. Ершова «информатика – это находящаяся в
процессе становления наука, изучающая законы и методы накопления,
передачи и обработки человеческой деятельности, связанной с
применением ЭВМ».
В последующем А.П. Ершов дает более интересное
определение: «информатика – это наука о правилах целеустремленной
деятельности».
В словаре (Боковский А.В., с.132-133) термин информатики
определяется следующим образом: informatics, информатика – термин
используется в основном в европейских странах и в большей степени
относится к теоретической дисциплине. (см. также computer science –
информатика- общее название для группы дисциплин, занимающихся
различными
аспектами
применения
и
разработки
ЭВМ:
программирование, прикладная математика, языки программирования
и операционные системы, искусственный интеллект, архитектура
ЭВМ).
Известно представление информатики в виде трех частей,
которые обозначаются терминами
- hardware- технические средства,
- software – программные средства,
- brainware – алгоритмические средства.
И всем известно, что без второй и третьей частей первая часть
становится ненужной.
Из вышесказанного следует, что информатику необходимо
рассматривать как науку, имеющую как фундаментальное, так и
прикладное направления, изучающие всесторонние процессы
накопления, передачи и обработки информации и их использование в
различных сферах деятельности человека.
Предметом изучения информатики В.Белошапка считает
«новый системно-информационный язык, предназначенный для
описания моделей (и соответственно, сами эти модели как
конструкции языка), а методом (определяющим ее применения) формализации.… Под формализацией понимается выделение
формального компонента изучаемого объекта».
Р.Дименштейн и А.Яковлев считают, что самой перспективной
трактовкой информатики является наука о формализованном
общении.
Таким образом, истоки и предпосылки информатики, а также
история развития информатики определяют первостепенную задачу
информатики – формализацию основных понятий информатики, как
науки. В связи с этим рассмотрим категории и аксиомы теоретической
информатики.
Для формирования новой фундаментальной науки необходимо
во первых, определить предметную область, во-вторых, создать
систему основных понятий и аксиоматики, и в третьих, разработать
математический аппарат для решения прикладных задач.
Важной задачей формирования фундаментальной науки
является создание понятийного аппарата.
В.Белошапка выделяет следующие центральные термины
нового системно-информационного языка:
1)
система,
2)
модель
3)
язык
4)
информация
5)
структура
6)
операция
7)
инвариант.
В нашем понимании модель является информационной.
В.А.Острейковский всю систему категорий (понятий)
информатики представляет следующими тремя элементами:
- понятия, заимствованные информатикой из других наук
(информация, информационный шум, бит, байт, цель, управляющая и
управляемый объект (система), прямая и обратная связи и т.д.),
оригинальные понятия и аксиомы, отличающиеся
принципиальной новизной (информационный ресурс, социальная
энтропия, информационная среда и т.д.),
понятия более низких иерархий - субпонятия,
раскрывающие содержание каждого из основных понятий
информатики, как метанауки.
Первой, фундаментальной основной категорией информатики
является «Информационный ресурс», который имеет формальнологический и семантический аспекты. «Информационные ресурсы –
это совокупность информации и средств её обработки, которыми
располагает общество»10.
Формально-логический аспект получил развитие в семидесятые
годы и сформирован в результате обобщения практики
компьютеризации инженерий знаний. Однако недостаточность
обобщенных представлений в области автоматизированных
информационных систем (их функции, общей структуры и т.д.) для
развития области искусственного интеллекта породила необходимость
формирования семантического аспекта. Главным объектом изучения
здесь является соотношение знания и информации, переход одного во
второе, фазовый переход знания в социальную силу. Слияние
формально-логического и семантического аспектов формирует
фундаментальное понятие «Информационного ресурса».
Следующей по приоритету фундаментальной категорией
информатики является «Социальная энтропия», которая характеризует
управленческие процессы и уровни их осуществления. «Социальная
энтропия - это мера отклонения от некоторого состояния,
принимаемого
за
эталонное,
оптимальное
по
критерию
недоиспользования информационного ресурса. В теории информации
Шеннона энтропия – это мера неопределенности случайной величины
любой природы» (В.А. Острейковский , с.32-33)
Категория «Информационная среда» представляет собой объект
и управляющую систему. «Информационно-учебная среда – это
совокупность условий, способствующих возникновению и развитию
процессов
информационно-учебного
взаимодействия
между
обучаемыми, преподавателем и средствами новых информационных
10
Толковый словарь.// http://de.ifmo.ru
технологий, а также формированию познавательной активности
учащихся при условии наполнения компонентов среды (различные
виды учебного, демонстрационного оборудования, сопрягаемого с
компьютером, программные средства и системы, учебно-наглядные
пособия и т.д.) предметным содержанием определенного учебного
курса»11.
Категория
«Информационная
напряженность
поля»
представляет собой силу «побудительный мотив, с которым объект и
его среда действуют на управляющую подсистему, вызывая ее
действия по снятию возникшей энтропии, обеспечению достижения
объектом новой цели или перевода всей системы в новое целевое
состояние в течение определенного времени. Сила и степень
напряженности информационного поля зависят от двух факторов:
разницы энтропий целевого и исходного состояний системы
(энтропийного пространства) и времени достижения новой цели
(энтропийного времени)» (Острейковский В. А.).
Аналогично можно рассмотреть и другие категории
информатики.
Рассмотрим
аксиоматику
информатики,
то
есть
фундаментальные соотношения, которые являются решающим в
становлении науки информатики.
Известно, что аксиоматика вводится дедуктивным путем.
Управляющая система имеет иерархическую структуру. Самый
верхний элемент данной системы считается главным и называется
наблюдателем.
Острейковский
В.А.
приводит
следующие
аксиомы
информатики.
Аксиома 1. От наблюдателя к каждому элементу управляющей
системы идет исходный информационный поток в битах- I :
I  N H
(1)
где, N - количество исходящих от наблюдателя сигналов,
H - энтропия исходящих от наблюдателя сигналов.
Аксиома 2. Информационная напряженность каждого элемента
g
управляющей
системы
определяется
информационным
воздействием на него наблюдателя (исходным информационным
потоком) с учетом энтропии данного элемента Hj:
0
0
j
g
11
Толковый словарь.// http://de.ifmo.ru
j

I0
H
, j  1, m
j
(2)
В содержательном аспекте энтропия любого элемента
управляющей подсистемы H является показателем его способности к
творчеству, т.е. функционированию с учетом отрицательной обратной
связи с объектом. Если H = 1, это означает, что рассматриваемый
элемент управляющей подсистемы лишь воспринимает и
ретранслирует команды наблюдателя и не вырабатывает собственной
информаций, т.е. не осуществляет корректирующих воздействий на
объект управления с учетом конкретных условий. Если H =0управляющий элемент осуществляет корректирующих воздействий на
объект независимо от наблюдателя, полностью самостоятельно. При
0< H <1 управляющий элемент не только ретранслирует командную
информацию, идущую от наблюдателя, но и вносит собственный
творческий вклад в информационный потенциал управляющей
подсистемы. Например, если H =0,5, то элемент в два раза усиливает
направленный на него информационный поток.
Аксиома 3. Информационная напряженность всей управляющей
подсистемы равна сумме напряженности всех ее элементов, включая и
наблюдателя:
(3)
Q   g , j  1, m ,
где
g информационная напряженность конкретного
j -го
элемента;
m - число элементов управляющей подсистемы.
Равенство (3) не совсем точно: здесь должна быть не простая
сумма, а формула, подобная выражению типа цепной реакций в
ядерной физике.
Аксиома 4. Соотношение между полным информационным
потоком I
воздействующим на объект управления за период его
перехода
в
новое
целевое
состояние,
информационной
напряженностью Q и энергия объекта управления Е, затрачиваемой
объектом управления на переход в новое состояние:
j
j
j
j
j
j
j
полн
Е= Q- I ,
(4)
причем энергия имеет смысл и размерность информационной
энергии.
Полный информационный поток I
соответствует полезной
работе управляющей подсистемы за весь период перехода объекта в
новое целевое состояние. Отсюда можно качественно и количественно
полн
полн
определить интенсивность информационной работы всей подсистемы
и каждого ее элемента, отнеся ее к тому или иному отрезку времени.
Аксиома 5. Работа управляющей подсистемы А (осуществление
физической работы, затраты вещественно-энергетических ресурсов на
осуществление информационной работы) состоит из двух частей:
A=a+b,
где, а - внутренняя работа управляющей подсистемы,
затраченная на компенсацию ее исходной энтропии; b-работа,
направленная на объект, т.е. усилия управляющей подсистемы на ее
информационную отдачу.
Согласно второму началу термодинамики (b), т.е. энтропия
замкнутого пространства (системы), может только возрастать. Для
осуществления обратного процесса - стабилизации и понижения
энтропии, нужны компенсационные усилия. Эти компенсационные
усилия затрачивает управляющая подсистема - осуществляет работу
по удержанию всей системы на исходном энтропийном уровне (а),
чем выше исходная энтропия, тем большую внутреннюю работу
должна осуществлять управляющая подсистема.
Аксиома 6. Полезная работа управляющей подсистемы (b)
должна соответствовать полному информационному потоку I
за
рассматриваемый период времени.
Таким образом, основной задачей информатики является
разработка средств, методов построения, анализа и обобщения
информационных моделей предметной области.
Мы согласны с утверждением М.В.Швецкого, что информатика
(аспектно-объектная наука) – это фундаментальная естественная
наука, предметом которой является аксиоматическое изучение
алгоритмов и структур данных (информационных моделей), которые
являются формализованным описанием процессов накопления,
передачи и обработки информации (информационных процессов).
Систематическое изучение информационных моделей предполагает
рассмотрение их теории, проектирования, анализа, эффективной
реализации с помощью вычислительных систем, социальных,
естественно-научных и технических приложений (Швецкий М.В.,
с.33).
Применение компьютера для решения задач и обработки
потоков информации разной природы связано с освоением
информационного моделирования и программирования.
Профессор Е.Ы.Бидайбеков определяет фундаментализацию,
как ведущий принцип содержания образования, которая обеспечивает
полн
будущему специалисту возможность адаптации при постоянном
изменении технологии профессиональной деятельности. И заключает,
что «фундаментализация заключается в единстве фактологической,
мировоззренческой и методологической сторон изучения предмета,
достигаемые на широкой научной основе. Фундаментальность
общеобразовательной и профессиональной подготовки означает
овладение обобщенными видами
деятельности, умениями,
обеспечивающими
решение
множества
частных
задач
в
разнообразных областях деятельности» (Бидайбеков Е.Ы., с.17). Здесь
же отмечается, что «основные разделы фундаментальной подготовки
в области информатики включают в себя: алгоритмы, введение в
программирование (с учетом известных, в настоящее время парадигм
программирования), структуры данных, технология разработки
программного
обеспечения,
архитектура
ЭВМ,
принципы
компьютерной графики, принципы трансляции, операционные
системы, базы данных и информационный поиск, искусственный
интеллект, анализ и моделирование систем, дискретная математика,
теоретическое программирование.
Повышения уровня фундаментальности образования по
информатике
мы видим,
прежде
всего,
в дальнейшем
совершенствовании
изучения
основ
программирования
и
систематического изучения основ информационного моделирования»
(Бидайбеков Е.Ы., с.18).
Информатика делится на теоретическую и прикладную. Если
теоретическая информатика изучает вопросы терминологии и
определения информатики, математические основы информатики,
проблемы информационных ресурсов и информатизации общества, то
прикладная информатика рассматривает процессы сбора, передачи,
обработки и хранения информации, теоретические средства
реализации информационных процессов, алгоритмизации и
программирования. Информация здесь берется в качестве сведений,
которые должны снять в определенной степени неопределенность
получателя и пополнить новыми полезными сведениями
(Острейковский В. А., с.102).
Первое направление информатики – теоретическая информатика
соответствует
фундаментальному
научному
направлению
информатики. Прикладная информатика соответствует прикладному
научному направлению информатики, и основным объектом
изучения выступают информационные технологии.
В целях фундаментализации образования совершенствование
изучения основ программирования необходимо проводить в рамках
современной парадигмы образования, сформированное на начало века
на основе информационного моделирования, ибо основной смысл
обучения информатике и программированию состоит именно в
получении навыков оперирования информационными потоками в
обществе и умений строить информационные модели решаемых задач
из области профессиональной деятельности.
Фундаментализация образования в области программирования,
несомненно, должна осуществляться в плане выделения, определения
роли математических основ программирования.
Для совершенствования обучения основам программирования в
вузе необходимо определить роль и место программирования в общей
системе курсов информатики в высшей школе.
1.1.2 Программирование в общей системе курсов
информатики в высшей школе
Рассмотрим практическую реализацию методической
системы обучения программированию в общей системе курсов
информатики в высшей школе страны в аспекте формирования
информационной культуры студентов в вузах Республики Казахстан.
В настоящее время в соответствии с государственным
образовательным
стандартом
высшего
профессионального
образования для всех специальностей естественных и гуманитарных
образований информационная культура будущих специалистов
формируется в результате изучения курса информатики. Согласно
типовым учебным планам [202]-[210] основными разделами курса
являются: аппаратные средства современных компьютеров,
программные средства компьютеров, компьютерные сети и сетевые
технологии, основы защиты информации и другие. Алгоритмы и
языки программирования, так или иначе, входят в учебный план всех
специальностей, то есть включается или как отдельный раздел или как
подраздел раздела «Инструментарий технологии программирования».
И одной из основных задач дисциплины «Информатика» является
обучение студентов алгоритмизации профессиональных задач,
основам программирования в информационных системах по областям.
Для подготовки будущих специалистов, таким образом,
необходима система курсов, которая соответствует сути понятия
информатики, как научной дисциплины.
Место курса программирования в системе курсов информатики
описывается Э.И. Кузнецовым в виде матрицы, строками которой
являются следующие разделы:
Алгоритмы и структуры данных;
Языки программирования;
Архитектура;
Численные и символьные вычисления;
Операционные системы;
Методология и инженерия программного обеспечения;
Базы данных и информационный поиск;
Искусственный интеллект и автоматизация;
Взаимодействие «человек-компьютер».
Важность дисциплины программирования в настоящее время
отмечено Н. Вирт.
Выделяя программирование как отдельную область, А.П. Ершов
сформулировал научные направления следующим образом:
Алгоритмика;
Программирование;
Теория вычислительного эксперимента;
Теоретические основы вычислительной техники;
Статистическая теория теории информации;
Искусственный интеллект и информалогия.
В учебной программе по информатике должны быть охвачены
фундаментальные вопросы информатики, компьютерных систем и
информационных технологии. И к ним относят такие вопросы, как
«Понятия информации, сигнала, величины и алгоритма; Понятия о
типах значений величин, структурах данных и формальных
алгоритмических языках. Методы уточнения понятия алгоритма и их
роль. Понятие об алгоритмической неразрешимости и сложности
алгоритмов. Понятие языков программирования и вычислительной
модели. Понятие об отладке программ, информационных технологиях
и инструментальных программных средствах. Понятие базы данных и
их моделей. Понятие о системе управления базами данных.
Необходимость сетевого взаимодействия компьютеров и виды
протоколов. Коммутируемые и некоммутируемые методы передачи и
приема информации. Пакетный и интерактивный режим в сетях.
Адресация и маршрутизация в сетях. Сеть INTERNET. Понятие об
информационных системах. Пакеты прикладных программ.
Системное, функциональное и информационное наполнение пакетов
прикладных программ и т.д. Изучение этих вопросов, безусловно,
составляет необходимую основу знаний для студентов по всем
специальностям» (Шарипбаев А.А.,с.156).
Как уже ранее отмечалось, в соответствии с государственным
образовательным
стандартом
высшего
профессионального
образования программирование включено в состав курса
информатики, в общепредметный блок. Эта дисциплина в структуре
высшего образования студентами всех специальностей изучается в
первых семестрах.
Рассмотрим место программирования, отведенное в типовых
учебных планах [202]-[210].
Для студентов ряда естественнонаучных специальностей
(010700-011500, 510730-511030, 511230, 511430), гуманитарных
специальностей и специальностей искусства и культуры (020000,
060000, 090100, 090200, 090800, 090000-091200, 091500, 520130520430, 520730, 520930-521830, 522030, 5222130, 540230),
специальностей и направлений подготовки естественных образований
(0301000-030300, 521930) в курсе «Информатика» и для студентов
специальностей и направлений гуманитарных образований (030500030900, 031100-032200, 540330) в курсе «Математика и информатика»
вводится в качестве раздела «Инструментарий технологии
программирования». Данный раздел включает вопросы создания
программного продукта, языков программирования, основы
программирования.
Студенты экономических специальностей и направлений
подготовки (062000, 080000, 090300, 090400, 090700, 090300, 090900,
091341, 091400, 091600, 460100, 460200, 520530, 520830, 522230,
52330, 540430, 541530, 070000) изучают программирование в разделе
«Основы алгоритмизации и программирования». Следует отметить,
что изучение элементов программирования (например, на встроенных
языках VBA и др.) возможно при прохождении и других разделов:
Табличные процессоры, Графические редакторы, Базы и банки
данных и т.д.
Курс информатики для студентов сельскохозяйственных
специальностей
(450100-451000,
451500,
451700)
также
предусматривает изучение программирования в разделе «Этапы
решения задач АПК. Алгоритмы и языки программирования».
Студенты естественнонаучных специальностей и направлений
подготовки
(010100-010600,
510130-510430)
изучают
программирование многоэтапно. Первая точка входа в проблему
программирования студенты осуществляют в курсе Информатики при
изучении разделов: Введение в программирование. Основы
алгоритмизации задач, Программирование на алгоритмическом языке.
В последующем на начальных курсах в рамках государственного
компонента образования четыре семестра изучают курс «Языки
программирования». А затем, курсы: «Практикум на ЭВМ»,
«Системное программирование», «Программирование в Интернет»,
«Теория языков программирования и методы трансляции», «База
данных и информационные системы (Языковые средства
современных СУБД)».
Быстрый темп информатизации общества потребовал
пересмотра информационной и технологической подготовки кадров
всех специальностей. Для реализации и координирования политики
информатизации образования в вузах страны созданы кафедры
информатики и информационных технологий. Выше изложенная
структура курса информатики разработана и внесена ведущими
вузами Республики Казахстан, как КазНУ им. Аль-Фараби, КазНТУ
им. Сатпаева, АГУ им. Абая, КарГУ им. Букетова, КарГТУ и т.д. и
утверждена Министерством образования и науки Республики
Казахстан. [202]-[210].
Таким образом, система курсов информатики включает
изучение программирования студентами всех специальностей. Однако
содержательное наполнение курса зависит от многих факторов.
Как было отмечено ранее, студенты имеют первоначальные
представления об алгоритмах и программировании. Однако
ограниченность учебных заведений в разной степени местными
условиями и нехваткой квалифицированных педагогических кадров,
делает недостаточной подготовку будущих студентов.
Профессиональный интерес к программированию проявляют в
основном, студенты физико-математического направления. Для них
важно понимание принципов создания моделей, адекватно
отображающих реальные процессы и природные явления, которые
превращают компьютер в инструмент исследования и получения
новых знаний об исследуемых явлениях, т.е. делают компьютер
инструментом познания.
Никлаус Вирт отметил еще одну сторону проблемы, связанной с
обучением программированию в вузе «Посвятив существенную часть
своей карьеры доведению искусства создания программ до такого
уровня, чтобы его можно было преподавать методично и
систематически, я разочарован в доминирующих разрушительных
тенденциях».
Он
сетует
относительно
выбора
языка
программирования: «При поддержке коллег-единомышленников и в
упорном противостоянии рутинерам, Паскаль распространился в
учебных заведениях и проник в индустрию. Это произошло, несмотря
на могучую конкуренцию со стороны индустрии и других больших
организаций, в соперничестве PL/1, Алгол 68 и Ада. Однако
наследники Паскаля, существенно его превосходившие, Модула-2 и
Оберон, не получили должного внимания среди преподавателей, и
сами пали перед лицом самого недостойного из соперников – С.
Самого недостойного, т.к. в этом языке были нарушены все открытые
к тому времени принципы серьезного программирования. Он
запутывает студентов, допуская разный смысл для х = у и у = х и
принуждая всех писать х = = у вместо обычного х = у. Только за одни
эти пороки он заслуживает изгнания из учреждений образования.
Однако сей, уродливый синтаксис был целиком воспроизведен в
языке Java, принятие которого академическим сообществом
произошло, по меньшей мере, отчасти благодаря этой
преемственности».
Студентам, специализирующимся по другим направлениям
необходимо, прежде всего, овладение программными средствами для
изучения готовых компьютерных моделей. Например, для
осуществления анализа экологической ситуации или развитие
экономических процессов в зависимости от определенных условий.
Современное
преподавание
информатики,
новых
информационных технологий студентам, специализирующимся по
другим направлениям, сводится лишь к изучению пользовательских
аспектов курса, т.е. освоению простейших способов обработки
текстовой, табличной и др. информации. Однако для их полноценной
профессиональной деятельности важно умение использования
возможностей прикладных программных продуктов таких, как
создание дополнительных кодов (скриптов) для управления
объектами в данной программной среде.
Например, в Microsoft Word (Microsoft Excel) выполнение
какой-либо задачи можно автоматизировать с помощью макроса.
Макрос — это набор команд и инструкций, выполняемых как одна
команда. Для создания макроса Microsoft Word (Microsoft Excel)
используется один из двух методов: использование средства для
записи макросов и прямое программирование в редакторе Visual
Basic. В редакторе Visual Basic можно также написать очень сложные
макросы, которые не могут быть записаны первым способом. Кроме
того, редактор Visual Basic позволяет получить вспомогательные
сведения, помогающие при создании макроса, в частности,
справочную информацию об объектах и их свойствах. В работах
(Ижогин Я. В.; Мануйлов В. Г.; Плеухова Л. Ф.; Гутовская Г. В.;
Оборнев Е. А.) рассмотрены возможности применения электронных
таблиц при решении практических задач по разным областям
профессиональной деятельности с использованием элементов
программирования на Visual basic for applications.
Flash-технологиям тоже свойственно наличие встроенной среды
программирования. «Flash - это наиболее естественный переход от
несерьезных игр к серьезному программированию… Язык
программирования ActionScript, применяемый при создании анимации
во Flash, приходится «родным братом» языку программирования Java
Script. Так, что до серьезного программирования считается один шаг.
… Проблемы стимулируют попытки их решения. Решения ставят
новые проблемы. Это и есть дорога прогресса» (Переверзев С. И.).
Подобные примеры можно приводить относительно Internetтехнологии, Flash-технологии и других технологий. Для полного
использования возможностей данных технологий необходимо знание
простейших команд и инструкций встроенного языка для построения
кодов.
Таким образом, обучение программированию в системе курсов
информатики в высшей школе приобретает необходимость для
специальностей всех направлений. Обучение программированию в
зависимости от специальности должно быть дифференцированным.
Умение программировать должно, быть дифференцированно в
зависимости от профессиональной направленности. Если для не
информатико-математических
и
физических
специальностей
необходимо понимание основных принципов программирования,
умения создания простейших кодов во встроенной среде
программирования, то для студентов специальностей физики,
математики, информатики, компьютерной обработки информации и
систем управления необходимы практика программирования и знание
теории алгоритмов, методов информационного моделирования,
достаточных для решения прикладных задач.
Современное состояние обучения программированию в высшей
школе претерпевает трудности, связанные с утратой актуальности
учебного материала курсов информатики, обусловленные развитием
научно-технического прогресса. Поэтому требуется периодическое
обновление учебного материала, его замена на наиболее современный
материал. В связи с этим, возникает проблема отбора содержания
обучения.
1.2 Тенденции развития методологических подходов к
обучению программированию
В результате анализа многолетние обсуждения, дискуссий и
конкретных
исследовательских
разработок
В.П.Пидкасистым
сформулировано следующее определение методологии педагогики и
методологические характеристики исследований.
Методология педагогики есть система знаний об основаниях и
структуре педагогической теории, о принципах подхода и способах
добывания знаний, отражающих педагогическую действительность, а
также система деятельности по получению таких знаний и
обоснованию программ, логики и методов, оценке качества
исследовательской работы.
Как и наука в целом, эта отрасль научного познания выступает в
двух аспектах: как система знаний и как система научноисследовательской деятельности. Имеется в виду два вида
деятельности:
-методологическое исследование (задача – выявление
закономерностей и тенденций развития педагогической науки в ее
связи с практикой, принципов повышения эффективности и качества
педагогических исследований, анализ их понятийного состава и
методов);
-методологическое
обеспечение
(использовать
методологические знания для обоснования программы исследования и
оценки ее качества).
Выделяют четыре вида педагогической деятельности:
- практическая деятельность,
- административная деятельность,
- научная работа в области педагогики,
- деятельность внедрения, передачи педагогических знаний на
практике12.
Методологические характеристики научного исследования в
педагогике определяются такими
признаками, как научнопознавательный характер цели (выявление эффективного или иного
научно обоснованного метода обучения, формы проявления
воспитательной функции самостоятельной работы), выделение
специального объекта исследования (объектом исследования в нашем
случае является обучение программированию), применение
специальных средств познания (проведение эксперимента, создание
модели, построение гипотезы), однозначность терминологии.
В
соответствии
методологическим
характеристикам
исследования в педагогике рассмотрим исследования тенденций
развития методологических подходов к обучению программированию.
12
Педагогика. Учебное пособие для студентов педагогических вузов и педагогических колледжей
/ Под ред. П.И. Пидкасистого. –М.: Педагогическое общество России, 2001. – 640 с.
В новых условиях развития общества особое внимание
уделяется воспитанию личности будущего специалиста. Главной
задачей педагогической науки является задача воспитания, которая
заключается
в
личностном
росте
студента
в
процессе
профессионального становления, адаптации к условиям социальной
жизни в обществе.
Высокая духовная культура, разносторонность интересов,
широкое мировоззрение – есть необходимые качества выпускника
любого вуза. Наряду с общими направлениями воспитательной
работы имеются направления работы согласно специфики вуза.
Исследованию профессиональной направленности обучения и
профессионально ориентированного процесса обучения посвящены
ряд научных трудов (Бидайбеков Е.Ы.; Кузьмина Н.В.; Власова Е.З.;
Городничева А.С.;
Белобородова С.В.;
Резниченко А.Н.;
Мордкович А.Г. и др.).
Профессор Е.Ы.Бидайбеков отмечает, что профессиональная
направленность выражается в специализации отбора содержания
учебной дисциплины, более целенаправленном осуществлении
межпредметных связей с учебными курсами, определяющими
профиль подготовки студентов.
Под профессиональной направленностью Н.В.Кузьмина имеет в
виду интерес к профессии и склонность заниматься ею. Понятие
«направленность» включает в себя представление о цели, мотивы,
побуждающие к деятельности и эмоциональное к ней отношение
(любовь, удовлетворенность, потребность).
Во многих трудах предметом исследований
выступает
профессионально-педагогическая
направленность
обучения
(Бидайбеков Е.Ы.; Кузьмина Н.В.; Городничева А.С.; Власова Е.З.;
Белобородова С. В.; Резниченко А.Н.; Мордкович А.Г.).
Так, например, средства и источники формирования
направленности исследованы Н.В. Кузьминой.
Дидактическая
технология
развития
профессиональнопедагогической направленности студентов в процессе овладения ими
культурой
контрольно-оценочной
деятельности
разработана
А.С.Городничевой.
Согласно
фундаментальных
принципов
С.Л.Рубинштейна: принципы детерминизма, единства сознания и
деятельности, внутренней опосредованности внешних воздействий и
на основе психологической теории деятельности А.И. Леонтьева в
данной работе показана возможность развития профессиональнопедагогической направленности студентов на основе личностнодеятельного подхода. При этом субъект учения с самого начала
становится в активно-деятельностную позицию, а потребности
учащихся в справедливой и объективной оценке их учебнопознавательной деятельности оказывается системообразующими.
В докторской диссертации Е.З.Власовой рассмотрены
теоретические основы и практика использования адаптивных
технологий обучения в профессиональной подготовке студентов
педагогического вуза. Под адаптивной технологией обучения
понимается последовательность взаимообусловленных адаптивных
действий преподавателя и обучаемого с учетом его личностной
профессионально-образовательной ориентации и направленных на
эффективную
подготовку
специалистов
с
качествами,
с
соответствующими
современными
потребностями
общества.
Используемые при этом субъектами учебного процесса методы,
средства и формы обучения ориентированы на активизацию
механизмов самоорганизации и саморазвития обучаемого.
В данной работе (Власова Е. З.) также показано, что повышение
уровня готовности студентов к профессиональной деятельности
характеризуется такими показателями как развитие способности к
формированию нового знания, к рефлексии, к многовариантному
решению задач, к проектированию своей профессиональной
деятельности и умению вступать во взаимодействие с
профессиональной средой.
В исследованиях С.В.Белобородовой дано теоретическое
обоснование подхода к реализации профессионально-педагогической
направленности историко-математической подготовки студентов в
педвузе, основанного на результатах всестороннего анализа
педагогического значения истории математики и идеях историкогенетического
метода;
методическая
система
историкоматематической подготовки будущих учителей, включающая в себя
цели, содержание, формы, методы и средства историкоматематической подготовки.
А.Н.Резниченко рассматривает профессионально-нравственное
самовоспитание студентов как условие развития педагогической
культуры будущего учителя. Автором разработаны теоретические
основы профессионально-нравственного самовоспитания студентов
на основе анализа взаимосвязи педагогического образования и
самовоспитания: раскрыта сущность процесса самовоспитания как
управления собственным личностно-профессиональным развитием,
изучены возможности студентов, направленность и содержание их
деятельности
по
самовоспитанию,
выявлены
особенности
педагогического руководства этим процессом, раскрыта роль
личностно-ориентированного
образования
в
стимулировании
студентов к профессионально-нравственному самовоспитанию,
выявлены взаимосвязи и взаимовлияние процессов профессиональнонравственного самовоспитания и формирования педагогической
культуры будущего учителя, обоснована и проверена технология
педагогической поддержки процессов личностно-ориентированного
самовоспитания на учебных занятиях.
Концепция профессионально-педагогической направленности
обучения раскрыты М.В.Швецким с помощью приведенных ниже
шести педагогических положений – принципов профессиональнопедагогической направленности обучения, первые четыре которых
принадлежат А.Г.Мордковичу.
1) Принцип фундаментальности. В области информатики
необходима фундаментальная подготовка, которая обеспечивает
глубокие и обширные знания по дисциплине. Фундаментальность не
цель, а средство подготовки будущего специалиста, поэтому должна
быть согласована с нуждами приобретаемой профессии.
2) Принцип бинарности. При построении курса информатики
необходимо объединение общенаучной и методической линий.
3) Принцип ведущей идеи. Ведущей идеей курса информатики в
педагогическом вузе является связи вузовского и школьного курсов
информатики.
4) Принцип непрерывности. Все курсы, относящиеся к
информатике, должны участвовать в процессе непрерывного
постижения студентами элементов педагогической деятельности.
5) Принцип использования в педагогической деятельности
преподавателя педвуза новых информационных технологий. Здесь
необходимо
учитывать,
определение
М.И.Жалдака,
что
информационная технология является «совокупностью методов и
технических средств сбора, организации, хранения, обработки,
передачи и представления информации, расширяющая знания людей и
развивающая их возможности по управлению техническими и
социальными процессами». И необходимо помнить, что современные
информационные технологии постепенно выделяются в научное
направление.
6)
Принцип
систематического
использования
новых
информационных технологий в обучении (НИТО). Прикладной сутью
НИТО являются технология компьютерного обучения. Суть принципа
систематического использования НИТО следует из общих принципов
компьютерного обучения, сформулированных В.А.Извозчиковым:
педагог высшей школы должен уметь использовать компьютер как
органичное средство учебного процесса и, кроме того, обладать
широким видением и пониманием информационной картины мира,
осознавать свое высокогуманное и ведущее назначение в этой
информационной среде. В результате обучения студент должен
уяснить доминирующую роль классических методов педагогики над
методами автоматизированного обучения, ведущее значение личности
педагога, его знаний и умений в учебной среде, насыщенной
методами и средствами НИТ.
Выше
приведенные
принципы
профессиональнопедагогической направленности обучения математике и информатике
в силу их универсальности можно перенести на обучение
программированию.
Для профессионального становления будущего специалиста
наряду с хорошей теоретической подготовкой необходим высокий
уровень овладения практическими умениями и навыками. Поэтому,
необходимо
осуществлять
связь
учебно-профессиональной
деятельности студентов с научным осмыслением своего опыта,
моделируя практические процессы на учебных занятиях отрабатывать
важные профессиональные умения и навыки.
Создавая модель практической профессиональной задачи,
студенты учатся самостоятельно отбирать научную информацию из
области будущей профессиональной деятельности и практически ее
применять. При разработке конкретного проекта им приходится
читать, анализировать справочники, энциклопедии, научнометодические периодические издания, собирать необходимую
информацию из Интернета и других источников. Практически
реализуя свою модель, программируя в подходящей среде, они
получают конкретные навыки в области информационных
технологий.
Известно, что значительная часть знаний усваивается
непосредственно студентами в процессе деятельности. Поэтому
полноценное овладение будущей профессией невозможно без
правильно организованной практической деятельности студентов.
Организуя
практическую
деятельность,
для
приобретения
профессиональных навыков целесообразно поэтапное прорабатывание
отдельных элементов.
Как уже было отмечено, профессиональная направленность
деятельности должна осуществляться как по содержанию, так и по
организации воспитательного процесса.
Исследуя труды многих авторов О.Н.Пушкина в качестве
одного из компонентов саморазвития выделяет самореализацию и
приводит её следующее определение. Под самореализацией в
педагогике понимается осуществление себя, обнаружение и,
вследствие этого, развитие своих возможностей: предъявление и
обогащение смыслов деятельности и поведения, осуществление
спектра потребностей, углубление вкусов, усиление свободы
индивидуального развития и творчества и пр.
Известно, что для самореализации студентов больше подходит
внеаудиторная деятельность, то есть самостоятельная работа.
Поскольку личность формируется и развивается в деятельности и
саморазвитие
студента
является
двусторонним
процессом,
участниками которого являются как студент, так и преподаватель, то
преподавателям необходимо создать больше возможностей для
целенаправленного воздействия на профессиональное становление
студентов, на формирование творческой личности.
Таким образом, целью профессионально направленного
обучения является формирование у студентов гражданских и
профессиональных качеств, отвечающих интересам развития
личности, общества, качеств подлинных патриотов Родины.
В основу реализации данной цели нами положены следующие
принципы:
1) гуманизация, в учебно-воспитательном процессе постоянно
должны присутствовать элементы самореализации личности, связь и
взаимоотношения с окружающим миром, обеспечивающим раскрытие
индивидуального
творческого
потенциала
и
возможность
профессионального роста;
2) вариативность, учебно-воспитательный процесс в целом
должен быть организован и построен с учетом профессионального
направления выбранной специальности;
3) целостность, учебно-воспитательный процесс должен
отражать все ключевые ценности: профессионализм, нравственность,
интеллект, а также гражданственность, общечеловеческая и
информационная культуры, самоценность, уникальность личности, то
есть утверждение и проявление личности;
4) творчество, учебно-воспитательный процесс должен
развивать творческие способности каждого студента.
Формирование профессионализма и умение работать творчески,
должно осуществляться при изучении как специальных, так и
общеобразовательных дисциплин.
Таким
образом,
имеем
тенденцию
развития
методологических подходов обучения программированию, как
профессиональную
направленность
обучения
программированию.
Принцип
профессиональной
направленности
обучения
относится, в основном, к вариативной части содержания обучения. Он
заключается, прежде всего, в учете требований задач и содержания
смежных дисциплин, которые определяют профиль специальной
подготовки, к отбору содержания обучения информатике, в том числе,
обучение программированию.
В вариативной части содержания обучения программированию
доминирует содержательная линия, базирующаяся на современных
технологиях,
как
скрипт-технологии
программирования
и
компонентные технологии.
В настоящее время, известно следующее укрупненное
распределение по группам специальностей: инженерно-технические,
экономические, гуманитарные, образования, естественно-научные,
сельскохозяйственные,
медицинские.
Профессиональная
направленность
обучения
выражается
в
необходимости
целенаправленного и непрерывного формирования у студентов основ
профессионального мастерства. В современных условиях процесс
подготовки будущих специалистов усложняется в связи с большим
охватом циркулируемой информации в обществе и их быстрым
темпом обновления.
В постиндустриальную эру для успешной профессиональной
деятельности специалисту необходимы знания и навыки работы с
большими потоками информации различной природы.
Общеизвестно,
что
реально
существующие
явления
взаимосвязаны и взаимообусловлены. Они могут быть объективно
познаны тогда, когда учитывается их место среди других явлений, во
взаимодействии и в определенных связях с другими явлениями.
Поскольку научное познание стремится раскрыть системные связи и
структуру, сущность процессов, то системно-структурный подход
перспективен в различных областях науки.
В этой связи принципиальное значение при обучении
информатике
приобретает
проблема
междисциплинарности
(межпредметности) (Нурбекова Ж. К.), которая связана со структурой
содержания образования и отражается в методах, формах и средствах
обучения
и позволяет систематизировать знания студентов,
способствует формированию у них представлений о целостной
картине реального мира, о диалектических взаимосвязях явлений.
Принцип систематичности является одним из дидактических
принципов, который обусловливает
определенную
структуру
содержания образования, систему подходов, форм и средств обучения.
Наиболее полное обоснование дидактической значимости
межпредметных связей дал К.Д.Ушинский. Он подчеркивал, что
«знания и идеи, сообщаемые, какими бы то ни было науками, должны
органически строиться в светлый и по возможности, обширный взгляд
на мир и его жизнь». По мнению К.Д.Ушинского, важно приведение
знаний в систему по мере их накопления и межпредметные связи
можно выводить из психологических основ различных ассоциативных
связей (по противоположности, по сходству, по порядку времени,
единству места, связи развития и т.п.). В настоящее время особо
ценным в трудах великого педагога являются суждения относительно
мировоззренческой роли междисциплинарных (межпредметных)
связей, которые способствуют формированию у студентов
взаимосвязанных представлений о предметах реального мира.
Для
реализации
дидактических
возможностей
междисциплинарных связей необходимо учитывать «осмысление
системы и логики предмета и тех связей, которые существуют между
отдельными темами и вопросами» (Шимбирев П.Н.). Дидактическим
преимуществом осуществления междисциплинарных связей является
взаимное использование знаний, устранение дублирования,
формирование целостной системы взглядов.
По мнению академика И.Д.Зверева важным дидактическим
аспектом реализации межпредметной связи, является возможность
ведения научно-педагогической разработки проблемы с учетом
практического опыта по следующим направлениям: раскрытие
функции межпредметных связей в обучении, их типологии и
структуры, выявлении их роли в формировании личностных качеств и
мировоззрений учащихся, установление общих для различных
учебных предметов видов умственной и практической деятельности
учащихся, выявление системы знаний об объектах реального мира,
раскрываемых в различных учебных предметах, совершенствование
методов, форм и средств обучения, дающих возможность
использования знания, умения и навыки, полученные при изучении
одного учебного предмета.
Структура той или иной дисциплины, логика раскрытия
научных фактов, понятий, законов, теорий в обучении в значительной
мере определяется уровнем развития соответствующей науки.
Представление об окружающем мире и о его явлениях строятся
в сложной системе наук, а каждая наука не может развиваться
изолированно от других, чем органичнее их взаимопроникновение,
тем полнее знания студентов о данной науке.
Целостность умственной деятельности достигается через
междисциплинарные связи. Умственная деятельность человека
характеризуется в основном, систематизацией новых компонентов,
«установлением взаимосвязей между ними, соподчинение их в более
обобщенной системе знаний» (Зверев И.Д.). Поэтому, организация
умственной деятельности или систематизация знаний предполагает
упорядочения знаний в различных направлениях и в соответствии с
ведущими идеями науки. Таким образом, полученная система знаний
бывает динамичной. Как правило, системность и динамичность,
являясь качественными мерами ума, связаны с наблюдением,
сохранением,
переработкой,
интерпретацией
объективной
реальности.
Применение дидактического принципа систематичности в
обучении предполагает установление взаимной связи дисциплин,
развитие системы подготовки студентов к решению задач реального
окружающего мира.
Вышеизложенные и другие психологические данные позволяют
решить дидактико-методические задачи обучения программированию,
как задачи создания ассоциативных систем и дальнейшего развития на
разных этапах обучения; как задачи установления зависимости
подготовки студентов от содержания, построения учебного пособия,
последовательности подачи материала на занятии, применяемых
преподавателем методических форм и приёмов.
Исследование междисциплинарной связи как педагогической
проблемы, согласно теории академика И.Д.Зверева, позволяет
выделить следующие основные её функции:
формирование научного мировоззрения;
развитие системы подготовки студентов к решению
прикладных проблем;
развитие умственной деятельности;
содействие всеобщему воспитанию студентов;
организационно-педагогическая
функция,
которая
выражается в устранении дублирования, «в экономии учебного
времени».
Междисциплинарные связи имеют место, прежде всего, в
содержании учебных предметов. Они являются общими частями
смежных дисциплин и отражают взаимопроникновение дисциплин.
По содержанию известны четыре вида междисциплинарных
связей: по общности теории, законов, понятий; по общности научных
фактов, касающихся одного и того же объекта изучения; по общности
использования научного метода; по общности способов умственной
деятельности, а по времени их применения делят на три вида:
предшествующие, сопутствующие и последующие. Подобное
разделение
позволяет
определить
дидактическую
роль
междисциплинарных связей.
Познание общих законов циркуляции
информационных
ресурсов в целостной системе «человек – общество - природа» и
«человек - компьютер - человек» основывается на взаимосвязи
дисциплин естественно математического цикла.
Рассмотрим примеры междисциплинарных связей между
математикой и информатикой. Известно, что изучение информатики
требует опоры на математику. Информатика обращается с такими
абстрактными понятиями математики как точка, линия и другие.
Сквозными для этих предметов являются понятия о модели,
состоянии, процессе. Примерами мысленных моделей, которые
формируются в курсе математики и информатики являются объект, в
виде различных переменных, констант, точек, или сложных систем,
состоящих из тех же переменных, констант, точек.
Общей межпредметной основой систем является выделение в
них структурных элементов (точек, видов величин), внутренних
взаимосвязей между элементами системы и взаимодействия с
другими системами и окружающей средой в целом.
Например, изучение комбинаторики идёт в единстве с
развитием алгоритмического мышления учащихся. Учащиеся глубже
осмысливают
универсальность рекурсии и итерации, если их
объясняют применительно к задачам комбинаторики.
Общими для математики и информатики являются теория
информации, понятия о величинах, графики, функции. Эти знания
составляют часть общей научной картины мира, которая строится на
основе интеграции знаний из различных учебных предметов.
В методике информатики имеются также большие возможности
для осуществления междисциплинарных связей между курсом
информатики и другими дисциплинами. Это касается понятий
информационной модели и информационного моделирования.
Поскольку информационное моделирование осуществляется
через математическое моделирование, то возможно осуществление
междисциплинарных связей между курсами математики и
информатики по общности использования научного метода при
исследованиях
явлений
реального
мира.
Подобная
междисциплинарная
связь
присуща
особенно
курсу
программирования, поскольку именно в курсе программирования на
практике изучаются вопросы построения информационных моделей.
В связи с разнородностью объектов, подлежащих моделированию,
междисциплинарная
связь
возможна
между
курсом
программирования и другими дисциплинами.
«Новая парадигма образования в значительной степени
обусловлена революционными явлениями в информатике, т.к. новые
информационные технологии, такие как Web-технологии, Javaтехнологии и другие решительно затрагивают сферу образования.
Качественное улучшение информационных технологий сделало
доступными для педагогов совершенно новые инструменты,
например, HTML и XML, позволяющие построить информационные
педагогические системы на совместной с Internet-технологией
основе» (Фокин Р.Р.).
В связи с этим, рекомендуется осуществить двустороннюю
связь: использовать знания студентов по специальным дисциплинам
при изучении информатики и опираться на инструментальные и
технологические средства в курсах специальных дисциплин.
Характерными
для
установления
этих
связей
являются
программирование на VBA в рамках изучения тем: электронные
таблицы (пакет анализа); система управления базами данных;
экспертные системы в курсе информатики.
В методике информатики имеется большой фактический
материал, раскрывающий содержание и способы изучения вопросов
междисциплинарного характера в смежных учебных дисциплинах.
Раскрытие всего многообразия междисциплинарных связей –
сложная
проблема. Нашей задачей было показать огромные
возможности установления связей, заложенные в содержании
образования, и наметить основные линии взаимной связи учебных
предметов при обучении программированию. В этом нельзя обойти
трудности установления связей, возникающих в основном из-за
некоторых несоответствий в построении учебных курсов, что требует
особого внимания учёных-педагогов, методистов и преподавателей.
Формирование научного мировоззрения возможно лишь при
обучении, которое направлено на раскрытие взаимосвязи наук. При
том должно быть полное отражение динамики и объективности
реального мира, методов его познания. А это возможно только при
междисциплинарном обучении.
Поскольку в нашем мире всё тесно взаимосвязано, то нам
необходимо выявлять эти взаимосвязи, интегрировать параметры
окружающих систем. На всех этапах изучения любой дисциплины
необходимо вычленить ведущие идеи, понятия мировоззренческого
характера. В информатике эти понятия об информации, индустрии
информации, информатика и средства информатики, понятия
программы, программного обеспечения, понятия логики, модели и
моделирования, телекоммуникационной технологии, представления о
мировом информационном обществе; понятия о системах и методах
программирования,
понятия
о
методах
программирования,
информационной модели, понятия о математическом обеспечении.
Одна из главных задач педагогики – развитие мышления
учащихся. Оно включает в себя умения анализировать и
синтезировать, что требует вычленения существенных признаков и
связей с другими явлениями. Для всех предметов большое значение
имеют навыки наблюдения объектов, восприятия объектов.
Важную роль в развитии мышления имеет развитие способности
устанавливать существенные отношения между явлениями. Более
сложными являются отношения между объектами изучения, которые
имеют междисциплинарную основу. Поэтому взаимная связь учебных
дисциплин крайне важна в развитии мышления.
Одно из главных развивающих функции междисциплинарных
связей является приемы обобщения. Интеграция и дифференциация
знаний составляют содержание мыслительных операции. По всем
школьным предметам для содержания образования характерно
обобщение. В этом плане благоприятные предпосылки для развития
учащихся создает концентрация учебного материала, понятий из
разных учебных предметов. При этом у студентов постепенно
развивается абстрактно-логическое, теоретическое мышление.
В изучении основ наук должно развиваться способность
классифицировать объекты и явления, процессы и факты, провести
наблюдение и описать объекты, опираясь на существенные признаки,
овладеть способами распознавания объекта и определить его
отношение к множеству. Эти виды умственной деятельности
прослеживается при работе над учебным материалом по многим
дисциплинам. Однако здесь требуется их обобщение на
междисциплинарном уровне.
Для развития умственной работы студентов необходимо, чтобы
они активно и самостоятельно добывали знания. Без понимания
междисциплинарных связей невозможно ориентироваться в потоке
информации с прочным и сознательным усвоением научных знаний.
Умение применять в учебной и практической деятельности, при
решении различных задач общие закономерности динамики связей в
окружающем мире является проявлением компетентности студентов в
междисциплинарных связях.
Таким образом обучать пользоваться междисциплинарными
связями для ориентации в информационном потоке, опереться на
междисциплинарные связи в образовании и самообразовании
являются одной из задач современной высшей и средней школы. В
связи с этим возникают следующие задачи обучения:
- усиление связей между информатикой и специальными
дисциплинами профессиональной сферы;
- поддержание интереса к исследовательской деятельности
студентов;
- повышение мотивации к изучению программирования.
Современные
социальные
условия
и
возможности
традиционной педагогики позволяют дополнить концепцию
профессиональной направленности обучения программированию
следующими тремя принципами:
принцип междисциплинарности;
принцип личностной ориентированности, который
обеспечивается организацией учебного процесса в условиях
проектной деятельности;
принцип предметной ориентированности,
который
обеспечивается применением учебно-информационных моделей из
будущей профессиональной сферы деятельности студентов.
Одним из важных способов повышения качества образования
является
реализация
первого
принципа
профессиональной
направленности обучения – фундаментальности. Фундаментализация
содержания обучения программированию мы видим в переходе от
прикладных аспектов и технологии к научным основам информатики
и в усилении акцента на внутридисциплинарные связи.
Рассмотрим тенденции развития обучения программированию,
связанные с парадигмами программирования, которые отражают
внутридисциплинарные связи в программирований.
М.В.Швецкий отмечает, что обсуждение вопроса о предмете и
методах информатики как научной дисциплины «служит основой
отбора содержания фундаментальной подготовки будущих учителей
информатики».
Изучая программирование как составную часть курса
информатики, студенты приобретают определенный стиль мышления,
который зависит от конкретного языка программирования.
Слово «парадигма» происходит от греческого слова paradeigma
(пример, образец). Одним из его значений является: «пример из
истории, взятый для доказательства, сравнения»13.
Другим значением слова парадигма является «исходная
концептуальная схема, модель постановки проблем и их
определенного исторического периода в научном обществе»14.
Т.Кун дает следующее определение: «Под парадигмами я
подразумеваю признанные всеми научные достижения, которые в
течение определенного времени дают научному обществу модель
постановки проблем и их решений». Также Т. Кун отмечает, что
изучение парадигм «подготавливает студента к членству в том или
ином научном сообществе. Поскольку он присоединяется, таким
образом, к людям, которые изучали основы их научной области на тех
же самых конкретных моделях, его последующая практика в научном
исследовании не часто будет обнаруживать резкое расхождение с
фундаментальными принципами. Ученые, научная деятельность
которых строится на основе одинаковых парадигм, опираются на одни
и те же правила и стандарты научной практики. Эта общность
установок …. представляет собой предпосылки для нормальной
науки, то есть для генезиса и преемственности в традиции того или
иного направления исследования» (Т. Кун, с.28-29).
Бидайбеков Е.Ы. и Талпаков Н.А. отмечают, что «постоянное
совершенствование информационных технологий привело не только к
появлению большого количества языковых средств кодирования
алгоритмов, но и к довольно четкому выделению четырех основных
способов разработки самих алгоритмов. Такие способы в
специализированной литературе получили название парадигм.
Условно можно выделить логическую, процедурную, объектноориентированную и функциональную парадигмы. Такое разделение
всех методов конструирования алгоритмов на парадигмы вполне
приемлемо, так как под него попадают все известные на сегодняшний
день языки программирования. К сожалению, невозможно говорить о
явных преимуществах какой – либо одной парадигмы перед
остальными. Каждая из них, наряду с большим количеством
положительных особенностей имеет и свои отрицательные аспекты.
Как правило, выбор способа обработки информации определяется
спецификой предметной области решаемой задачи».
13
14
Словарь иностранных слов. -18-е изд.-М.: Русс.яз.-1989.-624 с.
Советский энциклопедический словарь.-М.:Советская энциклопедия, 1980 и последующие изд.
А.В.Комолкин и С.А.Немнюгин представляют парадигму в
программировании как
способ концептуализации,
который
определяет, как следует проводить вычисления, и как работа,
выполняемая компьютером, должна быть структурирована и
организована.
Классифицирование парадигм программирования необходимо
для определения содержания обучения программированию.
Слово классификация [латинское слово classis (разряд) + fasere
(делать) - классифицировать] означает во-первых, систему
соподчиненных понятий(классов, объектов, явлений) в какой-либо
отрасли знания, составленную на основе учета общих признаков
объектов и закономерных связей между ними, которая позволяет
ориентироваться в многообразии объектов и является источником
знания о них, во-вторых означает то же что и классифицирование, то
есть распределение тех или иных объектов по классам (отделам,
разрядам) в зависимости от их общих признаков, фиксирующее
закономерные связи между классами объектов в единой системе
данной отрасли знания15.
В статье Д.Федюшина предложена классификация парадигм
программирования и языки «поддержки» и отмечено, что «эта
классификация не претендует на полноту, существуют и другие
парадигмы: например, параллельное, потоковое, продукционное
программирование и более мелкие, основанные на конкретном
методе» (Рисунок -1).
А.В.Комолкин и С.А.Немнюгин приводят следующие основные
парадигмы программирования: парадигмы директивного, объектноориентированного и функционально-логического программирования.
«C и Pascal являются примерами языков, предназначенных для
директивного программирования (directive programming), когда
разработчик программы использует процессно-ориентированную
модель, то есть пытается создать код, должным образом
воздействующий на данные. Активным началом при этом подходе
считается программа (код), которая должна выполнить все
необходимые для достижения нужного результата действия над
пассивными данными.
15
Словарь иностранных слов. -18-е изд.-М.: Русс.яз.-1989.-624 с.
Процедурное, или
императивное
программирование
Операциональное
программирование
(Бейсик, Фортран)
Структурное
программирование
(Паскаль, Модула-2)
Непроцедурное
программирование
Объектно-ориентированное
программирование
(Смолток, Си++)
Декларативное
программирование
Логическое
программирование
(Пролог)
Функциональное
программирование
(Лисп)
Рисунок 1- Классификация парадигм программирования
(по Д.Федюшину).
Этот подход представляется вполне естественным для человека,
который только начинает изучать программирование, и исторически
возник одним из первых, однако он практически неприменим для
создания больших программ. Первые две главы книги посвящены
именно директивному программированию, так как подобный стиль
оптимален для программирования в малом, а навыки, которые он
позволяет приобрести, необходимые и при использовании других
подходов.Сейчас весьма распространенным стал
объектноориентированный (object oriented) подход, реализуемый, например,
языками C++ и Java. При этом, наоборот, первичными считаются
объекты (данные), которые могут активно взаимодействовать друг с
другом с помощью механизма передачи сообщений (называемого
также и механизмом вызова методов). Функция программиста в этом
случае подобна роли бога при сотворении Вселенной - он должен
придумать и реализовать такие объекты, взаимодействие которых
после старта программы приведет к достижению необходимого
конечного результата» (Комолкин А.В.).
Исследуя труды Д.Федюшина, В.Ф.Турчина, Дж.Малпаса,
А.Дж.Перласа, В.Ш.Кауфмана, Амамия, Танака и основываясь на них,
М.В.Швецкий построил наиболее полную классификацию парадигм
программирования. По мнению М.В.Швецкого, при любой
классификации, удовлетворяющей логическим правилам деления,
требуется в начале выбрать основание деления, в качестве которого
выбирается операционная семантика (модель вычислительного
процесса). Операционная семантика – это правила, сопоставляющие
программе последовательность действий. По характеру операционной
семантики выделяются в языках программирования два наклонения –
повелительное (императивное, которое представляется операторами,
командами, предписаниями) и изъявительное (декларативное,
описательное).
Императивные
языки
программирования
характеризуются в большинстве описанием действий, алгоритма,
процесса, позволяющего результат. Декларативные, проблемноориентированные языки программирования характеризуются в
основном, описанием свойств результата. Декларативным языкам
относятся функциональные (аппликативные), продукционные и
логические классы языков. «На практике языки программирования не
являются чисто императивными, функциональными или логическими,
а содержат в себе черты языков различных парадигм»(Швецкий М. В.,
С.101-102.).
Там же параллельно с термином «декларативное
программирование»
используется
термин
«логическое
программирование». Таким образом, по операционной семантике
нижний уровень дерева классификации парадигм программирования
составляет
императивное
и
декларативное
(логическое
программирование).
Далее, на более высоком уровне дерева классифицирование
языков осуществлено на основе деления по использованию объектов.
«Объектно-ориентированная парадигма не исключает процедурность,
т.к. процедуры инкапсулированы в объекте. Дело в том, что
процедурность – специфическая часть наших знаний о мире, поэтому,
чтобы программное обеспечение было способно «вбирать в себе
знания», процедурность должна быть неотъемлемой частью языков
программирования» (Швецкий М.В.,с.104). Поэтому, дерево парадигм
программирования дополнено по объектной ориентированности: не
ориентированные на объекты и объектно-ориентированные. Самым
верхним
уровнем
классификации
М.В.Швецкого
являются
метапарадигмы (последовательное, конкурентное и распределенное
программирование) по ориентированности на процессы. Они
направлены на последовательность событий, определяемые объектом
или явлением, выполняющиеся в заданных условиях и в соответствии
с целью и результатом.
Приведем одну из классификаций
М.В.Швецкого. (Рисунок -2)
Рисунок 2 - Общая схема классификации Швецкого М.В.
Парадигмы программирования являются инструментами для
решения задач различных классов. Эффективность разработанных
программ определяется себестоимостью разработки программного
обеспечения и возможной выигрышной реализацией на современных
компьютерах.
Для
определения
фундаментальной
сущности
программирования на наш взгляд необходимо изучение парадигм
программирования и построение их классификации проводить на
основе теории программирования.
Рассмотрим основные понятия теории программирования. В
силу постоянного совершенствования аппаратного обеспечения,
основные понятия теории программирования не возможно освоить до
конца. Наша задача состоялась в разработке общей картины на
данный
исторический
момент
теоретических
основ
программирования, которое может служить основой для отбора
содержания обучения программированию.
Методики программирования «снизу вверх» и «сверху вниз»
являются основными понятиями теории программирования, и они
связаны между собой. Возможно появление новых связей, которые в
свою очередь порождают новые теории программирования.
Программное обеспечение формируется из комплекса модулей,
которые записываются на определенных языках. Построение языков
программирования
отражают
главные
идеи
программного
обеспечения компьютера.
Поскольку объектами обработки являются данные, то в языках
программирования необходимо отображение структур данных. А для
обработки этих данных необходимы соответствующие методы и
средства для представления методов обработки. Методами обработки
данных выступают алгоритмы, а средствами - структуры управления.
Таким образом, структуры данных и структуры управления тесно
взаимосвязаны
и
являются
важными
компонентами
программирования. И концепции программного обеспечения, и
функциональные
возможности
языков
программирования
группируются относительно структуры данных и структуры
управления.
Современный компьютер состоит из памяти и устройства
управления вычислениями.
Абстрактно память (в частности оперативная память)
представляет собой последовательность ячеек, содержащих биты
информации. Для определения элементов последовательности
используют их адреса. Поэтому память компьютера имеет аппаратно
реализованную, простую структуру данных. А программа –
последовательность битов, обеспечивающих выполнение операторов
данных и управления. Данные могут быть символьные, числовые и
другие, поэтому язык программирования в зависимости от
выполняемой задачи может работать с различными данными, в том
числе и со сложными концептуальными структурами данных.
В
зависимости
от
типа
вычислительной
машины
вычислительное устройство выполняет арифметические и другие
вычислительные действия посредством структур управления, как
команды ветвления, организации последовательного выполнения
команд и более сложные концептуальные структуры управления.
Программа, написанная на языке программирования, проходит
декомпозицию на машинные команды. Определенные функции на
языке программирования требуют выполнения нескольких машинных
команд. Таким образом, реализуется способ программирования,
называемый «снизу вверх». Другой способ программирования –
«сверху вниз» предполагает реализацию промежуточных понятий
между решаемой задачей и машинным языком. В зависимости от
состава этих промежуточных понятий созданы различные языки
программирования, которые решают разные задачи и отражают
разные концепции программирования.
Таким
образом,
имеем
две
группы
концепции
программирования:
- концепции структур данных,
- концепции управления.
Рассмотрим структуры данных. Данные могут быть
представлены или абстрактно, или конкретно (Фути К., Судзуки Н.).
На рисунке 3 представлены виды данных.
Данные
Абстрактные
данные
Реальные
данные
Рисунок - 3 - Виды данных.
В основе абстрактных типов данных лежит различие между
видом представления данных пользователю и видом организации
данных из структур данных в памяти. Абстрактные структуры данных
могут быть обработаны алгебраически, т.е. данные определяются как
структуры, полученные в ходе выполнения множества операции над
данными. Использование средств алгебры позволяет применить
математические методы к данным. Например, применение к данным
теории групп.
В целом, абстрактный подход предполагает рассуждение на
основе заранее выдвинутых некоторых посылок. Например, для
рассмотрения типов данных, в первую очередь задаются исходные
базовые типы данных: целый, вещественный, символьный, булевский,
бит. Базовые типы задаются аксиоматически и имеют свои
абстрактные
определения.
Для
осуществления
технологии
вычислительных
процессов
на
компьютере
программное
представление данных представляет собой способ обозначения
данных, связанный со способом хранения.
В программах естественно рассматривать структуры управления
в соответствии со структурами данных. Известно последовательное и
параллельное
управление.
Традиционным
фон-неймановским
машинам свойственны последовательные структуры управления и их
обобщения.
Последовательная структура управления предполагает такие
группы управления, как условные ветвящиеся структуры управления,
циклическое выполнение команд с применением передачи
управления, безусловного перехода, а также счетчик команд,
предназначенный для управления выполнением программы и
указывающий конкретный адрес очередной выполняемой команды.
Функция счетчика команд в том, что при выполнении фрагментов
программы сверху вниз значение счетчика увеличивается на единицу
после выполнения очередной команды, которое затем позволяет
определить ход дальнейшего выполнения программы. Задаваемый
счетчик команд в разных языках программирования зависит от
уровня языка программирования.
Методика структурирования программ, называемое как
структурное программирование, позволяет через определенные
ограничения на изменение содержания счетчика команд в тексте
программы наглядно показать структуру программы. В программе
счетчик команд может быть объектом, позволяющий доступ к
компонентам структуры данных (списка, массива или записи).
Динамика содержания счетчика команд осуществляется в тех
частях программы, где выполняются условные ветвления и циклы.
Операторы для записи команд условного ветвления и циклов
для разных языков программирования в силу их высокого приоритета
приведены во многих учебных и научных изданиях. Поэтому, не
приведя формат записи этих структур управления, скажем лишь то,
что выполнение операции зависит от выполнения условия. В
ожидающем операторе цикла сначала проверяется условие, и пока
условие выполняется и выполняется определенное действие. В
итерационном операторе цикла сначала выполняется действие, затем
проверяется условие. Если условие выполнится, то осуществляется
выход из цикла. В замкнутом операторе цикла выход из цикла
осуществляется
по
специальному
указанию
(например,
использование ключевого слова exit). На более высоком уровне
ожидающий и замкнутый операторы цикла может представлять
единое целое, тогда счетчик команд имеет единичное приращение на
оператор цикла. Рассматривая циклы с точки структурных позиций, и
применив понятие функции из математики, мы получаем понятие
подпрограмм или процедур. Здесь главными являются имена
процедур и передача информации между процедурой и другими
структурами программы через параметры процедуры. При чем
счетчик команд при выполнении процедуры имеет также приращение
на единицу. На более высоком уровне абстракции процедура
воспринимается как один оператор.
Подпрограммы делятся на два вида: функции и процедуры. Они
функционально
одинаковы.
Однако
функция
предполагает
обязательное возвращение значения, а процедура может не
возвращать значение. Также необходимо отметить особую форму
вызова процедур – рекурсивную форму, для которой необходима
особая специальная структура управления. Особенность данного
вызова состоит в том, что процедура вызывает саму себя.
Анализ языков программирования с позиции абстракции
проведен также М.Бен-Ари.
М.Бен-Ари выдвинул следующее определение «Язык
программирования – это механизм абстрагирования. Он дает
возможность программисту описать вычисления абстрактно и в то же
время позволяет программе (обычно называемой ассемблером,
компилятором или интерпретатором) провести это описание в
детализированную форму, необходимую для выполнения на
компьютере.
… Из концепции абстракции вытекает общее правило: Чем
выше уровень абстракции, тем больше деталей исчезает.
Если вы пишите программу на С, то теряете возможность задать
распределение регистров, которая есть на языке ассемблера; если вы
пишите на языке Prolog, то теряете имеющуюся в С возможность
определить произвольные связанные структуры с помощью
указателей.
Существует
естественное
противоречие
между
стремлением к краткому, ясному и надежному выражению
вычисления на высоко абстрактном уровне и стремлением к гибкости
подробного описания вычисления. Абстракция никогда не может быть
такой же точной или оптимальной, как описание низкого уровня»
(Бен-Ари М., с.12-13.).
Рассмотрим абстракцию по отношению к окружающему нас
миру.
Опираясь на теорию диалектической логики Э.В.Ильенкова
К.Фути, Н.Судзуки заключают: «Окружающий нас мир предельно
конкретен, однако если абстрагировать его с позиций познания, то мы
придем к понятиям «вещей» (объектов) и отношений, существующих
между ними. Эти два типа понятий весьма глубоки и признаны как бы
«атомарными», т.е. не допускающими дальнейшего дробления»
(Фути К., с.45).
Решение практических задач на компьютере требует
определения информационной сути решаемой проблемы. Поэтому
построение
информационной
модели
для
последующей
компьютерной реализации неизбежно приводит к определению
приоритета объектов и отношений между ними.
Объект может иметь свою внутреннюю структуру, которая
может дальше расчленяться на простые компоненты. Но объекты без
отношений, которые существуют между данными объектами, не
могут представлять полноценную информационную модель.
Рассуждая далее, авторы (Фути К.) отмечают, что «точка зрения,
рассматривающая в качестве основы вещи, проявляется в объектноориентированном
программировании,
а
точка
зрения,
рассматривающая в качестве основы отношения, - в логическом
программировании». И отмечают, что, по сути, эти две точки зрения
программистов не противоречат друг другу, а взаимно дополняют
друг друга в постижении окружающего нас мира и жаркие дискуссии
относительно предпочтительности точек зрения спадут по мере
развития исследования в плане технических реализации методов
преобразований представлений, основанных на обеих точках зрения.
На современном этапе исследований выявлены возможности
сочетания
парадигм
программирования
(Парадигмы
программирования//dnpetrov.narod.ru;
Mathematica
как
язык
программирования//Exponenta Pro; ООП//in.Form Progress arch.htm;
Компонентное ПО и объектная прикладная среда Oberon//www.rol.ru;
http://www.uran.donetsk.ua/masters/2002/fvti/drugobitskiy/library).
Рассмотрим парадигмы программирования с позиции
абстракции и возможности их сочетания.
Современные компьютеры построены по фон Неймановским
принципам. Это значит, что устройства компьютера работают под
управлением последовательной выборки команд из памяти, то есть
современные компьютеры практически все ориентированы на
последовательные вычисления. Поэтому наиболее близкой по
технической реализации для современных компьютеров является
такая парадигма, имеющая естественную реализацию семантики на
нынешних компьютерах - императивное программирование.
Для определения методологии программирования нами
исследованы
описание традиционного синтаксиса языков
программирования, поддерживающие методологии, традиционные
средства структурирования программ, принятые в этих языках,
семантика языков и рассмотрен класс задач, для которого эти
методологии дают достаточно эффективные решения.
Современные программы есть множество определений
взаимосвязанных программных объектов таких, как типы данных,
функций,
процедуры
и
т.д.
Главным
в
методологии
программирования является описание алгоритмической части
определений программы, при чем программа должна быть
максимально структурирована. Структурированность программы
позволяет отойти от деталей архитектуры конкретного компьютера и
программировать практически в терминах предметной области задачи.
Как показывает исследование, современные языки в алгоритмической
части поддерживают несколько парадигм программирования.
В императивном программировании имеется одна особенность,
касающаяся изменения состояния по управлению функции переходов.
Примером этого может служить операция присваивания. В силу того,
что операция присваивания меняет содержание одной и той же части
памяти, которая отведена под значение выражения, то есть старое
значение, которое хранилось в этой части памяти, уничтожается
новым значением.
Исполнение каждого оператора записывается как изменение
значения всех используемых программой ячеек памяти, и состояние
стека возвратов из подпрограмм.
«Императивное программирование наиболее пригодно для
реализации небольших подзадач, где очень важна скорость
исполнения на современных компьютерах. Кроме этого, работа с
внешними устройствами, как правило, описывается в терминах
последовательного исполнения операций ("открыть кран, набрать
воды"), что делает такие задачи идеальными кандидатами на
императивную реализацию»16.
Рассмотрим параллелизм и параллельное и событийноуправляемое программирование с позиции теории абстракции.
«Параллелизм – это термин, используемый для обозначения
одновременного выполнения нескольких программ без уточнения,
является вычисление параллельным на самом деле или только
кажется» (Бен-Ари М., с.219).
16
Парадигмы программирования. //dnpetrov.narod.ru
Параллельные структуры управления связаны с потоком
управления и потоком данных.
В фон-неймановской модели реализован последовательный
поток управления, в котором передача управления неявно
определяется счетчиком команд или в явном виде командой перехода.
Для реализации параллельной потока управления используются
специальные операторы параллельной передачи управления (команда
разветвления, команда синхронизации разветвленных потоков
управления и т.д.).
Аппаратно параллельный поток управления реализуется на
современных ЭВМ через "векторную" или "матричную" архитектуру.
На таких ЭВМ имеются несколько автономных процессоров, которые
могут обмениваться информацией о результатах своих вычислений.
Сети компьютеров с возможностью распределенных вычислений
могут быть примером подобной архитектуры. Архитектура
современных микропроцессоров допускают параллельное исполнение
отдельных операций. Потоки данных при этом организуются таким
образом, что при достаточном объеме необходимых данных для
выполнения
определенного
вычисления,
оно
выполняется
немедленно. Также при наличии соответствующих данных
вычислительные процессы выполняются параллельно. Поскольку
вычисления происходят под действием потока пересылаемых данных,
то подобные вычисления называются вычислениями, управляемые
данными.
Таким образом, параллельное выполнение нескольких
процессов или программных компонентов требует решения проблем
взаимодействия и синхронизации. Процессы являются абстракцией
высокого уровня. Они могут работать параллельно и обмениваться
данными, результатами вычислений через каналы связи.
Нередко требуется синхронизация выполнения процесса с
другими процессами. Для этого реализуется взаимное исключение,
т.е. исключается одновременное обращение двух процессов к общему
ресурсу. Таким ресурсом могут быть общие данные на запоминающем
устройстве.
Э.Дейкстра определил абстракцию синхронизации высокого
уровня, которая называется семафором. Семафор - это переменная (s),
значение которой целочисленное и для этой переменной определены
команды wait(s), signal(s). Пока значение семафора неположительное,
процесс, выполняющий команду wait(s) блокируется, и как только
значение семафора положительно, его значение уменьшается
процессом на единицу. Signal(s) также выполняется без возможности
прерывания другим процессом между загрузкой и сохранением
значения семафора.
Параллелизм может поддерживаться операционной системой,
языками программирования на уровне процессов и аппаратурой на
уровне микроопераций. Операционные системы позволяют
организовать мультипрограммный режим (когда предоставляется
возможность
одновременного
использования
компьютера
несколькими пользователями), многозадачный режим (когда
одновременно
выполняется
несколько
компонентов
одной
программы) (Парадигмы программирования.//dnpetrov.narod.ru; БенАри М.; Дейкстра Э.).
Модель параллельных процессов с общей памятью можно
представить следующим образом (Рисунок 4):
Память
процесс 1
процесс 2
…
процесс k
Рисунок - 4 – Модель параллельных процессов с общей памятью.
В
последнее
время большее значение
приобретает
распределенное программирование. Здесь проблема синхронизации и
взаимосвязи осуществляется синхронной
передачей сообщений.
Модель параллелизма с передачей сообщений может быть
представлена следующим образом (Рисунок 5):
процесс 1
процесс 2
сообщение
Рисунок - 5 – Модель параллелизма с передачей сообщений.
Синхронная модель параллелизма может быть реализована как в
самом
языке
программирования
(язык
параллельного
программирования Oссам, Ada), так и виде услуг операционной
системой.
Известна модель параллелизма Linda, в которой процесс может
по выбору отправить сообщение в глобальную кортежную область,
где каждое сообщение представляет собой последовательность
значений разных типов. Для размещения кортежа в кортежную
область выполняется команда - out, пока не существует
соответствующий кортеж выполняется команда блокировки и
дальнейшего удаления - in, операция read блокирует кортежную
область, пока не существует соответствующий кортеж, но без
дальнейшего удаления. Синхронизация осуществляется в процессе
определения числа элементов кортежа и их типов. Если
соответствующий кортеж существует, то может выполниться
операция получения, иначе процесс будет остановлен.
В системе параллельных процессов каждый отдельный процесс
обрабатывает события. События могут быть как общими для всей
системы, так и индивидуальными для одного или нескольких
процессов. Жизненным примером может служить управление
уличным движением. Поэтому понятие события является для таких
задач естественным. Подобное программирование
называют
событийно-управляемым.
В
событийно-управляемом
программировании процессы существуют отдельно, для связи между
ними используется посылка сообщений, которые порождают в свою
очередь новые события. Событийно-управляемое программирование и
объектно-ориентированное программирование имеют много общего.
Исследования параллелизма,
параллельного и событийноуправляемого программирования с позиции теории абстракции
показали, что, параллелизм является не только надстройкой над
другими вычислительными моделями; отдельные методологии
программирования имеют естественную реализацию параллелизма.
Также, рассмотрим с позиции теории абстракции объектноориентированное программирование.
В
настоящее
время
объектно-ориентированное
программирование находится в интенсивном развитии. Многие языки,
поддерживающие традиционный подход к программированию,
содержат ряд объектно-ориентированных расширений.
Объектно-ориентированное программирование представляет
собой метод программирования, который весьма близко напоминает
человеческое поведение и является естественной эволюцией более
ранних нововведений в разработке языков программирования.
Объектно-ориентированное программирование также является более
модульным и более абстрактным, чем предыдущие попытки
абстрагирования данных и переноса деталей программирования на
внутренний
уровень.
Объектно-ориентированный
язык
программирования характеризуется тремя основными свойствами:
- инкапсуляция (комбинирование записей с процедурами и
функциями, манипулирующими полями этих записей и формирует
новый тип данных объект),
- наследование (определение объекта и его дальнейшее
использование для построения иерархии порожденных объектов с
возможностью для каждого порожденного объекта, относящегося к
иерархии, доступа к коду и данным всех порождающих объектов)
- полиморфизм (присваивание действию одного имени, которое
затем совместно используется вниз и вверх по иерархии объектов,
причем каждый объект иерархии выполняет это действие способом,
именно ему подходящим).
Объекты моделируют характеристики и поведение элементов
окружающего мира. Объекты содержат вместе все свои
характеристики и особенности поведения, т.е. располагают
собственными данными, представленными как ссылки на другие
объекты. Данные о моделируемом объекте составляют содержимое
поля объекта. Поведение объекта задаются через подпрограммы –
процедуры и функции, которые называются методами и описываются
в
описании
объектового
типа.
Объектно-ориентированное
программирование
является
событийно-управляемым
программированием. Поэтому одним из важнейших принципов
объектно-ориентированного программирования является то, что
данные управляют потоком кода, а код манипулирует образами и
значениями данных.
Объединение в объекте кода и данных называется
инкапсуляцией, причем доступ к полям объекта осуществляется
только с помощью методов этого объекта.
Если код и данные являются разделенными элементами, то
всегда существует опасность вызова правильной процедуры с
неверными данными или ошибочной процедуры с правильными
данными.
Объект осуществляет синхронизацию кода и данных путем
совместного построения их описаний. Реально, чтобы получить
значение одного из полей объекта, вы вызываете относящийся к этому
объекту метод, который возвращает значение нужного поля. Чтобы
присвоить полю значение, нужно вызвать метод, который назначает
данному полю новое значение.
Таким образом, объекты обмениваются между собой
сообщениями. При получении объектом сообщения запускается
соответствующий
ему
метод
(обработчик
события).
Функциональность программы определяется совокупностью ее
реакций на определенные события.
В коде программы используется экземпляр объекта. Поля
данных объекта и тело методов данного объекта используют одну и
туже область действия, т.е. часть программы на которую
распространяется описание. Когда объект вызывает метод, то
выполняется неявный оператор with, связывающий объект и его
методы в области действия. Неявный оператор with выполнятся путем
передачи невидимого параметра Self методу всякий раз, когда этот
метод вызывается. Параметр Self является указателем на экземпляр
объекта, осуществляющего вызов соответствующего метода.
Параметр Self является частью физического кадра стека при всех
вызовах методов. Методы, используемые как внешние, должны
учитывать параметр Self при получении доступа к параметрам метода
в стеке.
Поскольку методы и их объекты разделяют общую область
действия, то формальные параметры метода не могут быть
идентичными любому из полей данных объекта, т.е. формальные
параметры процедуры не могут быть идентичными локальным
переменным этой процедуры.
Объекты могут наследовать характеристики и поведение
родительских объектов (объектов предков). Целью науки является
установление характеристик объектов и их взаимосвязи в
окружающем мире. Для этого во многих случаях приходят к
построению
генеалогического
дерева.
Например,
известны
генеалогические деревья для насекомых, растений, млекопитающих,
химических элементов, элементарных частиц и космических галактик.
Все они имеют описание: с единой общей категорией в вершине и все
увеличивающимися число категорий, которые лежат ниже этой
единственной категории, и разворачиваются веером по мере
приближения к границам разнообразия. Наивысший уровень самый
общий и ее описание более общее, а каждый последующий уровень
является более специфическим, чем предыдущий и менее общим.
Объектно-ориентированное программирование
является
прямым следствием усложнения современных приложений и
максимально эффективным средств управления сложностью.
Объектно-ориентированное программирование вносит рациональный
порядок в структуру программного обеспечения, как таксономическая
схема устанавливает порядок, не устанавливая пределов.
Объектно-ориентированное
программирование
является
процессом построения генеалогического дерева для структур данных,
и его особенностью является механизм, с помощью которого типы
данных могут наследовать характеристики более простых, более
общих типов.
Если метод для обработки сообщения не найден, сообщение
будет перенаправлено объекту-предку. Таблицу обработчиков
событий и объекты- предки выделяют в отдельный объект,
называемый классом данного объекта. Объект имеет ссылку на
объект, представляющий его класс. Объект является экземпляром
своего класса. Тип объекта может определяться как самостоятельно,
так и определяться как потомок существующего типа путем
помещения порождающего (родительского) типа. Процесс, с
помощью которого один тип наследует характеристики другого типа,
называется наследованием. Если характеристика однажды определена,
то все категории расположенные ниже данного определения, имеют
эту характеристику.
Поскольку классы также представляют собой объекты, то
существует так называемый метакласс, определяющий поведение,
общее для всех классов.
Приведем основные свойства объектов:
1) Так как один объект может воздействовать на другой
исключительно при помощи посылки последнему сообщений, он не
может как-либо непосредственно работать с собственными данными
"собеседника", и, следовательно, не может нарушить их внутреннюю
согласованность. Это свойство (сокрытие данных) принято называть
инкапсуляцией.
2) Так как объекты взаимодействуют исключительно за счет
обмена сообщениями, объекты-собеседники могут ничего не знать о
реализации
обработчиков
сообщений
у
своего
визави.
Взаимодействие
происходит
исключительно
в
терминах
сообщений/событий, которые достаточно легко привязать к
предметной области. Это свойство (описание взаимодействия
исключительно в терминах предметной области) называют
абстракцией.
3) Объекты взаимодействуют исключительно через посылку
сообщений друг другу. Поэтому если в каком-либо сценарии
взаимодействия объектов заменить произвольный объект другим,
способным обрабатывать те же сообщения, сценарий так же будет
реализуем. Это свойство (возможность подмены объекта другим
объектом
со
сходной
структурой
класса)
называется
17
полиморфизмом .
Все эти свойства по отдельности встречаются и в других
методологиях программирования. Так, локальные переменные
инкапсулированы
в
процедуре.
Объектно-ориентированное
программирование достаточно гармонично их сочетает.
Если
объектно-ориентированное
программирование,
параллельное
программирование
являются
расширениями
императивного
программирования,
то
функциональное
программирование является одним из альтернатив императивного
программирования.
Абстрактные концепции вычисления (уточнение понятия
алгоритма, т.е. описание класса всех рекурсивных функций как класс
числовых функций, определенных в некоторой формальной системе)
(Дейкстра Э.) были разработаны задолго до появления компьютеров.
Предложенные простые модели вычисления известны как машины
Тьюринга и Лямбда-исчислением. В последующем было
сформулирован тезис Черча-Тьюринга: «Любое исполнимое
вычисление может быть выполнено на любой из этих моделей» (БенАри М., с.28-29).
Императивное программирование основано на абстрактном
вычислительном
устройстве
(машина
Тьюринга-Поста),
а
функциональное программирование основано на -формализме -счислении Чёрча.
-исчисления основаны на математическом понятии функции.
Современные языки функционального программирования имеют
теоретические основания. В силу того, что в них типы и контроль
соответствия типов являются базисными понятиями, повысилось
надежность и эффективность программ.
В
-исчислении
числа,
кортежи,
списки,
имена
предопределенных функций могут быть константами. Результатом
вычисления применения предопределенной функции к аргументам
будет значение этой функции в данном узле. Результатом применения
-абстракции к аргументу будет подстановка аргумента в выражение
-абстракции. -абстракции в свою очередь то же являются
выражениями, поэтому могут быть аргументами. -исчисление Чёрча
позволяет использовать только имена, -абстракции от одного
аргумента и применения выражений к выражениям. Также можно
Парадигмы программирования.// dnpetrov.narod.ru,
http://www.uran.donetsk.ua/masters/2002/fvti/drugobitskiy/library
17
описать и константы, списки, логические значения и ветвление. В исчислении можно выразить рекурсию, не используя для этого имени
функции в теле функции.
Важными свойствами функционального программирования
являются аппликативность и настраиваемость. Аппликативность
проявляется в том, что программа является выражением,
составленным из применения функций к аргументам. Свойство
настраиваемости проявляется в том, что каждый программный объект
является выражением, поэтому можно порождать новые программные
объекты по образцу, как значения соответствующих выражений, то
есть, применяя порождающие функции к параметрам образца.
Поскольку в функциональном программировании порядок
вычисления подвыражений не имеет значения, то оно может быть
реализовано на платформах, поддерживающих параллелизм.
Потоковая модель функционального программирования, является
представлением функциональных программ в терминах систем
взаимодействующих процессов.
Функциональное программирование в основном, применяется
для решения задач, связанных с искусственным интеллектом (задачи
распознавания образов, общение с пользователем на естественном
языке, реализацию экспертных систем, автоматизированное
доказательство теорем, символьные вычисления), которые не входят в
рамки традиционного прикладного программирования. В связи с этим
функциональному программированию уделяется мало внимания в
учебных программах по информатике.
Рассмотрим
с
позиции
абстракции
логическое
программирование.
Основой логического программирования является отношения и
предикатная логика. Поскольку предикатная логика
является
некоторой формализацией человеческого мышления (формализацией
доказательств в математике), то логическое программирование имеет
определенное преимущество перед языками последовательного типа.
Логическое
программирование
характеризуется
двумя
основными абстракциями (М.Бен-Ари). Идея первой абстракции
заключается в том, что вместо управляющих операторов,
предоставляется механизм управления, который ко всей программе
применяется единообразно. Данный механизм основан на понятии
доказательства в математической логике: программа представляет
собой набор логических формул, которые предполагаются истинными
(аксиомы), а вычисление – как попытка доказать формулу на основе
аксиом программы. Вторую абстракцию составляют то, что для
создания и декомпозиции структур данных вместо операторов
присваивания и явных указателей используется обобщенный
механизм сопоставления с образцом, названный унификацией, при
которой явными будут абстрактные структуры данных (записи,
списки, деревья) и неявными указатели на компоненты структур
данных.
Различия между концепциями функционального и логического
программирования Бен-Ари М. определил следующим образом:
1)
Логическое
программирование
использует
(двунаправленную) унификацию, что сильнее (однонаправленного)
сопоставления с образцом, используемого в функциональном
программировании.
2) Функциональные программы являются однонаправленными в
том смысле, что, получив все аргументы, программа возвращает
значение. В логических программах любой из аргументов цели может
остаться неопределенным, и ответственность за его конкретизацию в
соответствии с ответом лежит на унификации.
3) Логическое программирование базируется на машине вывода,
которая автоматически ищет ответы.
4) Функциональное программирование оперирует с объектами
более высокого уровня абстракции, поскольку функции и типы можно
использовать и как данные, в то время как логическое
программирование более или менее ограничено формулами на
обычных типах данных.
5) Точно так же средства высокого порядка в функциональных
языках программирования естественно обобщаются на модули, в то
время
как
логические
языки
программирования
обычно
«неструктурированны».
В настоящее время наряду с "промышленной" реализацией
языка Пролог существует расширения: язык с элементами
функционального программирования -Пролог, язык, в котором
семантический анализ может быть описан алгоритмически средствами
самого языка (Goedel), Mercury (версия снабженная системой
полиморфных типов, аналогичной используемой в современных
функциональных языках) (Дименштейн Р., Яковлев А.).
Программирование в ограничениях (constraint programming)
является новым направлением в декларативном программировании.
Программирование в ограничениях - это программирование в
терминах "постановок задач". Семантически, программирование в
ограничениях означает, что исполнение программы есть нахождение
значений переменных и каждая задача рассматривается как своего
рода ограничение относительно значения переменных, которые
должны быть решением этой задачи. В задачах исследования
операций и реализации искусственного интеллекта часто используется
некоторое "пространство решений", сужением которого достигается
необходимый результат. Такие "сужения" естественным образом
представляются как ограничения.
Бен-Ари полагает, что дальнейшие исследования «в этом
направлении открывают новые перспективы повышения уровня
абстракции,
так
и
эффективности
логических
языков
программирования» (Бен- Ари М., С.336).
«Так, о всех парадигмах «без состояния» было отмечено, что
они допускают естественную параллельную реализацию. Аналогично,
объекты как сущности, взаимодействующие между собой при помощи
посылки сообщений, можно рассматривать как в контексте
императивного, так и, например, логического программирования:
вызов обработчика сообщения будет сводиться к доказательству
некоторого утверждения; или функционального программирования:
вызов обработчика сообщения - вычисление некоторого выражения»
все парадигмы допускают параллельную реализацию» (Парадигмы
программирования.//dnpetrov.narod.ru). Таким образом, парадигмы
программирования можно сочетать и наиболее «полезно» для
практики использовать их в совокупности, что позволяют
современные языки программирования.
Язык
программирования Mathematica поддерживает все
основные современные методы программирования. Например,
- процедурное программирование,
- операции со списками (в системе многие операции
автоматически распространяются на списки, есть возможность
объединения вложенных списков и разбиение предыдущего списка на
подмножества длины 2),
- функциональное программирование (команда является
«чистой функцией» и вместо символа подставляется аргумент),
- программирование с помощью правил (есть возможность
замещения как одного выражения, так и последовательности
выражений),
-объектно-ориентированное
программирование
(задание
определений, которые будут связываться с объектом),
-операции со строками.
Наряду с этим, данный язык не ограничивает программиста
одним конкретным стилем программирования, т.е. «позволяет
выбирать из нескольких стилей или смешивать различные стили».
В современных публикациях отмечается «успешный опыт
интеграции выразительных возможностей других парадигм в ООП» 18,
и что «объектные методы - это один из этапов в эволюции
информатики. Они позволяют создавать формируемые из
компонентов приложения с согласованными интерфейсами и
повторно используемым кодом. Однако данная технология
предъявляет очень высокие интеллектуальные требования к
разработчикам. Её нелегко освоить тем, кто воспитан на
традиционных подходах»19.
Вызывает большой интерес компонентная ориентированность
современных языков (имеем в виду С#, Oberon Pascal),
представляемых на современном рынке программных средств.
Особенностью
компонентно-ориентированных языков является
добавление в структуру языка всех концепций, необходимых для
создания компонентов. Например, такие концепции как методы,
свойства, события, атрибуты и документации. Атрибуты позволяют
добавлять типизированные метаданные к любому объекту. А
возможность работы с XML тэгами дает компилятору С# возможность
создания документации из исходного кода. Интеграция С# с XML
является одной из важных концепций программирования для
Интернет, которая является новой моделью программирования и
изменяет способы создания простых сервисов, структуры сообщений
для взаимодействия, меняет оформление пользовательского
интерфейса. Ведущий разработчик Microsoft Андерс Хейлсберг
(Anders Hejlsberg) отмечает важность проблемы создания
распределенных
приложений,
которая
решена
в
модели
программирования на С#, и в целом является достоинством всей
платформы .NET (Andrew Filev).
Так, возникновение технологии компонентного программного
обеспечения предполагает симбиоз языка программирования и
операционной системы, образующих единое целое.
В новой модели программирования более мощным становится
возможность работы со структурами данных, в частности
преобразования типов данных: возможность преобразования объектов
в простые типы и преобразование атрибутов в элементы. За счет
атрибутов появляется возможность добавлять определенную
информацию к типам и членам, то есть «помимо того, чтобы сказать,
является метод public или private, хочется еще сказать, позволяет ли
18
ООП // in.Form Progress arch.htm
19
Компонентное ПО и объектная прикладная среда Oberon. //www.rol.ru
он удаленный вызов, может ли он быть Web сервисом, или
представляется ли он как XML. Мы добавили атрибуты для
реализации механизма настроек, а потом мы применили их во всей
инфраструктуре Web сервисов и XML. Мы также дали возможность
добавлять атрибуты к классам, и к полям классов, говорящие: «Когда
этот класс представляется в виде XML, он должен стать «этим»
именем тэга, и должен поместиться в «это» пространство имен XML».
Мы даем возможность указывать поля, которые в одном месте будут
элементами, а в другом атрибутами… Все это происходит в одном
месте. Это отличается от файлов доопределений или разнообразных
инфо и паттернов именований» (Andrew Filev).
Указанные преобразования выполняются, несомненно, на более
высоком уровне абстракции и обосновывают тенденцию развития
методологических подходов к обучению программированию на
основе теории абстракции.
Вышеописанные исследования парадигм программирования
позволили
выявить
следующую
классификацию
языков
программирования в зависимости от уровней абстракции (Рисунок 6):
Компонентное (С#, Oberon Pascal)
5
уровень
Объектно-ориентированное (Object Pascal)
4
уровень
Функциональное, Логическое (Lisp, Prolog)
3
уровень
Процедурное (Фортран, С, Паскаль, Ада)
2
уровень
Ассемблер
1
уровень
Рисунок – 6 – Классификация языков программирования по уровню
абстракции данных.
В
заключение
выделим
следующие
тенденции
методологических подходов к обучению программированию:
развития
-
профессиональная направленность обучения программированию;
- фундаментализация обучения на основе междисциплинарных связей;
- обучение программированию на основе внутренних связей системы
курсов информатики;
- обучение программированию на основе метода абстракции.
1.3 Теория
программированию
отбора
содержания
обучения
Содержание обучения – это педагогически обоснованная,
логически упорядоченная и текстуально зафиксированная в учебных
программах научная информация о материале, подлежащем
изучению, представленная в свернутом виде и определяющая
содержание деятельности учащихся для достижения обучения
(Гершунский Б.С., с.12).
Проблемы отбора содержания обучения рассмотрены в трудах
И.Я.Лернера, М.Н. Скаткина, Ю.К. Бабанского, И.И.Логвинова,
М.В. Швецкого, И.А.Лебедевой и другие.
Во многих педагогических исследованиях при решении
проблем, связанных с отбором содержания используются следующие
три базовых дидактических элемента: дидактические основания
отбора, принципы отбора и критерий отбора.
Под
дидактическими
основаниями
отбора
понимают
совокупность научных, дидактических и методологических знаний,
необходимых для этой процедуры. Под принципами отбора понимают
указания на общие направления деятельности по отбору содержания,
а под критериями отбора – конкретные требования, определяющие
отбор (Теоретические основы
содержания общего среднего
образования, с.84-211).
И.Я.Лернер подчеркивает, что выделение структурных
элементов культуры позволяет определить и структурные элементы
содержания образования. В нашем понимании для установления
соответствия содержания обучения с потребностями современного
общества необходимо определить компоненты информационной
культуры, которые должны быть реализованы в процессе обучения.
В.С. Леднев отмечает, что ведущим видом деятельности
является обучение, направленное непосредственно на усвоение опыта.
В структуре опыта личности В.С.Ледневым выделены следующие
взаимно пересекающие компоненты:
- качество личности (познавательные качества, направленность
личности, трудовые и другие качества);
- опыт предметной деятельности, дифференцируемый по
степени общности ее видов;
- опыт личности, дифференцируемый по принципу теорияпрактика (знания и умения);
- опыт личности, дифференцируемый по творческому признаку
(репродуктивная и творческая деятельность).
По В.С.Ледневу одним из факторов, определяющих структуру
содержания образования является структура объекта изучения.
Объектом изучения является процесс программирования,
который требует активной мыслительной деятельности студентов.
Поэтому при отборе содержания необходимо с целью определения
иерархии понятий, связей и отношений, а также с целью возможности
реализации дидактических принципов
провести логикодидактический анализ содержания.
Логико-дидактический анализ учебного материала по
программированию целесообразно проводить следующим образом:
- определение целей изучения,
- определение
основного
материала,
логической
последовательности, и математической основы,
- определение методов, средств и формы достижения целей
изучения.
Исследование структуры научного знания в области
программирования (п.п. 1.1-1.2), различные подходы к классификации
наук позволило детально представить структуру содержания
образования в плане конкретизации и систематизации нашей
предметной области.
Принципы структурирования содержания образования такие,
как двойное вхождение базисных компонентов в систему
образования; функциональная полнота образования должны быть
основополагающим в отборе содержания.
Содержание обучения, как одна из составляющих обучения
является дидактически самостоятельным понятием. По смыслу
содержание обучения отличается от понятий «содержание
образования» и «учебный материал».
Необходимость
периодического
обновления
учебного
материала по программированию, обусловленная
ускоренными
темпами развития аппаратных и программных средств, требует
использования новых методов отбора содержания.
Началом отбора содержания является построение логической
структуры – графа содержания.
Далее,
необходимо через
тестирование определить объем тезауруса, известного студентам на
начало данного этапа обучения - содержание начального тезауруса.
После этого формулируются принципы отбора содержания. На основе
этих принципов осуществляется отбор из графа необходимых
учебных компонентов и их дополнение в случае необходимости.
Следующим важным шагом отбора содержания обучения является
анализ и коррекция построенного в начале графа содержания
обучения.
Данная схема отбора содержания основывается во первых, на
компьютерных методах получения информации об объекте, во
вторых, на методах имитационного моделирования, в третьих,
статистической обработке данных.
Выбор статистических методов обусловлен многофакторностью
процесса отбора содержания курса программирования. Определение
содержания образования необходимо осуществить с учетом
следующих положений:
1) использование
содержательных
линий
курса
программирования для формирования базисных содержательных
блоков;
2) учет принципа модульности при построении содержания
обучения;
3) оптимальная последовательность изучения материала
каждого модуля;
4) нелинейное
структурирование
содержания
обучения
обусловливает создания модели содержания обучения с указанием
логических связей между отдельными модулями;
5) оптимальная последовательность системы модулей.
По мнению создателя Империи Microsoft Билл Гейтса
существует около пятидесяти основных теорий индивидуального
подхода к обучению. Он отмечает, что «Большинство
людей
эффективно обучается, используя то или иное сочетание всех
перечисленных способов. Кроме того, каждый человек имеет свои
особые склонности, уровень способностей и жизненный опыт, что
может усиливать или, напротив, ослаблять мотивацию к обучению.
Высокая мотивация позволяет научиться по сложным учебникам, а ее
отсутствие делает трудными для усвоения даже такие материалы, как
видеозаписи. Новое ПО способствует успеху обучения независимо от
избранного способа или темпа. Оно способно представлять
информацию во множестве различных форм и позволяет
персонализировать ее намного легче, чем при использовании
бумажного носителя».
В связи с этим, отбор содержания обучения программированию
должен проводиться с учетом
возможного компьютерноориентированного обучения. Сложность качественного анализа
учебного материала и системного отбора содержания требует
построение своих выводов преимущественно на основе метода
многомерного
статистического
анализа
(Использование
математических методов для отбора содержания образования будет
рассмотрено позже, в 3 главе).
Отбор содержания должен предусматривать детализацию
учебной
информации
на
учебные
элементы,
определить
рациональную последовательность их изучения, и по каждому
учебному элементу разработку процесса обучения.
«Учебным элементом называют подлежащие изучению
объективно существующие предметы, явления, процессы, их
свойства, связи и отношения между ними, методы их применения,
способы действия» (Белошапка В., с.16).
В монографии Е.Ы.Бидайбеков, С.Г.Григорьев, В.В.Гриншкун
отмечают, что построение корректной системы понятий способствует
упрощению как самого содержания образовательной области, так и
технологии его определения. Указывая на отрицательную роль
«перегруженной» системы понятий, авторами предложен метод
формализации содержания обучения и разработки средств обучения
на основе формирования систем понятий образовательной области,
сочетающих в себе как сами понятия, так и различного вида связи
между ними.
Для подразделения учебной информации целесообразно
применять
метод графов (Бидайбеков Е.Ы., Григорьев С.Г.,
Гриншкун В.В.; Ерецкий М.И., Пороцкий Э.С.).
Граф – это
множество точек (вершин) и соединяющие их линий (дуг, ребер).
Граф учебной темы изобретает все входящие в нее учебные элементы
и их структурные связи. Учебные элементы представляют в виде
вершин, а связи – в виде ребер. Вершины располагают на
горизонталях, называемых порядками. В один порядок входит
учебные элементы, отведенные определенной общностью. Краткое
определение этой общности называют основанием порядка.
Основание указывают в правой части горизонтами порядка с
порядковым номером римской цифрой. Учебные элементы
обозначают арабскими цифрами. Названия учебных элементов и
характеристики цели обучения по каждому из них помещают в
специализации.
М.В.Швецким предложено построение логической структуры
научного направления (графа науки) и последующий отбор из него
логической структуры учебного предмета (графа учебной
дисциплины) с помощью методических принципов отбора
содержания, в числе которых:
- необходимость учета соотношения науки и учебного предмета
(принцип дидактической изоморфности, принцип единства
содержания, принцип перспективности, принцип минимизации);
- необходимость учета отечественного и международного опыта
формирования содержания учебных программ;
- дидактический принцип научности обучения, который тесно
связан с принципом фундаментальности – основным принципом
построения многоуровневых образовательных систем.
Необходимость включения каждого учебного элемента в
логическую структуру содержания обучения определяется целями
обучения. Однако, «именно на основании выделенных целей
определяются содержание, методы и средства обучения. При этом
необходимо учитывать всевозможные двусторонние связи между
ними: следует помнить о том, что любое изменение одного из
компонентов приводит к изменению остальных» (Балыкбаев Т.О.,
с.147).
Согласно В.П. Беспалько
относительно каждого учебного
элемента необходимо учитывать:
- четыре последовательных уровня усвоения как способности
решать различные задачи;
- четыре уровня научности изучения предмета (ступень
абстракции);
- сложность и трудность содержания обучения;
- степень автоматизации усвоения;
- качество усвоения – «осознанность»;
- прочность усвоения.
Учет уровней научности изучения предмета (ступеней
абстракции) предполагает включения в классификационные вопросы
отбора содержания классификации парадигм программирования, на
основе метода абстракции (см. п.1.2).
Обучение
программированию
означает
логическую
организацию изучаемого материала и применения теории для
решения конкретных проблем. При обучении программированию
студенты должны добывать знания, не заучивая готовый материал, а
опытным путем.
Решение данной педагогической проблемы требует определения
сути профессиональной деятельности при программировании.
Практически задача программисту представляется в качестве
конкретной системы объектов, реального объекта (механического,
физического, биологического и т.д.) Совокупность данных, которые
первоначально имеет программист, не систематизированы и
представляют собой как конкретные существенные, так и не
существенные характеристики объектов изучаемой системы. Данные
могут иметь определенное средство в структуре, в свойствах
отношений между объектами. После получения общих данных об
изучаемой системе, программист начинает абстрагировать и изучать
структуру связей во множестве объектов, лишенных частных
характеристик конкретных систем. Таким образом, получают
абстрактную теорию, систематизирующую множество конкретных
систем, которые представляют модель изучаемой системы.
Деятельность программиста отражает следующие аспекты
деятельности, связанные с решением практической задачи на
компьютере:
1) накопление фактов, выявление данных /индуктивный синтез,
аналогия, обобщения/;
2) выделение формально-логического содержания (понятия,
аксиомы) из совокупности данных;
3) дедуктивное построение теории, основ на понятиях, система
/построение модели/;
4) проверка модели на конкретных данных.
Таким образом, деятельность программиста можно представить
как мыслительную деятельность, протекающую по следующей схеме:
1) формально-логическая организация данных,
2) построение модели (информационной и/или математической,
компьютерной);
3) приложение модели;
4) экспериментальная проверка модели и внедрение проекта.
Развитие мыслительной деятельности осуществляется в
процессе
обучения.
Следовательно,
методика
обучения
программированию должна быть направлена на развитие
мыслительной деятельности.
Одним из главных средств обучения мыслительной
деятельности является задача. Как известно, одним из целей обучения
математике является обучение мыслительной деятельности через
задачи. В этом плане цель и средство ее достижения, как по
математике, так и по программированию одинаковы.
Деятельность студентов должна быть направлена на обучение
критическому, продуктивному и творческому мышлению. Такое
обучение возможно при организации на занятиях проблемных
ситуации.
Проблемное обучение в соответствии с современной
дидактикой обеспечивает важнейшие цели обучения, такие как
направление деятельности, на развитие умственных способностей,
умение видеть проблемы, ставить вопросы, анализировать и
сопоставлять факты, выделять элементы целого и другие
интеллектуальные умения (Абылкасымова А.Е.).
В соответствии с идеями о проблемном обучении структуру
процесса проблемного обучения студентов программированию можно
представить следующим образом:
1) Выявление и создание «проблемной ситуации и постановка»
проблемы;
2) Выдвижение гипотезы о возможных вариантах решения
проблемы и обоснование выбора;
3) Экспериментальная проверка принятых гипотез;
4) Обобщение результатов: определение места новых знаний и
умений в системе сформированных знаний студентов, «закрепление и
применение их в теории и практике».
Рассмотрим пример осуществления аналогии, обобщения и
абстрагирования потока информации, то есть пример формальнологической организации изучаемого материала на основе обработки
потока информации.
Общеизвестно, что информация в вычислительной технике
представляется на двоичных кодах, измеряется двоичной единицей
измерения.
Если в определенный момент времени идет сигнал (ток), то это
обозначается через «1», а отсутствие сигнала обозначается через «0».
В таком случае множество всевозможных случаев соответствует
множеству из нулей и единиц:
{0, …,1}
Физическое свойство состояния цепи, где-либо присутствует,
либо отсутствует ток, определяется соответственно контактами,
которые в свою очередь могут представить множество всевозможных
положений пары контактов, соответствующих множеству пар из
нулей и единиц:
(0,0), (0,1), (1,0), (1,1)
Тогда, подобная цепь схематически определяется следующим
образом:
(0,0)  1
(0,1)  0
(1,0)  0
(1,1)  1
0 , 1 f  0 , 1 ,
где f - абстрактное отношение, то есть математическая модель
физического объекта.
Подобную аналогию можно проводить и в самой математике.
Допустим, «1» - истинное высказывание, а «0» - ложное
высказывание. Тогда, функция f моделирует эквивалентность
( A  B ) или конъюнкцию двух импликаций:
( A  B )  (B  A) .
Таким образом, эквивалентность есть логическая модель f функции эквивалентности.
Таким образом, через математическое описание мы увидели
структурное сходство в информационном, физическом и
математическом объектах.
Определяя принадлежность одному множеству элементов,
отношений (в нашем случае принадлежность двоичной единице
измерений) мы мысленно осуществили обобщение, т.е. мысленно
выделив общие существенные свойства, принадлежащие только
данному классу объектов или отношений.
Мысленно отвлекаясь от выделенных в результате обобщения
несущественных для данного изучения свойств рассматриваемых
объектов или отношений, мы осуществили абстрагирование от
несущественных свойств. Например, для процесса обработки
информации – отвлечение от самого содержания сообщения,
интонации передачи сообщения; для физической цепи – отвлечение от
того, какого цвета провода и т.д.; для математического объекта –
отвлечение оттого, что функция является тригонометрической.
Из вышесказанного следует, что абстрагирование может
осуществляться только при обобщении, выделении общего,
существенного, подлежащего абстрагированию.
Следует отметить необходимость применения обобщения и
абстрагирования в процессе формирования понятий.
Для дальнейшего логического упорядочения выделяемых
понятий, вводимых определений установления связи между
понятиями, конструирования системы понятий необходимо обучать
классификации, как изучаемых объектов, так и их свойств и
характеристик.
Таким образом, результаты исследовании проведенные нами
исследования тенденции развития методологических подходов в
обучении
программированию
и
результаты
исследований
В.П.Беспалько, А.А.Столяра по логической организации учебного
материла и метамодели обучения информатике в высшей школе
Р.Р.Фокина позволили построить четырехуровневую модель обучения
программированию с соответствующей логической организацией
деятельности студентов при обучении программированию(Таблица 1):
Таблица – 1 – Четырехуровневая
программированию в высшей школе.
модель
Уровень 1
Метауровень
Верхние уровни
абстракции
Уровень 2
Целевой
Уровень 3
Содержательный
Уровень 4
Процессуальный
Получение
теории
Обучение
доказательству
Доказательство
правильности
программ;
Индукция
/дедукция;
обучения
Нижние уровни
абстракции
Согласно подходам М.В.Швецкого при построении учебной
дисциплины необходимо «реализовать в структуре излагаемого
учебного материала определенные идеи и представления о тенденциях
развития соответствующей отрасли знания, о технологиях
формирования познавательной деятельности в процессе усвоения
учебного материала. В этом смысле система принципов построения
учебной дисциплины, критериев отбора учебного материала должна
быть дополнена формулированием идей и принципов, выражающих
профессионально-педагогическую позицию... С этой точки зрения
система принципов построения программы учебной дисциплины
всегда
является
открытой
системой».
В
этом
плане
основополагающими теории отбора обучения программированию
являются тенденции развития методологических подходов к
обучению программированию, которые определены в п.1.2.
Сравнительно можно охарактеризовать предлагаемую модель
обучения программированию следующим образом:
1) Если постановка проблемы обучения программированию
раньше сводилась преподаванию языков программирования
(Жангисина Г.Д.), то данная модель подразумевает обучение
программированию как деятельности (через деятельностный подход);
2) Если объектом изучения раньше являлся язык
программирования,
то
теперь
язык
программирования
рассматривается в качестве инструмента, а объектом изучения
является процесс программирования (искусство программирования);
3) Если раньше обучение проводилось на демонстрационных
примерах (Швецкий М. В.; Жангисина Г. Д.) и главным в обучении
был процесс набора стандартных решений для типовых задач, то
данная модель призвана главным образом пониманию студентами
принципов решения задач, то есть главное в обучении – это процесс
решения до получения обобщенного подхода (получении теории,
достижение метауровня);
4) Особенностью данной теории отбора обучения является
надязыковой подход, который возможно реализовать на базе
математических основ программирования.
ЧАСТЬ 2. ПОСТРОЕНИЕ МЕТОДИЧЕСКОЙ СИСТЕМЫ
ОБУЧЕНИЯ ПРОГРАММИРОВАНИЮ
Понятие «методическая система» введено А.М.Пышкало, которое
отражает совокупность пяти связанных компонентов: целей обучения,
содержания обучения, методов, форм и средств обучения.
2.1 Концепции построения методической системы обучения
программированию
Концепции
построения
методической
системы
обучения
программированию направлены на реализацию четырехуровневой модели
обучения программированию в высшей школе (п.1.3):
Метауровень
Целевой
Содержательный
Процессуальный
1) В построении методической системы обучения программированию
целесообразно применить системный подход, который широко применяется в
педагогических исследованиях (Беспалько В.П.; Пышкало А.М.; Сохор Б.И.) и
позволяет реализовать полноценный педагогический процесс во всем
многообразии связей и зависимостей субъектов педагогического процесса.
Системный подход к построению методической системы обучения
программированию – это методологическое направление в науке, основная
задача которого состоит в разработке методов исследования и конструирования
структур данных и систем их управления. Для выявления и развития будущего
специалиста в области программирования также необходим системный подход
к развитию личности.
2) Модель обучения программированию
предполагает
логическую организацию деятельности студентов по схеме:
1) индукция/дедукция;
2) доказательство правильности программ;
3) обучения доказательству;
4) получение теории.
Поэтому вторую концепцию составляет деятельностный
подход в обучении.
3) Одной из тенденции развития методологических подходов к
обучению
программированию
является
профессиональная
направленность обучения (п.1.2). Поэтому третью концепцию
составляет концепция профессиональной направленности в
обучении.
4) Одними
из
основных
положений
концепции
фундаментализации образования, выдвинутой в Меморандуме
международного
симпозиума
Юнеско
«Фундаментальное
(естественнонаучное и гуманитарное) университетское образование»
(Москва, МГУ, октябрь 1994 г.) (Бордовский Г.А., Кондратьев А.С.,
Суханов А.Д.) являются:
- в качестве основы фундаментализации провозглашаются
создание такой системы и структуры образования, приоритетом
которых является не прагматические, узкоспециализированные
знания, а методологически важные, долгоживущие и инвариантные
знания, способствующие целостному восприятию научной картины
окружающего мира, интеллектуальному рассвету личности и ее
адаптации в быстро изменяющихся социально-экономических и
технологических условиях;
- фундаментализация образования должна быть целостной, для
чего отдельные дисциплины рассматривается не как совокупность
традиционных автономных курсов, а интегрируются в единые циклы
фундаментальных дисциплин, связанные общей целевой функцией и
междисциплинарными связями. В свою очередь, отдельные циклы
сопрягаются между собой через трансдисциплинарные коммуникации
и пограничные области знания и культуры, обеспечивая целостность
образования как такового.
Выше приведенные положения определяют необходимость
выделения инвариантной и вариативной составляющих содержания. В
связи
с
этим
четвертую
концепцию
составляет
дифференцированный подход.
Пятая концепция построения методической системы обучения
программированию состоит в фундаментализации обучения на базе
междисциплинарных связей системы курсов информатики.
Фундаментализация
образования
в
предметной
области
«Программирование» подразумевает изучение математических основ
программирования, а именно как предмет формальной математики
вопросы формализации языков, теории алгоритмов, методов
математического моделирования и вычислительного эксперимента.
Шестая концепция построения методической системы обучения
программированию
определяется
переходом
вузов
на
многоуровневую структуру высшего образования, а также переходом
на кредитную технологию обучения и состоит в реализации новых
технологий образования.
Процесс информатизации общества влияет на компоненты
методической системы обучения программированию. Седьмая
концепция состоит в реализации концепции информатизации
образования.
2.2 Методическая система обучения программированию
2.2.1 Цель обучения программированию
Рассматривая цели обучения необходимо исходить из
общественных и личных потребностей. Информатизация общества и
связанные с ней преобразования в обществе находят отражение в
подготовке учителей информатики и специалистов-информатиков в
университетах.
Проблема подготовки специалистов в области преподавания
информатики возникла в связи с появлением Computer Science в
качестве базового предмета.
Рассматривая Computer Science как основную и определяющую
часть информатики, совместная рабочая группа АСМ и IEEE-CS в
результате исследовании по рекомендациям и учебным планам по
этой дисциплине выделяют девять предметных областей, в целом
охватывающих всю дисциплину как науку и как область человеческой
деятельности.
На
основе работ Баженовой М.М., Васючковой Т.С.,
Глинской Б.М., Касьянова Н.К. и Curriculum (Curriculum – это
описание области знания, структурированной определенным образом
и ориентированное на широкое использование в различных сферах
человеческой деятельности, относящихся к данной науке) разных лет
приведем
эти
предметные
области
с
соответствующими
характеристиками,
предопределяющими
цели
обучения
программированию:
1 Алгоритмы и структуры данных. Рассматриваются специальные классы задач, общие для многих информационных моделей,
организация данных и типовые структуры в их взаимосвязи с алгоритмами обработки данных. Существенными здесь являются: нахождение эффективных решений, методы сложностных оценок в зависимости от характера работы с данными.
2 Архитектура. Эта предметная область связана с методами
организации надежных и эффективных вычислительных средств,
методами проектирования и управления большими вычислительными
системами, методами создания программно-аппаратных средств и распределенных вычислительных систем. Также сюда входят проблемы
построения компьютерных архитектур, в том числе параллельных
суперкомпьютеров.
3 Искусственный интеллект и робототехника. Сюда включаются
модели поведения и строения машины и программных процессоров,
имитирующих поведение живых существ (прежде всего - человека).
Основы этих моделей и их функционирования, логический вывод и
дедукция, распознавание образов, представление знаний, способы
принятия решений (эвристик и пр.)
4 Базы данных и информационный поиск. Здесь рассматриваются проблемы организации и хранения больших объемов
информации, методы и алгоритмы эффективной и безопасной работы
с ними (доступ, обновление, актуализация, безопасность и защита
информации в различных смыслах), методы представления информационных связей и отношений, проблемы распределенного хранения
информации.
5 Человеко-машинный интерфейс. Сюда относятся проблемы
эффективного и удобного для человека обмена информацией между
машиной и человеком, организации информации с учетом
человеческого фактора, визуализации и гуманизации (приспособления
к человеческим чувствам информации, в том числе методы системы
машинной графики озвучивания).
6 Численные и символьные вычисления. Центральными здесь
являются проблемы эффективного и правильного использования
компьютеров в математическом моделировании - эффективность
реализации математических алгоритмов, точность вычислений, построение и использование математических пакетов программ, компьютерная алгебра и сочетание аналитических и вычислительных
подходов.
7 Операционные системы. Определяющими здесь являются
механизмы координации ресурсов и взаимодействия с пользователем
при исполнении программ - обслуживание пользовательских запросов, стратегии распределения ресурсов в многопроцессной среде,
организация поддержки распределенных вычислений.
8 Языки программирования. Сюда относятся проблемы построения знаковых систем для описания программ, их синтаксиса,
семантики и прагматики, методы и алгоритмы их реализации
(трансляции и интерпретации), механизмы расширения и способы
построения адекватных нуждам пользователя языков.
9 Методология и технология программирования.
Центральными здесь являются проблемы спецификации,
проектирования и создания больших программных систем,
обеспечения их эффективности, защищенности и надежности,
верификации, проверки правильности, аттестации и оценки свойств.
Знания в области педагогической технологии обучения
программированию, необходимые для работы учителю информатики
определяются
квалификационной
характеристикой
учителя
информатики.
На сегодняшний день, в эпоху информационной индустрии,
«когда на рынке программных продуктов объем продаж
программного обеспечения достигает сотни млрд.долларов и
продолжает
расти»
(Бобровский
С.),
целями
обучения
программированию при подготовке специалистов-информатиков
являются знания в области исследования и разработки все более
сложных программных продуктов, отвечающих требованиям
заказчиков и покупателей.
Определение целей обучения основывается на анализе реальной
практики
использования
специалистов
данного
профиля;
использование данных прогноза о развитии той сферы деятельности,
для которой готовится специалист (Талызина Н.Ф.), на результатах
экспертного метода и метода построения модели специалиста «в
обратном направлении» (Швецкий М. В.).
Специалист должен иметь определенные профессиональные
знания и умения по программированию, которые зависят от
инвариантных и вариативных составляющих содержания обучения
программированию. Очевидно, что знания, умения и навыки по
программированию, которые касаются инвариантной части
содержания образования, являются общими как для учителя
информатики, так и для специалистов-информатиков. Приведем ниже
основные из данной категории знаний, умении и навыков.
Знание фундаментальных понятий информатики: информация,
структуры данных, алгоритм, математические, информационные и
компьютерные модели, программа, вычислительный эксперимент,
система, ЭВМ, язык программирования.
Знание теоретических вопросов, связанных с представлением,
передачей,
хранением и обработкой информации с помощью
вычислительных систем.
Знание основных
принципов
алгоритмизации
и
программирования и практические умения программировать
задачи среднего уровня сложности (Шнейдерман Б.).
Умение составлять правильно работающие и хорошо
документированные программы за определенное время.
Умение определять эффективность и логическую и
функциональную организацию программы.
Умение не только грамотно использовать инструментальные
педагогические программные средства, но и адаптировать их к
возможным изменениям операционной среды. В ряде случаев
умение программировать поможет учителю информатики и в
создании макетов собственных
педагогических
программных
средств. А математику необходимо уметь составлять собственные
вспомогательные программные средства для решения своих
математических задач, в полном объеме, т.е. с подключением
встроенных
языков
программирования,
информационные,
математические и прикладные программные системы.
Знание архитектуры вычислительных систем и архитектуры
ЭВМ и применение абстракции исходя из технических возможностей
вычислительной техники.
Знание теоретических вопросов, связанных с программной
разработкой и использованием баз данных и знаний, компиляторов и
интерпретаторов, экспертных систем и практические умения
применять соответствующее программное обеспечение.
Умение использовать программные средства для решения
прикладных задач на ЭВМ. Знание того, какие типы проблем могут
быть решены с помощью компьютера, и какие инструментальные
средства необходимы для решения таких проблем.
Знание истории развития языков программирования, парадигм
программирования и их связей с другими дисциплинами курса
информатики, перспектив их развития.
Умение
адаптировать ранее приобретенные знания
к
изменяющимся потребностям образования.
Умение организовать индивидуальную работу с целью
дальнейшего совершенствования своего образования в области
методики программирования.
Знания, умения и навыки по программированию, касающиеся
вариативной составляющей содержания образования, несомненно,
зависят от профиля подготовки. Рассмотрим знания, умения и навыки
по программированию, необходимые для учителя информатики.
Детальные знания о возможностях школьных компьютеров,
организации и функционировании школьной локальной сети.
Практические умения по эффективному использованию
локальной сети в учебном процессе.
Умение понять некоторый фрагмент научной теории
программирования и дидактически препарировать его во фрагмент
учебной дисциплины
(специфический для педвуза компонент,
основанный на принципе бинарности).
Знание содержательных и методических аспектов преподавания
программирования в школе.
Знание содержания и умение использовать программные
средства, учебное и методическое обеспечение в процессе обучения
программированию в компьютерном классе.
Умение оценивать последствия работы, выполняемой как
индивидуально, так и в группе.
Знание педагогических программных средств по информатике и
вычислительной технике, умение эффективно применять эти
программные средства в обучении и адаптировать их к собственной
методической концепции.
Умение
оценивать результаты обучения с применением
информационных технологий и корректировать в зависимости от них
процесс обучения.
Далее
рассмотрим
знания,
умения
и
навыки
по
программированию, необходимые для специалистов-информатиков.
Цели обучения на второй ступени (магистра информатики)
Специфика подготовки профессионала в области информатики
находит наибольшее отражение в требованиях к специальной и
методической подготовке профессионального программиста и
преподавателя дисциплин системы курсов информатики.
В общем случае под профессионализмом применительно
области программирования имеем в виду такие характеристики
программиста,
как
овладение
нормами
профессиональной
деятельности,
профессиональным
мастерством
в
области
программирования, умение развивать свою личность средствами
профессии, соблюдения профессиональной этики.
Выделим основные функции профессиональных программистов
(Цейтин Г. С.; Буч Г., Рамбо Д., Джекобсон А.).
Разработка систем большого объема. Профессионалы знают,
что "выход за некоторую границу сложности создаваемого
программного продукта без надлежащей технологии разработки
вообще невозможен". Системы большого объема создают новые
принципиальные трудности. Прекрасно сравнение программирования
больших систем со смоляными ямами доисторических времен, в
которых увязают динозавры «Казалось, ничто в отдельности не
вызывает трудностей - одну лапу всегда можно вытащить. Однако
накопление действующих одновременно и взаимовлияющих факторов
все более и более замедляет движение» (Брукс Ф.).
Создание системного и инструментального программного
обеспечения, которым будут пользоваться остальные. Необходимо
создание языков, систем, интерфейсов, позволяющих пользователю
работать в понятиях предметной области, а не в понятиях языка
программирования или архитектуры компьютера.
Разработка качественного и эффективного программного
продукта. Ошибки, допущенные при разработке программ,
предназначенных
для
массового
пользования,
повторяется
многократно в работах будущих пользователей.
Разработка программ на основе подхода открытых систем.
Известны следующие свойства открытых систем:
мобильность (переносимость) кода. Мобильность дает
возможность легко переносить программное обеспечение на
различные архитектурные и операционные платформы;
интероперабельность.
Дает
возможность
легко
осуществить обмен данными и взаимодействие с прикладными
задачами в других системах;
соответствие стандартам. После того как стандарт
принят, он становится силой, помогающей двигаться вперед.
Применение системного анализа включает умение оценивать
ситуацию и определять нужную методологию программирования для
решения возникшей задачи.
Согласно (Дейкстра Э.; Цейтин Г.С.) приведем знания, умения и
навыки, необходимые для профессиональных программистов.
Способность определить архитектуру программы, т. е.
разбить сложную задачу на элементарные составляющие и задать их
комбинирование. Это основное качество программиста, связанное
непосредственно с написанием программ.
Умение видеть задачу одновременно на разных уровнях
детализации. Программист должен свободно переходить от описания
задачи в крупных понятиях к стоящим за этими понятиями сущностям
более низкого уровня.
Умение представлять себе проектируемый процесс в
динамике. Обрабатываемые данные в некоторый момент времени
могут иметь одни значения и взаимоотношения, а в следующий
момент некоторые из них могут измениться.
Умение видеть дальше одной разрабатываемой в данный
момент программы. Следует учитывать широкое окружение данной
частной задачи и возможность ее включения в некоторую общую
систему. Считается, что эта черта в значительной степени отличает
профессионального программиста от хакера, ориентированного на
скорейшее получение конечного результата.
Умение обобщать типичные ситуации. Эта особенность
означает, что необходимо уметь находить в программе идейно
однородные участки. Для таких участков необходимо принять
решение по их обобщению, выяснить его границы и выбрать
наилучший способ программной реализации найденного решения. Это
может быть как разработка функции или пакета, так и копирование в
новую программу фрагментов из старой.
Умение применять и комбинировать хорошо известные
программистские приемы и типовые алгоритмы. Большинство
новых идей должно находиться в тесном взаимодействии с уже
известными идеями и методами. Простые и изящные решения
типичных задач, возникающих в объектно-ориентированном
программировании, приведены в книге "приемы объектноориентированного программирования. Паттерны проектирования"
(Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж.).
Наличие комплексного мышления, включающего умение
заранее определить этапы, которые нужно пройти, чтобы решить тот
или иной вопрос;
Культура собственного труда, умение обеспечить себя
необходимым инструментарием для работы.
Способность анализировать собственные ошибки. Эта черта
указывает на требовательность программиста к себе с одной стороны
и применение стиля программирования, уменьшающего количество
ошибок, с другой.
Умение работать в коллективе. Практически любая крупная
разработка носит коллективный характер. Успех всей работы зависит
от взаимопонимания, распределения функций и взаимоотношений в
коллективе.
Умение работать с пользователем. Профессиональный
программист должен понимать потребности пользователя, уметь
оценить удобство конкретных форм интерфейса, иметь возможность
приучить пользователя к новым средствам и системам. Программист
должен обладать хотя бы минимумом психологических знаний,
помогающих ему в общении с пользователем.
Владение
интеллектуальными
средствами,
которые
применяются для понимания программы. Э.Дейкстра выделил
следующие
средства,
необходимые
профессиональному
программисту:
Абстракция. Абстракция проникла во все аспекты
программирования. Алгоритм - это то, что остается от конкретных
значений обрабатываемых данных. Переменная - абстракция
соответствующего текущего значения. Абстракция присутствует в
процессе присваивания операциям имен и использования этих
операций. Язык программирования - это лишь средство описания
абстрактных конструкций. Программист должен иметь способность
полностью абстрагироваться от несущественных деталей, думая на
нескольких уровнях абстракции одновременно;
Перечисление. К перечислению прибегают, когда пытаются
проверить правильность вычислений, которые сводятся к обозримому
множеству последовательно выполняемых операторов. Сюда также
включаются условные операторы выбора одного из двух или более
вариантов;
Математическая индукция. Математическая индукция единственный способ рассуждений, который в конечном итоге
позволяет работать с циклами и с рекурсивными процедурами.
Следование вопросам общечеловеческой этики.
Ч.Уэзерелл отмечает следующие способности, необходимые
программисту:
- Способность четко видеть действительные трудности и
отбрасывать все, не относящееся к делу.
- Способность выявлять все случаи, где можно применить
теорию, самостоятельно решиться на ее применение или
обратиться за советом к более опытному программисту.
- Способность при неудаче подавить самолюбие и поискать
другой подход.
Для осуществления педагогической деятельности будущим
специалистам необходимо овладение следующими знаниями и
умениями.
Умение адаптировать готовое программное обеспечение к
имеющимся в распоряжении аппаратным и программным средствам.
Умение использовать
инструментальные
программные
средства для создания собственных педагогических программных
средств.
Умения и навыки деятельности модератора. Удаленное
обучение использует в качестве среды общения компьютерные
конференции, успех которых в значительной степени зависит от ее
ведущего – модератора (Богданова Д.А.).
Знание принципов организации баз данных и умение
пользоваться системами управления базами данных.
Умение использования баз данных для хранения и получения
информации, необходимой для принятия обоснованных решений по
эффективному управлению учебными заведениями.
Умение помочь администрации учебных заведений в
использовании баз данных для организационных и управленческих
целей.
Умение исполнять функции администратора баз данных,
который играет ответственную роль в системе баз данных. К его
функциям относятся начальная загрузка данных в базу данных,
управление доступом к данным, защита физической целостности
базы данных и восстановление ее при разрушениях, реструктуризация
и реорганизация базы данных. Персонал администрирования данными
в системе баз данных функционально состоит из нескольких групп
лиц: администратор предметной области,
администратор базы
данных, администратор приложений, администратор безопасности
данных (в небольших системах все они физически могут быть
совмещены в одном лице) (Мартин Дж., с.40-41).
Умение исполнять функции инженера по знаниям. Инженер
по знаниям - это «специалист, основной задачей которого является
проектирование баз знаний и наполнение их знаниями о проблемной
области. В процессе этой деятельности инженер по знаниям выбирает
форму представления знаний, удобную для данной проблемной
области, организует приобретение знаний из различных источников
(официальные документы, учебники, монографии и т.п.), а также в
результате
общения
с экспертами-специалистами в данной
проблемной области» (Толковый словарь, с.38).
Знание элементов маркетинга и элементарных вопросов
менеджмента (Вершинин О.Е.; Пак Н.).
Необходимо отметить цели обучения, и исходящий из них
перечень знаний, умений и навыков будущих бакалавров и магистров
информатики в области программирования "открытых" для внесения
изменений, определяемых требованиями общества.
2.2.2 Структура и содержание обучения программированию
в высшей школе
Содержание обучения программированию в высшей школе
определяется методическими принципами отбора содержания
обучения:
принцип соответствия целям обучения;
принцип учета предмета и содержания информатики
как научной дисциплины;
принцип дидактической изоморфности;
принцип единства содержания обучения;
принцип перспективности;
принцип минимизации;
принцип учета отечественного и международного
опыта формирования содержания обучения
и
принципами
профессионально-педагогической
направленности обучения информатике.
Принцип соответствия целям обучения предусматривает
определение содержания обучения в соответствии с общественными и
личными потребностями, которые отражены в нормативных
документах специальности.
Рассмотрим принцип учета предмета и содержания
информатики как научной дисциплины.
А.П.Ершов, М.Бургин среди основных научных направлений
информатики выделяют такие дисциплины, как: теорию алгоритмов и
алгебру логики, программирование, теория вычислительного
эксперимента, теоретические основы вычислительной техники,
статистическая теория информации, искусственный интеллект,
численные методы, теорию структур данных, теорию баз данных,
программное обеспечение вычислительных систем,
аппаратные
средства вычислительных систем, моделирование, интерактивные
системы, обучающие системы, искусственный интеллект.
Международными
организациями,
занимающимися
стандартизацией в области программирования являются ассоциация
по вычислительной технике (The Association for Computing Machinery
- ACM)20 - международная научная и образовательная организация,
основная задача которой - распространение навыков, теорий и
приложений из области информационных технологий; институт
инженеров по электротехнике и электронике (Institute of Electrical and
Electronic Engineers - IEEE)21 - всемирная организация инженеров,
направляющая деятельность технических обществ и участвующая в
разработке стандартов.
В
рекомендациях
выше
перечисленных
организаций
сформулированы общие требования к учебным программам по
информатике в виде модулей знаний, размещенных в 11 блоках,
соответствующих девяти предметным областям, предложенных
П.Деннингом, дополненных блоками «Социальный контекст
информатики» и «Введение в язык программирования». Последний
20
21
Материалы сайта http://info.acm.org/
Материалы сайта http://www.ieee.org/
блок является факультативным, который отражает необходимые
знания по конкретным языкам программирования и практический
опыт
их
использования
студенты
должны
приобретать
самостоятельно или на факультативных курсах (Parnas D.L.).
Рассмотрим
перечень
данных
модулей,
связанные
с
программированием и указанием минимально рекомендуемого
количества лекционных часов на весь период обучения в ВУЗе.
Модули знаний
Часы
Алгоритмы и структуры данных (AL)
47
AL1 Основные структуры данных
13
AL2 Абстрактные типы данных
2
AL3 Рекурсивные алгоритмы
3
AL4 Анализ сложности
4
AL5 Классы сложности
4
AL6 Сортировка и поиск
6
AL7 Эффективная вычислимость и неразрешимость
6
AL8 Стратегия решения задач
6
AL9 Параллельные и распределенные алгоритмы
3
Архитектуры (AR)
59
AR1 Цифровая логика
12
AR2 Цифровые системы
6
AR3 Машинное представление данных
3
AR4 Системы машинных команд
15
AR5 Организация памяти
13
AR6 Интерфейсы и коммуникации
5
AR7 Альтернативные архитектуры
5
Искусственный интеллект и робототехника (AI)
9
АI1 История и приложения искусственного интеллекта 3
AI2 Задачи, пространства состояний, стратегии поиска 6
Базы данных и информационный поиск (0В)
9
DB1 Обзор, модели и приложения систем баз данных 4
DB2 Реляционная модель данных
5
Человеко-машинное взаимодействие (HU)
8
HU1 Пользовательские интерфейсы
5
HU2 Машинная графика
3
Числовые и символьные вычисления (NU)
7
NU1 Представление чисел, ошибки, переносимость
3
NU2 Итерационные приближенные методы
4
Операционные системы (OS)
31
OS1 История, эволюция и философия
3
OS2 Мультипрограммирование
2
OS3 Взаимодействие и синхронизация процессов
OS4 Планирование процессов
OS5 Физическая и виртуальная память
OS6 Управление устройствами
OS7 Файловые системы
OS8 Безопасность и защита
OS9 Коммуникации и сети
OS10 Распределенные ОС и системы реального
4
3
4
2
4
3
3
времени
3
Языки программирования (PL)
46
PL1 История и обзор языков программирования
2
PL2 Абстрактные машины
2
PL3 Представление типов данных
2
PL4 Управление последовательностью вычислений
4
PL5 Управление данными, разделение данных и
контроль типов
4
PL6 Управление памятью
4
PL7 Конечные автоматы и регулярные выражения
6
PL8 Контекстно - свободные грамматики и МПавтоматы
4
PL9 Трансляторы
3
PL10 Семантика языков программирования
2
PL11 Парадигмы программирования
10
PL12 Конструкции параллельного программирования 3
Введение в язык программирования (PR) - факультативно 12
PR1 Введение в язык программирования
12
Программная инженерия и технология (SE)
44
SE1 Основы решения задач
16
SE2 Процесс разработки программного обеспечения
8
SE3 Техническое задание и спецификация
4
SE4 Разработка и реализация
8
SE5 Верификация и контроль качества
8
Социальные, этические и правовые вопросы (SP)
11
SP1 История и социальный контекст информатики
3
SP2 Профессиональная ответственность в информатике 3
SP3 Риск и материальная ответственность
3
SP4 Интеллектуальная собственность
2
Данные модули должны быть взяты в рекомендательном
аспекте в основу рабочих учебных программ. Структура курсов,
учебный материал, необходимый для конкретной специальности
определяются, прежде всего, социально-экономическим заказом
общества и уровнем развития научно-технического прогресса,
которые в свою очередь должны быть отражены в образовательном
стандарте специальности.
Результаты исследований научно-педагогической литературы по
информатике показывает, что Российские программы по
информатике, рекомендаций ACM/IEEE и программы университетов
многих стран мира схожи, что подтверждает идентичность видения
тенденций развития информатики в мире. В связи с тем, что
образование в области информатики в постсоветском пространстве
создавалось
преимущественно
математиками,
традиционно
отдающими предпочтение фундаментальным знаниям то, по
сравнению с американской системой образования, и ныне
наблюдается больший перевес фундаментальному математическому
образованию и несколько меньшее значение естественным наукам и
профессиональной подготовке.
Заметим, основные моменты вариативной части подготовки
специалистов-информатиков и учителя информатики находятся в
области программирования. Ясно, что учитель должен обладать
широким научным кругозором и учебные планы подготовки учителя
информатики должны строиться с учетом предмета информатики как
научной дисциплины. Поэтому проблему соотношения учебного
предмета и отрасли научного знания нельзя решить простым
переложением научных знаний в форму, доступную учащимся.
Принцип дидактической изоморфности (Мордкович А.Г.)
означает, что основные структурные элементы и смысловые
единицы области программирования переходят в учебную
дисциплину переосмысленными в дидактическом плане. При
дидактической обработке научной системы знаний нужно по
возможности сохранить основные элементы теории и создать условия
для раскрытия природы этих элементов и характера связи между
ними, так как «структура должна служить эталоном для сравнения
целей и результатов обучения» (Сохор Б.И., С.68). В связи с этим,
конструирование учебной программы предполагает как объективное
содержание науки, так и конкретное представление о строении науки
как системы теорий, и о строении теории как определенной системы
знаний.
Принцип единства содержания обучения (Хамов Г.Г., с.24)
определяет необходимость объединения в содержании обучения
отдельных учебных дисциплин между собой в целях создания в итоге
обучения в сознании будущего учителя целостной научной картины,
служащей научной основой его последующей педагогической
деятельности.
Принцип перспективности (Хамов Г.Г., с.24) предполагает
включения таких тем, которые будут развиваться в ближайшем
будущем или будут основой будущих разделов науки. Реализация
этого положения позволит развивать мышление будущих
специалистов-информатиков и будущего учителя так, чтобы они
впоследствии сами могли осваивать новые направления в области
программирования.
Принцип минимизации (Мордкович А.Г.) требует такое
содержание дисциплины программирования, которое включает
необходимый
минимум информации. Известно, что все более
возрастающий объем информации, изменяющееся содержание
научных областей требует тщательного отбора учебного материала.
Принцип учета отечественного и международного опыта
формирования содержания учебных программ реализуется с
помощью методов исторического анализа и сравнительной оценки
содержания образования в разных странах (Бабанский Ю.К.). За
последние полвека известны 4 модели учебных планов по
образованию в сфере информатики: Curriculum 1968, Curriculum
1978, Curriculum 1991, Curriculа 2001.
В США в учебные планы подготовки учителей информатики
были включены 7-9 курсов из Curriculum'78. Ряд курсов, связанных с
применением информационных технологий в учебном процессе,
были разработаны заново. Рекомендации, отраженные в этих моделях
учебных планов,
оказали существенное влияние на развитие
образования в сфере информатики в мире.
В отчете Комитета ACM даны рекомендации для высшей
школы и выделены те области, которые должны быть общими для
всех
программ
по
информатике:
программирование-1,
программирование-2, введение в вычислительные системы, введение
в устройство ЭВМ, введение в обработку файлов, операционные
системы и архитектура ЭВМ, структуры данных и
анализ
алгоритмов, организация языков программирования. Выделены
также базовые разделы, которые являются общими для всех
программ по информатике для высшей школы (программирование,
структуры данных и обработка файлов, организация программного
обеспечения, устройство ЭВМ).
В статье Н.Е.Гиббса и А.Б.Таккера предложен вузовский
учебный план по информатике для бакалавров гуманитарных наук,
который содержит принципы организации ЭВМ, алгоритмы, теория
вычислений, принципы языков программирования.
В Curriculum 1991 (в скобках указано требуемое количество
лекционных часов):
алгоритмы и структуры данных (47),
архитектура (59), искусственный интеллект и робототехника (9),
базы данных и поиск информации (9), взаимодействие "человеккомпьютер" (8), числовые и символьные вычисления (7),
операционные системы (31), языки программирования
(46),
методология и проектирование программного обеспечения (44),
общественные, этические и профессиональные проблемы (11).
Больший интерес представляет Curricula 2001, который
включает модели преподавания системы курсов информатики,
основанные на следующих подходах:
1 «Императивный» подход;
2 «Объектно-ориентированный» подход;
3 «Функциональный» подход;
4 Подход с максимальным охватом материала;
5 «Алгоритмический подход»;
6 «Аппаратный» подход.
«Императивный» подход реализуется двумя способами:
Первый способ состоит в проведении курсов: Основы
программирования,
Объектно-ориентированная
парадигма,
Алгоритмы и структуры данных.
Второй способ предусматривает проведение следующих курсов:
Введение в программирование, Абстракция данных.
«Объектно-ориентированный» подход осуществляется двумя
способами с преподаванием в первом случае курсов: Введение в
объектно-ориентированное программирование, Объекты и абстракция
данных, Алгоритмы и структуры данных. И во втором случае:
Объектно-ориентированное
программирование,
Объектноориентированное проектирование и методология.
«Функциональный» подход предполагает двух семестровое
обучение и включает курсы: Введение в функциональное
программирование, Объекты и алгоритмы.
Подход с максимальным охватом материала имеет две
реализации. Первая реализация включает дополнительно курс: Обзор
информатики. Вторая реализация предполагает интеграцию
малосвязанных тем через курс: Введение в информатику.
Здесь для максимального охвата материала и соблюдения
преемственности при обучении, как нам кажется, необходимо
изучение программирования на основе идеальных средств обучения,
то есть обучение программированию студентов на основе ранее ими
полученных знаний через курсы: Алгоритмы и методы
программирования,
Принципы
объектно-ориентированного
проектирования.
«Алгоритмический подход» реализуется
через курсы:
Введение
в
алгоритмы
и
приложения,
Методология
программирования.
«Аппаратный» подход реализуется для изучения компьютера
по схеме «снизу-вверх», начиная от битов - минимальной единицы
измерения информации и до высокоуровневых языков. Данный
подход предполагает изучение курсов: Знакомство с компьютером,
Объектно-ориентированные методы программирования.
Программа подготовки специалистов по разработке и
эксплуатации системного программного обеспечения, предложенная
С.С.Лавровым, А.О.Слисенко и Г.С.Цейтиным содержит основы
дискретной математики, основы программирования, теория
алгоритмов, структуры данных, машинные языки, основы трансляции,
комбинаторные алгоритмы, анализ вычислений, языки и системы
программирования, операционные системы, основы приближенных
вычислений, структура вычислительных систем, системы управления
базами данных.
В пособии для студентов МГУ (Бахвалов Н.С., Бетелин А.Б.,
Бетелин В.Б.) приведен перечень курсов, входящих в систему
подготовки профессиональных программистов второго уровня:
основы программирования, архитектура ЭВМ, базовое программное
обеспечение ЭВМ, параллельные процессы и управление ресурсами,
интерактивная машинная графика, языки
программирования и
методы их реализации, технология программирования, система
управления
базами
данных,
основные
комбинаторные
и
получисленные алгоритмы.
Э.И.Кузнецов считает,
что профессиональная подготовка
будущих учителей информатики должна обеспечиваться системой
курсов, аналогичной той, по которой осуществляется подготовка
специалистов в университетах на факультетах вычислительной
математики и кибернетики. Составляющими ядро учебного плана по
информатике, он считает алгоритмы и структуры данных, организация
ЭВМ и основы программирования, теоретические основы
программирования, структура и программное обеспечение ЭВМ,
основы машинной графики, систематическое программирование,
анализ
и
разработка
алгоритмов,
информатизация
и
методологические проблемы информатики. Э.И.Кузнецов высказал
прогноз, что некоторые необязательные предметы уже в ближайшем
будущем могут получить статус обязательных. В работе Жданова С.А.
приведена программа курса «Информатика и вычислительная
техника» для студентов математического факультета МПГУ, в
содержании которой основным является технология компьютерного
решения задач.
Сравнительный анализ имеющихся программ, показывает
наличие в них вопросов, связанные с изучением иерархической
системы виртуальных машин. В основании иерархии расположена
аппаратная машина, которая последовательно преобразуется слоями
математического
обеспечения
(или
микропрограммами)
в
виртуальную машину, существенно отличающуюся от аппаратной.
Следующий уровень виртуальных машин определяется операционной
системой. В процессе реализации создается новый слой программ
(трансляторы), которые выполняются на виртуальной машине,
определяемой операционной системой и моделируют работу
виртуальной машины для данного языка высокого уровня. Последний
уровень иерархии образуют прикладные программы.
Рассмотрим соотношение между теоретической и прикладной
подготовкой будущих специалистов, которое зависит в первую
очередь от специфики получаемого научного знания.
На основе классификаций основных направлений научного
знания В.С.Леднева и результатов исследований А.Ф. Дедкова и
автора покажем соотношение фундаментальным и прикладным
наукам дисциплины программирования.
В
аспекте
специфики
совокупного
предмета.
Фундаментальные науки изучают закономерности и развития
окружающего мира и человека в нем. Прикладные науки изучают
отдельные направления деятельности человека.
В аспекте специфики отражения действительности.
Фундаментальные науки отражают преимущественно абстрактное, а
прикладные науки преимущественно конкретное.
В аспекте цели производства знания и особенности его
применения. Фундаментальные науки имеют целью всестороннее
познание мира, объяснение и предвидение его явлений на основе
познания его фундаментальных закономерностей. Прикладные науки
должны обеспечивать оптимальную общественную деятельность
человека в различных областях.
В
аспекте
характера
внедрения
результатов.
В
фундаментальных науках результаты исследований внедряются
опосредованно (через использование практическими науками), а в
прикладных науках непосредственно.
Поскольку фундаментальная и прикладная информатика не
являются взаимозаменяемыми, дополняют друг друга и необходимы
обе (Горячев А.В.), то подготовка специалистов в области
программирования, как одной из дисциплин информатики, должна
осуществляться в вышеуказанных аспектах.
Содержание дисциплины задается как целью обучения, так и
глубиной ее усвоения. Цели обучения заданы выше системой
требований к знаниям, умениям и навыкам будущих специалистов. А
глубина усвоения дисциплины программирования определяется
четырьмя уровнями, определенными предлагаемой моделью обучения
программированию (см. п.1.3). Нижние уровни абстракции (3 и 4
уровни) определяют содержательный и процессуальный характер
знаний. Верхние уровни абстракции определяют (1 и 2 уровни)
метауровневый и целевой характер знаний.
Усвоение знаний происходит в единстве с усвоением способов
действия с ними (Эльконин Д.В., Якиманская И.С.). Поэтому такие
действия необходимо предусматривать в учебных программах.
Всякое обучение основам наук одновременно есть обучение
соответствующим умственным действиям (Леонтьев А.Н.), а
формирование умственного действия невозможно без усвоения
определенных знаний. Говоря о значимости содержательной стороны
учебной деятельности, необходимо отметить важность учебного
материала
при
формировании
умственных
действий.
Многочисленные
исследования
показывают,
что
усвоение
умственных действий, адекватных изучаемому содержанию,
обеспечивает широкий перенос формируемых умений и приемов
учебной работы. Множество сформированных у учащихся способов
действий является важным показателем уровня развития учебной
деятельности. Важным инструментом формирования умственной
деятельности является обучающие модели.
В педагогике выделяют три вида обучающих моделей:
семиотическая, имитационная, социальная (Клини С.К.). Рассмотрим
данные модели обучения в соотношении с содержанием обучения
программированию.
Семиотическая модель предусматривает включение в
содержание обучения системы заданий предметной области
деятельности, применима к изучению материала по математическим
основаниям программирования.
Имитационная модель предполагает включение в содержание
обучения заданий, предполагающих соотнесение студентами знаний,
получаемых из знаковых систем (текстов) заданий с ситуациями
будущей профессиональной деятельности. Можно ее использовать
при изучении языка и системы программирования.
Социальная модель предусматривает включение в содержание
обучения заданий в предметно-профессиональном и социальном
контекстах. Применимо по изучению материала по элементам
технологии проектирования программных комплексов.
Необходимо отметить, что фундаментальная подготовка в
области программирования это обучение глубокому пониманию
основных направлений, руководящих идей, а также основных
методов, от которых зависит методика программирования.
Основные разделы фундаментальной подготовки в области
программирования для будущих специалистов-информатиков и
учителей информатики приведены ниже:
алгоритмы;
введение в программирование (императивное
программирование);
структуры данных;
технология разработки программного обеспечения;
архитектура ЭВМ;
парадигмы программирования (функциональное,
продукционное, хорновское, объектно-ориентированное);
компьютерная графика;
построение компиляторов;
операционные системы;
базы данных и информационный поиск;
искусственный интеллект;
анализ и моделирование систем;
дискретная математика;
теоретическое программирование.
Принцип фундаментальности требует при рассмотрении
вопроса о включении того или иного раздела информатики в учебную
программу выяснять, какое значение имеет раздел для будущей
профессиональной деятельности. Реализация в программах
принципа ведущей идеи означает, что особый упор делается на
раскрытие современного содержания понятий.
Суть дидактического принципа заключается в том, что в
содержании курса информатики должны быть реализованы те
дидактические условия, заключенные в принципах дидактики,
которые определяют педагогическую обоснованность формирования
содержания обучения (Хамов Г.Г.). Нами взяты за основу принцип
научности, принцип воспитания в обучении, принцип наглядности,
принцип сознательности и активности, принцип прочности знаний,
принцип
систематичности
и
последовательности,
принцип
доступности, принцип индивидуального подхода.
Следует выделить дидактический принцип научности обучения,
который имеет значение при определении содержания обучения и
заключается в том, что содержание образования должно, во-первых,
соответствовать уровню современной науки; во-вторых, включать
содержание,
необходимое для формирования у студентов
представления о частных и общенаучных методах познания; втретьих, показывать учащимся важнейшие закономерности процесса
познания22.
Принцип научности тесно связан с принципом
фундаментальности,
на
котором
базируется
построение
многоуровневых образовательных систем.
При формировании системы подготовки общий курс
программирования целесообразно разделить в соответствии с
крупными разделами на отдельные самостоятельные учебные курсы.
Однако при этом необходимо учитывать системность обучения и
обеспечивать внутридисциплинарные и междисциплинарные связи.
Рассмотрим содержание курсов, цели, общую характеристику,
перечень основных тем, которые служат базой для разработки
рабочих программ, а также его роль и место в теоретической и
прикладной подготовке специалистов.
При
обучении
программированию
как
студентовинформатиков, так и студентов-математиков полезно рассматривать
такие проблемы исследовательского характера, где имеют место
интересные переплетения чисто математические задачи и задачи,
возникающие при программировании: анализ алгоритмов сортировки
данных. Д.Кнут исследуя асимптотические методы, отмечает, что
«анализ алгоритмов обменной сортировки, приводит к некоторым
особенно поучительным математическим задачам, которые позволяют
больше узнать о способах определения асимптотического поведения
функции.
Рассмотрим изучение раздела «Алгоритмы». Систематическое
изложение теории алгоритмов впервые дано в монографии С.Клини,
где теория алгоритмов изложена вместе с математической логикой.
Теоретические основы содержания общего среднего образования /Под ред. В.В.Краевского,
И.Я.Лернера. - М.: Педагогика. - 1983. -352 с.
22
Однако лекции по теории алгоритмов можно читать до изучения
математической логики, если, логическую символику использовать в
ограниченном размере и подробно разъяснять значения всех
употребляемых логических символов (Мальцев А.И.; Козлов К.П.;
Матросов В.Л.).
Н.К.Косовский описывает точное понятие алгоритма,
основанное на простейших средствах языков программирования.
В.А.Успенский, А.Л. Семенов предлагают теорию алгоритмов
разделить на две части:
- первая часть есть общая теория, имеющая дело со строением
алгоритмов «самих по себе»;
- вторая часть представляет собой прикладную теорию,
которая имеет дело с алгоритмами, возникающими в других областях
науки (Успенский В.А.,с.15).
В общей теории алгоритмов следует выделить дескриптивную
теорию, занимающуюся лишь вопросами о существовании
алгоритмов, приводящих к заданной цели, и о способах задания этих
алгоритмов, метрическую теорию, занимающуюся оцениванием
сложности процессов вычислений (Успенский В. А.). Общие свойства
алгоритма полно изложены в пособии для учителя информатики
(Матюшков Л.П., Лихтарович А.А., с.17-18).
В пособии А.Н.Колмогорова, А.Г.Драгалина приведены
исчисление равенств Эрбран-Гёделя, частично-рекурсивные функции
по Клини, λ-определимость Чёрча, канонические системы Поста,
нормальные алгорифмы Маркова, алгорифмы КолмогороваУспенского.
А.И.Мальцев приводит следующий перечень алгоритмических
систем:
многоленточные машины,
нормальные алгорифмы,
продукции Поста, однородные системы
продукций (ТАГсистемы), операторные алгоритмы Ван Хао.
В пособиях для
студентов
университетов и педвузов
(Козлов К.П.; Латотин Л.А.) имеются разделы,
посвященные
примитивно рекурсивным функциям, нормальным алгорифмам
Маркова, машинам Тьюринга.
М.В.Швецкий выделяет следующие
учебные
элементы:
(1)описательное определение алгоритма; (2) клеточные автоматы; (3)
машина Тьюринга; (4) машина Поста-Успенского; (5) рекурсивные
функции; (6) исчисление; (7) нормальные алгорифмы Маркова; (8)
тезис Чёрча; (9) алгоритмически неразрешимые проблемы; (10)
прикладные алгоритмы (алгоритмы поиска и сортировки, алгоритмы
кодирования, получисленные алгоритмы); (11) понятие о
параллельных алгоритмах; (12) теория алгоритмов и парадигмы
программирования, канонические системы Поста.
Необходимо обучать студентов следующим
алгоритмам
кодирования: системы счисления (двоичная,
восьмеричная и
шестнадцатеричная, уравновешенная, нега-позиционная, системы
счисления с основанием, содержащим мнимую единицу, системы
счисления остаточных классов, смешанные и факториальные системы
счисления) и алгоритмы перевода из одной системы счисления в
другую (Кнут Д.; Касаткин В.Н.); кодирование в узком смысле слова
(криптография): шифр простой подстановки и шифр Вижинера
(Дмитриев В. И.); алгоритмы сжатия информации: алгоритм RLE
(кодирование повторяющихся цепочек) (Мастрюков Д.), код
Левенштейна, код Шеннона, статическое кодирование Хаффмана,
динамическое кодирование Хаффмена, арифметическое кодирование,
алгоритмы сжатия LZ, LZ77, LZSS (Мастрюков Д.), алгоритм сжатия
LZW
(Мастрюков
Д.);
алгоритмы
помехоустойчивого
кодирования (классификацию дискретных кодов (Цымбал В.П.):
кодирование Грэя, кодирование Хэмминга, циклические коды (Уоррен
Генри С.; Кормен Т., Лейзерсон Ч., Ривест Р.).
Знание прикладной теории алгоритмов позволяет понять, что
программирование - это прикладная область теории алгоритмов, а в
дескриптивной теории алгоритмов были предугаданы основные
концепции,
заложенные
в
аппаратуру
ЭВМ
и
языки
программирования. Такие модели алгоритма, как абстрактная
вычислительная машина А.Тьюринга и Р.Поста, рекурсивные
функции Д.Гильберта и Р.Аккермана, явились нормальные
алгорифмы А.А.Маркова математически эквивалентны, однако стали
основой зарождения разных направлений в программировании.
Рассмотрим содержание раздела «Анализ алгоритмов». Отбор
содержания данного раздела должен осуществляться на основе
фундаментальных работ Д.Кнута и др., (Кормен Т., Лейзерсон Ч.,
Ривест Р., Лавров С.С.). Необходимо студентов знакомить с
максимальными паросочетаниями в неориентированных графах. При
этом следует рассматривать следующие вопросы:
- Найти эффективные алгоритмы для проблемы P.
- Установить нижние оценки сложности, внутренне присущие P.
- Поискать точные решения P.
- Найти алгоритмы для приближенных решений.
- Изучить сложность для наихудшего случая.
- Изучить сложность в среднем.
- Найти последовательные и параллельные алгоритмы для P.
- Изучить программно и аппаратно реализованные алгоритмы.
- Рассмотреть
возможность
решения
посредством
вероятностных алгоритмов.
В разделе "Анализ алгоритмов" необходимо познакомить
студентов с методами разработки алгоритмов и основными
принципами оценки их эффективности, которая производится с точки
зрения затрат ресурсов, необходимых исполнителю для его
реализации. В качестве таких ресурсов в нашем случае выступают
объем памяти, необходимой для размещения команд алгоритма и
обрабатываемых данных, и время, затрачиваемое на исполнение
алгоритма. Пространственная и временная сложности (как функции
от размеров задачи) являются двумя фундаментальными оценками
эффективности при анализе алгоритмов.
В связи с развитием технологии создания запоминающих
устройств в настоящее время проблема пространственной сложности
не стоит так остро, как это было раньше. По этому поводу Стивен Кук
отмечает: «Опираясь на двадцатилетний опыт, я теперь считаю
очевидным, что время и объем памяти - особенно время - находятся в
ряду наиболее существенных мер сложности. Представляется, что
при оценке эффективности алгоритма в первую очередь принимается
в расчет время его выполнения... Очень важным является вопрос о
том, что именно является правильной моделью компьютера для
измерения времени работы алгоритма. Обычно в литературе
используют многоленточные машины Тьюринга...» (Лекции лауреатов
премии Тьюринга, с.477).
Несмотря на выше сказанное, студентам нужно показать, что
улучшение быстродействие,
объем памяти компьютера только
повышает требования к качеству алгоритмов,
и повышение
эффективности
алгоритмов
дает
лучший
результат,
чем
использование более мощных компьютеров.
Анализ различных вариантов одного и того же алгоритма
позволяет выбрать для решения задачи наиболее подходящий вариант
с учетом имеющихся в распоряжении ресурсов конкретного
исполнителя или структур данных. Поэтому важно познакомить
студентов с примерами анализа и оценки некоторых наиболее
распространенных алгоритмов, связанных с задачами поиска и
сортировки данных, генерации случайных чисел, комбинаторных
алгоритмов, алгоритмов теории чисел и алгоритмов для работы с
деревьями и графами.
Рассмотрим анализ простейшего метода пузырька (иначе метод
«обменной сортировки с выбором» или метод «распространения»).
Название метода представляет образно процесс выполнения
алгоритма, который заключается в том, что элементы с меньшим
«весом» постепенно всплывают на «вверх».
Математически метод можно представить следующим образом:
Пусть A - числовой массив из n элементов:
a (1 ), a ( 2 ), ... a ( n ) .
Если i  j , a ( i )  a ( j ) , то элементы a ( i ) и a ( j ) образуют
инверсию. Таким образом, инверсия – это пара элементов,
«нарушающая порядок». Поэтому, перестановкой, не содержащей
инверсию, является отсортированная перестановка 1 , 2 , ... n .
Метод заключается в последовательных просмотрах от конца к началу
A массива и обмене местами элементов с инверсией. Необходимость
подробного рассмотрения понятия инверсии возникает в связи с тем,
что студенты часто путают инверсии с обратными перестановками.
Трудоемкость алгоритма составляет число просмотров массива,
числом обменов и число сравнений. Если элементы заданного массива
расположены в случайном порядке и различны, то они, возможно,
представляют случайную перестановку множества 1 , 2 , ... n  .
Поэтому при обучении программированию методов сортировок
важно студентам дать возможность более подробно разобраться с
комбинаторными свойствами перестановок.
Рассмотрим комбинаторные свойства перестановок по методике
Д.Кнута. Перестановкой конечного множества называется некоторое
расположение его элементов в ряд. Перестановки используются для
представления неупорядоченных исходных данных. Для исследования
эффективности
методов сортировки, необходим подсчет числа
перестановок, которые влекут за собой определенное количество
повторений фрагмента алгоритма метода.
Для изучения методов сортировок, свойств перестановок
недостаточно знание теоретических методов построения n !
перестановок из n элементов, методы, связанные с циклической
структурой и мультипликативными свойствами перестановок.
Знания по комбинаторике составляют основу для изучения
самой природы сортировок.
При
обучении
необходимо
охватывать
вопросы,
рассматриваемые в курсе информатике в средних учебных заведениях.
Поэтому, в разделе «Анализ алгоритмов» для будущих учителей
информатики
нужно
рассматривать
следующие
вопросы:
рекуррентные уравнения и методы их решения, оценка эффективности
алгоритмов поиска и сортировки, анализ комбинаторных алгоритмов,
алгоритмы генерации случайных чисел и их анализ, анализ
простейших алгоритмов теории чисел, анализ алгоритмов работы с
деревьями и графами.
Предлагаемый материал имеет теоретический характер и
строится с опорой на формальные математические методы.
Прикладное значение курса состоит в том, что он помогает студентам
выбирать и использовать в практической работе наиболее
эффективные алгоритмы.
Методы нахождения асимптотической сложности алгоритмов
основаны на широком использовании результатов математического
анализа (связь интегралов с суммами, гармонические числа, теория
пределов) и теории вероятностей
(случайные
величины,
математическое ожидание, дисперсия, среднее квадратическое
отклонение).
Рассмотрим содержание курса «Сложность алгоритмов». Теория
сложности вычислений исследует количественные аспекты решения
вычислительных
задач.
Существует
несколько
возможных
алгоритмов решения таких задач, с каждым из которых связаны
некоторые важные функции оценки, такие как: число шагов
вычислений, требуемый объем памяти для вычислений, размер
программы.
Вычислимость за полиномиальное время, грубо говоря,
соответствует практической выполнимости, была впервые высказана
Эдмондсом (1965 г.), который назвал полиномиальные алгоритмы
«хорошими алгоритмами» (Лекции лауреатов премии Тьюринга,
с.479).
Сложность алгоритмов студентам будет более понятной, если
изучать задачи комбинаторного характера. Например, теория графов
позволяет легко перейти к изучению теории сложности (Шлык В. А.).
Задача о кратчайшем пути имеет полиномиальную сложность
(Пападимитриу Х., Стайнглиц К.), а близкая ей по содержанию
задача о коммивояжере относится к числу трудных проблем
(Кормен Т., Лейзерсон Ч., Ривест Р.).
При изучении параллельных вычислений рассматриваются
вопросы возможностей использования многих процессоров для
быстрых
вычислений.
Необходимо
рассматривать
ниже
перечисленные задачи:
арифметические операции (+, -, *, /) над двоичными
числами;
сортировка;
связность графа;
матричные
операции
(умножение,
обращение,
детерминант, ранг);
наибольший общий делитель полиномов;
контекстно-свободные языки;
нахождение в графе минимального остова (Лекции
лауреатов премии Тьюринга, с.490).
Таким образом, целью изучения алгоритмов является:
знакомство студентов с основными математическими
концепциями "алгоритмов";
развитие алгоритмического стиля мышления.
Материалы по разделу "Алгоритмы", которые имеют
фундаментальный, инвариантный характер, следует изучать в
следующей последовательности.
1 Введение в теорию алгоритмов.
Алгоритмы. Анализ и построение алгоритмов. Быстрые
алгоритмы.
2 Математические основы анализа алгоритмов.
Скорость роста функции. Суммирование. Рекуррентные
соотношения. Множества. Комбинаторика и вероятность.
3 Сортировка и порядковые статистики.
Сортировка с помощью кучи. Быстрая сортировка. Сортировка
за линейное время. Медианы и порядковые статистики.
4 Структура данных.
Элементарные структуры данных. Хеш-таблицы. Двоичные
деревья поиска. Красно-черные деревья. Пополнение структур
данных.
5 Методы построения и анализа алгоритмов.
Динамическое
программирование.
Жадные
алгоритмы.
Амортизационный анализ.
6 Сложные структуры данных.
Б-деревья. Биномиальные кучи. Фибоначчиевы кучи. Системы
непересекающих множеств.
7 Алгоритмы на графах.
Основные алгоритмы на графах. Минимальные покрывающие
деревья. Кратчайшие пути из одной вершины. Кратчайшие пути для
всех пар вершин. Максимальный поток.
8 Избранные главы теории алгоритмов.
Сортирующие сети. Алгоритмы параллельных вычислений.
Теоретико-числовые алгоритмы. Поиск подстрок. Вычислительная
геометрия. NP-полные задачи. Задачи на приближенные алгоритмы.
Рассмотрим
содержание
курса
«Программирование».
Программирование – это «раздел информатики, изучающий методы и
приемы построения, отладки и развития программ для ЭВМ»
(М.В.Швецкий, с.230-231).
Программирование - это отражение
в
вычислительной
системе объектов, понятий и явлений,
существующих за ее
пределами. М.В.Швецкий указывает на «семантический разрыв»,
который состоит в том, что объекты и соответствующие им операции,
реализуемые архитектурой вычислительной системы, редко имеют
близкое родство с объектами и операциями, реализуемыми в языках
программирования. В свою очередь объекты и операции языка
программирования зачастую очень далеки от понятий, которыми
оперирует пользователь при решении своей задачи. Следствием этого
«семантического разрыва», этой «оторванности» средств решения от
самой задачи и является одно из главных затруднений при
программировании. Поэтому для успешного программирования на
выбранном языке необходимо знание: (1) алгоритмов и структур
данных; (2) парадигм программирования; (3) синтаксиса языка, его
операционной и дедуктивной семантики; (4) технологии разработки
программного обеспечения;
(5) психологических аспектов
программирования (Громыко В. И.).
В.И.Громыко
и
Н.П.Трифонов
утверждают,
что
программирование, рассматриваемое как прагматическая часть
информатики,
полностью определяется своими
средствами,
технологией и стилем.
Средства обеспечивают воплощение
алгоритмов и структур данных на языке программирования
(профессиональный аспект). Технология заботится об эффективном и
надежном использовании средств (прагматический аспект). Стиль
отвечает за существование различных по средствам языков
программирования (мировоззренческий аспект).
Информатика - это не только программирование, но и,
например,
проектирование
аппаратуры
и
архитектуры
вычислительной системы, проектирование баз данных, построение
формализованных моделей и т.д. Тем не менее, без знания
программирования не может обойтись ни один специалист или
преподаватель информатики (Швецкий М. В.).
Самый важный язык, который следует знать программисту, это
его родной язык (Лингер Р., Миллс Х., Уитт Б.), т.е. самое главное в
обучении программированию - научиться ясно и просто излагать свои
мысли на любом языке, а уж потом, имея ясно сформулированную
мысль, искать способы ее воплощения в конструкциях языка
программирования.
По мнению Дж.Буля
«язык является инструментом
человеческого мышления, а не только средством выражения готовых
мыслей.» (Лекции лауреатов премии Тьюринга,с.392).
«Язык, на котором студент учится выражать свои мысли,
оказывает глубокое влияние на его изобретательность и способ
мышления...» (Йенсен К., Вирт Н., с.151).
Н.И.Рыжова предлагает следующую иерархию классов
формальных языков, в основе которой положен признак –
вложенность алгоритмов (Рисунок 7).
Языки в алфавите
Язык комбинаторной логики
Логические языки
Логико-математические языки
Алгоритмические языки
Универсальные алгоритмические языки
Языки программирования
Рисунок -7 – Иерархия формальных языков.
Язык в алфавите не является формальным. Логический язык –
это явно заданный язык, выражения которого строятся из конечного
множества явно указанных символов по строго фиксированным
правилам (Колмогоров А.Н., Драгалин А.Г. ). Логико-математический
язык определяется как язык для формализованного изложения
логических и математических теорий.
Алгоритмический язык - это формальный язык описания
алгоритмов. Универсальным алгоритмическим языком является
алгоритмический язык, позволяющий описать все частичнорекурсивные функции.
Языки
программирования
являются
подмножеством
формальных языков. Формальные языки представляют собой
знаковые системы. Поэтому для полного освоения языков
программирования необходимо обращать внимание студентов на
синтаксис и семантику языка.
Прототипами языков программирования являются языки
описания
вычислимых
функций
и
языки
абстрактных
вычислительных устройств (Рыжова Н. И.).
Соответствие между формальными языками, алгоритмическими
языками и языками программирования приведено в таблице 2
(Рыжова Н. И., с.205).
Таблица -2 -Соответствие между формальными языками,
алгоритмическими языками и языками программирования.
Соответствие формальным языкам
Формальные языки
алгоритмические
языки
языки
программирования и
парадигмы
Языки в алфавите
Язык нормальных
Язык Рефал,
алгорифмов Маркова
продукционное
программирование
Язык машин
Язык Паскаль, С
Тьюринга
императивное
программирование
Язык комбинаторной Язык примитивно и
Язык Лисп,
логики
частично
функциональное
рекурсивных
программирование
описаний
Логические языки
Язык хорновского
Язык Пролог,
программирования
хорновское
программирование
Логикоматематические
языки
Таким образом, содержание обучения
будущих учителей
информатики и специалистов-информатиков программированию и
языкам программирования требует уточнения на основе логикоматематических основ программирования (см.. следующий подпункт).
Отбор языков программирования должен учитывать различие
между начальным обучением программированию и обучением
программированию как систематической дисциплине (обучение
систематическому подходу к программированию), основанное на
нескольких фундаментальных компонентах, призванных обеспечить
языковую поддержку современной технологии программирования:
математическом исследовании задачи,
анализе
алгоритмов,
структурной
и объектно-ориентированной разработке
и
обосновании правильности программ (Вьюкова Н.И., Галатенко В.А.,
Ходулев А.Б.,с.5).
Поэтому при обучении программированию необходимо
формирование представлений студентов о программировании как
систематической дисциплине.
Ряд исследований указывает необходимость изучения
будущими учителями систематического программирования на основе
языка программирования Pascal, использования инструментальных
языков программировании (Швецкий М.В.), программирования
низкого уровня, языка функционального программирования
(Хендерсон П.), языка логического программирования (Клоксин У.,
Меллиш К., Кларк К., Маккейб Ф.). Если раньше в области языков
программирования основной была абстракция от компьютера, то в
ближайшей перспективе основной станет абстракция от программы
(Лекции лауреатов премии Тьюринга, с.420). Также изучение
технологии объектно-ориентированного программирования (Лекции
лауреатов премии Тьюринга, 156), технологии параллельного и
конкурентного программирования (Швецкий М.В.), технологии
распределенного программирования,
технологии
использования
языков моделирования (Киндлер Е.).
Выше указанные разделы систематического программирования
необходимы
для
полноценной
подготовки.
Однако
последовательность, место и объем требует уточнения.
Г.А.Звенигородский сформулировал следующие требования к
языкам учебной ориентации:
- функциональные требования: функциональная полнота,
функциональная непосредственность, гибкость и универсальность,
кумулятивность, методическая обусловленность, наличие моделей
предметных сред;
- технологические
требования:
контролируемость,
документированность, модульность, читаемость, модифицируемость;
- психологические требования: концептуальное единство,
синтаксическое единообразие, ортогональность построения языка,
«расслоенность» структуры языка, преемственность по отношению к
наиболее
распространенным
языкам
программирования,
естественность, минимальность понятий и конструкций, компактность
языковых форм, мощность и структурированность конструкций,
полнота описания, полнота диагностики, концептуальная полнота,
синтаксическая выразительность;
- реализационные требования: реализуемость, эффективность,
канонизированность.
В работе (Звенигородский Г.А.,с.86) вводится дополнительное
требование концентричности, т.е. язык должен допускать
разделение на замкнутые, концентрически вложенные подмножества.
А.Кушниренко,
М.Эпиктетов
сформулировали
восемь
требований к современной системе программирования:
для
достижения
максимальной
прозрачности
пользовательского интерфейса система должна быть как можно более
близка к обычному текстовому редактору;
все
статически
обнаружимые ошибки должны
диагностироваться немедленно во время редактирования программы;
- «области влияния» пользователя и системы должны быть
четко разделены. Пользователь может изменять текст программы в
окне без каких-либо ограничений. Единственное, что позволено
делать системе, - это выводить замечания в окне сообщений;
- система не имеет права мешать пользователю вводить текст
программы или исправлять введенный текст;
- ошибки должны диагностироваться как можно детальнее и
по возможности немедленно, без каких-либо дополнительных усилий
со стороны пользователя. Сообщения должны появляться во всех
местах, связанных с ошибкой, и исчезать сразу после исправления
ошибки;
- диагностика и поведение системы должно зависеть только от
текущего состояния текста программы (а не от истории ее
редактирования);
распространенные ошибки при выполнении должны
фиксироваться немедленно; сообщения об этих ошибках должны
наглядно привязываться к соответствующему месту программы;
- отладчик
должен
поддерживать
автоматическую
визуализацию присваиваемых значений и результатов проверяемых
условий. (Кушниренко А., Эпиктетов М., с.22)
В статье Д.Федюшина говорится: «...вузовский курс
информатики лучше строить как трехэтапный: на первом этапе
изучается логическое программирование (язык Пролог), на втором
этапе - процедурное (например, на базе языка Турбо-Паскаль или
Модула-2), на третьем этапе - объектно-ориентированное
программирование (в качестве языков «поддержки» можно
использовать объектно-ориентированное расширение Турбо-Паскаля
или Модулы-2, язык Си++). М.В.Швецкий предлагает следующую
последовательность смены изучаемых парадигм программирования
по хронологии их возникновения: императивная парадигма (1954г.),
функциональная парадигма (1960г.), продукционная парадигма
(1964г.), хорновская парадигма (1972г.), объектно-ориентированная
парадигма (1983г.), парадигма конкурентного программирования
(1984г.) и следующую последовательность преподавания языков
будущим учителям информатики:
-учебный императивный язык высокого уровня (Pascal, Modula2);
-языки низкого уровня (Макроассемблер, Forth);
-языки функционального, продукционного и логического
программирования (LISP, Рефал, PROLOG);
-инструментальный императивный язык программирования
высокого уровня (например, C или Ada).
Знания различных парадигм сейчас становятся необходимы как
школьному учителю информатики, так и специалистам информатикоматематического профиля.
Имеются различные точки зрения по поводу использования
языка Basic в качестве учебного языка (Швецкий М.В.; Пейперт С.;
Лебедев Г. В.; Артюхов В.).
«Небольшой словарь этого языка можно выучить достаточно
быстро. Но пользование этим словарем – это другое дело. Программы
на языке БЕЙСИК обладают столь запутанной структурой, что на
самом деле только уж очень заинтересованные и блестящие (по своим
математическим задаткам) дети могут научиться пользоваться этим
языком...» (Пейперт С.,с.45).
Г.В.Лебедев: «Если говорить о традиционном Бейсике, то, ...он
не позволяет выразить такое фундаментальное понятие, как
вспомогательный алгоритм (подпрограмма) с параметрами. Поэтому
Бейсик, как бы ни был он распространен или любим, абсолютно не
пригоден для курса основ информатики, если только мы под этим
понимаем основы мышления...».
В.Артюхов предложил термины «BASIC/DOS-программист» и
«BASIC/Windows-программист».
В приведенных высказываниях не учитываются разные версии
языка BASIC с разным диапазоном функциональных возможностей.
М.В.Швецкий считает, что школьный BASIC может
преподаваться в качестве первого языка программирования будущему
учителю информатики, лишь если преподаватель является
профессионалом в преподавании языков программирования.
Стиль программирования на языке C, навязываемый этим
языком программирования (использование побочных эффектов при
вычислении выражений, взаимозаменяемость массивов и указателей и
т.д.), делает программы, написанные на нем, крайне сложными с
точки зрения возможности доказательства их правильности. Поэтому
программирование на С следует изучать будущим учителям
информатики на спецкурсах.
С.С.Лавров считает, что первоначальное обучение идеям и
методам программирования следует вести на примере языка, в
наибольшей степени дисциплинирующего и систематизирующего
мышление. Автор языка программирования Pascal Н.Вирт отмечает,
что разработка языка Pascal преследовала две главные цели. Вопервых, создать язык, позволяющий преподавать программирование
как систематическую дисциплину, основанный на нескольких
фундаментальных концепциях, которые должны были отражаться
этим языком просто и естественно. Во-вторых, разработать версии
этого языка для современных компьютеров, которые были бы
одновременно надежны и эффективны...
Таким образом, одним из главных, при обучении является
решение проблемы является определение фундамента научной
дисциплины «Языки программирования». А это есть выбор языка
для первоначального обучения программированию, дающего
адекватные средства для развития мышления. Систематическое
обучение программированию предлагается осуществлять на базе
языка Pascal. Причем на современном этапе на базе Object Pascal и в
системе программирования Delphi. При систематическом обучении
программированию мы предлагаем осуществлять «объектноориентированный» подход, т.е. обучение в рамках объектной модели
и на базе современной версии языка Object Pascal.
При обучении Object Pascal в системе программирования Delphi
мы имеем дело с новым объектно-ориентированным типом
мышления. Для преодоления трудностей в этом плане обучение
программированию предлагается вести параллельным введением
объектов самого языка и визуальных компонентов. Например,
после получения общего представления о визуальной среде
программирования при изучении основных понятий программного
проектирования
изучению
команд
ввода-вывода
может
соответствовать изучение таких компонентов, как Tedit, Tlabel,
изучению условного оператора – изучение компонентов TradioButton,
TradioGroup и т.д.
Приведем содержание курса «Программирование».
1
часть.
программирования.
Основы
объектно-ориентированного
Роль и место программирования в курсе информатики.
Этические и правовые вопросы профессионаловпрограммистов.
Введение в компьютерные системы и среды.
Объектно-ориентированная
парадигма:
абстракция,
объекты, классы, методы, передача параметров, инкапсуляция,
наследование, полиморфизм.
Основы синтаксиса и семантики языка Object Pascal:
переменные, типы, выражения и присваивание; организация ввода и
вывода; условные и итеративные конструкции управления;
структурная декомпозиция.
Базовые структуры данных: стандартные типы, массивы,
структуры, строки и операции над строками.
Сравнительный анализ языков программирования.
Алгоритмы и решение задач: стратегия поиска решения,
роль алгоритма в поиске решения, стратегии реализации алгоритмов,
стратегии отладки, понятие и свойства алгоритмов.
2 часть. Объекты и абстракция данных.
- Объектно-ориентированная
методология.
Объектноориентированное проектирование. Программные средства.
- Принципы объектно-ориентированного программирования.
Наследование, Иерархии классов. Полиморфизм. Абстрактные классы
и интерфейсы. Классы-контейнеры. Коллекции и итераторы.
- Объектно-ориентированное проектирование. Шаблоны
проектирования и использование программных интерфейсов
приложения. Программные средства моделирования. Диаграммы
классов (CRC-диаграммы UML - use-cases).
- Виртуальные машины. Понятие виртуальной машины.
Иерархия машин. Промежуточные языки.
- Вычислительные
алгоритмы.
Поиск.
Сортировка.
Рекурсивные алгоритмы.
- Структуры данных. Встроенные структуры данных.
Структуры данных, создаваемые программистом. Динамические
структуры данных.
- Программирование
событийно-управляемых
систем.
Методы обработки событий. Распространение событий. Обработка
исключений.
- Основы взаимодействия человека и компьютера.
Разработка и оценка эргономических систем. Основы компьютерного
дизайна.
Технические
ограничения.
Основы
тестирования
эргономичности программного обеспечения.
- Базовые методы программирования графики. Иерархия
программного
обеспечения.
Использование
графических
программных интерфейсов приложения. Простые модели цвета.
Однородные
координаты.
Аффинные
преобразования.
Преобразование изображений. Отсечение.
- Проектирование информационных систем. Программные
средства. Процессы проектирования. Требования. Проектирование.
Тестирование. Планирование. Риск и ответственность компьютерных
систем.
Особенностью выше описанного курса является то, что
изучение вопросов классов, наследования осуществляется перед
изучением базовых понятий (оператора ветвления, итеративный
оператор). Студентов необходимо знакомить с методологией
программирования. Поэтому студентами изучаются принципы
проектирования объектов, основы человеко-машинного интерфейса,
графики и социальные значения программирования в рамках
компьютерной инженерии.
Развитие новых средств компьютерных коммуникаций, как глобальные
(Интернет) и локальные (Интранет) информационные системы дают большие
возможности при решении проблем
повышения эффективности
образовательного процесса, качества обучения, расширения возможностей
получения образования за счет использования в образовании информационных
и телекоммуникационных технологий. В то же время, в условиях быстрого
темпа развития вычислительной техники и прикладных программных средств
профессиональное становление будущих информатиков в стенах вуза требует
построения системы подготовки специалистов в области информатики с
учетом факторов, обеспечивающих эффективное управление траекторией
профессионального становления. В этом плане необходимость внедрения в
систему подготовки на старших курсах специальных курсов, учитывающих
развитие вычислительной техники и прикладных программных средств
очевидна.
Специальный
курс «WEB-дизайн»,
изучаемый
студентами
специальности 010540-«Информатика» ПГУ им.С.Торайгырова был введен в
учебный план за три года до включения в ГОСО РК специальности 010540«Информатика» дисциплины «Программирование для Интернета». Изучение
спецкурса «Web-дизайн», который включает изучение языка HTML и языка
сценариев ActionScript, проводился в условиях проектной деятельности, где
студенты
совместно
разрабатывали
институтскую
Web-страницу,
электронные учебные издания с участием в качестве методистов
преподавателей отдельных дисциплин.
С целью корректирования траектории профессионального
становления будущих специалистов необходимо студентам изучать
курс «Современные языки программирования».
Приведем
содержание
курса
«Современные
языки
программирования».
Целью курса является обучение студентов знаниям, умениям
и навыкам применения современных методов, стилей и
инструментальных средств при разработке программных продуктов.
Задача курса заключается в обзоре и анализе современных
языков программирования, изучении методологии современных
языков программирования.
В результате прохождения курса студенты должны знать:
стратегический
подход
к
современному
программированию;
базовые методологические навыки программирования;
технологию объектно-ориентированного проектирования;
компонентную технологию проектирование;
основы
синтаксиса
и
семантики
языков
программирования, принадлежащих к различным парадигмам.
Студенты должны уметь:
- определять в соответствии с постановкой задачи языковое
средство для ее решения;
- решать задачи обработки информации с применением
средств современных языков программирования.
Все содержание курса разбито на
темы, охватывающие
логически завершенный материал.
Содержание лекций
Тема 1 Обзор парадигм программирования
Императивное программирование. Параллелизм. Параллельное
и событийно-управляемое программирование. Программирование на
основе объектно-ориентированного подхода. Функциональное
программирование. Логическая парадигма программирования.
Программирование
в
ограничениях.
Интеграция
парадигм
программирования.
Тема 2 Основы программирования на Dev-С++4
Среда
программирования
на
Dev-С++4.
Библиотека
заголовочных файлов. Стандартные и нестандартные аспекты
программирования.
Тема 3 Основы программирования на Java Script
Принципы гипертекстовой разметки. Формы. Апплеты.
Объекты. Управление Web-страницами. Методы программирования
на Java Script
Тема 4 Компонентные технологии. Основы работы в среде
С#
Данные. Типы данных. Операции над данными. Конструкции
языка: Выбор. Циклы. Потоки. Функции. Указатели. Команды
передачи управления. Создание собственных методов. Порождение
объектов от порождающих классов. Управление доступом к данным в
объекте. Наследование и интерфейсы. Массивы. Обработка ошибок.
Разработка графического интерфейса пользователя. Обработка
событий в С#.
Содержание лабораторно-практических занятий
Тема 1 Обзор парадигм программирования
Разработка модели с БНФ. Императивное программирование.
Параллелизм.
Параллельное
и
событийно-управляемое
программирование. Программирование на основе объектноориентированного подхода. Функциональное программирование.
Логическая парадигма программирования. Программирование в
ограничениях. Интеграция парадигм программирования.
Тема 2 Основы программирования на Dev-С++4
Среда
программирования
на
Dev-С++4.
Библиотека
заголовочных файлов. Стандартные и нестандартные аспекты
программирования.
Тема 3 Основы программирования на Java Script
Принципы гипертекстовой разметки. Формы. Апплеты.
Объекты. Управление Web-страницами. Методы программирования
на Java Script
Тема 4 Компонентные технологии. Основы работы в
среде С#
Данные. Типы данных. Операции над данными. Конструкции
языка: Выбор. Циклы. Потоки. Функции. Создание собственных
методов. Порождение объектов от порождающих классов. Управление
доступом к данным в объекте. Указатели. Команды передачи
управления. Наследование и интерфейсы. Массивы. Обработка
ошибок. Разработка графического интерфейса пользователя.
Обработка событий в С#.
Содержание самостоятельной работы студента
Наименование тем
Разработка модели с
БНФ и программы на
современном языке
программирования
(выбор языка по
жеданию)
Примеры задач.
Задача 1 Задан текст.
Упорядочить слова по
алфавиту.
Задача 2 Создать
чайнворд из n слов.
Задача 3 Построить
кривые Гильберта n -го
порядка.
Задача 4 Создать
латинский квадрат
размера nхn.
Содержание
Разработка модели
с использованием
БНФ
Форма контроля
Представление отчета
Дифференцированный
зачет
Разработка
программы
Представление отчета
Дифференцированный
зачет
Задача 5 Создать
магический квадрат
размера nхn.
Основы
программирования
Java Script
Разработка модели
с
БНФ
и
программы
на
современном
языке
программирования
(не
менее
3-х
задач)
Создание
Web–
на сайтов.
Представление отчета
Дифференцированный
зачет
Представление отчета
Дифференцированный
зачет
Компонентные
Разработка
технологии.
Основы программы
на
работы в среде С#
языке C# (не менее
5-и задач)
Задачи из сборников
(Абрамов С. А.;
Касьянов В.Н.,
Сабельфельд В.К.)
Представление отчета
Дифференцированный
зачет
Информатизация общества, новая парадигма образования усиливает
необходимость кадрового обеспечения в области телекоммуникационных
технологий (Бидайбеков Е.Ы.; Бидайбеков Е.Ы., Гриншкун В.В.). В настоящее
время специальный курс «Новые информационные сетевые технологии»
включен в учебный план специальности
«Информатика» и призван
обеспечить своевременную коррекцию траектории профессионального
становления специалистов - информатиков в соответствии с динамикой
развития телекоммуникационных технологий. Характерной особенностью
курса является то, что телекоммуникационные технологии в нем
рассматриваются как в пользовательском аспекте, так и
в аспекте
программирования.
Содержание курса «Новые информационные
определяется следующими основными разделами:
сетевые технологии»
Современные методы информационного наполнения сетевых систем.
Современные методы оптимизации программ.
Новые возможности системного программирования.
Сетевое программирование: сетевые утилиты.
Программирование сетевых приложений на низком уровне.
В рамках данного курса изучение методов разработки сетевых
приложений построено на примерах создания программ диагностики сетей,
управления сетевыми устройствами и информационным ресурсом сети и
использования Интернет-приложений.
1.
2.
3.
4.
5.
Рассматриваемый спецкурс предусматривает активное участие
студентов в конструировании приложений для телекоммуникационных систем
(Григорьев С.Г., Гриншкун В.В.), и позволяет студентам овладеть навыками,
необходимыми для работы в современном информационном обществе,
использовании средств телекоммуникаций в профессиональной деятельности.
2.2.2.1 Уточнение содержания обучения программированию
на основе компьютерной математики
Глобальный процесс информатизации
общества и новая
государственная политика в области образования предполагает
решения проблемы фундаментальной подготовки специалистов в
области информатики. Фундаментализация образования в области
информатики
должна обеспечивать будущих
специалистов
фундаментальными знаниями, которые являются методологической
базой предметной области. Программирование как одна из
предметных областей науки информатики имеет огромное значение
при подготовке будущих специалистов.
Фундаментальная подготовка специалистов в области
программирования
характеризуется
целостностью,
которая
предполагает, во-первых, выявление сущностных оснований и связей
в изучаемых объектах, во-вторых, обучение, ориентированное на
внутренние
связи
системы
курсов
информатики
и
междисциплинарные связи.
Рассматривая фундаментальность образования в конкретной
области, Н.И.Рыжова выделяет следующие основания учебного
предмета:
- математические основания (обеспечивают знаниями о
формализацией, которая достигается за счет построения формального
языка предметной области и формализации сущностных
содержательных теории данной предметной области);
- философские основания (определяют основной метод
познания науки, характеризующий деятельность исследователей в
данной предметной области);
- мировоззренческие
основания
(характеризуют
умения
использования
приобретенных
знаний
о
формализации
(математические основания) для описания локальной картины мира
средствами
предметной
области,
которая
обеспечивается
конкретными знаниями из предметной области, т.е. из
фактологической составляющей учебного предмета).
Как известно, переход к информатике осуществлялся через
математику. А.П.Ершов отмечал: «Я хотел бы всячески защитить
идею перехода в информатику от математики через понятие
алгоритма, вырастающего из уже освоенной алгебраической
символики, через разработку алгоритма, предшествующую выходу на
машину». Опираясь на данное высказывание Э.И. Кузнецов отмечает,
что информатика в целом является дочерней наукой математики.
В работе А.П.Ершова компьютерная грамотность определяется
в частности как «владение алгоритмической нотацией планов и
программ для скалярных, векторных и текстовых величин,
содержащих циклы, ветвления и процедуры. Понимание связи
алгоритмической и общематематической нотаций».
В дальнейшем, развивая данную концепцию А.П.Ершовым
были определены основные понятия информатики: информация,
информационная
(математическая)
модель,
алгоритм,
вычислительный процесс (процесс обработки информации),
процессор, исполнитель, разработка алгоритмов (алгоритмизация на
основе
математических
моделей),
построение
программ
(программирование) на основе алгоритмов решения задачи.
Относительно
алгоритмизации
и
программирования
человеческая
деятельность делится в связи
со следующими
принципиально важными обстоятельствами:
-из-за самостоятельной ценности алгоритмического языка как
носителя вне машинного процесса поиска алгоритма;
-из–за
возможности
обеспечить
единую
методику
алгоритмизации по отношению к более разнообразию языковой среды
в программировании;
-из-за возможности разнесения по времени более теоретических
идей систематического
построения алгоритмов
и
более
конкретных
идеи
кодирования
алгоритмов
на
языке
программирования (Ершов А.П.).
«Для умения писать простые программы наиболее важным
является не столько выбор языка программирования, сколько
фундаментальные знания по разработке алгоритмов, отражающая,
правильную методологию программирования (принцип пошаговой
детализации и т.п.) » (Кузнецов Э. И., с. 57).
По мнению академика Е.П.Велихова, одним из составляющих
компьютерной грамотности являются начальные фундаментальные
знания в области информатики. Фундаментальные знания в области
информатики составляют знания в области алгоритма, программы:
понятия о конструкциях алгоритмического языка, о структурах
алгоритмов и программ, о правильности программы, доказательства
правильности программ, структуры объектов обработки (числа,
массивы, тексты), элементарные знания о сложности вычислений,
теоретической и практической возможности задач.
Появление дисциплины «Информатика», основополагающим
понятием которой является понятия алгоритма и программы,
способствовало позитивным решениям вопросов модернизации
обучения математике. Демонстрация прикладной направленности
математики в рамках новой дисциплины наполняет процесс обучения
математике новым смыслом, имеющим практическое значение.
Новым содержанием наполнилось мотивация необходимости
изучения дисциплин логико-математического цикла, которым
свойственно конечность и дискретность. «Это связано с тем, что в
рамках этих дисциплин рассматриваются общие методологические
подходы к изучению синтаксиса и семантики символических языков,
что особенно важно в лане формирования пропедевтической базы
изучения различных языков программирования. Кроме того,
конечность и дискретность органичны самой природе алгоритма,
определившей в конечном итоге, специфические особенности
архитектуры
современных
кибернетических
устройств.
Математическая логика и, в частности, теория алгоритмов, как один
из ее разделов, становятся, тем самым, теоретической основой
постановки процесса обучения информатике и освоения современных
информационных технологий. В этом плане роль математической
логики и теории алгоритмов в подготовке квалифицированных
учителей
математики
и информатики трудно переоценить»
(Дроботун Б.Н., Кадькалов В.Г.).
Процесс формирования как математической, так и
информационной культуры студентов связан с изучением различных
алгоритмов, начиная с
простейших алгоритмов выполнения
арифметических действий и получения различных формул для
вычисления площадей и объемов до алгоритмов нахождения
производных и интегралов.
Таким образом, высокий уровень алгоритмического мышления
является необходимым качеством не только для специалистов в
области
программирования,
но
и
важной
составляющей
общечеловеческой культуры.
Понятие алгоритма формировалось стихийно в древности. На
заре
развития
математики
стали
возникать
различные
вычислительные процессы механического характера, где искомые
величины вычислялись последовательно, пошагово, по определенным
правилам. В математике в последующем такие процессы получили
названия алгоритмов.
Классическими примерами алгоритмов, связанными с
арифметикой являются алгоритм нахождения суммы, произведения,
разности и частного двух натуральных чисел, алгоритм деления с
остатком одного натурального числа на другое, алгоритм нахождения
наибольшего общего делителя двух натуральных чисел (алгоритм
Евклида), алгоритм выписывания простых чисел, не превосходящих
данного натурального числа n (алгоритм «решето Эратосфена»),
алгоритм разложения натурального числа в произведение простых
чисел. Также в области математики известны алгоритм решения
систем линейных уравнений методом последовательного исключения
переменных (алгоритм Гаусса), алгоритм решения системы n
линейных уравнений с n неизвестными методом Крамера, алгоритм
нахождения ранга матрицы, алгоритм разложения многочлена от
одной переменной по степеням x  x (алгоритм «формула Тейлора») и
т. д.
Рассмотрим известный алгоритм решения системы n линейных
уравнений с n неизвестными методом Крамера, как описано в
(Дроботун Б.Н., Кадькалов В.Г.). Предполагаемым результатом
применения метода Крамера к системе n линейных уравнений с n
переменными (система Крамеровского вида) является n - мерный
вектор-решение: ( ,  ,...  ) .
Инструкции исполнения этого алгоритма:
шаг 0 Вычислить определитель d данной системы уравнений.
шаг j ( j  1, 2 ,.. n ) . Вычислить определитель d , полученный из
определителя d заменой j -го столбца столбцом свободных членов.
0
1
2
n
j
шаг
(n  j)
( j  1 , 2 ,... n ) .
Разделить
d
j
на
d
и положить

j

d
j
.
d
При решении системы n линейных уравнений с n
неизвестными и определителем d  0 пошаговое выполнение
инструкции данного алгоритма остановится на ( n  1 ) шаге, и
предполагаемый результат не будет получен.
Необходимо отметить, что шаги данного алгоритма даны
укрупненными, поскольку отдельные шаги содержат простейшие
неделимые алгоритмы.
Анализ вышеизложенного и ему подобных примеров позволило
определить следующие характеристики понятия алгоритма:
- алгоритм задается в виде набора инструкций конечных
размеров;
- существует исполнитель, который умеет пользоваться с
инструкциями и производить согласно их вычисления;
- алгоритм применятся к решению однотипных задач из
бесконечного класса;
- вычислитель взаимодействует с набором инструкций так, что
вычисление осуществляется пошагово и дискретно во времени (один
шаг в одну единицу времени);
- в начале выполнения алгоритма задается исходная система
величин,
в каждый последующий момент времени новая
(промежуточная) система величин однозначно определятся
результатами, полученными в предшествующих шагах,
- закон получения последующих величин из предшествующих
является простым и понятным и не требует обращения к другим
методам или устройствам.
В общем случае, если на вход алгоритма A поступил набор
данных   X ( A ) , то для любого такого набора могут иметь место три
возможности:
а)
корректное
завершение
процесса
вычислений,
регламентируемый алгоритмом A , то есть получаем за конечное
число шагов искомый результат;
б) бесконечность процесса вычислений, регламентируемого
алгоритмом A ;
в) процесс вычислений, определяемый алгоритмом A ,
прерывается через определенное количество шагов, однако искомый
результат не получен.
Эти возможные ситуации, могут возникнуть при выполнения
алгоритма как вручную (исполнитель-человек), так и через компьютер
при выполнении алгоритма, переведенного в язык программирования
(исполнитель-вычислительная машина).
Поэтому понятие алгоритма нас приводит в математике к
понятию частично вычислимой функции, а в информатике, в
частности в программировании, к понятию зацикливания программы,
логически завершенности программ, доказательстве правильности
выполнения программ.
При изучении основ математической логики важно изучение
формализации понятия алгоритма.
Наиболее доступным в плане понимания сути алгоритма
являются формализация алгоритма посредством класса частично
рекурсивных функций (метод формальных аксиоматических теорий) и
формализация посредством класса машин Тьюринга. На основе этих
формализаций вводятся геделевские нумерации машин Тьюринга и
классов n ( n  N ) -местных частично рекурсивных функций,
позволяющие построить примеры множеств с неразрешимой
проблемой вхождения.
Для выполнения любого алгоритма необходимо иметь
начальные исходные данные. Если алгоритм заложен в черный ящик,
то на входе данного ящика и на выходе данного ящика имеем
соответственно входные и выходные данные. Черный ящик с
алгоритмом является структурой управления данными. Поэтому,
программа в данном случае является черным ящиком,
ориентированным на компьютерную реализацию.
Вышесказанное позволяет заключить, что теоретической
основой как программного, так и аппаратного обеспечения
компьютеров является математика. В связи с этим, уточнение
содержания программирования на основе компьютерной математики
необходимо проводить с ориентацией на основные разделы
компьютерной математики.
Основными разделами компьютерной математики являются:
-теория множеств (множества, отношения, функции),
-алгебраические структуры (алгебраические структуры с одной
операцией: группоид, полугруппа, группа; алгебраические структуры
с двумя операциями: кольцо, тело, поле, решетка; алгебраические
структуры с внешними операциями: модуль, векторное пространство,
линейная алгебра; линейные операторы; матричная алгебра; конечные
группы; поля Галуа),
-преобразования на конечных структурах (характеры конечных
алгебраических структур и Фурье-подобные преобразования в
базисах, образованных характерами (  - преобразования), дискретные
преобразования Ганкеля-Теплица, преобразования компьютерной
графики),
-эффективных алгоритмов (анализ и построение эффективных
(быстрых) алгоритмов для конечных алгебраических структур и
преобразования на них).
Формированию математической логики и представлений о
теории множеств посвящены ряд исследований (Калужнин Л.А.;
Столяр А.А.; Стяжкин Н.И.; Фрейденталь Х.; Теребилов О.Ф.;
Ивин А.А.). Калужнин Л.А. рассматривая элементы теории множеств
и математической логики в школьном курсе математики, показал как
многие темы алгебры, геометрии и анализа («Системы уравнений и
неравенств», «Графики функции», «Элементы аналитической
геометрии») могут рассматриваться с единой точки зрения – синтез,
который приводит к лучшему пониманию материала (Калужнин Л.А.).
В качестве синтезирующих понятий взято понятие высказывательной
формы, понятие логического следования.
Кроме того, «теория множеств – это фундамент математики, как
высшей, университетской, так и школьной» (Калужнин Л.А.).
Поэтому, как будущим специалистам информатикам, математикам,
так и будущим учителям – студентам педагогических информатикоматематических специальностей развитие логического мышления,
знаний по теории множеств и математической логики, в частности
знание высказывательной формы имеет большое значение в плане
теории и методики обучения.
М.П.Лапчик
указал, что важное место в профильной
подготовке учителя информатики составляет математическая
компонента фундаментального образования, имеющая целью
получение образования в области основ математики, математического
моделирования.
«Для специалиста в области информатики характерна тесная
связь с рядом других дисциплин, например таких, как математика и
электротехника… Искусство специалиста по информатике состоит в
том, чтобы в модели отразить существенные аспекты моделируемого
объекта, опустив из рассмотрения несущественные. При этом
соответствующее моделирование, в конечном счете, надо перенести
на формализмы, которые могут быть механически обработаны с
помощью вычислительных машин» (Брой М., с. 8-9).
Б.Б. Самсоновым, Е.М. Плоховым и А.И.Филоненковым
предложена схематическая связь разделов компьютерной математики
как на рисунке 8.
Теория множеств
Рекуррентные
последовательности
Модулярные системы
Кодирование
Алгебраические
структуры
Цифровая обработка
сигналов
Графы и электронные
схемы
Преобразования на
конечных структурах
Цифровые логические
схемы
Автоматы
Языки и грамматики
Эффективные
алгоритмы
Компьютерная графика
Рисунок – 8 – Связь разделов компьютерной математики.
Для глубокого и обоснованного изучения программирования
необходимо включение математических основ программирования,
представленных на рисунке 9.
При обучении программированию основным является
построение информационных моделей, а информационная модель в
свою очередь есть совокупность информации об объекте, о
взаимосвязи и взаимоотношениях составных частей, представляемых
в виде описаний на языке спецификаций, абстрактных объектов
(Бидайбеков Е. Ы., Нурбекова Ж.К..). Поэтому, при фундаментальной
подготовке специалистов в области программирования, для
осуществления целостного образования необходимо выявление
математических оснований программирования и использование их
для ориентации обучения на внутренние связи системы курсов
информатики и междисциплинарные связи.
Программирован
ие
Дискретный анализ
Дискретная
математика
Математическая логика
Алгебра
Непрерывная
математика
Математическое
моделирование
Численные методы
Теория вероятностей и
математическая статистика
Рисунок – 9 – Математические основы программирования.
2.2.4 Методы обучения программированию в высшей школе
Понятие методов обучения и их классификации приведены во многих
педагогических исследованиях.
Положив в основу подхода к методам обучения характер
познавательной деятельности
обучаемых,
И.Я.Лернер и М.Н.Скаткин
различают пять методов обучения:
1) Объяснительно-иллюстративный,
рецептивный;
или
информационно-
2) Репродуктивный;
3) Проблемное изложение;
4) Частично-поисковый, или эвристический;
5) Исследовательский.
В исследованиях В.И.Загвязинского, Л.И.Гриценко, И.А.Рейнгард и
В.И.Ткачук показаны возможность их применения в высшей школе.
В монографии И.Я.Лернера на основе обще дидактического
приводятся различные виды классификации методов обучения.
подхода
Используя профессионально-педагогический подход к выбору и анализу
методов обучения математике студентов, А.Г. Мордкович предложил частнодидактические методы, в частности – использование моделирования в
обучении студентов.
«Моделирование является наиболее адекватным современным
требованиям к системе образования методом включения компьютера в
обучение, обеспечивающий активный
вид учебной деятельности.
Преимущества учебного компьютерного моделирования связаны с
преодолением формальности усвоения знаний, развитием исследовательских и
конструкторских навыков, развитием интеллектуальных способностей
студентов. Кроме того, использование компьютерного моделирования в
учебном процессе (исследование явлении на основе готовых моделей
(simulation) и построение моделей самими студентами (modelling)) позволяют
повысить интенсивность обучения» (Швецкий М. В., с.318-319).
Данный метод прекрасно подходит и для обучения программированию.
Моделирование позволяет перенести знания из потенциального в
актуальное. Если обучающая деятельность преподавателя преобразовывает
деятельность студента в учебно-познавательную деятельность, то это
позволяет деятельность обучаемого вывести на уровень творческого
мышления.
Известно, что метод обучения подразумевает метод учения и метод
преподавания.
Метод учения делится на научные методы обучения (методы научной
деятельности, адекватные известным мыслительным операциям (наблюдение и
опыт, сравнение, анализ, и синтез, абстракция, обобщение и т.д.)) и учебные
методы учения (специально созданные методы с целью осуществления
эффективного обучения учебному предмету, например, эвристический метод,
обучение на моделях) (Оганесян В.А., Колягин Ю.М.,
Луканкин Г.Л.,
Саннинский В.Я., с.186-187)
К методам научного познания относятся (Фоминых Ю.Ф., с.17):
- философские методы, рассматривающие общие условия движения к
истине, всеобщий универсальный метод познания – диалектическая логика;
- общенаучные методы (наблюдение, эксперимент, анализ, синтез,
абстракция, идеализация, обобщение и т.д. );
- принципы (методология конкретной науки) – это такие частнонаучные методы, систематическое применение которых формирует целые
разделы науки: принцип теоретической математики – метод дедуктивного
вывода, принцип прикладной математики – метод математического
моделирования;
-
частнонаучные методы (уровень конкретной техники исследования).
Известны следующие методы обучения программированию:
-
метод ручной прокрутки программ (алгоритмов);
метод раскрутки программ;
метод программирования, как метод обучения данному разделу;
метод обучения классическим алгоритмам и их использованию;
метод демонстрационных примеров;
метод проектов.
Метод ручной прокрутки программ (алгоритмов) методически
эффективен. С точки зрения смысла алгоритма, проверки его правильности и
обучения навыкам алгоритмизации, студент может прослеживать действия и
результаты
действий исполнителя (компьютера). Имитация студентом
выполнения программы позволяет получить наглядное представление о
содержании проверяемой программы. Данный метод требует аккуратности в
имитации, что показывает воспитательное значение метода. Метод ручной
прокрутки алгоритмов предлагается использовать и как контроль знаний
студентов на понимание алгоритма.
Метод раскрутки программ (алгоритмов) предполагает разработку
программы на последующие этапы создания программных инструментов
последующих этапов, являющиеся частью программного продукта. Таким
образом, сначала разрабатывается простейшая версия программы, которая
затем используется для построения более сложной версии программ. Данный
метод является аналогом метода математической индукции. Метод раскрутки
программ необходимо использовать в зависимости от типа решаемой задачи,
который также подходит для контроля знаний.
Метод программирования, как метод обучения данному разделу
предполагает использование подходов к программированию.
Метод
обучения
классическим
алгоритмам
Т.А.Бороненко. Идея данного метода заключается в следующем:
предложил
1
студентам предлагается задача, рассчитанная на использование
программирования, решаемая с помощью некоторого классического алгоритма,
при этом алгоритм студенту не сообщается;
2
студент решает задачу, программируя алгоритм, разработанный
самостоятельно;
3
преподаватель сообщает классический алгоритм (предполагается,
что после этого повышается внутренний мотив деятельности студентов,
например, на изучение классического алгоритма);
4
студент
реализует
классический
алгоритм
на
языке
программирования и делает выводы о степени эффективности (по времени)
реализации программы.
Среди перечисленных методов нас интересует метод демонстрационных
примеров, метод проектов.
Метод демонстрационных примеров предложенный в докторской
диссертации М.В.Швецкого основан на идеи Н.О.Вирта «программирование
представляет собой обширную и разнообразную деятельность, часто
требующую сложной умственной работы. Ошибочно считать, что ее можно
свести лишь к использованию готовых рецептов. В качестве метода обучения
остается тщательный выбор и рассмотрение характерных примеров».
М.В.
Швецкий
демонстрационные
примеры
программированию подразделяет на четыре типа:
для
обучения
1) примеры, иллюстрирующие определенные аспекты синтаксиса и
семантики выбранного языка программирования.
Например, демонстрационный пример, показывающий синтаксис и
семантику функции COND, обеспечивающий организацию ветвления в
функциональном языке LISP( muLISP83):
(PROG1 "" (PUTD DEFUN (QUOTE (NLAMBDA (FUNC DEF)
(PUTD FUNC DEF) FUNC ))))
(DEFUN COPY (LAMBDA (LST)
% Функция для копирования «верхнего» уровня списка LST %
(COND ( (NULL LST) NIL )
( T (CONS (CAR LST) (COPY (CDR LST))) ))
))
(RDS)
2) примеры, демонстрирующие реализацию классических алгоритмов
(поиск, сортировка, обходы деревьев и т.д.),
Пример,
моделирующий операции над списком
фундаментальным типом данных в языке LISP (mu-LISP85):
свойств
–
(DEFUN DEMO_2 (LAMBDA NIL;
Построение списка свойств атома "с клавиатуры"
(PRINT "Построение списка свойств данного атома :")
(PRINT Введите имя атома :") (SETQ ATM (READ))
(LOOP
(PRINT "Введите имя свойства (окончание ввода - !:")
(SETQ PROPNAME (READ))
( (EQ PROPNAME '!) )
(PRINT "Введите значение свойства:")
(SETQ PROPVAL (READ))
(PUT ATM PROPNAME PROPVAL)
)
; Взглянем на список свойств
(PRINT "Список свойств атома:") (PRINT (CDR ATM))
))
(RDS)
3) примеры, демонстрирующие реализацию структур данных с
помощью средств изучаемого языка программирования;
Демонстрационный пример, моделирующий операции над бинарным
деревом поиска - инкапсулированным типом данных (mu-LISP85):
(DEFUN TEST (LAMBDA NIL
(PRINT "Построение дерева :") (SETQ TREE NIL)
(LOOP
(PRINT "Введите очередной элемент дерева:")
(SETQ A (READ)) ( (EQ A '!) )
(PRINT (SETQ TREE (ADDTREE A TREE)))
)
(PRINT "_______________________________________")
(PRIN1 "Корень дерева:
")
(PRINT (ROOT TREE))
(PRIN1 "Левое поддерево:
(PRIN1 "Правое поддерево:
") (PRINT (LEFT TREE))
") (PRINT (RIGHT TREE))
(PRINT "_______________________________________")
(PRINT "Приступим к поиску элемента в дереве!")
(LOOP
(PRINT "Введите искомый элемент дерева:")
(SETQ A (READ))
( (EQ A '!) )
(PRINT (SEARCH A TREE))
)
(PRINT "_______________________________________")
(PRINT "Приступим к удалению элемента !")
(LOOP
(PRINT "‚Введите удаляемы элемент дерева :")
(SETQ A (READ))
( (EQ A '!) )
(PRINT (SETQ TREE (DELETE A TREE)))
)
))
; ----------------------------(DEFUN ADDTREE (LAMBDA (A TREE)
; Функция ADDTREE добавляет в дерево поиска TREE элемент A
(COND ( (NULL TREE) (LIST A NIL NIL) )
( (EQUAL A (CAR TREE)) TREE )
( (< A (CAR TREE))
(LIST (CAR TREE) (ADDTREE A (CADR TREE))
(CADDR TREE)) )
( T (LIST (CAR TREE) (CADR TREE)
(ADDTREE A (CADDR TREE))) ))
))
; ---------------------------(DEFUN SEARCH (LAMBDA (A TREE)
; Функция SEARCH ищет в дереве TREE элемент A.
; В случае успеха функция возвращает поддерево дерева
; TREE, в котором элемент A является конем; в случае
; неудачного поиска функция возвращает NIL
(COND ( (NULL TREE)
NIL )
( (EQUAL A (CAR TREE)) TREE )
( (< A (CAR TREE)) (SEARCH A (CADR TREE)) )
(
T
(SEARCH A (CADDR TREE)) ))
))
; -----------------------(DEFUN ROOT (LAMBDA (TREE)
; Функция ROOT возвращает корень дерева TREE
(CAR TREE)
))
; -----------------------(DEFUN LEFT (LAMBDA (TREE)
; Функция возвращает левое поддерево дерева TREE
(CADR TREE)
))
; ------------------------(DEFUN RIGHT (LAMBDA (TREE)
; Функция возвращает правое поддерево дерева TREE
(CADDR TREE)
))
; ------------------------------(DEFUN DELETE (LAMBDA (ATM TREE)
; Удаление узла ATM из дерева TREE (рекурсивный вариант)
(COND ( (NULL TREE) NIL )
( (< ATM (ROOT TREE))
(LIST (CAR TREE)
(DELETE ATM (LEFT TREE))
(RIGHT TREE))
)
( (> ATM (ROOT TREE))
(LIST (CAR TREE)
(LEFT TREE)
(DELETE ATM (RIGHT TREE)))
)
( T (COND ( (NULL (RIGHT TREE)) (LEFT TREE) )
( (NULL (LEFT TREE)) (RIGHT TREE) )
( T (LIST (UD (LEFT TREE))
(DELETE
(UD (LEFT TREE))
(LEFT TREE))
(RIGHT TREE)) )) ))
))
; ---------------------(DEFUN UD (LAMBDA (TREE)
; Вспомогательная функция для функции DELETE
(COND ( (NULL (RIGHT TREE)) (CAR TREE) )
( T (UD (RIGHT TREE)) ))
))
(RDS)
4) примеры, демонстрирующие реализацию объектов в изучаемом
студентами языке программирования.
Метод
демонстрационных
примеров
имеет
определенные
преимущества (позволяет научить студентов чтению программ, использовать
их при программировании других задач, использовать при контроле знаний и
другие) и недостатки (необходимость постоянного учета гигиенических
требований, рекомендаций, используемые в методе примеры подлежат
существенной модификации при разработке реальных программ и другие)
(Швецкий М. В., с.330-333).
В связи с этим, необходимо отметить, что метод демонстрационных
примеров сочетается с другими методами обучения.
Анализ общедидактических и частно-дидактических методов обучения
(Швецкий М.В.; Рыжова Н.И.; Бабанский Ю.К.; Хамов Г.Г.; Лернер И.Я.;
Мордкович А.Г.) и особенности методологии разработки программных
продуктов позволили предложить метод - комбинированный метод обучения
программированию.
Комбинированный метод обучения программированию сочетает
проектный метод, методы демонстрационных примеров, программирования,
вычислительного эксперимента и моделирования и основан на «принципе
триединства»23 (Рисунок -10).
Теория
Абстракция
Проектирование
Рисунок- 10 – Триединство по Деннингу
По данному принципу теория подразумевает описание и доказательство
взаимосвязей объектов изучения; абстракция подразумевает использование
этих взаимосвязей для построения моделей, адекватных реальному миру;
проектирование означает использование результатов теории и абстракции для
получения практических результатов.
Как уже было сказано, профессиональное становление будущих
информатиков требует построения системы подготовки специалистов в
области информатики с учетом факторов, обеспечивающих эффективное
управление траекторией профессионального становления. В этом плане
построение системы подготовки в условиях проектной деятельности является
весьма эффективной. Для реализации системы подготовки в условиях
проектной деятельности необходимо создание теории профессионального
становления; определение типовых процедур проектирования; разработка
технологии обучения в условиях проектной деятельности.
Методом познания действительности при обучении является модель
реального объекта. Для профессионального становления информатиков особое
значение имеет способность создания информационной модели. В этой связи в
основе теории профессионального становления будущих специалистовинформатиков лежит формирование информационной культуры студентов.
Понимание сути информационной культуры будущих специалистов
позволило определить информационное моделирование, которое должен
23
Denning P.J, Comer D.E., Gris D., Mulder M.C., Tucker A.B., Turner A.J., Young P.R. Computing as
discipline. Commun. ACM 32, 1 (Jun, 1989). - p.9-23.
подготовить студентов
полученных знаний.
к
дальнейшему
практическому
использованию
В этом плане разные по тематике, характеру и уровню фрагменты
программ не подходят (они могут быть использованы для закрепления
отдельных понятий), поскольку у студентов в данном случае не формируется
целостное восприятие предлагаемой проблемы и возникает проблема не учета
реальных фактов и ситуации. Поэтому оптимальным для обучения
программированию является создание проектной информационной модели.
Под проектом понимают работу над междисциплинарным заданием,
рассчитанную на длительный срок (от нескольких часов до нескольких
месяцев) и предназначенную для внедрения (Джеймс П., Гуревич М.И.).
Внедрение проекта осуществляется в качестве последующего использования в
учебном процессе, для работы на предприятии, обработки учебнометодической документации и т.д.
Согласно этапам моделирования определяются и типовые процедуры
проектирования, которое заключается в следующих действиях:
- постановка задачи;
-классификация модели - выделение свойств изучаемого
объекта;
-определение
взаимосвязей
между
компонентами
информационной модели;
- построение информационной модели;
- реализация информационной модели;
-анализ результатов моделирования.
Обучение программированию в условиях проектной деятельности
позволяет студентам создавать познавательные информационные продукты
(программный продукт на языке программирования, презентация для
демонстрационных или учебных целей, обучающие игры и т.д.); находить
решения в условиях требующих выбора; использовать различные
информационные ресурсы и новые информационные технологии.
Как показывают результаты исследования, для успешной реализации
проектной деятельности необходимы следующие условия:
- проекты должны быть разной сложности,
- индивидуальный подход к опыту студента,
- возможность выбора студентом заданий,
- возможность самостоятельности студента при выполнении задания,
- возможность выбора студентом метода выполнения задания.
Формы обучения при проектной деятельности должна обеспечивать
заинтересованность студентов, условия творческой деятельности студентов,
проявления инициативы, самостоятельности, избирательности способов
работы.
Логически завершенные и внедренные проекты являются мощным
стимулом для успешной учебы, реализует индивидуальный подход к опыту
студента. Проектная деятельность наряду с учебными задачами решает и
задачи воспитания, улучшает качество учебного процесса.
Рассмотрим
пример
реализации
метод
обучения
программированию.
В рамках информатизации образования новая парадигма
образования предполагает достижения целей, связанных с
приобретением фундаментальных междисциплинарных знаний. Для
реализации данной парадигмы необходимо обеспечить целостность
и фундаментальность знаний, подразумевающих, во-первых,
объединение фундаментальных дисциплин единой целевой
функцией, во-вторых, выявление междисциплинарных связей, втретьих, учет индивидуальных интересов обучающихся.
Поскольку информатизация методической системы обучения
является составной частью процесса информатизации образования,
основной подход, принятый в нашем исследовании является
выявление форм и методов информатизации в системе обучения
конкретным дисциплинам и в рамках системного подхода
обоснование методики получения профессиональной подготовки
специалистов в области информатики.
В условиях кредитной системы обучения, которая предполагает
в основном самостоятельную работу студентов, возникает
необходимость создания программных продуктов для образования,
сочетающих в себе все компоненты методической системы обучения.
В связи с этим создание электронных учебно-методических
комплексов является одним из важнейших задач информатизации
образования.
При такой постановке проблем, естественным кажется реализация
единства образовательной и кадровой политики.
Были исследованы междисциплинарные связи циклов дисциплин
специальности «Информатика» в плане выявления знаний, умений и навыков,
приобретаемых при изучении дисциплин, необходимых для реализации
фундаментального навыка информатиков – проектирования программных
продуктов.
Математика, в частности разделы алгебра, математический
анализ, дифференциальные уравнения, уравнения математической
физики и такие разделы прикладной математики, как методы
оптимизации,
основы вычислительной математики, являются
теоретической основой программного обеспечения компьютеров.
Курсы программирования, прикладного программного обеспечения,
проектирования и конструирования мультимедийных обучающих
систем, специальные курсы по Web-дизайну,
по встроенному
языку скриптов ActionScript, языку Java составляют теоретическую
и практическую основу для проектирования полноценных
программных продуктов. При обучении данным курсам необходимо
реализовать междисциплинарные связи. Это позволить студентам
совмещать различные системы проектирования при разработке
своих программных продуктов. Изучение курса методики
преподавания информатики позволяет вооружить студентов теорией
разработки таких методических основ программных продуктов
учебного назначения, как отбор и структуризация учебного
материала, разработка педагогического сценария, алгоритма
автоматизированного обучения и контроля и т.д.
Создание электронных учебно-методических комплексов и организация
учебных курсов с использованием электронных учебно-методических
комплексов, является непростой технологической и методической задачей.
Создаваемые электронные учебно-методические комплексы должны обладать
такими качествами как мобильность, доступность, адекватность и
соответствовать уровню развития современных научных знаний. А также в них
должны быть реализованы принципы открытой и само развивающейся
системы.
При проектировании
студентами электронных учебнометодических комплексов методическая основа была подготовлена
совместно с ведущими преподавателями конкретных дисциплин.
Программная
реализация
электронных
учебно-методических
комплексов осуществлялся под научным руководством.
Рассмотрим создание программных продуктов, на примере
разработки электронных учебно-методических комплексов по
дисциплинам «Численные методы», «Компьютерная графика»,
«Методика преподавания информатики» предназначенных для работы
преподавателя, а также для самостоятельного изучения и овладения
практическими навыками студентами высших учебных заведений.
Структуру выше перечисленных электронных учебнометодических комплексов дисциплин (ЭУМКД) можно представить в
виде схемы, изображенной на рисунке (Рисунок -11).
Известно, что для результативности обучения необходимо
обучить студентов, прежде всего, добывать знания, то есть обеспечить
алгоритмом действий для достижения прочных знаний, умений и
навыков. В предлагаемых электронных учебно-методических
комплексах все материалы курса собраны в комплекс и являются
методическим руководством, как для преподавателя, так и для
студентов.
Комплекс включает в себя:
1. Полный учебный курс по дисциплине (лекции, лабораторные
работы)
2. Анимационные опорные конспекты к лекциям
3. Нормативная документация для преподавателя
4. "Измерители" знаний, умений и навыков учащихся
(контрольные работы, тесты).
ЭУМКД
теория
практика
контроль
знаний
лекции
лабораторны
е работы
тесты
контрольные работы
опорные
конспекты
экзаменационные вопросы
нормативная
документаци
я
учебный
план
рабочая
программа
методические
указания
Рисунок -11 - Структура ЭУМКД.
Программные продукты созданы с помощью системы объектноориентированного программирования Borland Delphi, языков HTML,
Jаva и встроенного языка скриптов ActionScript, приложений Front
Page и CorelDraw, Flash-технологии. Программные средства обладают
современным
дизайном
и
соответствуют
эргономическим
требованиям к компьютерным средствам обучения. С целью
удовлетворения
всех
требований,
широко
использованы
мультимедийные и гипертекстовые технологии. Это дало
возможность подключить модули, разработанные в среде Borland
Delphi.
В
изложении
теоретического
материала
использован
структурный подход. Основной интерфейс электронных учебнометодических комплексов
представляет собой
схемокурс и
содержание дисциплин. Практический материал изложен с
применением опорных конспектов с анимационным изложением
материала.
Важным
составляющим
электронного
учебнометодического комплекса дисциплины «Численные методы» является
интерактивная имитационная модель решения транспортной задачи
(см. Приложение).
Весь комплект методических документов и средств обучения,
входящих в учебно-методический комплекс должен охватывать
основное содержание материала, обеспечить все виды учебных
занятий и самостоятельной работы студентов при изучении
дисциплины. Необходимо, чтобы все документы учебнометодического комплекса были взаимосвязаны и взаимно
дополняли друг друга, чтобы исключалось дублирование; во всех
документах комплекса требуется обеспечить единство понятий и
терминологии, условных обозначений; они должны быть
рассчитаны на единый уровень знаний и умений студентов,
изучающих данную дисциплину. Целостное видение учебного
курса, развитие его содержания, взаимосвязь между изучаемыми
темами и междисциплинарные связи – все это в совокупности
является необходимым условием развития мышления и
формирования научного мировоззрения студентов.
Разработанные
таким
образом
учебно-методические
комплексы обеспечивают более совершенную организацию
учебного процесса по дисциплине, и создают условия для
повышения качества подготовки специалистов.
Таким образом, делая выводы из реального опыта можно сказать, что
исследование в плане организации процесса обучения программированию в
условиях проектной деятельности показали положительный результат и тем
самым приобретает перспективу исследования в данном направлении в плане
фундаментализации методики обучения.
При реализации выше описанного комбинированного
необходимо руководствоваться следующими положениями:
метода
- междисциплинарность является методологической основой
исследований в области программирования;
- источником развития методики обучения программированию
является интеграция различных концепции, как самого научного
направления программирования, так и областей знаний избранной
профессиональной сферы деятельности;
- научное направление и практическая реализация обучения
программированию характеризуется открытостью, динамичностью,
много вариантностью, альтернативностью;
- научно-учебные исследования по программированию имеют
проектную основу;
- при проектировании учебно-информационных моделей
студент решает множество сложных задач, используя понятийноконцептуальный аппарат и методы различных областей науки,
включая естественные, технические и гуманитарные;
- деятельностный подход в процессе обучения и активная
позиция студента основывается на проектировании и разработке
практических задач из профессиональной сферы;
- при обучении программированию необходима интеграция
знаний, приобретенных из разных источников информации, в том
числе и из электронно-коммуникативных.
Проектирование
предполагает
соблюдение
следующих
критериев разработки проектов:
- алгоритмичность;
- последовательность;
- управление.
В условиях проектной деятельности возможно одной из самых
доступных и близких проектных тем является проектирование
учебной базы знаний по конкретной дисциплине.
Особенностью проектирования учебной базы знаний является
то, что в процессе работы над проектом учебные воздействия на
студента каждый раз будут согласованы с его мотивом приобретения
знаний, необходимых для будущей профессии.
В процессе выполнения проекта студент приобретает навыки
структурирования знаний, тем самым углубляет свой понятийноконцептуальный аппарат по предметной области знаний. Также
студент осуществляет активную деятельность, учебная дисциплина программирование превращается в профессионально-направленную
дисциплину.
Студенты используют различные методы приобретения знаний.
Самой близкой студенту метод приобретения знаний – учебные
занятия, т.е. посещая и анализируя занятия, студенты получают как
фактический материал по дисциплине, так и через работу
преподавателя, обучаясь методике передачи учебного материала.
Используя материалы других учебных дисциплин для
построения учебной базы знаний студенты, конечно, ими оперируют,
в плане более доступной структуризации, что способствует
мотивированному осмыслению учебного материала.
Выступая в роли проектировщика знаний, студенты организуют
работу над учебной базой знаний в соответствии с новыми
представлениями о моделировании предметных областей.
Поскольку в учебной базе знаний представляются знания о
предметной области и информация о структуре и динамике учебного
процесса, то студент вынужден позаботиться о расширении и
углублении своих знаний по различным предметным областям,
моделирования различных вариантов организации знаний и сценариев
внутренних действий проекта, и в целом моделирования деятельности
преподавателя и обучаемого.
Таким образом, проектирование учебной базы знаний требует
«междисциплинарного синтеза знаний» (Власова Е.З.).
Количественную оценку потенциальной эффективности
межпредметных и внутрипредметных связей рассматриваемых курсов
Ю.С. Брановский предлагает сводить к следующей задаче линейного
программирования.
Пусть задана система структур учебных предметов.
Расстоянием между элементами знаний A и A или длиной
связи A  A называют число r ( A , A )  j  i , а потенциальная
эффективность межпредметных и внутрипредметных связей системы
структур учебных предметов определяется суммой длин всех связей:
i
i
j
i
n 1
S 
j
n

i 1
j
r ( Ai , A j )
j2
Для построения системы структур учебных предметов,
обеспечивающих
наиболее
эффективное
использование
межпредметных
и
внутрипредметных
связей,
необходимо
расположить элементы знаний в такой последовательности, чтобы:
1) начальный элемент любой связи предшествовал конечному;
2) сумма всех расстояний между связанными элементами была
минимальной.
Структуру, обладающую этими признаками, называют
идеальной с точки зрения межпредметных и внутрипредметных
связей по содержанию. Тогда, преобразование заданной системы
структур учебных предметов из n элементов в идеальную сводится к
нахождению неизвестных x ( i  1, n ) , удовлетворяющих следующей
системе условий:
i
xi
xk ,

n 1 n

   ( x k  x i )  min,
 i 1 k  2
 ( x i , x k )  1 , 2 ... n .
Рассмотренный
выше
метод
потенциальной
эффективности
межпредметных и внутрипредметных связей по содержанию учебных
предметов должен быть реализован на базе государственного образовательного
стандарта высшего профессионального образования с учетом опыта
преподавания системы курсов информатики.
2.2.5
Средства
и
формы
программированию в высшей школе
организации
обучения
В условиях повсеместного внедрения компьютерной техники
классическое разделение в педагогике средств обучения на реальные
идеальные средства обучения, можно расширить, добавив
виртуальные средства. В связи с этим, имеем следующую
классификацию средств обучения:
Средства обучения
Реальные
/материальные/
Идеальные
/абстрактные/
Виртуальные
Рисунок- 12 – Классификация средств обучения.
К реальным /материальным/ средствам обучения относятся
учебники, учебно-методические пособия, дидактические и наглядные
материалы. Учебники и учебные пособия играют существенную роль
в методической системе обучения. Роль, функции и требования к
классическим учебникам и учебным пособиям в организации
учебного процесса в высшей школе рассмотрены в работах П.Г.Буга,
Н.И. Тупальского, Г.Г.Хамова.
К идеальным /абстрактным/ средствам обучения относятся
ранее приобретенные знания и умения студентов, которые
используются для усвоения нового учебного материала.
К виртуальным средствам обучения относятся программные
продукты
учебного
назначения,
использование
которых
обуславливает виртуальную деятельность студентов.
Анализ научно-методической литературы позволяет выделить
следующее содержание учебного материала в учебных пособиях:
а) предметный
- фактический (факты, таблицы, модели, символы и т.д.);
- теоретический (понятия, аксиомы, определения, законы,
теоремы, правила, принципы, алгоритмы);
- педагогический (развитие творческого мышления,
привитие целеустремленной деятельности);
- справочно-ориентировочный (предисловие, аннотация,
комментарии, оглавление, примечания, указания, библиография,
глоссарий);
- методический
(способствовать
приобретению
информационной
деятельности,
межпредметные
и
внутрипредметные связи).
Проведем обзор пособий по обучению программированию.
Многие из них посвящены обучению популярному языку
программированию. Только некоторые из этих пособий позволяет
приобрести навыки составления решения задач и получить знания по
технологии программирования.
Большой набор интересных и сложных в плане разработки
алгоритма решения задач даны в книгах (Абрамов С. А.; Касьянов В.
Н.; Касьянов В.Н., Сабельфельд В.К.).
Важным средством обучению программированию является
система «хорошо» подобранных задач. Здесь определяет
прикладную значимость и играет важную роль целостность решаемых
задач и их смысловая последовательность. Поэтому обучение
предлагается проводить на одном проекте (система логически
связанных задач), постепенно усложняя условие и тем самым,
укрупняя на каждом шаге получаемый проект.
Безусловно, для привития практических навыков обучаемым,
целесообразно
использовать
возможность
информационных
технологий - создание интерактивных практикумов для тренинга.
Необходимо учитывать учебные, практические, учебнопрактические функции задач в обучении. Как средство обучения
программированию, задачи можно классифицировать следующим
образом:
- задачи для обучения понятиям;
- задачи для усвоения правил и алгоритмов;
- задачи для усвоения теорем и их доказательств.
Задачи как идеальные средства обучения программированию,
основанные
на
компьютерной
математике
могут
быть
классифицировано следующим образом (Рисунок -13):
Задачи
Формальные
системы и их
модели
Интерпретация
Выделение
конструктивной
части из
формального
языка
Получение
алгоритма
Семиотика
языка
программирован
ия
Формальный
синтаксис и
формальная
семиотика
формальная система алгоритмического
языка  вычислительная модель
Операционная
семантика
формальная система алгоритмического
языка  логико-математическую модель
Дедуктивная
семантика
формальные системы
множественный язык
Детонационная
семантика

теоретико-
Рисунок -13 – Классификация задач по программированию по
направлениям.
Умение решать подобные задачи позволяют освоить
утилитарный, индуктивный, дедуктивный, трансформационных
подходы к синтезу программ. Э.Х. Тыгу определяет данные подходы
следующим образом:
- утилитарный подход: программа строиться с помощью
частных приемов;
- индуктивный подход: программа строиться по примерам,
непосредственно задающим ответ для некоторых исходных данных;
- дедуктивный подход: для построение программы используется
доказательство утверждения, что решение задачи существует;
- трансформационный подход: программа получается путем
преобразования исходного описания задачи по правилам,
совокупность которых представляет знания. (Э.Х.Тыгу, с.15)
Научно-методическую
ценность
представляют
труды
В.Н.Касьянова по программированию.
Книга базируется на опыте преподавания основного курса по
программированию для студентов механико-математического
факультета НГУ, который читается автором с 70-х годов прошлого
века. Книга включает около 4 тысяч задач, в которой в основном
представлены упражнения в форме заданий для каждого студента
группы.
Содержание
в
книге
придерживает
принцип
концентричности, когда студент осваивает языковые средства и
приемы программирования постепенно, слой за слоем. Освоение
студентом нового слоя означает просто расширение круга задач,
которые он может решать.
Не одно поколение профессионалов было подготовлено на
заданиях практикума В.Н. Касьянова и В.К.Сабельфельда.
В целях фундаментальной подготовки будущих специалистов в
области программирования целесообразно использовать при обучении
студентов следующие учебные пособия и монографии.
В книге С.С.Лаврова даны единые основания математики и
программирования: сведения из области графов, теории вероятностей
и информации в математическом толковании, приведены основные
понятия и конструкции современных языков программирования,
рассмотрены вопросы теории программирования с упором на
математическую семантику языковых конструкций.
Учебное
пособие
Б.Б.Самсонова,
Е.М.Плохова,
А.И.Филоненкова
«Компьютерная
математика
(основание
информатики)» предназначено для компьютерных специальностей
вузов и рассматривает теоретические основы цифровой информатики
и эффективные алгоритмы обработки кодов и цифровых сигналов,
конечные алгебраические структуры, моделирующие аппаратные и
программные средства компьютерных технологий.
Вычисления с объектами в примерах и задачах рассматривается
в пособии профессора В.Э.Вольфенгагена по комбинаторной логике в
программировании. В книге изложен круг задач, сводимых к
исчислению объектов – «от простого к сложному». Последовательное
решение задач предусматривает усвоение студентов основных
методов и средств комбинаторной логики и λ-исчисления.
Достаточно обширный материал для усвоения студентами
фундаментальных разделов (математическая логика, теория множеств,
комбинаторика, теория графов, теория алгоритмов и вычислений,
теория вероятностей, алгебра и теория чисел) представлен в учебнике
Джеймса Андерсона «Дискретная математика и комбинаторика».
В книге программиста-ветерана Генри-Уоррена
даны
множество приемов для работы с отдельными битами, байтами,
вычисления различных целочисленных функций. В данной книге
отражен сорокалетний опыт работы автора в фирме IBM, а также
деятельности от IBM 704 до PowerPC, работы над рядом военных
командно-управляющих систем и над проектом SETL.
В монографии крупнейшего американского специалиста по
программированию Д.Кнута «Искусство программирования» (1-том в
1976 году, 2-том в 1977 году, 3-том 1986 году изданы на русском
языке) исследованы различные алгоритмы внутренней и внешней
сортировки, методы поиска информации в таблицах на основе
сравнения или преобразования ключей, даются оценки эффективности
предлагаемых алгоритмов.
В данном классическом труде материал изложен с применением
математического аппарата и рассмотрением информационных
структур, в частности представлении информации внутри
компьютера, структурных связях между элементами данных и
способах эффективной работы с ними. Д.Кнут отмечает, что данная
монография «без большей части математического материала была
использована мной в качестве учебника по второму курсу лекций
«Структуры данных» для студентов младших и средних курсов.
Математические части этой книги, особенно §5.1, п.5.2.2, §6.3 и 6.4,
могли бы составить учебник по анализу алгоритмов для студентов
средних и старших курсов. Кроме того, на основе п.4.3.3, п.4.6.3, 4.6.4,
§5.3 и п.5.4.4 можно построить курс лекций «Сложность вычислений»
для старшекурсников.
В монографии Д.Кнута приведено множество примеров для
методов имитации, символьных вычислений, числовых методов и
методов разработки программного обеспечения.
Классическим учебником по Computer Science является книга по
курсу построения и анализа эффективных алгоритмов Т.Кормена,
Ч.Лейзерсона, Р.Ривеста. В данном учебнике разбираются важнейшие
классы быстрых алгоритмов и приемы их построения.
Не менее важным средством обучения программированию
является тематические сборники материалов MSDN Library и MSDN
Magazine «Альманах программиста», в которых представляется
подборка статей из названных журналов о современных и
перспективных информационных технологиях.
Одним из возможных путей оптимизации методов обучения
программированию является создание на высоком научно –
методическом уровне электронного учебного издания.
Приведем содержание предлагаемого учебного издания:
теоретический материал по основам программного проектирования
необходимо излагать сжато и лаконично с применением опорных
сигналов. Основываясь на данном теоретическом материале, далее
необходимо вводить понятия итерации, рекурсии, логического
утверждения и инварианта. Центральной темой выступают типы
данных и структурирование утверждений. В заключение необходимо
рассматривать инкапсуляцию данных, модульность и проектирование
интерфейсов.
Терминологию
целесообразно
преподнести
с
применением справочной службы в виде толкового словаря.
В высшей школе функционируют такие организационные
формы обучения, как лекции, практические занятия, лабораторные
работы, практикумы, семинары, самостоятельная работа студентов,
самостоятельная работа студентов с преподавателем, научноисследовательская работа студентов, производственная практика,
педагогическая практика.
Формы организации обучения в дидактике определяется как
способы управления познавательной деятельностью студентов для
решения определенных дидактических задач.
Наиболее устоявшейся классической формой проведения
занятий в высшей школе является – лекция. Данная форма обучения
предназначена для изучения теоретического материала. Материал
должен излагаться
последовательно, систематично. Содержание
каждой лекции должно иметь как внутренние, так и внешние
логические связи, которые позволяют интеграцию ведущих идей и
внутри лекционную, и межлекционную.
Как уже было сказано подход в обучении программированию
посредством
учебно-информационных
моделей
с
междисциплинарным характером и свойствами открытых систем
позволяет
более
эффективно
организовать
обучение
программированию. Поэтому, для достижения методической цели
чтения лекций в высшей школе, как развитие творческого мышления,
познавательной активности студентов, интереса к изучаемой науке и
преподаваемой учебной дисциплине в лекционном материале следует
больше давать примеры решения задач. Наряду с образцами
алгоритмов, необходимо приводить выводы алгоритмов из
рекурсивных соотношений и приводить инварианты циклов и
промежуточные утверждения, из которых выводится правильность
программы.
Для выработки навыков применения теоретических знаний,
полученных на лекциях, предназначены практические занятия. В
структуру практического занятия входит обсуждение проблемных тем
предыдущих занятий, постановка новой проблемы преподавателем и
обсуждение ее со студентами, практическая часть и заключительная
часть для подведения итогов занятия.
В ходе практических занятий по обучению программированию
для получения знания студентами об эффективности, наглядности и
надежности решения задач следует проводить вместе со студентами
сравнительный анализ разных решений одной и той же задачи.
Как показывает анализ научно-методической литературы и опыт
работы, из всех форм занятий, где предполагается практическая
деятельность
студента,
эффективными
для
обучения
программированию являются лабораторные и самостоятельные
работы студентов.
Индивидуальная работа студентов состоит в самостоятельном
выполнении
заданий.
При
необходимости
преподаватель
консультирует студентов. Выполнение индивидуального задания
студентами предполагает следующие виды работ:
- анализ условия задачи и выработка подхода к ее решению;
- на основе подобранного подхода выполнение пошаговой
разработки алгоритма решения;
- описание алгоритма;
- обоснование алгоритма;
- выбор и обоснование представления для входных, выходных и
промежуточных данных;
- составление кода программы;
- выбор и обоснование выбора тестов, для проверки программы;
- отладка программы;
- демонстрация ее правильной работы на выбранном наборе
тестов;
- составление отчета.
Данные виды работ должен составлять единый процесс
создания программ. Поэтому возможна некоторая интеграция этапов
выполнения работы.
Лабораторная работа предполагает самостоятельную работу
студентов, в процессе которой с помощью учебно-исследовательской
деятельности они повторяют, закрепляют и обобщают теоретикометодологические знания, практические умения и навыки. Задания
студентам формулируются преподавателем, а для выполнения задания
используются технические средства, в частности ЭВМ, и программное
обеспечение24.
На занятиях предполагается индивидуальная работа студентов,
выдаются индивидуальные задания разной сложности. При оценке
сложности необходимо учитывать такие показатели, как сложность
структур данных, сложность вычислений, сложность связи между
структурами данных и вычислениями, требующие изобретательность,
т.е. свойства задания с непривычными для студента понятиями и
сложность извлечения из определений тех свойств, которые
используются при создании алгоритма решения задания.
В традиционной педагогике коллективная работа (преподавателя со
студентами) предполагает совместное решение практической части задач с
одним ведущим студентом у доски.
В условиях применения метода проектов коллективная работа
имитирует работу реальной группы разработчиков программного обеспечения:
находясь в реальной мини программистской группе, студенты оказываются в
роли системного аналитика, проектировщика и т.д. Это позволит студентам
подточить знания в каждой отдельной специализации и выбрать
специализацию для будущей профессиональной деятельности. Работая над
проектом в группе, студенты реально используют свои знания в деле,
приобретают новые знания, обучая друг друга новым методам и приемам
программирования. «При выполнении проекта … определяются ценностные
ориентации, мотивы выбора профессии, профессиональная направленность»
(Сурчалова Л.В.).
Положительный опыт обучения программированию в условиях
проектной деятельности имеет место при подготовке студентов специальности
«Информатика» ПГУ им.С.Торайгырова. Начиная проектную деятельность на
начальных курсах, при изучении курса «Языки программирования» путем
коллективного выполнения творческой работы – проектного задания, в
последующих курсах, при изучении специальных дисциплин, спецкурсов
студенты изъявляли желание работать в условиях проектной деятельности.
Положительное отношение к процессу обучения естественно повышает
интерес к предмету, следовательно, усиливается и мотивация обучения.
Имеется также опыт работы в условиях проектной деятельности над
дипломным проектом. В частности, студентами-выпускниками реализована
информационная модель института и кафедры, где учебная, воспитательная и
научная деятельности имеют сложную взаимосвязь. Так, студентами (над
проектом работали два человека) с применением возможностей системы
программирования Delphi и СУБД MS Access была разработана система
управления базами данных «Деканат» и «Кафедра». Здесь важно отметить, то,
что самой близкой по сущности моделью является модель той среды, где
24
Педагогическая энциклопедия.-М.:Советская энциклопедия.- 1965. -911с.
человек живет и работает. В этом отношении информационная модель
структуры учебного заведения является оптимальной моделью.
Изучение спецкурса «Web-дизайн», которое включает изучение языка
HTML и языка сценариев ActionScript, проводилось в условиях проектной
деятельности, где студенты совместно разрабатывали институтскую Webстраницу. Большой интерес у студентов вызывает подобный метод обучения
тем, что появляется большая возможность проявления самостоятельности,
активности, реализации личности в конкретном деле по мере своих
способностей, и естественно появляется возможность приобретения новых
знаний, обучаясь, друг у друга. Все сказанное играют большую роль в процессе
становления будущих специалистов. Таким образом, в протяжении четырех
лет студенты ПГУ специальности «Информатика» создавая полноценные
информационные продукты, показывают репродуктивность данного метода
обучения программированию. А созданные программные продукты являются
отличной рекламой для будущих работодателей.
Навыки работы в условиях проектной деятельности позволили
участвовать во время производственной практики при региональном центре
новых информационных технологий, в группе программистов под
руководством автора статьи участвовать в выполнении заказа Акима области
по созданию электронного учебника по экономической географии
Павлодарской области: регионального компонента образования. В проекте
участвовали студенты четвертого курса, которые частично выступали
разработчиками учебных модулей. Задачу проектировщика и компоновщика
выполнял один студент, дизайнерские функции и функции отладчика выполнял
другой студент. Создавая реальный программный продукт, работая в реальном
коллективе (в составе которого были руководитель проекта, учителя-географы
в качестве методистов, руководитель группы программистов, программисты и
т.д.) над созданием электронного учебника, реализуя возможности
информационных технологий (графические, мультимедийные, анимационные,
видео и др.) путем интеграции работы системы программирования Delphi 5.0,
графического редактора Macromedia Flash 5, PhotoShop 10.0 студенты
показали высокий профессионализм.
Поскольку полученные знания, умения и навыки должны стать
результатом собственной деятельности, то достижения целей и выполнения
задач всех форм завершает самостоятельная работа. Самостоятельная работа
согласно классификации П.И.Пидкасистого делится на виды по образцу,
реконструктивные и вариативные. Самостоятельные работы по образцу
строятся на основе известного алгоритма деятельности, например,
исследование свойств алгоритма. Реконструктивные самостоятельные работы
опираются на преобразование имеющего опыта решения задач. В вариативных
самостоятельных работах исходят из анализа незнакомых студенту ситуаций и
получают на его основе новую информацию.
Для эффективной организации
занятий необходимо применять
идеальные средства обучения, учитывать ранее приобретенные студентами
знания и умения, как по дисциплине программирования, так и по другим
дисциплинам системы курсов информатики. В целях обеспечения обратной
связи, которая подразумевает контроль качества знаний, умений и навыков
студентов может осуществляться в форме коллоквиума, зачета, экзамена.
Контроль знаний по определению знаний теории могут проводиться
методом тестирования. Для определения умений студентов по усвоению
материалов по отдельным темам можно применить тесты с фрагментами кода
программ (Бидайбеков Е.Ы., Нурбекова Ж.К., Сагимбаева А.Е.; Нурбекова
Ж.К. Даутова А.З.).
Разработанные студентами программы также
тестируются. Технология подобного тестирования будет описана позже, в
главе 4.
2.3 Перспективные направления развития методической
системы обучения программированию
При определении содержания курса, одного из составляющих
методической системы, необходимо учитывать опережающий
характер подготовки будущих специалистов. Для этого необходимо
знакомить с перспективами развития методов программирования с
целью профессиональной ориентации.
Поскольку в парадигме обучения любой дисциплине не может
не найти отражения единство содержания и методики ее преподавания
и, кроме того, само содержание опосредованно влияет на выбор
методов (Ракитина Е.А.). Поэтому отбор содержания предусматривает
включение проблемных вопросов и ситуаций, требующих
эвристические решения и обеспечивающие мотивацию и развитие
творческих возможностей обучаемых.
В связи с этим перспективные направления развития
методической
системы
обучению
программированию
непосредственно связано как с современными парадигмами
образования, так и содержательным наполнением обучения, то есть
возможной сменой парадигм программирования. В связи с этим,
рассмотрим
тенденции
развития
индустрии
программного
обеспечения.
В истории развития индустрии программного обеспечения
известны основные три этапа: структурный подход (1970г.), объектноориентированный подход (1980г.), компонентный подход (1996г.).
Специалисты в области программирования смену парадигм
воспринимают не как революцию, а как эволюцию.
При построении методов объектов (процедур) применяется
структурный подход, а компоненты строятся на основе объектов.
Следует сказать, что методы анализа систем при переходе к объектам
претерпели значительные изменения и переход к компонентам ещё не
завершён. Отметим следующие особенности различных парадигм
программирования:
- Отдельно существуют данные и обрабатывающие процедуры,
при этом данные обладают структурой, данные пассивны, процедуры
активны, программа представляет собой последовательность вызовов
процедур с передачей им данных для обработки.
- Объект представляет собой сложную структуру, которую
можно рассматривать или как совокупность полей (непосредственно
данных) и методов (процедур), причем процедуры объекта имеют
доступ к своим данным, или как совокупность состояний (что
определяется данными объекта) и поведения (что определяется
методами объекта).
Программа
представляет
собой
набор
объектов
взаимодействующих посредством обмена сообщениями (вызова
методов). Здесь важно отметить два важных момента, присущих чисто
объектному подходу: изменение объектов требует перекомпиляции
программы, для модификации программы часто нужны исходные
тексты объектов.
- Компонент является развитием концепции объекта; компонент
доступен только через свой интерфейс. В отличие от реализации,
интерфейс является своего рода стандартом, инвариантным к
реализации (к конкретному языку программирования или
программной платформе). Компонент предоставляет через свой
интерфейс сервис другим компонентам. При компонентном подходе
программа представляет собой объединительную панель, к которой
подключаются компоненты, причем программа может собираться из
компонентов динамически. В отличие от объектного подхода,
компонентный подход имеет два существенных отличия: во-первых.
модификация компонента может не требовать перекомпиляции
программы (замена компонента может не требовать даже перезапуска
программы); во-вторых, для модификации программы не нужны
исходные тексты компонентов. Конечная цель компонентного
подхода заключается в обеспечении сборочного программирования на
основе стандартов и рынка компонентов по аналогии с аппаратным
обеспечением. При объектно-ориентированном подходе модификация
элемента системы требует её повторного тестирования. Компонентная
система не требует этого и поэтому может модифицироваться на ходу,
что открывает широкие перспективы, обеспечивая устойчивость и
надежность программного продукта.
Современные
тенденции
развития
технологий
программирования показали перспективность концепции объекта и ее
дальнейшего развития в сторону создания компонентов.
Объект – это фрагмент программного кода или спецификации,
который используется для построения приложения.
Компонент – программный модуль, из которых путем
применения специальных технологий (OLE, COM, OpenDoc)
создаются приложения.
При этом среда программирования основана на взаимодействии
распределённых компонентов путём удалённого вызова методов.
Данный подход обеспечивает высокий
уровень абстракции и
соответствует современным тенденциям. На сегодняшний день
наиболее распространены три конкурирующие промышленные
технологии распределённых компонентных сред: CORBA, DCOM,
RMI/BEAN (R.Orfali, D.Harkey.; Ерохин А.В., Корнев Н.А. и
материалы сайта http://www.microsoft.com/com).
По мнению большинства специалистов, все эти технологии во
многом эквивалентны, просуществуют достаточно долго, и сейчас не
представляется возможным однозначно предсказать победу какойлибо из них (Ерохин А.В., Корнев Н.А.). Различия заключаются в
поддерживаемых платформах, доступных языках программирования,
ценовой политике и методах реализации. Ситуация в этой области
постоянно меняется практически по всем параметрам, кроме того,
постоянно появляются всё новые мосты между конкурирующими
технологиями. Однако, следует сказать, что у каждой технологии
имеются свои преимущества и ни одна из них не является полностью
завершённой.
Технология
CORBA
(R.Orfali,
D.Harkey)
позволяет
подключаться теоретически к любой из поддерживаемых платформ
(C++, Delphi-Wintel, Java), но для работы с ней требуется
приобретение продуктов сторонних фирм. CORBA удобна, когда
необходимо подключение к устаревшим системам. Данная технология
в явном виде не применяет компонентный подход, но имеет ряд
необходимых черт компонентной системы.
Технология DCOM является распределённой компонентной
системой Microsoft, присутствует везде, где есть Windows. DCOM
перенесена на UNIX, используется в Delphi. Технология хорошо
объединяется с Java при условии применения продуктов Microsoft
(J++, С++, VB).
Технология RMI/BEAN (Ерохин А.В., Корнев Н.А.) составляет
часть спецификации Java API и позволяет строить распределённые
компонентные многоплатформенные системы на языке Java. Java
имеет также API к технологии CORBA, что делает данный язык
программирования ещё более привлекательным.
Одним из компонентных прикладных сред, которая достойна
внимания в плане перспективы, является система Oberon System 3 и её
бета-версия Oberon/F. Oberon, как система программирования и как
язык, начала свою историю с 1986 г. Эта работа была осуществлена
под руководством Н.Вирта и Ю.Гуткнехт. Oberon System 3 и её бетаверсия Oberon/F – это среда программирования и объектноориентированный язык разработки приложения, который расширяет
возможности
операционной
системы
в
плане
объектноориентированности.
Основным назначением данной системы
является обеспечение повторного использования программного кодавзаимодействующих друг с другом компонентов, которые можно
применять при проектировании приложения.
Компонентную
ориентированность
имеет
язык
программирования С# [C sharp] платформы Microsoft.Net. Ведущим
разработчиком С# является А.Хейлсберг (разработчик Turbo Pascal и
руководитель команды разработчиков Delphi).
Компонентная ориентированность, предусматривает включения
в структуру языка концепций, необходимых для написания
компонентов. Например,
- концепции как опции (properties), методы, события, атрибуты,
и документация (конструкции первого уровня в языке C#);
- концепции компонентов, как атрибуты, имеющие особенность
добавления типизированных метаданных к любому объекту;
- возможность создания документации прямо из исходного кода
(возможность работы с XML тэгами комментариев);
- концепция, которую А.Хейлсберг (Andrew Filev) называет
"все покупки на одной остановке", когда программа создается в одном
месте и не требуется файлов заголовков, IDL (Interface Definition
Language) файлов, GUID и запутанных интерфейсов. А созданное
приложение будет само себя описывать и является самодостаточным
блоком, которое можно связать его с ASP и расположить в любом из
окружений;
- компонентное программное обеспечение, т.е. программымонолиты или монолитные библиотеки классов (каждый компонент,
который
наследован
от
другого
базового
компонента,
поставляющегося некоторым окружением, и эти компоненты
перекрывают некоторые методы и опции, реагируют на определенные
события);
- наличие boxing и unboxing (boxing позволяет значение
простого типа преобразовывать в объект, в то время, как unboxing
позволяет значению объекта быть представленным в виде значения
простого типа, способ реализации которого новый;
- обеспечение взаимодействия программ между собой
(предоставление программистам возможностей взаимодействия с
Internet стандартами, такими как HTTP, HTML, XML, и с
существующими
Microsoft
технологиями),
все
возможные
взаимодействия с COM встроены в язык и платформу, простата
импортирования существующих DLL, через атрибут DllImport;
-определение
понятие
небезопасного
(unsafe)
кода
(позволяющего создавать встроенные C программы, использовать
указатели, небезопасные приведения типов и распределение памяти,
которое не приведет сбою при сборке мусора);
- взаимодействие управляющей среды и небезопасного кода
(используются фиксированные операторы, которые позволят
закреплять объект, позволяет оставить работать весь существующий
код, вместо того чтобы просто его выкидывать);
- многоязыковая платформа, которая позволит использовать
множество языков, которые будут иметь одинаковый набор API;
- возможность создания распределенных приложений (свойства
таких приложений: наличие повсеместных связок и независимость от
конкретного места, которое дает возможность распространения).
Примером может служить интеграция XML с C#. Здесь добавлены
атрибуты для реализации механизма настроек, которые применяются
во всей инфраструктуре Web-сервисов и XML, имеются возможности
указывания поля, которые в одном месте буду элементами, а в другом
атрибутами, возможность контроля схемы исходящего XML. Данные
атрибуты, позволяют запрашивать у инфраструктуры вывода XML
или Web-сервисов, представление любого заданного класса в виде
XML.
Рассмотрим разные мнения на использование языков
программирования.
Хейлсберг: «Языки - забавная штука. Это дело вкуса. Язык это
почти религиозная вещь, и выбор стиля жизни для программистов. Я
хочу сказать, что мы не в праве выйти и сказать: «Вот платформа, на
которой вы имеете один базовый язык»» (Andrew Filev).
Интересен факт Гудхью в том, что 60% разработчиков на
профессиональном рынке используют два или более языков
программирования для создания своих приложений.
Андерс, отмечает, что «люди используют разный синтаксис в
соответствии с их собственными чувствами. Это личный выбор..
право выбора - на каком языке писать».
Анализируя
эволюцию
программного
обеспечения
и
соответствующие подходы к программирования, а также учитывая
выше приведенные мнения профессионалов и концепции
компонентного программирования можно заключить, что обучение
программированию должно основываться в будущем на данную
модель программирования. Присутствие в ней многоязыковой
платформы показывает, что обучение программированию должно
учитывать симбиоз языков программирования и в то же время
подтверждает то, что обучение программированию означает, обучение
именно процессу программирования, как целеустремленной
деятельности.
Поскольку данная модель программирования еще не полностью
состоявшаяся, то обучение программированию целесообразно
осуществлять на основе интеграции парадигм программирования. Тем
более, интеграция различных концепций программирования в
структуре
одной
системы
программирования
показывает
естественность обучения программированию на основе интеграции
парадигм программирования.
Элементам компонентного программирования можно обучать в
рамках вузовского компонента. Поскольку модель программирования
имеет специфику ускоренного развития, то методическая система
обучения программированию должен учитывать динамику развития
программирования.
С целью оперативного реагирования образования на быстрый
научно-технический прогресс Р.Р.Фокин обосновал приложение к
системам обучения информатике свойства открытых систем, такие
как:
1) расширяемость/масштабируемость (возможность добавления
или изменения функций);
2) мобильность/переносимость (переноса в другую среду
функционирования);
3) интероперабельность (взаимодействия с другими системами);
4) дружественность (легко осваиваема).
В связи с этим, есть необходимость создания динамической
модели обучения программированию, имеющую свойства,
присущие к природе динамики: расширяемость/масштабируемость,
мобильность/переносимость, интероперабельность, дружественность.
ЧАСТЬ 3. ИНФОРМАТИКО-МАТЕМАТИЧЕСКИЕ
МЕТОДЫ ПОСТРОЕНИЯ ДИНАМИЧЕСКОЙ МОДЕЛИ
ОБУЧЕНИЯ ПРОГРАММИРОВАНИЮ
3.1 Теоретические основы построения динамической
модели обучения программированию
В педагогической науке известны такие модели обучения, как
свободная модель (Р.Штейнер, Ф.Г.Кумбе, Ч.Сильберман, В.С.Библер,
С.Ю. Курганов), личностная модель (Л.В.Занков, М.В.Зверев,
И.И.Аргинская, И.В. Нечаева), развивающая модель (Д.Б.Эльконин,
В.В. Давыдов, В.В.Репкин, А.З.Зак), активизирущая модель
(А.М.Матюшкин, М.М. Махмутов, М.Н.Скаткин, Г.И.Щукина),
формирующая модель(П.Я.Гальперин, Н.Ф.Талызина, И.П.Калошина,
В.П.Беспалько, С.И.Шапиро), обогащающая модель(М.А.Холодная,
Дж.Рензулли, Р.Фейрештейн). Имеющие модели обучения отражают
разные способы организации деятельности обучаемых. Для
осуществления какой либо деятельности необходимы мотивы
деятельности.
В результате анализа научных работ по созданию
унифицированной модели обучения (М.И.Потеев, В.П.Беспалько,
Ф.Бултер, В.П.Шевчук и др.) можно определить обобщенную модель
обучения (Рисунок 14).
В представленной модели обучения первым компонентом
обучения является мотивация учения, т.е. внутренние побуждения
обучаемого. Мышление обучаемого мотивированно, если для него
создана проблемная ситуация познавательно-психологического
характера, т.е. субъективного, конкретно-научного, объективного
характера.
Второй компонент - организация предполагает реализацию
необходимых методов, средств, форм и приемов обучения.
Третий компонент – усвоение знаний предполагает овладения
знаниями, позволяющими раскрыть причинно-следственные связи и
отношения, а также применять приобретенные знания в различных
ситуациях деятельности.
Четвертый компонент - диагностика знаний предполагает
контроль и оценку приобретенных знаний.
Пятый компонент – повторение предполагает закрепление
полученных знаний и умений.
Шестой компонент – обобщение предполагает доведение
приобретенных знаний и умений до опыта творческой деятельности
обучаемого.
Мотивация
Организация
Обобщение
Знание
Усвоение
Повторение
Диагностика
знаний
Рисунок - 14 – Обобщенная модель обучения.
Исследования показывают, чтобы приведенная обобщенная
модель обучения в реальном процессе обучения программированию
работала, необходимо учитывать множество разнообразных факторов,
которые складываются как из психолого-педагогических, технических
условий, так и из специфики предметной области программирования.
Как уже было отмечено в пункте 2.3, специфика области
программирования обуславливает построение динамической модели
обучения программированию.
Для построения динамической модели обучения, необходим
целостный подход к обучению, поэтому рассматриваем обучение как
процесс. А поскольку программирование мы также рассматриваем как
процесс, то обучение программированию можно рассматривать
как вложенную систему процессов.
Результаты исследований по анализу категории «процесс»
систематизированы в докторской диссертации Н.В.Бочкиной.
Процесс Н.В.Бочкина характеризует, во-первых, как систему,
«единица» которого определяет место в целостном педагогическом
процессе в определенной его функционально-организационной форме.
При этом, процесс обучения рассматривается как процесс структурнофункционального «движения» и развития системы «преподаванияучения». Во-вторых, как одномерный акт опосредования внешнего
через внутреннее и внутреннего через внешнее. При этом процесс
обучения рассматривается как смена состояний динамической
системы.
При построении процесса обучения как динамической системы
преобладает одностороннее воздействие учителя на ученика,
понимаемое как педагогическое руководство деятельностью,
общением и поведением ученика (Бочкина Н.В.).
В.И.Крупич
сделан вывод о том, что процесс обучения
представляет собой систему, состоящую из трех частей:
1 содержание обучения;
2 преподавание- деятельность учителя;
3 учение – познавательная деятельность ученика.
В.И.Загвязинский определяет процесс преподавания, процесс
учения, содержание изучаемого.
И.Я.Лернер называет деятельность преподавания, деятельность
учения, объект усвоения.
Процесс обучения, как и любой процесс развивается по спирали,
и каждому витку соответствует обновленный процесс. Факторами
обновления
является
парадигмы
образования,
парадигма
программирования. В целом процесс обучения на протяжении учебы в
вузе рассматривается как целостный глобальный процесс. Каждый
курс обучения (один учебный год) соответствует одному витку
развития процесса обучения. Обучение в протяжении одного учебного
года рассматриваем как локальный процесс обучения, реализующий
четырехуровневую модель обучения программированию, которая
также является динамической моделью. В локальном процессе для
наполнения содержания (изложение теоретического материала и
осуществление
процесса
выполнения
лабораторных
работ)
предлагается использовать метод итерации. Идея использования
метода итерации в процессе обучения программированию
заключается в следующем.
Рассмотрим схематически данный метод обучения можно
рассматривать в качестве концентрических квадратов, где подуровни
содержания обучения соответствуют внутренним квадратам (Рисунок
15) (Нурбекова Ж. К.).
Изложение начинается с некоторого начального уровня, не
вдаваясь в подробности более низкого и не затрагивая верхние
уровни. На каждом последующем этапе происходит переход либо в
сторону центра, либо в сторону внешнего уровня, либо в
определенном соотношении в обе стороны. Содержательное
…
2-уровень
1-уровень
Рисунок -15- Схема итерационного метода.
наполнение уровней
должно проводится в соответствии с
профильной направленностью студентов и адекватно уровню
современных информационных технологий.
В традиционной методике обучение программированию
осуществляется по следующей схеме: основные структуры данных,
логические и алгоритмические конструкции, процедуры и функции и
т.д.
Современные подходы в программировании требуют
основательного погружения в языковую среду, изучая основные блоки
построения программ, т.е. типы объектов и методы объектов, новые
структуры и операторы, затем, поступательный итерационный
процесс уточнения и расширения возможностей программной
реализации требований к моделируемой системе.
Поэтому итерационный метод обучения, где предусматривается
пошаговое приближение к цели обучения, является подходящим
дидактическим методом для проведения как лекционных, так и
лабораторных работ.
В целях обеспечения устойчивости предлагаемой динамической
модели обучения программированию предлагается фундаментальная
составляющая
обучения.
Подобным
стержнем
является
математические
основы
программирования.
Схематически
динамическая модель обучения программированию изображена на
рисунках 16 и 17.
l
k
Рисунок-16- Глобальный процесс обучения программированию.
В
А
В
Нижние уровни абстракции
А
Метауровень
Содержательный
уровень
Процессуальный
уровень
А
Целевой уровень
k
В
А
В
Верхние уровни абстракции
Рисунок-17- Динамическая модель обучения программированию
Локальный
процесс
( k -этап
обучения)
обучения
программированию.
Как показывают результаты исследования, подход к обучению
программированию посредством учебно-информационных моделей с
междисциплинарным характером и свойствами открытых систем
позволяет
более
эффективно
организовать
обучение
программированию.
Достижение качества образования возможно в результате
построения
адекватного
содержания
обучения
программированию ее современной парадигме;
- создание новых методических, программных и технических
разработок для обучения программированию со свойствами открытой
системы (Фокин Р. Р.);
- рациональное использование существующих средств, форм и
методов обучения.
Как
известно,
открытая
система
имеет
свойства
масштабируемости,
мобильности,
переносимости,
интероперабельности, дружественности.
В нынешних условиях в процессе формирования современного
специалиста актуальность приобретает массовое внедрение в процесс
обучения
в
высшей
школе
динамически
развивающихся
информационных технологий. Это, несомненно, приведет к
повышению эффективности и динамизма методики обучения.
Моделирование является одним из основных методов,
динамично развивающихся междисциплинарных исследований.
Поэтому, применяя моделирование как средство обучения на основе
междисциплинарного подхода, так и средство построение методики
обучения можно осуществить динамику обучения информатике, в
частности и программированию адекватно динамике развития науки
информатики.
Системное
построение
содержания
обучения
программированию предлагается
реализовать как на рисунке
(Рисунок -18).
Используя данные блока БД, содержащий исходные данные
(нормативные документы, учебно-методические материалы, и.т.д.)
строится направленный граф обучения, т.е. определяется траектория
обучения на текущем этапе. Далее проводится исследование
характеристик объекта (работа над выборками педагогического
исследования)
и
имитационное
моделирование
временных
характеристик обучения. В заключение анализируются результаты
обучения, и осуществляется оптимизация учебного процесса и при
необходимости, с коррекцией характеристик обучения.
Исследование
характеристик
объекта
Имитационное
моделирование
временных
характеристик
обучения
Б
Д
Направленный
граф обучения
Оптимизация
учебного
процесса
Коррекция характеристик обучения
Рисунок - 18- Системное построение содержания обучения.
Поскольку моделирование является общенаучным методом
исследования любых явлений, состоящей в построении и
исследований моделей реальных явлений, то для реализации
доказательной и предсказуемой теории обучения необходимо
применить теорию моделирования.
Моделирование педагогических явлений означает нахождение
закономерностей процесса обучения путем исследования процесса
овладения студентами знаний.
Педагогические явления и процессы имеют качественные и
количественные стороны, подчиняющиеся определенным закономерностям.
Общие закономерности, которым подчиняется качественная сторона
педагогического процесса, выявляются качественным анализом. В этом
отношении педагогическая наука добилась больших успехов и оказывает
большую помощь в организации учебного процесса.
Однако педагогическая наука пока еще не всегда дает теоретически
обоснованные ответы на все вопросы организации педагогического процесса.
Нахождение оптимального решения педагогических проблем, в частности
решения проблем теории и методики обучения дисциплинам системы курсов
информатики, в силу неустранимой новизны информатики, как науки, и
высокого темпа научно-технического прогресса приобретают
важное
значение.
При решении современных задач модернизации методической
системы обучения особое место занимают теории информационного и
математического моделирования, ибо информатизация, как
образования, так и общества в целом, невозможно без специальных
средств
новых
информационных
технологий
и
логикоматематической формализации объектов.
Известно пять этапов создания педагогической модели:
1 определение объекта исследования;
2 активизация накопленных знаний об оригиналах;
3 обоснование необходимости применять метод моделирования;
4 выбор существенных параметров;
5 отбор объектов, которые поддаются изучению.
Рассмотрим формализованную систему обучения. (Рисунок-19)
F1
Система
обучения
F2
….
R1
R2
….
R
Fm
j
Рисунок – 19 - Формализованная система обучения.
Из множества F ( i  1 , m ) параметров, которые, воздействуют на
рассматриваемую систему, выделяются параметры, существенно
влияющие на систему, остальные рассматриваются как «шум». После
разделения F -параметры, которые выделены как существенные,
рассматриваются, как величины, которые определяют исследуемую
систему и позволяют получить разумные положительные результаты
R ( k  1, j ) .
Поскольку программирование связано с деятельностью
студентов. То моделируются уровни учебной, профессиональной
деятельности студентов. Эти виды деятельности выступают как
субъекты познания, труда. В процессе исследования выявляются
факторы, обуславливающие успех деятельности. На основе
моделирования необходимо конструировать модели формирования
искомых качеств, т.е. модели составляющих методическую систему
обучения программированию.
Анализ научно-методической литературы (Швецкий М.В.,
Абрамов С.А., Кузьмина Н.В., Нугмонов М.) позволил выделить
следующие этапы моделирования обучения:
i
i
k
- определение темы, которая на базе известных данных
развивает исследование,
- исследуемые знания, умения и навыки рассматриваются
взаимосвязано с результативностью деятельности студента,
- определяется величина выборки,
- определяются
эталоны
для
сравнения
результатов
исследований и выделяются параметры для дальнейшего
исследования,
- формулируется и проверяется гипотеза исследования.
При выявлении факторов успешности деятельности студентов и
преподавателей,
необходимо
исходить
из
принципов
профессиональной направленности обучения, определенные в первой
главе книги. Главный признак профессионализма «умение, исходя из
государственных интересов, с гражданской ответственностью,
профессионально грамотно, опираясь на новейшие достижения науки
и техники, успешно решать производственные задачи» (Кузьмина
Н.В., с.57).
При моделировании методической системы обучения также
необходимо учитывать сформированность профессиональных качеств
у преподавателей и учебной деятельности студентов. (Таблица -3)
Таблица – 3 – Характеристика
преподавателей и студентов.
Виды
Деятельность
умений
преподавателей
Проектиро- Умение осуществлять отбор
вочные
средств и методов обучения,
умения
применение
которых
позволяет выработать у
студентов способ мышления,
позволяющий
создавать
программы
нужной
сложности
качества деятельностей
Деятельность студентов
Умение в соответствии с
требованиями
профессиональной
деятельности
к
выпускникам
и
поставленной учебной
задаче формулировать
цель, подзадачи, темп и
ритм
работы
над
проектом
Продолжение Таблицы -3.
Конструк- Умение
детализировать Умение
тивные
условие задачи до уровня, абстрагироваться
от
умения
доступного
пониманию
студентов,
и
укрупнять
условие до первоначальной
постановки задачи.
Коммуникативные
умения
Умение вызвать интерес у
студентов к предстоящей
учебной деятельности
Организационные
умения
Умение
организовать
исследовательскую работу
студентов с поставленной
задачей
(анализ,
абстрагирование,
проектирование)
Гностичес- Умение
исследовать
кие умения затруднения студентов при
изучении
учебного
материала
и
общие
закономерности
процесса
обучения
информатике,
приводящие к успеху
в
программировании
реального
объекта,
проектировать,
обосновывать
правильность выбранной
логики проектирования,
делать
выводы
и
обобщения на основании
своих
и
других
студентов проектов
Умение
работать
в
группе
(задавать
вопросы по изучаемой
теме,
воспринимать
идеи,
поданные
сверстниками
и
преподавателем,
анализировать
и
оценивать, высказывать
логически законченное
суждения по проекту)
Организовать
свою
деятельность
при
получении
знаний,
умений
и
навыков,
необходимых
для
решения в будущем
профессиональных задач
Уметь пользоваться с
различными
информационными
источниками, выделять
связи
между
рассматриваемыми
объектами, производить
анализ,
синтез,
обобщение по изучаемой
теме
Результаты моделирования методической системы обучения
зависит от измерений педагогических явлений. Существует два
определения измерения С.Стивенсона и С.Ф.Маликова.
По первому определению (по С.Стивенсону) измерения
применяется
как
операция,
посредством
которой
числа
приписываются к вещам.
Используется четыре типа шкал и
сформулированы правила использования математического аппарата в
зависимости от способов шкалирования исследуемых явлений.
По второму определению (по С.Ф.Маликову) измерением
называется познавательный процесс, заключающийся в сравнении
путем физического эксперимента данной величины с некоторым
значением, принятым за единицу сравнения (Кузьмина Н.В., с.60).
Уровень сформированности умений и свойств личности
измеряется приписыванием числа в соответствии с определенными
правилами через единицы шкалы измерения. Уровню деятельности
приписывается весовой коэффициент, который определяет уровень от
минимального до максимального значения.
Разделяют шкалы измерения: шкала наименований, шкала
порядка, шкала отношений, интервальная оценка. Методологические
и методические основы шкалирования рассмотрены С.А.Клигером,
М.С. Косолаповым, Ю.Н.Толстой.
Распространённой
классификацией
методов
сбора
эмпирических данных является класс Б.Г.Ананьева: организационные,
эмпирические, методы обработки данных, интерпретационные
методы.
Среди организационных методов наиболее распространенным в
педагогике является сравнительный метод, который используется при
определении эффективности педагогических воздействий, при
сопоставлении уровней сформированности знаний, умений, навыков,
профессионального мастерства в различных видах деятельности
студентов.
Среди множества методов сбора данных нас интересуют тесты
как диагностический метод и количественные методы, позволяющие
выразить в числовых характеристиках педагогические процессы и
связи между ними. Количественными методами педагогических
исследований являются шкалирование, корреляционный анализ,
факторный анализ, регрессионный анализ и другие. Количественные
методы представляющий интерес в отношении моделирования
методической системы обучения программированию будут
рассмотрены в следующих пунктах раздела.
Анализ научных исследований (Швецкий М.В.; Кузьмина Н.В.;
Бидайбеков Е.Ы.,
Рах С.В., Шалбаев Е.Б.) по применению
информационного и математического моделирования в педагогике
позволило выделить следующие шесть направлений:
1 Гносеологическое, в котором модель выступает как
промежуточный объект в процессе познания материала, что позволяет
выделять связь между количественной и качественной сторонами
явлений.
2 Использование модели вместо оригинала, для получения
сведения об изучаемом объекте, которые не удается получить в
натуре,
выявления
природы
оригинала,
осуществления
прогнозирования развития объекта изучения.
3 Модельно-информационное, конструируемое с учетом
вероятностного характера процесса обучения с использованием
статистических данных процесса, что позволяет выявлять
определенные закономерности объекта изучения.
4 Аналитическое, когда посредством модели дается
аналитическое или графическое описание определенной части
процесса подготовки учащегося на основе соответствующих
качественных и количественных характеристик.
5 Общеметодологическое, когда оценивается связи в обучении
между предметами и дисциплинами, формирующими мировоззрение
обучаемых.
6 Психологическое, когда моделируется личность обучаемого,
поведения коллективов для изучения их биологических, социальных
свойств и особенностей.
Теоретическая модель должна удовлетворять формальным
критериям: (А.Ф.Зотов)
- связность, или целостность, которая предполагает ограничение
исследования выделением существенных зависимостей между
объектными областями;
- константность (стабильность), основными признаками которой
являются: воспроизводимость (моделируемый комплекс может быть
обнаружен в разнообразных условиях, ситуациях и оказывается
инвариантным при изменении ряда параметров явления) и
технологичность (модель должна проверяться в реальном
эксперименте или наблюдении и потому в нее могут быть включены
«скрытые» параметры);
- наблюдаемость, т.е. необходимость связывать ключевые
моменты теоретической модели с реальными эффектами, которые
можно фиксировать в изучаемой области;
- обозримость – необходимо включать в модель по возможности
минимальное и обозримое число параметров.
Построить модель обучения, удовлетворяющую перечисленным
выше требованиям возможно с применением математических
методов. Исследование возможностей применения количественных
подходов к педагогической науке, то есть изучение закономерностей
применения к исследованию процесса обучения средств теории
информации, теории алгоритмов, теории исследования операций,
математической логики и др. обусловлено тенденциями развития
науки в целом.
Во многих трудах (Б.В. Гнеденко, Л.Б. Ительсона, Г.В.
Суходольского, Б.З. Докторова, Н.В.Кузьминой, Е.Ы.Бидайбекова,
С.В.Рах и Е.Б.Шалбаева, М.В.Швецкого, Н.И.Рыжовой и др.)
рассмотрены математические методы, отражающие специфику
педагогических явлений.
На рисунке 20 иллюстрирован график процесса обучения
программированию. Предполагается, что стартовые условия у группы
студентов в рамках одного вуза в момент времени t одинаковые, т.е.
стандарт образования, местные условия обучения. Однако на начало
обучения багаж знаний у студентов может быть разный. Причиной
этого могут быть подготовка одних в общеобразовательных школах,
других в специализированных школах и классах с углубленным
изучением профильных предметов. Траектория образования каждого
студента C зависит от различных факторов F (от содержания
исходных накопленных знаний, выбранной методики обучения,
социальных условий, личных мотивов учения и т.д.). Ясно, чтобы
достичь уровня государственного образовательного стандарта
специальности необходимо личностно-ориентированное обучение. А
это возможно только при сочетании традиционных форм обучения с
электронным обучением.
0
i
j
C1
C2
Ci
C
n
F1
t0
F2
F
tk
j
Fm
F1
F2
F
j
Fm
tkl
Рисунок - 20 - График процесса обучения программированию.
Необходимо отметить, что исследование многовариантных связей
изучаемой предметной области программирования и видов обучения,
составлять по ним расчетные и опытные составляющие данных,
анализировать и применять их к решению проблемных задач
оптимизации обучения возможно лишь при использовании
информационных технологий.
3.2 Методы информационного моделирования при
построении методической системы обучения программированию
Известно, что развитие информационного моделирования
приобрело огромное значение для образовательной среды. Метод
информационного
моделирования
связан
с
понятием
информационной модели. «Информационная модель – это модель,
выраженная в виде информации, доступной для использования
человеком»25.
Информационная модель позволяет получить важные сведения
об изучаемом объекте, характеризующие иерархии различных
уровней организации объекта исследования. Совокупность таких
сведений называется информационной структурой объекта.
Информационное
моделирование
предполагает
описание
функциональной связи поступающей информации, ее обработки и
использования.
Реальный объект познания всегда сложен, поэтому, чтобы
сделать доступным изучение объекта следует максимально упрощать
модель.
Информационное моделирование учебной деятельности
учащихся позволяет выявить технологию встраивания новой учебной
информации в систему их знаний. Используя метод информационного
моделирования можно выяснить по каким параметрам не совпадают
модель объекта познания и субъективная модель, сложившаяся у
обучаемого.
Процесс
обучения
по
своей
природе
является
информационным процессом, и в самом общем виде может быть
представлен структурной схемой информационных потоков между
компонентами процесса обучения: преподавателя, студента, дидактического материала, компьютера (Барыбина И.А., Гринченко С.Н.,
Колягин Ю.М.)
Таким образом, учебная деятельность учащегося есть
информационный процесс, поскольку учащемуся предъявляется
информация, которую он должен воспринять, осмыслить, понять,
обработать, использовать. Поэтому учащийся осуществляет учебную
деятельность всегда в информационной среде. Информация – это
образ, описанный с помощью знаков и символов. Учащийся как
субъект деятельности, как личность создает в своем информационном
пространстве не только предмет, но и возможности действовать с
25
Толковый словарь. http://de.ifmo.ru.../dict1.htm
предметом. Создавая образ предмета, человек одновременно отражает
себя как субъекта деятельности.
Из анализа научно-педагогической литературы и опыта
учителей информатиков-практиков было выявлено, что основными
информационными
составляющими
в
процессе
обучения
информатике
являются
построение
логических
связей,
способствующих пониманию, проблемных ситуаций, состоящие из
логически различных элементов и обладающие информационной
общностью.
Компоненты целостного процесса обучения: «целевой,
содержательный, деятельностный, организационный. Взаимодействуя,
они определяют содержательную, операционально-деятельностную и
мотивационную стороны процесса учения. Поэтому, достижения
учащихся как результат процесса учения, характеризуются
определенным уровнем в усвоении знаний, умений, навыков, уровнем
развития познавательных возможностей и отношением к изучаемому
и процессу обучения. Если система контроля не учитывает эту
зависимость, она выявляет заниженный или завышенный результат
обучения» (Гладкая И.В., с.13).
Таким образом, в соответствии с современными требованиями к
качеству образования возникает необходимость целостного подхода к
процессу обучения.
Одним из основных направлений контроля является контроль
уровня усвоенных знаний и соответствующих
способностей и
мотивации учащихся. Для определения качества усвоения необходимо
использовать
теоретически
обоснованную,
экспериментально
проверенную характеристику качества усвоения и результатов
обучения при помощи уровней усвоения.
Уровень усвоения характеризует качество усвоения учащимися
учебной информации, качество приобретенного или при обучении
опыта и, следовательно, качество деятельности, которую могут
осуществлять учащиеся в результате обучения (Ерецкий М.И.,
Пороцкий Э.С.).
И.В. Гладкой отмечено, что в результате взаимосвязи между
содержательным, операционально-деятельным и мотивационным
компонентами познавательной деятельности в процессе учения
достигается определенная зависимость между уровнем усвоенных
знаний
(эмпирический,
научно-теоретический),
развитием
познавательной активности и самостоятельности (репродуктивная,
продуктивная), мотивацией учения, определяющей положительное
или отрицательное отношение к изучаемому и процессу деятельности.
Поэтому,
уровень
достижений
ученика
характеризуется
совокупностью взаимосвязанных показателей: знания, умения,
навыки; умственное развитие; отношение ребенка к учению.
Рассматривают критерий качества обучения, критерий степени
достижения целей обучения, как осведомленность, понимание,
применение, анализ, синтез. Умения определяются четырьмя
уровнями; как узнавание, умение действовать по образцу, умение
проводить анализ, умение
находить тривиальное решение
(Радионов Б.У., Татур А.О.).
Л. В. Макаровой рассмотрено формирование четырех уровней
детализаций: на уровне общей сведений и основных понятий; уровне
знаний-рецептов; аналитическая уровне, когда знание наделяется
структурой, позволяющей выделить главные и второстепенные
элементы; на уровне синтеза, когда изучается не структура объекта, а
способы построения объекта из элементов окружающей среды.
Степень
обученности
учащихся
В.П.Симоновым
характеризуется
как
совокупность
пяти
последовательных
показателей (различение, запоминание, понимание элементарных
умений и навыков, переноса), усвоенных учащимися в процессе
обучения. Где показатели степени обученности указаны от низшего
уровня к наивысшему (перенос – уровень, когда учащиеся способны
применять знания творчески на практике, в нестандартных ситуации).
Научные основы определения состава содержания образования
рассмотрены Лернер И.Я. и др.
И.Я.Лернер рассматривает структуру социального опыта как
совокупность следующих 4 элементов:
1) знание о мире (то есть о природе, обществе и технике) и
способов деятельности;
2) опыт осуществление способов деятельности, воплощенный в
умениях и навыках;
3) опыт творческой, поисковой деятельности, выражающийся в
готовности к решению новых проблем;
4) опыт воспитанности потребностей мотивов и эмоций,
обуславливающих отношение к миру и систему ценностей личности.
Анализ выше рассмотренных теорий позволяет заключить, что
усвоение материала должно быть направлено на определение четырех
уровней
деятельности:
уровень знакомства,
уровень
воспроизведения, уровень умений и навыков, уровень творчества.
Организация обучения в определенной степени обусловлена
последовательностью изучения учебных элементов темы. Принцип
системности обучения предполагает структурирование содержания
обучения в соответствии с содержательными линиями дисциплины,
который
позволяет
строить
оптимальные
обучающие
последовательности, сохраняя логику изложения материала.
Результат обучения определяется особенностями целостной
системы обучения взаимодействием основных ее компонентов:
содержания, методов, организации. Их взаимосвязь сказывается на
уровне, характере, взаимосвязи содержательного, операционального и
мотивационного компонентов деятельности ученик, определяя ее
результат. В связи с этим уровень достижений учащихся
характеризуется уровнем сформированности знаний, умений и
навыков, развитием познавательных возможностей учащихся, их
отношением к изучаемому и процессу деятельности. Значит, контроль
результативности процесса обучения должен учитывать продвижение
учащихся по всем этим параметрам и не ограничиваться фиксацией и
оценкой только уровня знаний, умений и навыков.
Учитывая
выше
перечисленные
информационные
составляющие процесса обучения информатике и рассматривая
контроль знаний учащихся как элемент процесса обучения (элемента
информационного процесса) разработан подход к разработке
контрольных заданий по курсу информатики, основанный на
методе информационного моделирования (Бидайбеков Е.Ы.,
Нурбекова Ж.К., Сагимбаева А.Е.).
Усвоение учебной информации возможно при конкретном
представлении содержания и структуры дисциплины. Для этого
необходимо детализировать учебную информацию на учебные
элементы, определить оптимальную последовательность изучения и
по каждому учебному элементу – единице информации
разрабатывать процесс обучения и контроля.
«Учебным элементом называют подлежащие изучению
объективно существующие предметы, явления, процессы, их
свойства, связи и отношение между ними, методы их применения,
способы действия» (М.И. Ерецкий, Э.С. Пороцкий.).
Информация на заданиях предъявляется на основе логически
неделимых единиц информации – понятий.
Знание человека имеют сложную иерархическую структуру,
основной структурной единицей которой является понятие. А дерево
познания состоит из понятий.
Методология, основанная на выделении понятий и связей между
ними, присутствует в некоторых научных изданиях (Беспалько В.П.;
Воробейчикова О.В.; Сагимбаева А.Е.; Петрушин В.А.; Линькова
В.П.).
В.А.Петрушин отмечает, что различают две основные
направленности процесса обучения: обучение понятиям и
формирование умений (навыков). При обучении понятиям основное
внимание уделяется предъявлению и разъяснению нового
концептуального и фактического учебного материала: определению
понятий, описанию их свойств и отношений, общему и развернутому
описанию процессов, приведению данных о количественных и
качественных
характеристиках
объектов
и
процессов,
содержательному и формальному обоснованию свойств понятий и т.п.
При формировании умений (или элементарных операционных единиц
– навыков) главное внимание уделяется созданию повторяющихся и
постепенно усложняющихся проблемных ситуаций, требующих от
обучаемого исполнения определенных (одного или нескольких)
действий. При этом предполагается, что обучаемый уже обладает
некоторым объемом знаний и умений, необходимым для выделения
действий и определения их последовательности.
Множество понятий определяет систему знаний об
образовательной области, в то время как информация о проблемных
ситуациях – систему знаний о решаемых задачах. Целесообразность
такого разделения знаний, по мнению В.А. Петрушина, определяется
тем, что знания о предметной области, отражая современные научные
представления о системе ее понятий, являются для большинства
сложившихся учебных дисциплин постоянным и консервативным
компонентом, в то время как знания о решаемых задачах представляют собой более мобильный компонент, содержание которого
может варьироваться в зависимости от текущих учебных целей. С
другой стороны, знания о предметной области описывают ее
структуру и содержание (семантику), а знания о решаемых задачах
наряду с описанием семантики (алгоритмов решения задач) содержат
прагматическую информацию (проблемные ситуации и эвристики)
(Петрушин В.А.).
Понятийная модель, основанная на системе понятий, характерна
для человеческого мышления и называется концептуальной моделью.
Концептуальные модели создаются с помощью следующих
методов:
- метод на основе модели «сущность-связь»;
- метод на основе структурного системного анализа;
- метод объектно-ориентированного проектирования.
Необходимо построить методическую цепочку, отражающую
методическую линию учебника, которая приводит к определенному
понятию. Объектный подход к информационному моделированию
позволяет рассматривать предметную область информатики как
совокупность взаимодействующих объектов и определяет характер
материала системы заданий. Как всякая информационная модель,
модель обучения имеет информационную структуру, составляющими
которой является иерархия уровней знаний.
Для
информационного
моделирования
необходимо
использовать суждения о свойствах известного объекта в качестве
образца информационного моделирования других объектов.
Определяется минимальное количество свойств объекта, с целью
использовать их для выявления отличий рассматриваемого объекта от
других объектов области изучения. Значения свойств могут
обозначать объект, измерять отношение этого объекта к некоторому
эталонному
объекту,
характеризовать
подчиненность
рассматриваемого объекта к другому объекту и принадлежность
объекта к некоторому множеству объектов.
Для определения области возможных значений свойств
необходимо использовать наблюдения свойств конкретного объекта
(множества объектов).
Известны следующие способы наблюдения (Линькова В.П.):
- наблюдение проявления одинакового свойства у различных
объектов, обладающих этим свойством;
- наблюдение проявления одинакового свойства во времени у
одного из объектов;
- наблюдение проявления конкретного свойства при изменении
положения объекта в пространстве.
Рассмотрим использование информационной модели для
сравнения объектов.
Описание совокупности свойств объекта позволяет сравнить
объекты. Обозначим объекты через s и s . Тогда сравнение объектов
осуществляется через поиск одинаковых названий свойств и проверки
соответствующих им предикатов P ( n , v ) и P ( n , v ) . Если предикаты
совпадают, то объекты s и s являются одинаковыми относительно
свойства с названием n , иначе являются различными относительно
свойства с названием n .
Для формирования целостного представления предметной
области в информационной модели наряду с объектами необходимо
рассматривать и отношения между объектами:
P ( x , x ,..., x ) ,
где, P - название отношения,
x , x ,..., x -предметные переменные.
1
2
1
1
1
1
2
1
1
1
1
2
n
2
n
2
С целью проверки наличия отношения между объектами
s , s ,..., s необходимо подставить объекты в предикат.
Если предикат P ( s , s ,..., s ) примет значение «истина», то между
объектами существует отношение P .
Информационная модель реального предмета или процесса
характеризуется
поведением
(эволюцией,
изменчивостью),
обусловленными различными факторами. Для моделирования
поведения используются автоматные модели, потоковые диаграммы,
числовые функции, временные ряды, диаграммы сценарий и т.п.
Ясно и точно описать преобразования в информационных
моделях возможно с помощью математических языков, диаграмм,
алгоритмов и программ, т.е. используя формализованные языки.
Потоковые
диаграммы
позволяют
наглядно
описать
преобразования. При применении объектной методологии в
информационном моделировании функциональные преобразования
могут рассматриваться как функции или операции над объектами
определенного класса (Линькова В. П., с.24).
Рассмотрим информационные потоки в процессе обучения
(рисунок -21).
1
2
n
1
2
n
1
2
4
3
Рисунок – 21 – Схема информационных потоков в процессе
обучения
Пусть имеются следующие обозначения: номер
1преподаватель, 2 –студент, 3 – компьютер, 4 - дидактический
материал. Тогда имеем следующие rel отношения между i ( i  1, 4 ) и
ij
компонентами процесса обучения (взаимодействие
компонентов в виде потока информации).
Исследуя
взаимодействия компонентов, мы обнаружили
следующие информационные потоки:
Таблица – 4 – Информационные потоки в учебном процессе.
j (i  j ,4 )
Номер
информа
ционного
потока
1.
2.
3.
Отношения
компонентов
процесса обучения
rel
12
rel
21
rel
13
4.
rel
31
5.
rel
23
6.
rel
32
7.
rel
34
8.
rel
43
9.
10.
11.
12.
rel
14
rel
41
rel
42
rel
24
Информационные
потоки
и
описание
взаимодействия
компонентов процесса обучения
потоки традиционного обучения
потоки традиционного обучения
взаимодействие преподавателя с
компьютером
взаимодействие компьютера с
преподавателем
состоит
в
разработке
электронного
учебного материала
общение студента с компьютером
– работа над электронным
средством обучения
коррекция обучения со стороны
компьютера.
Поток
учебной
информации от компьютера к
студенту
перенос
части
изучаемого
материала из дидактического
материала в компьютер
изменяется
структура
и
содержание
дидактического
материла
потоки традиционного обучения
потоки традиционного обучения
потоки традиционного обучения
потоки традиционного обучения
Информационной
модель
процесса
обучения
должна
соответствует принципам искусственного интеллекта и позволяет, вопервых, осуществлять проверку абсолютных знаний по заданной теме;
во-вторых, формировать порядок выдачи тестов в процессе
тестирования в зависимости от предыдущих ответов; в-третьих,
использовать для вывода оценки метод, основанной работе с четкими
множествами позволяющую на основе существующей базы знаний и
ответов студентов логически выводить оценку.
Возможность автоматизации контроля знаний позволяет снять
определенную нагрузку с учителя и эффективно использовать время
обучения. Одним из возможностей автоматизации является
тестирование. Имеют место ряд исследований по использованию
структурированных тестов при контроле знаний (Беспалько В.П.;
Воробейчикова О.В.; Сагимбаева А.Е.).
Необходимо отметить, что проблема исследования как влияния
результатов контроля знаний учащихся на содержание и методику
обучения информатике, так и проблема создания информационной
модели процесса обучения, большая и достаточно сложная. Она
требует соединения усилий многих ученых и учителей практиков,
всестороннего психолого-педагогического обоснования и анализа
работ в этом плане.
3.3 Методы математического моделирования при
построении методической системы обучения программированию
В
совершенствовании
методов
системного
исследования
педагогической науки, в существенном повышении эффективности
педагогического процесса большую роль должны сыграть наряду с
современными информационными технологиями и математические методы.
Великий ученый Д.И.Менделеев говорил, что наука начинается там, где
начинают измерять. Теория и методика обучения информатике является
отраслью педагогической науки. Поэтому все основные положения должны
получить математически сформулированные количественные выражения. И
необходимо помнить, что основанием самой информатики является
компьютерная математика.
Современные математические методы опираются на аппарат
прикладной математики, на методы программирования, на теорию массового
обслуживания и управления, теорию вероятностей и математическую
статистику, которые вместе составляют общую математическую теорию
принятия решений. Данная теория дает возможность эффективно
анализировать возможные пути решения, обеспечивающие оптимальные
результаты учебного процесса в каждой конкретной ситуации.
Применение математических методов в педагогике связано с
использованием сложного математического аппарата и информационных
технологий.
Использование информационных технологий требует по возможности
точно и полно описать исследуемое педагогическое явление в терминах
информации. Тем самым открывается большая возможность формализации
педагогических процессов и явлений, которые раньше считались далекими от
математики.
Использование математических методов и информационных технологий
в педагогике перспективно и эффективно по практическим результатам.
Поскольку в педагогической науке, именно в теории и методике обучения
дисциплинам часто приходится сталкиваться с проблемой отбора содержания
образования и выработки оптимальных решений по организации учебного
процесса.
Формы, средства и методы обучения сами по себе не могут обеспечить
качество подготовки специалистов. Важнейшим составляющим методической
системы обучения является содержание предмета.
Значение математических методов и информационных технологий в
образовании будет возрастать по мере усиления компьютеризации сферы
образования.
Не вдаваясь в классические определения отдельных математических
понятий и объектов (которые можно найти во многих вузовских пособиях по
математике) рассмотрим математические методы в педагогическом аспекте.
Опыт применения математических методов
технологий имеет место в педагогической науке.
и
информационных
Так, для описания характеристики компонентов системы подготовки и
связи между различными ступенями обучения А.В.Абрамов предложил
формальный язык математики, в частности функции связи.
Рассмотрим
функции связи при
специалистов в области программирования.
многоуровневой
подготовке
Обозначим через U i , ( i  1, n ) - последовательность уровней подготовки
специалиста в области программирования.
Уровню
pr i st
U
i
соответствуют следующие субъекты системы:
преподаватель на
- студент на
i
i
i
уровне;
уровне.
Совместную деятельность преподавателя
интерпретировать как взаимодействие - rel .
Dst
Dpr
d
i
и
студента
можно
- учебная деятельность студента,
- деятельность преподавателя.
- цель подготовки на
i
уровне.
Поскольку совместная деятельность преподавателя и студента не может
быть абстрактной, то их взаимодействие rel должен опираться на конкретный
учебный материал по программированию, совокупность профессиональнопедагогических знаний, умений и навыков преподавателей. Обозначим через
m
i
(i
) - множество знаний по программированию в целом на
 1, n
m i ( i  1 , n
i
уровне,
) – множество знаний, умений и навыков преподавателя.
Ясно, что
m i  m i
.
Количество элементов в данных множествах конечно, и дает мощность
множества. Обозначим их соответсвенно через n ( m i ) и n ( m i ) .
Тогда профессионализм в области программирования преподавателя
уровня
обучения
( 0  z i  1)
определяется
следующим
отношением:
zi 
n ( m i )
i
,
n (m i )
.
Pi Обозначим
через
множество
необходимых
психологопедагогических знаний, умений и навыков преподавателя i -го уровня
обучения, а через P i  - множество реальных психолого-педагогических знаний,
умений и навыков преподавателя i -го уровня обучения. Поскольку
преподаватель не может идеально владеть данными качествами, то имеет место
P i   Pi .
В этом случае профессионализм в области психолого-педагогических
знаний преподавателя
i уровня обучения определяется следующим
отношением:
zz
i

n ( P i )
,
( 0  zz
n ( Pi )
i
 1)
.
Совокупность знаний, умений и навыков как в области
программирования, так и
в области психолого-педагогических знаний
преподавателя i -го уровня обучения определяется следующим образом:
m i  Pi .
Тогда,
m i  P i   m i  P i .
Соответственно мощностям
следующие неравенства:
n
n
U
i
( m i
рассматриваемых
 Pi )  n
( m i )+ n ( P i  ) 
n
(m i
множеств
имеем
 P i ),
( m i )+ n ( P i ).
Таким образом, общий уровень pr i преподавателя на уровне обучения
описывается следующими величинами:
li =
ll i
=
n ( m i )  n ( P i )
n ( m i )  n ( Pi )
n ( m i )
n (m i )

n ( P i )
n ( Pi )
, (0
 l i  1)
,
( 0  ll i  2 )
.
Учебную деятельность Dst студента st i на i уровне обучения
составляют деятельность при приобретении знаний, умений и навыков
профессионального характера и деятельность, направленная на освоение
знаний, умений и навыков в области программирования.
Знания, умения и навыки в области программирования составляют
множество q i понятий, утверждений, логических выводов, доказательств,
заданий в виде задач, упражнений, проектов, которые должен студент
st i освоить в результате учебной деятельности Dst на i уровне обучения. Через
q i обозначим множество, элементами которого являются реально освоенные
студентом st i знаний, умений и навыков на i уровне обучения. Тогда
величина, характеризирующая подготовку студента st i
в области
программирования на i уровне обучения выражается следующим образом:
z i 
n ( q i )
,
n (q i )
( 0  z i  1)
.
Под множеством w понимаем профессиональные знания, умения и
навыки, отражающие профессиональные качества будущего специалиста.
Тогда величина, характеризирующая профессионально ориентированную
подготовку студента st i на i уровне обучения выражается следующим
образом:
z z i 
n ( w i )
,
( 0  zz
n(wi )
i
 1)
.
Таким образом, общий уровень квалификации на уровне обучения
описывается следующими величинами:
l i =
l l i
=
n ( q i )  n ( w i )
n(q i )  n(w i )
n ( q i )
n (q i )

n ( w i )
n(wi )
, (0
 l i  1 )
U
i
,
( 0  l l i  2 )
.
Тогда величина, отражающая суммарную подготовку преподавателя и
студента в области программирования на очередном i уровне обучения
оценивается следующим образом:
gi 
n ( m i )
n (m i )

n ( q i )
,
n (q i )
или
g i 
n ( m i )  n ( q i )
n(m i )  n(q i )
.
Уровень суммарной профессиональной подготовки преподавателя и
студента на i уровне обучения оценивается следующим образом:
n ( P i )
hi 
n ( w i )

n ( Pi )
,
n(wi )
или
n ( P i )  n ( w i )
h i 
n ( Pi )  n ( w i )
.
Тогда уровень профессиональной подготовки и подготовки в области
программирования системы «преподаватель-студент» на i уровне обучения
оценивается значениями функции
fi 
n ( m i )

n (m i )
n ( q i )

n(q i )
n ( P i )

n ( Pi )
n ( w i )
(0  f i  4 )
,
n(wi )
или
n ( m i )  n ( q i )
f i 
n(m i )  n(q i )

n ( P i )  n ( w i )
n ( Pi )  n ( w i )
,
( 0  f i  2 ) .
Таким образом, мы рассмотрели один уровень подготовки специалистов
в области программирования, когда в системе один преподаватель и один
студент. Аналогичные рассуждения по отношению группе преподавателей и
группе студентов показывает, что предложенные функции примут большой
диапазон значений.
Подготовка специалистов в целом (прошедшие все уровни подготовки)
оценивается следующей функций:
n
f 

(
n ( m i )
n(m i )
i 1

n ( q i )

n(q i )
n ( P i )
n ( Pi )

n ( w i )
)
,
(0  f  4 n )
n(wi )
или
n
f  

i 1
(
n ( m i )  n ( q i )
n (m i )  n(q i )

n ( P i )  n ( w i )
n ( Pi )  n ( w i )
)
,
(0  f   2 n )
.
С точки зрения методологии для оценивания подготовки специалистов
необходимо учитывать такие характеристики субъектов системы, как скорость
усвоения содержания предмета. Она может быть выражена в единицах
измерения информации, например, в байтах.
Обозначим скорость освоения материала в области программирования
через V i , время, необходимое для освоения через T i , и скорость усвоения
профессионально-ориентированного материала через v i , время усвоения - t i .
Тогда имеем следующее:
q i  V i T i , w i  v i t t
.
Следовательно,
n
f 

i 1
(
n ( m i )

n(m i )
n (V i T i )

n(q i )
n ( P i )

n ( Pi )
n (v itt )
)
(0  f  4 n )
,
n(wi )
или
n
f  

i 1
(
n ( m i )  n (V i T i )
n(m i )  n(q i )

n ( P i )  n ( v i t t )
n ( Pi )  n ( w i )
)
,
(0  f   2 n )
Значение функции связи полностью зависит от уровня подготовки
преподавателей.
Задача оптимизации системы многоуровневой подготовки заключается
в максимизации функции связи:
f  max,
f   max
.
Математическое
и
программное
обеспечение
обучающих
мультимедийных комплексов и систем представлены в докторской
диссертации И.В.Голубятникова. В работе получена модель обучающей
программы с суммарным количеством информации в обучающей программе:
I


V av  T 3  L
( k v k c  1 )( k d  1 )( k y  1 )
где,
I

T3
- суммарное количество информации,
- конечное время обучения,
,
v av , k
kv,kc
L
y
- психофизиологические характеристики учащихся,
-насыщенность электронных обучающих средств мультимедиа,
-количество вариантов представления материала.
Полученная модель обучающей программы, учитывающая конечность
времени
обучения,
психофизиологических
характеристик
учащихся
насыщенность электронных обучающих средств мультимедиа и разнообразие
вариантов представления материала может быть взята за основу при решении
выше сформулированной задачи оптимизации системы многоуровневой
подготовки (максимизации функции связи).
Содержание обучения определяется стандартом образования и
типовыми учебными программами. То есть система обучения отвечает
mi и
определенным заданным условиям. Поэтому элементы множества
n(m i ) ,
мощность
соответсвенно необходимое количество времени
определяются
нормативными
документами.
В
условиях
развития
вычислительной техники в конкретной ситуации через вариативную часть
обучения возможно корректировка содержание обучения: введением
специальных курсов и семинаров. Функция связи по отношению к скоростям
V i и v i является линейной. Скорость усвоения материала студентами
увеличивается в зависимости от приобретенных знаний, умений и навыков, а
также других психолого-педагогических условиями, личностными качествами
студентов (особенности логического мышления, темперамента и т.п.). В
основном увеличение скорости усвоения v i осуществляется за счет
совершенствования методики обучения информатике, в частности
программирования.
Таким образом, выражаясь от противного, максимизация
функции связи подготовки в области программирования и
профессионально
ориентированной
подготовки
специалистов
приводит оптимизации процесса обучения программированию.
Решение проблем оптимизации обучения программированию
возможно при сочетании современных информационных технологий
и применении математических моделей при построении методической
системы фундаментального обучения программированию с учетом
особенностей самого объекта изучения - языка программирования.
М.В.Швецкий при построении методической системы фундаментальной
подготовки будущих учителей информатики использовал кластерный анализ
для классифицирования языков программирования и факторный анализ для
отбора содержания фундаментальной подготовки.
При отборе содержания обучения будущих учителей информатики
конструированию
компиляторов
факторный
анализ
использовался
И.А.Лебедевой.
С.Н.Киров использовал кибернетические и математические модели при
планировании учебного процесса. В частности, факторный анализ использован
при отборе содержания обучения теории параллельных вычислений в условиях
двухступенчатой подготовки специалистов по информатике в педагогических
вузах.
Некоторые приемы обработки данных методами многомерной
математической статистики рассмотрены Н.В.Кузьминой и другими.
Одним из способов применения математических методов в определении
содержания обучения
программированию является использование
факторного анализа при отборе содержания фундаментальной подготовки,
который обусловлен многофакторностью процесса отбора содержания.
Отбор содержания учебной дисциплины - многофакторный
процесс. Выбор такого статистического метода, как факторный
анализ обусловлен возможностью формирования гипотез на основе
данных, полученных методом экспертных оценок. С помощью
факторного анализа возможно выделение из большого количества
наблюдаемых переменных наиболее простых показателей - факторов,
которые точнее описывают объект изучения и показывают
внутренние существующие закономерности.
В современной статистике факторным анализом называют группу
методов, которые на основе реальных связей объектов позволяют выявить и
математически выразить структуру случайных явлений. Результатом
факторного анализа является модель, в явном виде описывающая зависимость
наблюдаемых переменных от скрытых факторов. Факторный анализ допускает
ошибку моделирования для наблюдаемых переменных, которые являются
линейными комбинациями общих и специфических факторов.
Особенностью факторного анализа является то, что он позволяет
формирование гипотез на основе данных полученных методом экспертных
оценок. Исходные данные, являющиеся исходным математическим объектом
(т.е. входной информации) для факторного анализа представляется в виде
корреляционной матрицы. Исходные данные (входная информация) – это
совокупность нормативов, справочных материалов, анкетных данных,
экспертных оценок, необходимых для расчета числовых параметров модели.
Информация, используемая при анализе, может быть представлена в виде
следующей матрицы:
 x 11

x 21
X  
 ...

 x m1
x 12
...
x 22
...
...
...
xm2
...
x1n 

x2n

... 

x mn 
.
Строки матрицы соответствуют экспертам, столбцы
соответствуют признакам, характеризующим исследуемый процесс.
матрицы
x ij
(
, i  1, m , j  1, n
) - это компоненты, мнения i -го эксперта о
j
-ом
признаке.
Общую схему реализации
представить следующим образом:
Порядок
действи
й
1
методов факторного анализа можно
Результат действия
Матрица исходных данных
Х
2
Матрица стандартизованных значений признаков
Z
3
Матрица корреляций
R
4
Матрица парных корреляций
Rh
5
Матрица факторного отображения
А
6
Матрица факторного отображения после поворота
W
7
Матрица значений факторов
F
Формальная основная задача факторного анализа – в
определенном смысле наилучшим образом выбрать факторное
пространство, с числом факторов меньше числа коррелированных
переменных, которое бы все их отображало с достаточной точностью.
Содержательно та же задача интерпретируется в психологии и
педагогике как выявление факторной структуры психических и
педагогических явлений. Факторная структура предстает здесь как
теоретический конструкт – идеальный объект с интерпретацией,
лежащий в основе теоретических концепций.26
Общей идеей решения задачи факторного анализа является процесс
факторизации, когда исходные наблюдаемые
переменные могут быть
26
Факторный анализ.//www.library.graphicon.ru
представлены в
распределенных:
виде
линейной
комбинации
факторов,
нормально
m
x
j


a
jk
F k  u j , j  1, n
,
k 1
где,
x
j
- наблюдаемые переменные,
Fk
- общие факторы,
a
jk
- элементы матрицы факторных нагрузок,
u
j
- специфичный фактор.
Общим фактором называют фактор, оказывающий влияние на две и
более наблюдаемые переменные.
Матрицей факторных нагрузок называют матрицу, которая задает
влияние общих факторов на наблюдаемые переменные.
Специфичные факторы рассматриваются как случайные ошибки, не
несущие существенные информации о наблюдении.
Доля дисперсии отдельной переменной, принадлежащая общим
факторам называется общностью, дисперсия специфического фактора
называется специфичностью. Таким образом, факторный анализ выявляет
общие факторы, специфические факторы и матрицу факторных нагрузок, так,
чтобы найденные общие факторы объяснили наблюдаемые данные наилучшим
образом, то есть чтобы суммарная общность переменных была максимальна (а
соответственно специфичность - минимальна).
Компьютерная реализация математических методов, в частности
методов факторного анализа, рассмотрена М.В.Швецким. Известен пакет
STATGRAPHICS, предназначенный для изучения структуры статистической
совокупности.
Для полноценного проведения факторного анализа необходимо как
ответственная содержательная интерпретация выявленных факторов на основе
самих наблюдаемых переменных, так и само содержание накопленных
исходных данных.
Банк наблюдаемых данных должен пополняться данными не только о
темах курсах, но и другой важной для исследования информацией. По нашему
мнению исходная информация должна накапливаться в рамках гностических,
проектировочных, конструктивных, коммуникативных, организаторских
аспектов деятельности участников учебного процесса.
Например, для проведения многомерного статистического анализа
отбора содержания обучения курсу «Программирование» необходимо
осуществить сбор исходной информации через анкетирование экспертов и
через публикационный метод. Экспертами могут выступить опытные
преподаватели, методисты, программисты, аспиранты, магистранты и сами
студенты.
При анкетировании эксперты каждому предлагаемому признаку
присваивают весовой коэффициент по пятибалльной шкале.
М.В. Швецким предложено проверить и оценить следующие умения по
программированию:

использовать классические алгоритмы поиска и
сортировки на структурах данных;

пользоваться структурами данных
(списки, очереди,
стеки, деревья, графы);

пользоваться дедуктивной семантикой для доказательства
правильности программ;

использовать язык функционального программирования;

использовать язык хорновского программирования;

использовать язык продукционного программирования;

использовать объектно-ориентированное расширение
императивного языка программирования.
В целях более детального исследования нами предлагается
наполнить банк исходных данных для многомерного статистического
анализа результатами определения уровня сформированности
фундаментальных умений по программированию путем проверки
через тестирование программных продуктов, созданных студентами.
Доказательство
правильности
программ
машинным
тестированием включает в себя, прежде всего проверку только
конкретных наборов правильности входных данных. Для полноты
проверку необходимо проводить,
во-первых, тестированием на
тривиальный случай, во-вторых, тестирование на частные случаи, втретьих, тестирование на проверку области определения входных
данных и технических ограничений, в-четвертых, тестирование на
проверку эффективности алгоритма, в-пятых, тестирование на
использование точности вычислительных.
Специфика
предметной
области
программирования,
обуславливает параллельное наполнение банка данных для
очередного этапа исследования. В соответствии с развитием методики
программирования
(парадигмами
программирования)
совершенствовалась сама методика обучения (например, методика
ручной прокрутки программ стала возможным с помощью метода
трассировки самой системы программирования), одновременно
проводились конкретные педагогические исследования в области
методики преподавания тех или иных языков. Поэтому, для
определения методики обучения современному программированию,
считаем целесообразным, использовать параллельно с современной
парадигмой программирования и добытые публикационным методом
результаты педагогических исследований.
На основе многомерного статистического анализа, обобщения и
систематизаций основных понятий курсов и требований к знаниям,
умениям и навыкам студентов в рамках данного исследования
определен понятийный аппарат в области программирования:
аппарат переменных,
рекурсия,
массивы,
функции,
процесс поиска и сортировки,
параллельные процессы,
объект,
класс,
интерфейс.
Для отбора содержания обучения необходимо не только определение
тематики курса, а необходим системный подход, учитывающий взаимосвязь
всех пяти компонентов методической системы: цель обучения, содержания
обучения, методы обучения, формы и средства обучения с учетом всех
аспектов
(гностических,
проектировочных,
конструктивных,
коммуникативных, организаторских) деятельности участников учебного
процесса (Таблица -3).
В настоящее время разрабатываются как математические методы
решения частных задач в области организации учебного процесса, так и их
компьютерные реализации. Главное состоит в том, чтобы разработать
методику оптимизации учебного процесса.
Это, несомненно, важная и сложная комплексная задача. Чтобы решить
эту задачу, необходимо:

разработать теоретическую основу управления учебным процессом
на базе применения математических методов и информационных технологий,

провести исследования в области организации и управления
учебным процессом,

определить способы применения математических методов и
информационных технологий,

учитывать развитие педагогической науки, совершенствования и
разработки математических методов, компьютеризации сфер деятельности
человека.
Математические методы и информационные технологии дают больше
возможностей для развития педагогической науки, однако, сами по себе не
вскрывают сущности педагогических явлений и характера их взаимосвязей.
Прежде чем применить какой либо математический метод, необходимо
осуществить всесторонний качественный анализ педагогических процессов и
теории и методики обучения, подвергающихся количественному измерению.
Конечно, продуктивное использование математических методов и
компьютерных средств может быть достигнуто только на основе подлинно
научного и педагогического анализа педагогических процессов и явлений.
ЧАСТЬ 4. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЭЛЕКТРОННОГО
ОБУЧЕНИЯ ПРОГРАММИРОВАНИЮ
В настоящее время
применяются как в системе
университетах. Связанное с
дистанционным обучением,
подход к обучению.
информационно-коммуникационные технологии
дистанционного обучения, так и традиционных
этим устранение грани между традиционным и
т.е. их интеграция предполагает целостный
Термин «электронное обучение» является обобщением ряда
терминологических понятий в сфере применения информационных и
коммуникационных технологии в образовании.
На Западе получил
широкое
распространение
термин Elearning, как процесс обучения в электронной форме через сеть Интернет или
Интранет с использованием систем управления обучением27.
“Электронное обучение – более широкое понятие, означающее
разные формы и способы обучения на основе информационных и
коммуникационных технологий” (Крюкова О.П., Смольникова И.В.).
Основной проблемой электронного обучения является создание и
эффективное использование информационно-образовательной среды на основе
информационно-коммуникационных технологий.
В дидактическом плане определяются следующие наиболее важные
проблемы электронного обучения:
- организация полноценного информационного
между субъектами образовательного процесса,
взаимодействия
выявление
особенностей
информационно-коммуникационной
предметной среды при электронном обучении,
- обеспечение эффективной учебной деятельности субъектов процесса
электронного обучения.
4.1 Информационное взаимодействие между субъектами
процесса электронного обучения программированию в
информационно-коммуникационной среде
В настоящее время информационное взаимодействие между субъектами
образовательного процесса претерпевает определенную трансформацию в
связи с применением средств
информационных и коммуникационных
технологий в учебном процессе. Проблема информационного взаимодействия
при электронном обучении конкретной учебной дисциплине требует как
технологических, так и психолого-педагогических исследований.
27
Информационный бюллетень «Электронное обучение» //http://www.amr.ru/
Согласно
определениям
И.В.Роберт
под
информационным
взаимодействием образовательного назначения
понимают деятельность,
направленную на сбор, обработку, применение и передачу информации,
осуществляемую субъектами образовательного процесса (обучающийся,
обучаемый, средство обучения, функционирующее на базе информационных и
коммуникационных
технологий)
и
обеспечивающую
психологопедагогическое воздействие, ориентированное на
- развитие творческого потенциала индивида;
- формирование системы знаний определенной предметной области;
- формирование комплекса умений и навыков осуществления учебной
деятельности по изучению закономерностей предметной области.
Применение средств
информационных и коммуникационных
технологий в образовательном процессе влияет, прежде всего, на структуру
взаимодействия субъектов образовательного процесса,
на содержание
учебной дисциплины и на виды учебной деятельности.
Рассмотрим структуру взаимодействия субъектов образовательного
процесса
при электронном обучении (Нурбекова Ж.К.). Как показано на
рисунке (Рисунок - 22),
наряду с традиционными субъектами
образовательного процесса (педагог, учащийся) во взаимодействие вступает
третий субъект – электронное средство обучения, которое может осуществлять
обратную связь с другими объектами (интерактивная связь между объектами).
Линии информационного взаимодействия определены следующим образом:
1-Традиционное информационное взаимодействие субъектов
(педагог <-> учащийся);
2- Информационное взаимодействие через электронное средство
обучения (педагог <-> электронное средство обучения <-> учащийся);
3- Информационное взаимодействие при интерактивном режиме
обучения (учащийся <-> электронное средство обучения);
4- Информационное взаимодействие при использовании педагогом
информационного ресурса электронного средства обучения (педагог<->
электронное средство обучения).
Обучающий
1
2
4
Электронное средство
обучения
3
Обучаемый
Рисунок- 22 - Структура взаимодействия субъектов
образовательного процесса при электронном обучении.
Особенность
взаимодействия
субъектов
отображается в содержании учебной дисциплины.
учебного
процесса
Прежде учебная информация, его объем, содержание определялось
программами, учебными пособиями. В связи с появлением возможности
использования ресурсов Интернет содержание учебной информации
определяется студентом. При информационном взаимодействии в процессе
электронного обучения у студента имеется возможность выбирать контент
(содержание) самостоятельно.
Задача методического обоснования структуры информационнокоммуникационной среды при электронном обучении является одной из
первостепенных задач информатизации учебного процесса. По
каждой
предметной области требуются исследования как в учебно-методическом, так и
научно-методическом плане.
Неустранимая новизна науки информатики, в состав, которой входит
дисциплина программирования, требует фундаментализацию обучения данной
дисциплине. Фундаментальные линии обучения программированию
составляют
математическое
основание
информатики,
парадигмы
программирования, классификация парадигм программирования на основе
теории программирования, информационное моделирование, теория
абстракции.
Согласно М.Бен-Ари язык программирования, как механизм
абстрагирования, позволяет программисту описать вычисления
абстрактно и в то же время позволяет программе (обычно называемой
ассемблером, компилятором или интерпретатором) провести это
описание в детализированную форму, необходимую для выполнения
на компьютере.
Рассмотрим абстрактный граф. В абстрактном графе вершины
содержат или не содержат значения. Фрэнк М.Каррано и Джанет Дж.
Причард определяют следующие операции над абстрактным графом:
создать пустой граф; уничтожить граф; определить, пуст ли граф,
определить количество вершин в графе; определить количество ребер
в графе; определить, существует ли ребра, соединяющие два заданных
ребра; вставить вершину в граф, поисковые ключи, хранящиеся в
вершинах, должны отличаться от ключа новой вершины; вставить
ребро, соединяющее две заданные вершины графа; удалить из графа
указанную вершину, а также все ребра, соединяющие ее с другими
вершинами.
Граф реализуется матрицей смежности и списком смежности.
Допустим, необходимо организовать поиск наилучшего маршрута.
Процесс поиска, то есть последовательность шагов составляет
рекурсию. На рисунке -23 представлен маршрут в виде графа. Для
данного графа строится матрица смежности map, которая содержит
расстояния между городами i и j . Если города соединены прямой
дорогой, то map[i, j]=1, города соединены прямой дорогой, то map[i,
j]=0.
2
3
5
1
4
6
7
1
2
3
4
5
6
7
1
0
1
1
1
0
0
0
2
1
0
1
0
0
0
0
3
1
1
0
1
0
0
1
4
1
0
1
0
1
0
0
5
0
0
0
1
0
1
1
6
0
0
0
0
1
0
1
7
0
0
1
0
1
1
0
Рисунок – 23 – Граф маршрутов между городами и матрица
смежности.
Основная цель обучения программированию достигается не только
заучиванием языка программирования. Необходимо обучение распознаванию и
классифицированию практически решаемой задачи, формализация задачи
через информационное моделирование.
Таким образом, необходимо отметить, что содержание учебной
информации, закладываемое в электронное средство обучения должно
определяться методическими принципами отбора информационного ресурса
учебной дисциплины.
Рассмотрим влияние использования средств
информационных и
коммуникационных технологий в образовательном процессе на виды учебной
деятельности.
Использование средств
информационных и коммуникационных
технологий в образовательном процессе обеспечивает совершенствование
видов
деятельности.
Традиционное
взаимодействие
субъектов
образовательного процесса предполагало восприятие и
воспроизведение
учебной информации. Электронное обучение позволяет осуществить
деятельность в плане приема-передачи информации при реализации обратной
связи, ведении интерактивного диалога и обеспечении возможности сбора,
обработки, продуцирования, архивирования информации.
Особенностью электронного обучения программированию является
использование
учебной
информационной
среды,
где
реализуется
взаимодействие обучаемого со средством обучения (ведение интерактивного
диалога).
Решение практических задач на компьютере требует
определения информационной сути решаемой проблемы. Поэтому
построение
информационной
модели
для
последующей
компьютерной реализации неизбежно приводит к определению
приоритета объектов и отношений между ними. Объект может иметь
свою внутреннюю структуру, которая может дальше расчленяться на
простые компоненты. Полноценная информационная модель должна
содержать как объекты, так и отношения между данными объектами.
Для полной реализации информационной модели учебная
информационная среда должна иметь иерархическую структуру.
Учебная информационная среда обеспечивает индивидуальный режим,
выбор содержания учебного материала, управление объектами учебной
информационной модели.
Таким образом, появление нового компонента системы учебного
взаимодействия при электронном обучении – электронного средства обучения,
с одной стороны усложняет структуру информационного взаимодействия
между субъектами образовательного процесса, с другой стороны, данная
трансформация, связанная с применением средств
информационных и
коммуникационных технологий в учебном процессе обеспечивает большую
самостоятельность и открытость системы обучения.
4.2 Особенности информационно-коммуникационной среды
электронного обучения программированию
Рассмотрим
характерные
особенности
информационнокоммуникационной предметной среды, определенные И.В.Роберт в
отношении к электронному обучению программированию:
фиксированность
информационного
потенциала
образовательного назначения предполагает наличие определенного
объема информационного ресурса распределенного доступа,
ориентированного на область программирования. Всевозможные
информации о содержании, структуре, режимах работы с
информационным
ресурсом,
модификациях
и
обновлениях
информационного ресурса предоставляются с помощью средств
электронного обучения;
модифицируемость
информационного
потенциала
образовательного
назначения,
связанное
с
постоянным
совершенствованием информационных технологий, замены морально
устаревших инструктивных, организационных и методических
материалов предполагает возможность изменения, дополнения,
исключения определенной части информации, как в содержательном
плане, так и его структуры, режимов работы с ним;
открытость доступа к информационному ресурсу
образовательного назначения предполагает реализацию различных
видов и режимов информационного взаимодействия;
интерактивность
информационного
взаимодействия
субъектов информационно-коммуникационной среды предоставляет
выбор условий поиска и отбора необходимой учебной информации
как по ключевым словам, логическим условиям, так и
последовательностям символов по иерархическим базам данных;
наличие развитого каталога ресурсов сайта, как
дополнительных услуг сайта, являющегося источником головного
информационного
ресурса
информационно-коммуникационной
среды;
доступ к информационным каналам, средствам доставки
информации с популярных Web-узлов портала. Имеется в виду
возможность просмотра информационного ресурса, и при
необходимости подписки на информационный канал;
однозначность распознавания рабочей ситуации в
процессе навигации при поиске, отборе, передаче, применении
информации.
В настоящее время актуальной задачей теории и практики
программирования являются вопросы доказательства правильности
программ. Поскольку большое количество ошибок допускается при
создании программ, то основное время при разработке программ
отводится отладке и сопровождению программ. Для оптимизации
процесса создания программ используется верификация –
доказательство правильности программ на этапе проектирования и
разработки программ на языке программирования.
Рассмотрим использование формально-логического подхода
при проверке знаний по программированию через тестирование
программных продуктов, составленных студентами.
Современное программирование, то есть процесс разработки и
написание программ, это – «искусство описать задачу, возникшую
перед человеком, и заставить компьютер ее решить» (Лавров С.С.).
Иными словами, программирование – это процесс преобразования
описания задачи в код программы, решающий эту задачу. Выполняя
такое преобразование, студент допускает ошибки, причинами которых
могут быть неадекватное понимание условия задачи, опечатка при
написании кода программы, неправильная трактовка некоторых
функции языка программирования, неявное приведение переменных
разных подтипов и т.д.
Одна
из
проблем
при
проведении
занятий
по
программированию в высших учебных заведениях заключается также
в разноуровневой первоначальной подготовке студентов. В связи с
этим, на начальном этапе обучения для выяснения степени
подготовленности студентов целесообразно проверять программы,
составленные студентами, через тестирование программных
продуктов. При проверке
программ используется формальнологический подход, основанный на методах Р.Флойда, Э.Дейкстры по
доказательству правильности программ. Основной идеей Р.Флойда
является
приписывание
точке
программы
промежуточного
утверждения и возможность доказательства частичной правильности
программ (соответствие предусловия и постусловия). Э.Дейкстра
предложил понятие слабейшего предусловия, позволяющее
одновременно доказывать соответствие предусловия и постусловия и
завершимости программы.
Основными
преимуществами
применения
методов
доказательства правильности программ являются:
установление взаимосвязи между конструкциями языков
программирования и их семантикой;
удобная система для комментирования программы;
выявление разнообразных свойств программ;
прослеживание
характера
изменения
практически
значимых переменных и их взаимосвязи;
выяснение трудоемкости программы с точки зрения
количества выполняемых операций.
Согласно предлагаемой методике проектирования тестов для
проверки правильности программ, для каждого модуля определяются
вход и выход модуля. Чтобы тесты выявляли как можно большее
число возможных ошибок, для каждого модуля надо подготовить
тесты. Полностью выявить ошибки нельзя. Например, пусть модуль
перемножает два десятичных числа, тогда на входе модуля имеем х,
у. Каждая переменная может иметь значения 1010 вариантов, значит,
имеем 1020 входных значений, следовательно, необходимо 1020
тестов. В этом случае и для выявления как можно большего
количества возможных ошибок, составление тестов осуществляется
по двум направлениям: по методу черного ящика и по методу белого
ящика.
При использовании метода черного ящика структура модуля не
используется, рассматривается модуль относительно входных
переменных. В этом случае применяется два подхода: классы
эквивалентности и граничные значения.
Если имеется несколько входных переменных, то по каждой из
них или по комбинациям берут по одному из тестов, принадлежащих
так называемому классу эквивалентности. Класс эквивалентности –
это множество, элементы которого эквивалентны с точки зрения
обнаружения ошибок. Например, необходимо упорядочить три числа
a , b , c .
Нам важно, как эти переменные между собой соотносятся.
Поэтому,
1-ый класс эквивалентности - a  b  c ,
2-ый класс эквивалентности - b  a  c ,
и т.д.
всего должно быть 3!=6 классов эквивалентности.
При использовании граничных значении анализируются особые
значения входных переменных и для них специально составляются
тесты. Например, если имеем массив при граничных значениях
равных 100, то в тесте проверяется значение 101-го элемента.
При использовании метода белого ящика рассматривается
структура программы. Для разработки программ применяются
конструкции – последовательная, условная и циклическая.
Конструкции могут друг в друга вкладываться, и вызов процедуры не
противоречит этим конструкциям.
Тесты, которые мы разрабатываем, должны проверять каждую
из компонент программы. Если программа имеет последовательную
структуру, тогда при задании любого теста, каждая последовательная
конструкция будет последовательно выполняться, то есть для
проверки правильности достаточно одного теста.
Для условной конструкции требуется минимально два теста. В
этом случае, мы должны проверять оба входящих модуля. Если
условная конструкция полная, тогда достаточно одного теста для
модуля, однако для случая «ложь» условие может работать не
правильно.
При доказательстве правильности программ применяются
определенные покрытия тестами элементов программы.
Например, покрытие операторов, когда тесты необходимо
разрабатывать так, чтобы каждый оператор прорабатывал хотя бы по
одному разу.
Известно покрытие условий, при котором для разработки тестов
необходимо учитывать проверку как на исполнимость, так и не
исполнимость условии. Это означает, что полная условная
конструкция и что неполная условная конструкция должны иметь два
теста для проверки.
При проектировании тестов для циклической конструкции
имеет место покрытие тестами, как операторов, так и условия.
Покрытие операторов дает – один тест, покрытие условия дает хотя
бы два теста: чтобы условие в самом начале было истинным – это
случай для первого теста, а что условие было ложным – случай для
второго теста.
Таким образом, покрытие условия включает в себя покрытие
оператора. Поскольку могут быть сложные логические условия,
покрытие условия не дает полную проверку. Для проверки
логического условия используется следующее комбинированное
покрытие условий. В этом случае каждое условие разбивается на
элементарные условия.
Например, имеем условие:
a b
&
c  d
истина или ложь истина или ложь
Для полного доказательства правильности программ полезно
сочетать методы белого ящика и черного ящика.
При разработке тестов необходимо организовать проверку
правильности работы программы при неправильных условиях. Такие
ошибочные ситуации надо исследовать отдельно и подобные тесты
могут входить во множество белого ящика.
Например, имеется программа с некоторой переменной x , и
условие x  50 . Если в программе выполняется деление на x при
текущем значении равной 0, то как должна работать программа? Или
при работе программы с внешними устройствами входной файл
запорчен и допускает ошибки при чтении файла? А при ошибочных
действиях оператора при диалоговом режиме? В любой программе
ошибочные значения должны выявляться в начале, то есть должна
быть проверка входных значений. Поэтому при создании тестов на
проверку
правильности
программ
необходимо
учитывать
всевозможные факторы, влияющие на ход выполнения программы.
Доказательство
правильности
программ
машинным
тестированием включает в себя, прежде всего проверку только
конкретных наборов правильности входных данных. В связи с этим,
для полноты проверки разработка тестов (разработка системы
входных данных) должна включать подбор входных данных для
разных случаев работы программы: во-первых, тест на тривиальный
случай, во-вторых, тесты на частные случаи, в-третьих, тест на
проверку области определения входных данных и технических
ограничений, в-четвертых, тест на проверку эффективности
алгоритма, в-пятых, и использование точности вычислительных
методов (например, использовать ли формулу Герона для решения
задачи с треугольником).
Аналитическое
доказательство
правильности
программ
кардинально отличается тем, что проверка проводится для всех
возможных областей значений переменных. При тестировании
вынуждены делать ограничения, которые упрощают те условия, в
которых программа работает относительно ограничений: целых,
вещественных,
предельных
значений.
При
доказательстве
правильности программ аналитическим способом программа
анализируется предусловиями и постусловиями.
Доказательство правильности программ - это аналитическое
доказательство того, что алгоритм решает задачу, которая на него
возложена и не содержит ошибок. При проведении доказательства
правильности программ на вход и выход накладываются логические
условия, которым они должны удовлетворить.
Условие на входе называется предусловием, а условие на
выходе – постусловием. Для доказательства правильности программ
надо доказать, что алгоритм превратит предусловие в постусловие.
Для этого необходимо внутренние модули доопределить
предусловием и постусловием и доказать их правильность. В силу
сложности таких доказательств, не для каждой программы можно
провести доказательство правильности программ. Программа должна
быть написана структурно (последовательное выполнение операторов,
условный оператор, циклический оператор), вызовы процедур при
этом рассматриваются как модули нижнего уровня. Оператор
перехода при перекрещивании будет неструктурным.
Доказательство правильности программ можно проводить
эффективнее, если сразу при формировании алгоритма определять
предусловия и постусловия.
Для последовательного алгоритма заданы предусловие Р1(х) и
постусловие Р2(у). Мы должны задать промежуточное Р3(z). Тогда,
предусловие Р1(х) с модулем А превращается при доказательстве в
Р3(z), а Р3(z) с модулем В превращается в Р2(у). (Рисунок 23а)
Например, пусть x  F (t ) . На входе модуля данное присваивание
P ( t )  .
осуществляется. Задано логическое условие
Тогда
последовательно выполняется присваивание. Логическое условие
будет выглядеть следующим образом: P ( t ) & x  F ( t )  .
Рассмотрим условие для условного алгоритма. Пусть на входе
Р1(х). Модуль А будет выполняться при условии Р1(х)&C=истина,
а модуль В при условии Р1(х)&C=ложь (Рисунок 23в).
Рассмотрим условие для циклического алгоритма (Рисунок 23с).
Пусть на входе Р1(х). Для модуля А предусловие будет следующее:
Р1(х)&C=истина, а когда С=ложь&Р1(х) цикл заканчивается.
Несомненно,
для
массового
использования
проверки
правильности программ следуя вышеизложенными подходам,
необходимо автоматизировать процесс проверки правильности
программ.
A
Р3(z)
В
Р1(х)
Р1(х)
Р1(х)
да
Р1(х)&C=истина
С
нет
Р1(х)&C=ложь
A
В
да
С
нет
Р1(х)&C=истина
A
Р2(y)
С=ложь&Р1(х)
а)
в)
с)
Рисунок – 24 - Основные конструкции языка программирования: а)
последовательная конструкция, в) условная конструкция (полная,
неполная), с) циклическая конструкция. Р1(х) –предусловие, Р2(y) –
постусловие, Р3(z) – промежуточное условие.
4.3 Виды учебной деятельности в информационнокоммуникационной
среде
электронного
обучения
программированию
Информационно-коммуникационная
среда
наряду
с
традиционными видами учебной деятельности между субъектами
процесса
обучения
(восприятие,
запоминание,
заучивание,
воспроизведение), обеспечивает новые виды деятельности в учебном
процессе. Это связано с внедрением интерактивных средств обучения,
которые обеспечивают следующие виды учебной деятельности:
- регистрация;
- сбор, накопление, хранение, обработка информации об
изучаемых объектах (явлениях, процессах);
- поиск и передача больших массивов различного рода
информации;
- управление моделью изучаемого объекта (явления, процесса);
- интерактивный диалог между субъектами процесса обучения;
-автоматизированный
контроль
результатов
учебной
деятельности;
- автоматизированное управление учебным процессом,
-самопроизводство информационного продукта учебного
назначения.
Понятие «интерактивный (interactive)» в переводе означает
диалоговый. Диалоговый режим предполагает обмен командами и
ответами системы обучения. Интерактивный режим работы означает
диалоговый режим работы субъектов процесса обучения,
направленный на активное взаимодействие с программным
продуктом, ориентированным на самообучение.
Рассмотрим способы организации интерактивных сред
управления процессом познавательной деятельности и доступа к
информационным ресурсам образовательного назначения.
К информационным ресурсам образовательного назначения
ресурсам относятся такие электронные средства обучения, как
мультимедиа учебники, гиперссылочные учебники, базы данных
учебно-познавательной
информации,
обучающие
сайты,
имитационно-моделирующие
среды,
профессиональная
интерактивная информационная среда и др.
Для подготовки специалистов в высшей школе имеет важное
значение
работа
в
профессиональной
интерактивной
информационной среде.
Учебная деятельность в информационно-коммуникационной
среде электронного обучения программированию реализует
возможность среды разработанной на основе современных средств
компьютерной техники и средств телекоммуникационной связи, как
ведение целенаправленного диалога, который следует понимать не
просто речевой диалог и диалог общения, а диалог «различных логик,
взглядов, позиций на поставленный вопрос», диалог в форме
«внутренней речи» (Красильникова В.А.).
Принципа активности и самостоятельности предполагает
следующие действия студентов при электронном обучении:
- самостоятельный выбор студентами учебного материала и
режимов учебной работы,
- ответы на вопросы и выполнение упражнений,
- управление мультимедиа иллюстрациями (flash, видео, аудио),
- выбор заданий из сборника,
- генерация эвристических решений,
- формулировка задач и планирование этапов их решения,
- построение математических моделей,
- выбор и настройка алгоритмов,
- анализ результатов,
- корректировка математических моделей,
- пересмотр исходных данных и условий.
Самостоятельная учебная деятельность студентов включает
следующие виды учебной работы:
- изучение учебных текстов с иллюстрациями,
- знакомство с примерами методических и программноинформационных средств по различным учебным дисциплинам,
- компьютерный тренинг по теории и самоконтроль знаний,
- освоение приемов работы с инструментальными программными
средствами,
- выполнение практических заданий в соответствии с
профессиональным направлением подготовки студентов.
Учебная деятельность, ее смысл и содержание впрямую зависит
от подхода к управлению познавательной деятельностью.
При обучении деятельность преподавателя заключается, вопервых, в передаче информации в виде знаний и соответствующих им
умений, во-вторых, управлении процессом овладения знаниями и
умениями.
Анализ учебной деятельности показали этапы учебной
деятельности (Беспалько В.П.; Талызина Н.Ф.):
- определение цели обучения,
- оценка уровня подготовленности обучаемого по данному
вопросу,
- осуществление различного вида контроля,
- анализ и оценка полученного результата,
- выработка корректирующих действий для достижения успеха
обучения.
Выше перечисленные виды учебной деятельности имеют
последовательность и направленность.
Управление процессом познавательной деятельности в
информационно-коммуникационной
среде
требует
серьезных
исследований. Электронное обучение программированию не должна
исключать традиционные формы обучения. Следовательно, виды
учебной деятельности при электронном обучении только
расширяются за счет возможностей автоматизированного обучения.
Как было отмечено раньше, четырехуровневая модель обучения
программированию и их уровни соответствуют четырем уровням
деятельности. Поэтому соответствие уровней абстракции при
обучении программированию к уровням деятельности студентов
можно представить следующим образом (Таблица 5).
При электронном обучении
учебная
деятельность
осуществляется в рамках функционирования динамической системы
обучения, сочетающей в себе различные траектории обучения, и
направлена на развитие системы знаний до запланированного уровня.
При этом в процессе обучения в соответствии с содержанием
обучения
программированию
должны
быть
реализованы
соответствующие модели обучения и осуществлены соответствующие
формы деятельности студентов рассматриваемых специальностей.
(Таблица -6)
Таблица- 5- Соответствие уровней абстракции при обучении
программированию к уровням деятельности студентов.
Уровни
абстракции
Наименование
уровней
Верхние
Метауровень
уровни
абстракции Целевой
Нижние
Содержательный
уровни
абстракции
Процессуальный
Уровни
деятельности
Уровни
деятельности
при
программирова
нии
Уровень
Получение
творчества
теории
Уровень умений Обучение
и навыков
доказательству
Уровень
Доказательство
воспроизведения правильности
программ
Уровень
Индукция
знакомства
/дедукция
Таблица -6 - Сравнительная характеристика обучающих
моделей и деятельности студентов.
Виды
обучающих
моделей
Характеристика
моделей
Семиотическая
Включение системы
заданий предметной
области
деятельности
в
рамках конкретных
методов обучения,
предполагающие
текстовое
изложение.
Формы
деятельно
сти
студентов
Учебная
деятельность
(слушание,
чтение,
говорение,
письмо)
Содержание
обучения
Математические
основания
программирования
Продолжение таблицы-6.
ИмитационВключение заданий,
ная
предполагающие
соотнесение
студентами знаний,
получаемых
из
знаковых
систем
(текстов) заданий с
ситуациями
будущей
профессиональной
деятельности.
Социальная
Включение заданий
в
предметнопрофессиональном
и
социальном
контекстах
Квазипро- Язык и система
фессиональ программированая
ния
Учебнопрофессио
нальная
-для
будущих
учителей
информатики:
элементы
методики
обучения
программированию
- для будущих
специалистовинформатиков:
Элементы
технологии
проектирования
программных
комплексов
Учитывая имеющиеся в обучении программированию
педагогические ситуации, представим модель электронного обучения,
реализующая спиралеобразный переход от уровня к уровню в
зависимости от деятельности преподавателя и студента. (Рисунок-25)
База данных
/темы, задания,
тесты вопросы/
Алгоритм
обучения
1 уровня
Алгоритм
обучения
2 уровня
Алгоритм
обучения
3 уровня
Алгоритм
обучения
4 уровня
Анализ
результатов
Анализ
результатов
Анализ
результатов
Анализ
результатов
А
А
А
А
В
Процессуальный
В
Содержательный
Нижние уровни абстракции
В
Целевой
В
Метауровень
Верхние уровни абстракции
Рисунок -25 – Модель электронного обучения программированию в
локальном процессе обучения.
Заключение
Методологическим подходом данного исследования является
проведение параллели между эволюцией программирования (парадигмами
программирования), развитием методики обучения программированию и,
наконец, парадигмами образования в целом. Исследование основано на
фундаментальных
понятиях
математического
и
информационного
моделирования.
В результате данного подхода предложена новая модель обучения
программированию
–
динамическая
модель
обучения
программированию для усовершенствования содержания и методов
обучения программированию с учетом достижения данной научной
области и своевременной коррекции траектории профессионального
становления специалистов.
Электронное обучение и реализуемая в нем учебная деятельность
осуществляется в рамках функционирования динамической системы
обучения, сочетающей в себе различные траектории обучения, и
направлена на развитие системы знаний до запланированного уровня.
Коррекция траектории становления будущих специалистов
обеспечивается введением на старших курсах бакалавриата и в
магистратуре спецкурсов
по изучению
современных языков
программирования, современных парадигм программирования,
элементов программирования для всемирной информационной
магистрали, и введением сквозной логически–содержательной линии
фундаментализации
обучения
математических
основ
программирования. При этом в процессе обучения в соответствии с
содержанием
обучения
программированию
должны
быть
осуществлены соответствующие формы деятельности студентов
рассматриваемых специальностей.
Сформулированные и обоснованные положения можно квалифицировать
как определяющие новые научные направления в теории и методики обучения
информатике: первое направление составляет фундаментализация обучения
программированию, связанное с выделением теоретико-математических
оснований информатики в рамках фундаментальной подготовки учителей
информатики и специалистов-информатиков в университетах, созданием
теоретических основ электронного обучения программированию; второе –
теоретико-методологические
основы
обучения
программированию,
основанные на фундаментальной математической теории, которые являются
развитием теории и методики обучения информатике будущих учителей
информатики и специалистов-информатиков в университетах.
Предложенные
теоретико-методологические
основы
обучения
программированию предполагают учет
профессионально-педагогической
направленности обучения будущих учителей информатики и специалистов-
информатиков, современных достижений педагогической науки и современных
парадигм программирования на основе математических оснований
информатики, математического и информационного моделирования.
Методическая система обучения программированию призвана
обеспечить фундаментальную подготовку будущих учителей информатики и
специалистов-информатиков в университетах в соответствии с требованиями
современного информационного общества и актуальными задачами высшего
педагогического образования.
ЛИТЕРАТУРА
1.
Абрамов С.А. Сборник задач по программированию.-М. 1987.-300 с.
2.
Абылкасымова А.Е. Формирование познавательной
самостоятельности студентов-математиков в системе методической
подготовки в университете: дисс. …докт. пед. наук.- Алматы,1995. –
С.82-86.
3.
Альманах программиста, том 2. Microsoft ASP.NET, Webсервисы, Web-приложения/ Сост. Ю.Е.Купцевич.-М.: Издательскоторговый дом «Русская Редакция».- 2003.-400с.
4.
Альманах программиста, том 3.Платформа 2003:Windows
Server 2003, Internet Information Services 6.0, Office System Сост.
Ю.Е.Купцевич.-М.: Издательско-торговый дом «Русская Редакция». 2003.-320с.
5.
Андерсон Джеймс А. Дискретная математика и
комбинаторика: Пер. с англ. –М.: Издательский дом «Вильямс».2003.-960 с.
6.
Артюхов В. Первые впечатления о Visual BASIC для DOS
версии 1.0 (профессиональное издание)//Монитор. - 1994, №2.- С.3437.
7.
АСМ Modell high School Computer Science Curriculum.Task
Force of Pre-College СоmmИiНее of the Education Board of the
АСМ//Communs.of the АСМ. - 1993, №5, У.36.- Р.87-90.
8.
Бабанский Ю.К. Выбор методов обучения в средней
школе.-М.Педагогика. -1981. -176 с.
9.
Бабанский Ю.К. Концепция содержания, методов и форм
организации обучения в современной общеобразовательной школе. //
В кн.: Избранные педагогические труды. -М.: Педагогика. - 1989.С.416-434.
10. Баженова M.М., Васючкова Т.С, Глинский Б.М.. Касьянов
В.Н.,Кропачев Ю.А. Пишик Б.Н., Поттосин И.В., Сабельфельд Н.К.
Введение в компьютерные науки. -Новосибирск. - 1994.-113 с.
11. Балыкбаев Т.О. Педагогические и технологические
основы формирования студенческого контингента.- Алматы. -265 с.
12. Барыбина И.А., Гринченко С.Н., Колягин Ю.М.
Методические
проблемы
компьютеризации
школьного
обучения.//Информатика и компьютерная грамотность. -М.:Наука. 1988. - С.138-152.
13. Бауэр Ф.Л., Гооз Г. Информатика. –М.: Мир, 1976.
14. Бахвалов Н.С., Бетелин А.Б., Бетелин В.Б. и др.
Практикум по программированию. - М.: Изд-во МГУ. - 1986. - 208 с.
15. Белобородова С.В. Профессионально-педагогическая
направленность историко-математической подготовки учителей
математики в педвузах: автореф. ... канд. пед. наук.- М. – 1999. - 27с.
16. Белошапка В. Мир как информационная структура //
Информатика и образование, 1988, №5, с.3-9.
17. Белошапка В. О языках, моделях и информатике //
Информатика и образование, 1987, 6, с.12-16.
18. Бен-Ари М. Языки программирования. Практический
сравнительный анализ: Пер. с англ. –М.:Мир. -2000.-366 с.
19. Беспалько В.П. Слагаемые педагогические технологий. М.: Педагогика. -1989. - 190 с.
20. Беспалько В.П. Слагаемые педагогической технологии.М.:Педагогика. - 1989.-192 с.
21. Бидайбеков Е.Ы. Информатизация образования в
Казахстане.// Алматы:АГУ им. Абая. - 1998. -64 с.
22. Бидайбеков Е.Ы. Развитие методической системы
обучения информатике специалистов совмещенных с информатикой
профилей в университетах Республики Казахстан: автореф. ... докт.
пед. наук. Москва,1998 – 34 с.
23. Бидайбеков Е.Ы., Рах С.В., Шалбаев Е.Б. Математикоинформационные технологии в теории и практике обучения. Учебное
пособие.-Алматы: АГУ им.Абая. - 1996. -87с.
24. Бидайбеков Е.Ы., Григорьев С.Г., Гриншкун В.В.
Информационное интегрирование и анализ образовательной области в
разработке электронных средств обучения. – Алматы. – 2002.- 100 с.
25. Бидайбеков Е.Ы., Гриншкун В.В. Интеграционные методы
преподавания алгоритмических языков в университетском курсе
информатики. //В кн: Материалы международной научно-методической
конференции «Математическое моделирование и информационные
технологии в образовании и науке» - Алматы, АГУ им. Абая. -1998.
26. Бидайбеков Е.Ы., Нурбекова Ж.К., Сагимбаева А.Е.
Информатика пәнінен оқушылардың білімін бақылау және бағалау
әдістемесі. Учебно-методическое пособие.-Алматы.-2003. -90 с.
27. Бидайбеков Е.Ы., Нурбекова Ж.К., Сагимбаева А.Е.
Информационный подход в оценивании качества знаний.//Материалы
международной научно-практической конференции «Качество
педагогического образования:проблемы и перспективы развития». –
Алматы. -2004. –С.810-816.
28. Бидайбеков Е.Ы., Талпаков Н.А. К вопросу обучения
курса информатики, на основе интеграции парадигм программирования.//Вестник АГУ им. Абая. Серия физико-математическая. –
Алматы. - 2003,№2(8).- С.46-47.
29. Бобровский С. Технологии Пентагона на службе
российских программистов. Программная инженерия. - СПб.: Питер.2003. - С.8.
30. Богданова Д.А. Новая профессия: модератор удаленного
обучения //Материалы IV Международной конференции «Применение
новых компьютерных технологий в образовании, 24-26 июня 1993» Троицк. -1993. - с.109.
31. Боковский
А.В.
Англо–русский
словарь
по
программированию и информатике (с толкованиями): -М.:
Московская международная школа переводчиков., 1992.-335 с.
32. Бордовский Г.А., Кондратьев А.С., Суханов А.Д. Физика в
системе современного образования // Образование и культура СевераЗапада России. Вестник Северо-Западного отделения РАО. Выпуск 3.СПб. – 1998. - с.5-15.
33. Бочкина Н.В. Педагогические основы формирования
самостоятельности школьника: дисс. …докт. пед. наук. –СПб. -1991.346с.
34. Брановский Ю.С. Методическая система обучения
предметам в области информатики студентов нефизикоматематических специальностей в структуре многоуровневого
педагогического образования: дисс. ...докт. пед. наук. -М. – 1996.378с.
35. Брой М. Информатика. Основополагающее введение: в 4-х
ч. Ч.1.-М.: Диалог-МИФИ. - 1996.-299с.
36. Брукс Ф. Мифический человеко-месяц или как создаются
программные системы. - СПб.: Символ-Плюс.- 1999.
37. Буга П.Г. Создание учебных книг для вузов. - М.: МГУ. 1987. -61с.
38. Бургин М. Проблемы преподавания основ информатики
//Информатика и образование. - 1987, №4. -С.17-19.
39. Буч Г., Рамбо Д., Джекобсон А. Язык UML. Руководство
пользователя. - М.:ДМ К. - 1998.
40. Велихов Е.П. Новая информационная технология в школе.
//Информатика и образование. - 1986, №1. - С.18-22.
41. Вершинин О.Е. Компьютер для менеджера. - М.:
Высш.шк. - 1990. -240 с.
42. Вирт Н. Преподавание информатики: потерянная дорога.
Приветствие на открытии Международной конференции по
преподаванию информатики ITiCSE /г. Аархус (Дания), 24 июня 2002
г. Перевод на русский язык: Ф.В. Ткачев.
43. Вирт Н.О. Алгоритмы+структуры данных=программы. М.:Мир. - 1985.-406 с.
44. Власова
Е.З. Теоретические основы и практика
использования адаптивных технологий обучения в профессиональной
подготовке студентов педагогического вуза: автореф. ... докт. пед.
наук.-СПб. -1999. - 50с.
45. Власова Е.З.
Теоретические основы и практика
использования адаптивных технологий обучения в профессиональной
подготовке студентов педагогического вуза: дисс. ...докт. пед. наук. –
СПб. - 1999. - 412 с.
46. Вольфенгаген
В.Э.
Комбинаторная
логика
в
программировании. Вычисления с объектами в примерах и задачах. –
М.:АО «Центр ЮрИнфоР». - 2003.-336 с.
47. Воробейчикова О.В. Структурированные тесты как
средства контроля знаний. //Информатика и образование. – 2001, №7.
- С.14.
48. Вьюкова Н.И., Галатенко
В.А., Ходулев А.Б.
Систематический подход к программированию. - М.: Наука. - 1988. 206с.
49. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы
объектно-ориентированного
программирования.
Паттерны
проектирования. - СПб.: Питер. - 2001.
50. Гейтс Б. Бизнес со скоростью мысли. Изд. 2-е,
исправленное -М.-2001.-480 с.
51. Гершунский Б.С. Прогнозирование содержания обучения
в техникумах. –М.- 1980. -144 с.
52. Гладкая И.В. Особенности контроля уровня достижений
учащихся в системе развивающего обучения: дисс… канд. пед. наук.
МГПУ. - 1996.
53. Голубятников И.В. Математическое и программное
обеспечение обучающих мультимедийных комплексов и систем: дисс.
...техн. пед. наук. - 2000.-289с.
54. Городничева А.С. Дидактические технологии развития
профессионально-педагогической направленности студентов (в курсе
педагогики): автореф. ... канд. пед. наук.- Шуя. -1999. - 16с.
55. Горячев
А.В.Информатика
фундаментальная
и
прикладная//Информатика и образование. -1998, №6.- С.27-30.
56. Григорьев С.Г., Гриншкун В.В. Привлечение учащихся к
организации
сетевых
систем
современной
школы.//Вторая
международная конференция «Интернет. Общество. Личность. Новые
информационно-педагогические
технологии
(ИОЛ-2000).Тезисы
докладов» -СПб: Институт «Открытое общество», -2000.
57. Громыко В.И., Трифонов Н.П. Компьютерный задачникучебник по программированию на базе развивающегося обучения
(информатике). //Педагогическая информатика. - 1993, №2. - С.60-67.
58. Гутовская Г.В. Шалагинова Н.И. Использование EXCEL
для решения финансово-экономических задач.//Информатика и
образование.-2003, №7. -С.60-71.
59. Дедков А.Ф. Абстрактные типы данных в языке
АТ.Паскаль. – М.:Наука. -1989. -255 с.
60. Дейкстра Э. Дисциплина программирования. - М.: Мир,
1976. -276 с.
61. Дейкстра Э. Заметки по структурному программированию
//Структурное программирование. - М.: Мир. – 1975.- С. 7-97.
62. Джеймс П., Гуревич М.И. Проектный подход к обучению
технологии.//Стандарты и мониторинг в образовании, изд-во: Русский журнал.2000,№1. - С.34-42.
63. Дименштейн
Р.,
Яковлев
А. Информатика
или
компьютерное дело //Информатика и образование, 1989, №3, с.105107.
64. Дмитриев В.И. Прикладная теория информации. - М.:
Высш.шк.. -1989. - 320 с.
65. Дроботун Б.Н., Кадькалов В.Г. Алгоритмы и машины
Тьюринга: Учебно-методическое пособие.- Павлодар. - 2003. -105 с.
66. Ерецкий М.И., Пороцкий Э.С. Контроль знаний, умений и
навыков учащихся техникумов. - М.: Высшая школа. -1978. -174 с.
67. Ерохин А.В., Корнев Н.А. TMN: Надежда и реальность
альтернативных подходов. //Вестник связи. -2000, № 4.
68. Ершов А.П.
Научные основы школьного курса
информатики и ВТ (тезисы доклада на семинаре АН СССР и АПН
СССР «Компьютер и образование»).- М.: НИИ СИМО АПН СССР.1986.- 20 с.
69. Ершов
А.П.
Введение
в
теоретическое
программирование.-М.:Наука, 1977.-288с.
70. Ершов А.П. и др. Изучение основ информатики и
вычилсительной техники. Ч.2., 1991.- С.10.
71. Ершов А.П. Как учить программированию //Микропроцессорные средства и системы. - 1986, №1. - С.91-93.
72. Ершов А.П. Школьная информатика в СССР: от
грамотности к культуре // Информатика и образование, 1987, №6, с.311.
73. Ершов А.П. Компьютеризация школы и математическое
образование //Информатика и образование, 1992, №5-6, с.3-12.
74. Ершов А.П.Компьютерный всеобуч.// Учительская газета.1984, 11 сентября. - С.2.
75. Жалдак М.И.
Система подготовки учителя к
использованию информационной технологии в учебном процессе:
автореф. ... докт. пед. наук.-М., 1989.
76. Жангисина Г.Д. Преподавание языков программирования
в высшей школе.- Алматы: Ғылым. -2001.-329 с.
77. Жданов С.А.Применение информационных технологий в
учебном процессе педагогического института и педагогических
исследованиях: автореф. ... канд. пед. наук. - М., 1992.
78. Загвязинский
В.И.
Методология
и
методика
дидактического исследования. –М. - 1982.
79. Загвязинский В.И., Гриценко Л.И. Основы дидактики
высшей школы.-Тюмень:ТГУ. - 1978.-91 с.
80. Звенигородский Г.А. Анализ требований к программным
средствам //Проблемы школьной информатики. – Новосибирск. –
1986. С.16-23.
81. Звенигородский Г.А. Некоторые особенности учебных
языков
и систем программирования // Экспериментальная
информатика. – Новосибирск. – 1981. - С.81-91.
82. Зверев И.Д. Взаимная связь учебных предметов –М.-1976.
-64с.
83. Зверев И.Д. Межпредметные связи как педагогическая
проблема //Советская педагогика. - М.- 1974, №12.-С.10-16.
84. Ивин А.А. Практическая логика: Учебное пособие. –М.:
ФАИР-ПРЕСС. -2002.-288с.
85. Ижогин Я.В. Программирование в VBA для MS EXCEL.//
Информатика и образование. -2003, №1. - С.27-32.
86. Извозчиков В.А. Методические рекомендации и
материалы к профессиограмме современного учителя. - Л.: ЛГПИ.1987. - 64 с.
87. Информационный бюллетень «Электронное обучение»
//http://www.amr.ru/
88. Йенсен К., Вирт Н. Паскаль:
Руководство для
пользователя. - М.: Компьютер. - 1993. - 256с.
89. Калужнин Л.А. Элементы теории множеств и
математической логики в школьном курсе математики. Пособие для
учителей. –М.: Просвещение. - 1978.- 88с.
90. Касаткин В.Н. Информация, алгоритмы, ЭВМ.- М.:
Просвещение.- 1991. - 192с.
91. Касьянов В.Н. Вводный курс программирования на
Паскале в заданиях и упражнениях. – Новосибирск: НГУ. - 1999,
Часть 1.- 160 с.
92. Касьянов В.Н. Вводный курс программирования на
Паскале в заданиях и упражнениях. – Новосибирск: НГУ. - 1999,
Часть 2.- 170 с.
93. Касьянов В.Н., Сабельфельд В.К. Сборник заданий по
практикуму на ЭВМ. – М.: Наука. – 1986. - 272 с.
94. Касьянов В.Н.Основы программирования на языке
Паскаль. – Новосибирск: НГУ. – 1987. - 80 с.
95. Киндлер Е. Языки моделирования. - М.: Энергоатомиздат,
1985. -288с.
96. Кинелев В.Г. Образование и цивилизация// Информатика
и образование. -1996, №5. - С.21-28.
97. Киров С.Н. Методика обучения теории параллельных
вычислений в условиях двухступенчатой подготовки специалистов по
информатике в педвузах: дисс. ...канд. пед. наук. -М:РГПУ. -1996 189 с.
98. Кларк К., Маккейб Ф. Введение в логическое
программирование на микро-Прологе. - М.: Радио и связь. - 1987. 312с.
99. Клигер
С.А.,
Косолапов
М.С.,
Толстая
Ю.Н.
Шкалирование пр сборе и анализе социологической информации. –М.
- 1978.
100. Клини С.К. Введение в метаматематику. - М.: ИЛ.- 1957. 526 с.
101. Клоксин У., Меллиш К. Программирование на языке
Пролог. - М.:Мир. - 1987. - 336с.
102. Кнут Д. Искусство программирования, том 1. Основные
алгоритмы, 3-е изд.: Пер с англ. - М.: Издательский дом «Вильямс». 2004.-720с.
103. Козлов К.П. Алгоритмы. - Л.: ЛГПИ. - 1989. - 38 с.
104. Колмогоров А.Н., Драгалин А.Г. Математическая логика.
Дополнительные главы. - М.: Изд-во МГУ, 1984. - 120 с.
105. Комолкин А.В., Немнюгин С.А. Программирование для
высокопроизводительных ЭВМ.// nemnugin@snoopy.phys.spbu.ru
106. Компонентное ПО и объектная прикладная среда Oberon.
//www.rol.ru
107. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы:
построение и анализ/Пер. с англ. под. ред. А.Шеня.- 2002. – 960 с.
108. Косовский Н.К. Элементы математической логики и ее
приложения к теории субрекурсивных функций. - Л.: ЛГУ.- 1981. 192 с.
109. Красильникова
В.А.
Становление
и
развитие
компьютерных технологий обучения: Монография. -М.:ИИО РАО. 2002.-168 с.
110. Крупич В.И. Структура и логика процесса обучения
математике в средней школе.- М.: МГПУ. - 1985.-118 с.
111. Крупич В.И. Теоретические основы обучения решению
школьных математических задач: дисс. …докт. пед. наук. - М. - 1992.278 с.
112. Крюкова О.П., Смольникова И.В. Электронное обучение:
разработка, проблемы, перспективы.// http://www.informika.ru/
113. Кузнецов Э.И. Общеобразовательные и профессионально
– прикладные аспекты изучения информатики и вычислительной
техники в педагогическом институте : дис. ...докт. пед. наук. М.,1990.-251 с.
114. Кузьмина Н.В. Методы системного педагогического
исследования: Учебное пособие. - М.: Народное образование. -2002.208 с.
115. Кузьмина Н.В. Проблемы профессиональной подготовки
специалистов в вузах.- Л., 1970.
116. Кун Т.Структуры научных революций.- М.:Прогресс.1977.-300 с.
117. Кушниренко А., Эпиктетов М. КуМир - новое семейство
учебных программ // Информатика и образование. - 1993, №1. - С.2125.
118. Лавров С.С. Основные понятия и конструкции языков
программирования. - М.: Финансы и статистика. - 1982.- 80 с.
119. Лавров С.С. Программирование. Математические основы,
средства, теория.-СПб.: БХВ-Петербург. -2001.-320 с.
120. Лавров С.С. Программирование. Математические основы,
средства, теория. - СПб. : БХВ – Петербург. - 2001.-320 с.
121. Лавров С.С., Слисенко А.О., Цейтин Г.С. Проект планапрограммы по специальности «Информатика и системное
программирование»//Микропроцессорные средства и системы. - 1985,
№4.- С.20-28.
122. Лапчик М.П. Структура и методическая система
подготовки кадров информатизации школы в педагогических вузах:
автореф. ...докт. пед. наук. -М. – 1999.-82 с.
123. Латотин Л.А., Макаренков Ю.А., Николаева В.В., Столяр
А.А. Математическая логика. - Минск: Вышэйшая шк.- 1991. - 272 с.
124. Лебедев Г.В. О новом учебнике информатики //
Информатика и образование. - 1990, №5. - С.24-30.
125. Лебедева И.А. Методика отбора содержания обучения
будущих учителей информатики конструированию компиляторов:
Дисс... канд. пед. наук. - 1996. -242с.
126. Леднев В.С. Содержание образования. -М.:Высшая
школа.-1989.-86 с.
127. Леднев В.С. Содержание образования: сущность,
структура, перспективы. -М.:Высшая школа.-1991.-86 с.
128. Лекции лауреатов премии Тьюринга. – М.: Мир, 1993. –
560с.
129. Леонтьев А.Н. Обучение как проблема психологии //
Вопросы психологии. - 1957, №1.
130. Лернер И.Я. Дидактические основы методов обучения. –
М.:Пеадгогика. -1981.
131. Лернер И.Я. Дидактические основы методов обучения. –
М.:Педагогика, -1981.-185 с.
132. Лернер И.Я. Дидактические основы формирования
познавательной самостоятельности учащихся при изучении
гуманитарных дисциплин: дисс. …докт. пед. наук. -М. -1971.-300с.
133. Лернер И.Я., Скаткин М.Н. Дидактика. -М. - 1975, С.172.
134. Лернер И.Я., Скаткин М.Н. О методах обучения. //
Советская педагогика. -1965, №3.
135. Лингер Р., Миллс Х., Уитт Б. Теория и практика
структурного программирования. - М.: Мир. - 1982. - 406с.
136. Линькова В.П. Развитие методической системы обучения
информатике на основе информационного и информационнологического моделирования: автореф. ...докт. пед. наук. -М. - 2000. 37 с.
137. Логвинов И.И. Учебный план: традиции., проблемы,
перспективы. //Советская педагогика. -1988, № 1. -С.45-50.
138. Логвинов
И.И.
Философия
образования
и
педагогика:точка зрения дидакта.-М.:Педагогика. – 1997, № 3.-С.105110.
139. Ерецкий М.И., Пороцкий Э.С.. Контроль знаний, умений и
навыков учащихся техникумов. Москва. Высшая школа. -1978.- 174 с.
140. Макарова Л.В. Преподаватель: модель деятельности и
аттестация / Под ред. В.Л. Балакина. –М.: Исслед. центр. -1992.- 148 с.
141. Мальцев А.И. Алгоритмы и рекурсивные функции. М.:Наука. - 1986.
142. Мальцев А.И. Алгоритмы и рекурсивные функции. -М.:
Наука. -1986. - 368 с.
143. Мануилов В.Г. Использование VBA для создания
интерактивных педагогических мастер шаблонов.//Информатика и
образование.-2002, №2,3. -С.55-64, -С.43-53.
144. Мартин Дж.Организация баз данных в вычислительных
системах. -М.: Мир.- 1980. - 662 с.
145. Мастрюков Д. Алгоритмы сжатия информации.
Арифметическое кодирование //Монитор. - 1994, №1.- С.20-26.
146. Мастрюков Д. Алгоритмы сжатия информации. Сжатие по
Хаффману //Монитор. - 1993, №7-8.- С.14-24.
147. Материалы
по
COM,
DCOM
на
сайте.
//http://www.microsoft.com/com/
148. Материалы сайта http://info.acm.org/
149. Материалы сайта http://www.ieee.org/
150. Матросов В.Л. Теория алгоритмов. - М.: Прометей.- 1989.
- 188 с.
151. Матюшков Л.П., Лихтарович А.А.Основы машинной
математики. - Минск: Народная асвета. - 1988. - 240 с.
152. Мордкович
А.Г.
Профессионально-педагогическая
направленность специальной подготовки учителя математики в
педагогическом институте : автореф. ...докт. пед. наук. – М.-1986.
153. Мордкович
А.Г.
Профессионально-педагогическая
направленность специальной подготовки учителя математики в
педагогическом институте: автореф. ... канд. пед. наук.- М.- 1986.
154. Нугмонов М. Теоретико-методологические основы
методики обучения математике: дисс. … докт. пед.наук. -М.- 2003.409 с.
155. Нурбекова Ж.К. Бидайбеков Е.Ы. Математические
основания программирования, как элемент содержания обучения. //
Материалы международной конференции «Проблемы преподавания
естественно-научных дисциплин в школах и вузах Казахстана, СНГ и
Германии». –Алматы. -2004. –С.437-440.
156. Нурбекова Ж.К. Даутова А.З. Лабораторные работы по
языкам программирования. Учебно-методическое пособие.-Павлодар.
-2003. -46 с.
157. Нурбекова Ж.К. Информационное взаимодействие между
субъектами процесса электронного обучения в информационнокоммуникационной среде.//Вестник КазНУ. -2004, №1(12).- С.30-35.
158. Нурбекова Ж.К. Междисциплинарная связи как
педагогическая проблема. //Вестник ЕНУ им.Гумилева. - 2004,
№2(38), С.194-198.
159. Нурбекова Ж.К. Профессионально-педагогическая направленность обучения программировании.//Вестник КазНПУ им.Абая. –
Алматы. -2004, №1(9), С.163-167.
160. Нурбекова Ж.К. Психолого-педагогические аспекты
обучения программированию. //Исследования, результаты, №3-4,
2003, С.84-86.
161. Нурбекова Ж.К. Современное состояние обучения
программированию в школе. // Вестник высшей школы. –Алматы. 2004, №2. –С.56-58.
162. Оборнев Е.А., Челноков А.Ю. Программирование
«клетчатых игр» в EXCEL с использованием Visual basic for
applications.// Информатика и образование. -2003, , №2. - С.15-24.
163. Оганесян В.А., Колягин Ю.М., Луканкин Г.Л.,
Саннинский В.Я. Методика преподавания математики в средней
школе: Общая методика.-М.: Просвещение. - 1980.-368 с.
164. ООП // in.Form Progress arch.htm
165. Основы педагогики высшей школы.-М.:МГУ. -1986. -304
с.
166. Острейковский В.А. Информатика: Учеб.для вузов. –
М.:Высш.шк.,1999.-511 с.
167. Пак Н. Учитель-менеджер // Информатика и образование.1992, №1. -С.120-121.
168. Пападимитриу Х., Стайнглиц К. Комбинаторная
оптимизация. Алгоритмы и сложность. - М.: Мир. - 1985. - 512 с.
169. Парадигмы
программирования.
//dnpetrov.narod.ru,
http://www.uran.donetsk.ua/masters/2002/fvti/drugobitskiy/library
170. Педагогика.
Учебное
пособие
для
студентов
педагогических вузов и педагогических колледжей / Под ред. П.И.
Пидкасистого. –М.: Педагогическое общество России, 2001. – 640 с.
171. Педагогическая
энциклопедия.-М.:Советская
энциклопедия.- 1965. -911с.
172. Пейперт С. Переворот в сознании: дети, компьютеры и
плодотворные идеи. - М.: Педагогика. - 1989. - 224 с.
173. Переверзев С.И. Macromedia Flash в школе.//Информатика
и образование. -2003, , №5,6. - С.70-76, -С.64-69.
174. Петрушин В.А. Экспертно-обучающие системы. //Отв.
ред. А.М. Довгялло; АН УССР. Ин-т кибернетики. - Киев: Наукова
думка. – 1992. - 196 с.
175. Пидкасистый
П.И.
Самостоятельная
деятельность
учащихся. -М.:Педагогика.- 1972.-184с.
176. Плеухова Л.Ф., Ситников Ю.К. Решение задач по физике
средствами MS EXCEL.//Информатика и образование. -2003, №7.С.53.
177. Пушкина О.Н. Самореализация студентов в учебновоспитательном
процессе
педвуза.
//Сб.научн.трудов
«Профессиональная направленность воспитательной работы в системе
педагогического образования». – Благовещенск. - 1999.
178. Пышкало А.М. Методическая система обучения
геометрии в начальной школе. Авт.доклад по монографии «Методика
обучения геометрии в начальных классах» пред. ...докт. пед. наук. М.-1975.-с.7.
179. Радионов Б.У., Татур А.О. Стандарты и тесты в
образовании. М.: Исслед. центр.- 1995. - 47 с.
180. Ракитина Е.А. Посторенние методической системы
обучения информатике на деятельностной основе: : дисс. ...докт. пед.
наук. -М.:2002. -489с.
181. Резниченко
А.Н.
Профессионально-нравственное
самовоспитание студентов как условие развития педагогической
культуры будущего учителя: автореф. ... канд. пед. наук.- Ростов-наДону. – 1999.- 26с.
182. Рейнгард И.А., Ткачук В.И.Основы педагогики высшей
школы. - Днепропетровск: ДГУ. - 1980. -95 с.
183. Роберт И.В. О понятийном аппарате информатизации
образования. //Информатика и образование. - 2003, №1. С.3-9.
184. Рыжова
Н.И.
Развитие
методической
системы
фундаментальной подготовки будущих учителей информатики в
предметной области. Дисс…докт. пед. наук. -СПб. - 2000. -429 с.
185. Савельев А.Я., Когдов Н.М., Сазонов Б.А. и др.
Электронные вычислительные машины: в 8-ми кн. : Учеб.пособие для
вузов.-М.: Высш.шк.,1987.-127 с.
186. Сагимбаева А.Е. Информатиканы оқыту барысында
білімді бақылау әдістемесі: дисс. ...канд. пед. наук. –Алматы. -2004. 147 с.
187. Самсонов Б.Б., Плохов Е.М., Филоненков А.И.
Компьютерная математика (основание информатики) (Серия
«Учебники и учебные пособия»). –Ростов-на-Дону: «Феникс». - 2002.512 с.
188. Симанов В.П. Управление учебно-воспитательным
процессом в средней школе на основе системного подхода: автореф.
...докт. пед. наук. -М. – 1991. - 31 с.
189. Симонович С.В. Информатика. Базовый курс – СПб.: Издво «Питер», 1999.- 640 с.
190. Скаткин М.Н. Проблемы современной дидактики.
М.:Педагогика, -1984.-96 с.
191. Словарь иностранных слов. -18-е изд.-М.: Русс.яз.-1989.624 с.
192. Советский
энциклопедический словарь.-М.:Советская
энциклопедия, 1980 и последующие изд.
193. Сохор Б.И. Логическая структура учебного материала. М.: Педагогика.- 1974. - 192 с.
194. Столяр А.А. Логические проблемы преподавания
математики. –Минск: «Высшая школа». 1965.
195. Столяр А.А. Педагогика математики. Курс лекций. Минск.- 1969.- 368 с.
196. Стяжкин Н.И. Формирование математической логики. –
М.:Физматгиз. 1960.
197. Сурчалова Л.В. Метод проектов на основе системообразующей роли
информатики.// http://www.a.lvt.ru
198. Талызина Н.Ф. Управление процессом усвоения знаний. –
М.:МГУ. - 1984.-344с.
199. Талызина Н.Ф.Теоретические основы разработки модели
специалиста //Международный журнал социалистических стран
«Современная высшая школа». –Варшава. - 1986, №2/54. - С.75-83.
200. Теоретические основы
содержания общего среднего
образования /Под ред.
В.В.Краевского,
И.Я.Лернера. - М.:
Педагогика. - 1983. -352 с.
201. Теребилов О.Ф. Логика математического мышления.
Монография.– Л.: Изд-во Ленинградского университета. - 1987. -191 с.
202. Типовая
учебная программа. Информатика по
гуманитарным специальностям и специальности искусство и
культуры 020000, 060000, 090100, 090200, 090800, 090000-091200,
091500, 520130-520430, 520730, 520930-521830, 522030, 5222130,
540230,.-Астана: МоиН РК, 2002.
203. Типовая
учебная программа. Информатика по
естественнонаучным специальностям и направлениям подготовки
010700-011500, 510730-511030, 511230, 511430.-Астана: МоиН РК,
2002.
204. Типовая
учебная программа. Информатика по
медицинским специальностям 010700-011500, 510730-511030, 511230,
511430.-Астана: МоиН РК, 2002.
205. Типовая
учебная программа. Информатика по
сельскохозяйственным специальностям 450100-451000, 451500,
451700.-Астана: МоиН РК, 2002.
206. Типовая
учебная программа. Информатика по
специальностям
и
направлениям
подготовки
естественных
образований 0301000-030300, 521930.-Астана: МоиН РК, 2002.
207. Типовая
учебная программа. Информатика по
техническим и технологическим специальностям и направлениям
подготовки 070841, 090500, 090600, 091340, 110000-140000, 160000,220000, 240000-280000, 300000-400000, 420000-440000, 451100451400, 451600, 460300, 541230, 543930, 551630, 551730, 553230,
554130-554330 .-Астана: МоиН РК, 2002.
208. Типовая
учебная программа. Информатика. по
экономическим специальностям и направлениям подготовки 062000,
080000, 090300, 090400, 090700, 090300, 090900, 091341, 091400,
091600, 460100, 460200, 520530, 520830, 522230, 52330, 540430,
541530, 070000.-Астана: МоиН РК, 2002.
209. Типовая учебная программа. Математика и информатика
по специальностям и направлениям гуманитарных образований
030500-030900, 031100-032200, 540330.-Астана: МоиН РК, 2002.
210. Типовая
учебная
программа.
Информатика
по
естественнонаучным специальностям и направлениям подготовки
010100-010600, 510130-510430.-Астана: МоиН РК, 2002.
211. Толковый словарь
по искусственному интеллекту
/Авторы-составители
А.Н.Аверкин,
М.Г.Гаазе-Рапопорт,
Д.А.Поспелов.- М.: Радио и связь.- 1992. - 256 с.
212. Толковый словарь. http://de.ifmo.ru.../dict1.htm
213. Толковый словарь.// http://de.ifmo.ru
214. Тупальский Н.И. Основные
проблемы
вузовского
учебника.-Минск: Вышэйшая шк. -1976. - 183с.
215. Тыугу
Э.Х.
Концептуальное
программирование.М.:Наука. - 1984.-256 с.
216. Уоррен Генри С. Алгоритмические трюки для
программистов.-М.:Издательский дом «Вильямс». - 2004.-288 с.
217. Успенский В.А., Семенов А.Л. Теория алгоритмов:
основные открытия и приложения. - М.: Наука. - 1987. - 288 с.
218. Ушинский К.Д. //Сочинения т.3. -М.:Издательство АПН
РСФСР- 1948.- 178с.
219. Уэзерелл Ч. Этюды для программистов. - М.: Мир. - 1982.
220. Факторный анализ.//www.library.graphicon.ru
221. Федюшин
Д.
Парадигмы
программирования.
//
Информатика и образование.- 1991,№4, № 5.- С.13-15., - С.13-17.
222. Фокин Р.Р. Метамодель обучения информатике в высшей
школе: дисс. ... докт. пед. наук. – СПб.- 2000.- 408 с.
223. Фоминых Ю.Ф. Теоретические основы развития научного
мировоззрения учащихся средней школы в системе математического
образования: автореф. ...докт. пед. наук. –М. – 1993. – 36 с.
224. Фрейденталь Х. Язык логики. –М.: «Наука». 1968.
225. Фути К., Судзуки Н. Языки программирования и
схемотехника СБИС. - М.: Мир. - 1988. - 224 с.
226. Фути К., Судзуки Н. Языки программирования и
схемотехника СБИС. Пер. с япон. -М.:Мир. -1988.-224 с.
227. Хамов Г.Г. Методическая система обучения алгебре и
теории чисел в педвузе с точки зрения профессиональнопедагогического подхода. - СПб.: РГПУ. - 1993.- 142 с.
228. Хамов Г.Г. Методическая система обучения алгебре и
теории чисел в педвузе с точки зрения профессиональнопедагогического подхода.-СПб.:РГПУ. -1993.-142 с.
229. Хамов Г.Г.Методическая система обучения алгебре и
теории чисел в педвузе точки зрения профессиональнопедагогического подхода. - СПб.: РГПУ. - 1993.-142 с.
230. Хендерсон
П.Функциональное
программирование.
Применение и реализация. - М.: Мир. - 1983. - 349с.
231. Цейтин Г. С. О профессионализме в программировании. СПб.: ЛГУ, математико-механический факультет, рукопись. - 1989.
232. Цымбал В.П.Теория информации и кодирования. - Киев:
Вища школа. - 1977. - 288 с.
233. Шарипбаев А.А.Материалы международной конференции
«ММ ИТОН», 1998. - С.156.
234. Швецкий М.В. Методическая система фундаментальной
подготовки будущих учителей информатики в педагогическом вузе в
условиях двухступенчатого образования. : дисс. ... докт. пед. наук. –
СПб., 1994.-446 с.
235. Швецкий М.В.Язык профессионала-программиста и
пользователя ЭВМ.- Самара: Изд-во СамГПИ. - 1993. - 405с.
236. Шимбирев П.Н., Огородников И.Т. Педагогика. - М.- 1954.
-129с.
237. Шлык В.А. Необходимость изучения теории графов в
подготовке учителя математики и информатики //Информатика в
педагогическом вузе. - Минск: МГПИ. – 1989. -С.17-22.
238. Шнейдерман Б. Психология
программирования. М.:Радио и связь. - 1984. - 304 с.
239. Эльконин Д.В. О теории начального обучения //Народное
образование. - 1963, №4.
240. Якиманская И.С. Развивающее обучение. - М.:
Педагогика.- 1979.- 144 с.
241. ACM Curriculum Committee on Computer Science.
Curriculum 68: Recommendations for the undergraduate program in
computer science. //CACM. - March 1968, V. 11, №3. - pp. 151-197.
242. ACM Curriculum Committee on Computer Science.
Curriculum'78 -Recommendations for the Undergraduate Program in
Computer Science// Comm.ACM, 22, - Mar. 1979. - pp.147-166.
243. Andrew Filev. Углубление в С#: интервью с ведущим
разработчиком Microsoft - Андерсом Хейлсбергом (Anders Hejlsberg)
Интервьюер: Джон Осборн (John Osborn).// www.PARKING.RU
244. Ben-Ari M. Understanding Programming Language. John &
Sons Ltd. -New York.-1998.
245. Carrano Frank M., Prichard Janet J. Data abstraction and
problem solving with C++.Addicon-Wesley publishing company.-New
York.-2002.-848 p.
246. Computing Curricula 1991. - Report of the ACM/IEEE-CS
Joint Curriculum Task Force.- IEEE Computer Society Press.- 1991.
247. Computing Curricula 2001// http//se.math.spbu.ru/cc2001.
248. Denning P., et al. Computing as a Discipline // CACM. January 1989, V. 32, №1. - pp. 9-23.
249. Denning P.J, Comer D.E., Gris D., Mulder M.C., Tucker A.B.,
Turner A.J., Young P.R. Computing as discipline. Commun. ACM 32, 1
(Jun, 1989). - p.9-23.
250. Gibbs N.E., Tucker A.B. Model Curriculum for a Liberal Arts
Degree in Computer Science //Comm.ACM 29, 3 - Mar. 1986. - pp.202210.
251. Mathematica как язык программирования // Exponenta Pro
252. Parnas D. L. Education for Computing Professionals //
Computer, January 1990, V. 23, № 1. - pp. 17-22.
253. R.Orfali, D.Harkey.: Client/server programming with Java and
CORBA. John Wiley & Sons, Inc. 1998.
254. Tucker A., et al. Computing Curricula 1991, Report of the
ACM/IEEE-CS Joint Curriculum Task Force, ACM Press, N. Y. -1991.
ПРИЛОЖЕНИЕ
Основной интерфейс ЭУМКД «Численные методы»
Фрагмент анимационного опорного конспекта ЭУМКД
«Численные методы»
СОДЕРЖАНИЕ
ВВЕДЕНИЕ ..................................................................................................2
ЧАСТЬ 1. МЕТОДОЛОГИЯ ОБУЧЕНИЯ ПРОГРАММИРОВАНИЮ
В СИСТЕМЕ КУРСОВ ИНФОРМАТИКИ............................................ 13
1.1 История становления и развития теории, методики обучения и
воспитания по программированию ........................................................ 13
1.1.1 Развитие и становление информатики, как фундаментальной
науки .......................................................................................................... 13
1.1.2 Программирование в общей системе курсов информатики в
высшей школе ........................................................................................... 21
1.2 Тенденции развития методологических подходов к обучению
программированию .................................................................................. 26
1.3 Теория отбора содержания обучения программированию ............ 63
ЧАСТЬ 2. ПОСТРОЕНИЕ МЕТОДИЧЕСКОЙ СИСТЕМЫ
ОБУЧЕНИЯ ПРОГРАММИРОВАНИЮ ............................................... 73
2.1 Концепции построения методической системы обучения
программированию .................................................................................. 73
2.2 Методическая система обучения программированию .................. 75
2.2.1 Цель обучения программированию............................................... 75
2.2.2 Структура и содержание обучения программированию в высшей
школе ......................................................................................................... 83
2.2.2.1 Уточнение содержания обучения программированию на основе
компьютерной математики ................................................................... 113
2.2.4 Методы обучения программированию в высшей школе .......... 122
2.2.5 Средства и формы организации обучения программированию в
высшей школе ......................................................................................... 137
2.3 Перспективные направления развития методической системы
обучения программированию ............................................................... 147
ЧАСТЬ 3. ИНФОРМАТИКО-МАТЕМАТИЧЕСКИЕ МЕТОДЫ
ПОСТРОЕНИЯ ДИНАМИЧЕСКОЙ МОДЕЛИ ОБУЧЕНИЯ
ПРОГРАММИРОВАНИЮ .................................................................... 153
3.1 Теоретические основы построения динамической модели
обучения программированию ............................................................... 153
3.2 Методы информационного моделирования при построении
методической системы обучения программированию....................... 167
3.3 Методы математического моделирования при построении
методической системы обучения программированию....................... 175
ЧАСТЬ 4. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЭЛЕКТРОННОГО
ОБУЧЕНИЯ ПРОГРАММИРОВАНИЮ ............................................. 188
4.1 Информационное взаимодействие между субъектами процесса
электронного обучения программированию в информационнокоммуникационной среде ...................................................................... 188
4.2 Особенности информационно-коммуникационной среды
электронного обучения программированию ....................................... 193
4.3 Виды учебной деятельности в информационно-коммуникационной
среде электронного обучения программированию ............................ 199
Заключение ............................................................................................. 205
ЛИТЕРАТУРА ........................................................................................ 207
ПРИЛОЖЕНИЕ ...................................................................................... 223
Жанат Кунапиановна Нурбекова
Теоретико-методологические основы обучения
программированию
Монография
Подписано в печать 22.08.2004.
Гарнитура Times.
Формат 29,7 х 42 ½ Бумага офсетная.
Усл.печ.л. 13,07 Тираж 500 экз.
Заказ № 0450
Научный издательский центр
Павлодарского государственного университета
им. С. Торайгырова
637000, г. Павлодар, ул. Ломова, 64
т.45-11-43
E-mail: publish @ psu.kz
Документ
Категория
Без категории
Просмотров
1
Размер файла
2 342 Кб
Теги
teoretiko, 277, osnovy, obuchenia, programmirovania, nurbekova, metodologicheskie
1/--страниц
Пожаловаться на содержимое документа