Вы находитесь на странице: 1из 22

Глава 1.

Основы логического программирования


на языке Пролог
1.1 История Пролог
Разработка языка PROLOG началась в 1970 г. Аланом Кулмероу и Фи-
липпом Русселом (Alan Coulmerauer and Philippe Roussel). Они хотели создать
язык, который мог бы делать логические заключения на основе заданного
текста. Название PROLOG является сокращением от “PROgramming in LO-
Gic”. Этот язык был разработан в Марселе (Франция) в 1972 г. Принцип резо-
люции Ковальского (Kowalski), сотрудника Эдинбургского университета, ка-
зался подходящей моделью, на основе которой можно было разработать меха-
низм логических выводов.
Первая реализация языка PROLOG с использованием компилятора Вир-
та (Wirth) ALGOL-W была закончена в 1972 г., а основы современного языка
были заложены в 1973 г.
В настоящее время существует несколько различных, но довольно похо-
жих между собой версий. Хотя стандарта языка PROLOG не существует, од-
нако версия, разработанная в Эдинбургском университете, стала наиболее
широко используемым вариантом. Недостаток разработок эффективных при-
ложений PROLOG сдерживал его распространение вплоть до 1980 г.
Пролог - язык, предназначенный для программирования приложений,
использующих средства и методы искусственного интеллекта и создания экс-
пертных систем. Причиной растущей популярности Пролога явилось требо-
вание создания средств, обеспечивающее "дружественный интерфейс" и ин-
теллектуальность программ. Пролог применяется при создании приложений
в следующих областях:
-разработка быстрых прототипов прикладных программ;
-управление производственными процессами;
-создание динамических реляционных баз данных;
-перевод с одного языка на другой;
- создание естественно-языковых интерфейсов для существующих си-

стем;
-реализация экспертных систем и оболочек экспертных систем;
-создание пакетов символьных вычислений для решения уравнений,
дифференцирования и интегрирования;
- доказательства теорем и пакеты искусственного интеллекта, в которых

возможности Пролога по обеспечению дедуктивного вывода применя-


ются для проверки различных теорий.
Изучению языка Пролог очень способствует предшествующее изучение
математической логики, понятийной системой которой он пользуется.
Программирование на Прологе включает в себя следующие этапы:
1) объявление фактов об объектах и отношениях между ними;
2) определение правил взаимосвязи объектов и отношений между ними;
3) формулировка вопроса об объектах и отношениях между ними.
1.2 Интерфейс системы Турбо-Пролог
Главное меню интегрированной среды системы включает в свой состав
следующие меню и команды:
 Меню File (Файл) содержит следующие команды управления файлами

программ на Прологе: Load (Загрузка файла), Pick (Загрузка файла),


New file (Создание файла), Save (Сохранение файла), Write to (Сохране-
ние файла с новым именем), Directory (Вывод текущего каталога),
Change dir (Смена каталога), OS Shell (Временный выход в среду DOS)
и Exit (Выход).
 Команда Edit (Правка) служит для переключения в режим редактирова-

ния исходного текста программы на Прологе.


 Команда Run (Выполнение) запускает процесс компиляции и выполне-

ния текущей исходной программы на языке Турбо-Пролог.


 Меню Compile (Компиляция) содержит следующие команды управле-

ния компиляцией: Memory (Компиляция программы с размещением в


оперативной памяти), OBJ file (Компиляция с созданием объектного
файла), EXE file (auto link) (Построение файла EXE), Project (Создание
файла проекта), Link only (Редактирование связей файла объектной про-
граммы OBJ), Link options (Параметры редактирования связей), EDIT
PRJ file (Правка файла проекта), Compiler directives (Директивы компи-
лятора).
 Option (Параметры) служит для применения параметров компиляции,

для задания опций компилятора.


 Меню Setup (Настройка) содержит следующие команды настройки си-

стемы: Colors (Цвета), Window Size (Размеры окон), Directories (Управ-


ление каталогами), Miscellaneous (Параметры внешних устройств),
Load SYS file (Загрузить файл SYS), Save SYS file (Сохранить файл
SYS).
Окно Турбо-Пролога содержит:

1 Line1 Col1 Indent Insert 2 Dialog


Здесь пишется текст для задания внешней цели и получе-
ния результатов работы программ
3 Message 4 Trace
Сообщение об успешности или Для отладки программы
неуспешности транслирования

1.3 Структура программы


Программа на Турбо-Прологе имеет следующую структуру:
constants /*определение констант*/
domains /*определение типов данных*/
database /*определение предикатов динамической базы данных*/
predicates /*определение предикатов*/
clauses /*определение правил и фактов*/
goal /*определение целей*/
В разделе constants объявляются используемые в программе констан-
ты.
В разделе domains объявляются нестандартные типы данных для пере-
менных, используемых в качестве аргументов предикатов. В Прологе типы
данных называют доменами. Связывание типа домена с конкретным аргумен-
том предиката осуществляется в секции predicates. Домен описывает множе-
ство значений, которые может принимать переменная предиката в ходе вы-
полнения программы.
Домены подразделяются на простые и структурированные, стандарт-
ные и нестандартные. К стандартным относятся:
symbol - символьная константа (длина не более 250 символов), имеет
две формы записи: последовательность букв, цифр и знаков подчеркивания,
начинающаяся со строчной буквы; последовательность символов, заключен-
ная в двойные кавычки. Примеры: apple, sort1, “personal0”, “Курсант Петров
С. В.”
string - строка символов: любая последовательность символов, заклю-
ченная в двойные кавычки.
сhar - отдельный символ, заключенный между двумя апострофами.
integer - целое число в диапазоне от -32768 до +32767.
real - действительное число, допускается обычная и экспоненциальная
формы записи. Значение экспоненты должно быть в диапазоне от Е-307 до
Е+308. Примеры: -34.567, 0.654, 9.76Е+3.
file - файловая переменная, значение ее определяется по правилам
именования файлов и устройств в MS-DOS. При выполнении операций с
файлом ее необходимо связать с конкретным файлом или устройством.
Раздел описания предикатов predicates содержит перечень предикатов
пользователя, используемых в программе. Описание предиката содержит имя
предиката и список доменов его аргументов. Один т тот же предикат может
иметь различное число аргументов, такие предикаты объявляются для каждо-
го варианта отдельно. В программе допускается использовать не более 300
предикатов, число аргументов у предиката не должно превышать 500.
В разделе database описываются предикаты динамической базы дан-
ных.
В разделе clauses описываются утверждения, каждое из которых яв-
ляется правилом или фактом. В конце каждого утверждения ставится точка.
Раздел goal содержит запрос к программе, называемый внутренним.
Для внутреннего запроса Пролог осуществляет поиск только первого подхо-
дящего решения. При этом система не сообщает о результатах найденного ре-
шения (успешное или нет). Полученные при сопоставлении значения пере-
менных, входящих в предикаты запроса также не отображаются на экране.
Эти действия должен запрограммировать программист с использованием
стандартных предикатов для вывода данных.
Раздел описания целей (goal) в компилируемой программе может отсут-
ствовать, тогда в диалоговом окне после запуска программы на выполнение
можно ввести внешний запрос. При использовании внешнего запроса Турбо-
Пролог отыскивает все варианты решений и в этом же окне выводятся значе-
ния переменных, предикатов запроса и сообщение об успешности или не
успешном решении.
1.4 Основы языка Турбо-Пролог
Язык Пролог является представителем семейства языков логического
программирования и в сравнении с традиционными языками программирова-
ния, предназначенными для записи алгоритмов, такими как Бейсик, Фортран,
Паскаль, Си, обладает существенными особенностями:
- Программа на Прологе не является алгоритмом, а представляет собой
запись условия задачи на языке формальной логики (т.е. это дескриптивный,
описательный язык программирования);
- Язык Пролог предназначен не для решения вычислительных или гра-
фических задач, а для решения логических задач, для моделирования процес-
са логического умозаключения человека; вычисления же и графические по-
строения выполняются в Прологе как побочный продукт логического вывода;
- Пролог требует особого стиля мышления программиста, что затрудня-
ет изучение его теми, кто уже привык к процедурному программированию,
поэтому, так называемые, практические программисты не стремятся перехо-
дить на этот язык, что мешает росту популярности Пролога; однако во мно-
гих странах (Японии, Англии, Франции, Германии, Израиле и т. д.) расширя-
ется практика применения Пролога в образовании как первого изучаемого
языка программирования; переход к процедурным языка типа Паскаля в этом
случае трудностей не вызывает.
Центральным понятием является отношение, которое тождественно по-
нятию предикат. Программа является совокупностью определений, отноше-
ний между объектами в терминах условий или ограничений и целью (запрос).
Процесс выполнения программы сводится к доказательству истинности
этих отношений. Язык приспособлен для проведения символических вычис-
лений. Пролог предназначен для программирования задач искусственного ин-
теллекта (создания экспертных систем, создания динамических баз данных в
бизнесе, в бухучете, в диагностических системах, системах баз знаний).
Пролог относится к декларированным языкам. Программа представляет
набор логических описаний, определяющих цель. Решение задач ищется
встроенными унификационными процедурами. Основой языка являются
объекты, логические предикаты и правила.
Предикат (от латинского predicatum – свойство отдельного предмета, от-
ношения).
Чтобы понять, что такое предикаты (факты), правила и цели в програм-
ме рассмотрим пример:
Любит Катя алгебру - это факт, который говорит, что Катя как субъект
обладает свойством (атрибутом) любить предмет алгебра. Отношение здесь
выражается глаголом любить, т.е. предикат любить связывает два объекта –
Катю и алгебру. На языке Turbo Prolog этот факт записывается в виде – любит
(Катя, алгебра), т.е. предикат(объект1,объект2). Запишем теперь выражение -
любит Леша то же, что и Катя. Это тоже высказывание, но оно уже не просто
факт, а правило, используя которое мы можем прийти к новому факту, о кото-
ром ничего не говорилось. Например, что Леша любит алгебру. Иначе это за-
писывается так:
любит Леша Нечто, если любит Катя Нечто. Слово Нечто можно заме-
нить на любой предмет. На языке Turbo Prolog это записывается так:
любит (Леша, Х):- любит(Катя, Х).
В общем эта структура записывается в виде:
Отношение (объект1,объект2) условие отношение(объект1, объект2).
Очевидно, что из этого правила нельзя вывести новые факты, если нет
первого факта. Для вывода нового факты слева необходимо проверить пред-
посылку отношения справа. Отношение справа называется допущением или
предпосылкой, а справа - логическим следствием или заключением. Объекты
с известными или постоянными значениями пишутся с маленькой буквы.
Слова, начинающиеся с заглавной буквы, являются переменными в языке.
Правило используется для вывода новых фактов. При этом Пролог сопостав-
ляет все доступные факты с любым правилом. Для запуска процесса поиска
решения необходимо сформулировать цель программы. Она записывается в
виде предикатной конструкции. Если цель является фактом, то проверяется
его истинность. Если цель содержит переменные, то выдаются либо те их
значения, которые приводят к решению, если оно имеется, либо выдается no
solutions. Цель может быть указана внутри в разделе goal- это будет внутрен-
няя цель, либо как внешняя - когда в тексте программы отсутствует раздел.
Цель может быть составной, например:
Любит (Некто, матан) и любит( Некто, алгебра), что записывается так:
Lubit(X, matan) , lubit(X, algebra).
Объект, представляющий другой объект или совокупность объектов, называ-
ется составным объектом. Для облегчения написания утверждений и преди-
катов Turbo Prolog позволяет объявлять составные объекты в разделе domains.
Пример программы:
domains /*раздел описания*/
student, subject=symbol /*student – студент, subject – предмет*/
predicates /*отношение, предикат */
lubit(student, subject) /*любит студент предмет */
clauses /*факты, правила */
lubit(Katya, algebra).
lubit(Sasha, geometriya).
lubit(Maks, programm). /* факты */
lubit(Genya, matan).
lubit(Katya, matan).
lubit(Vadim, X):-lubit(Maks, X). /*правило*/
Вопросы, беседа с программой:
Goal: lubit(Katya, matan)
Yes
Goal: lubit(Vadim, geometriya)
No
Goal: lubit(Katya, X)
X=algebra
X=matan
2 Solution /* 2 решения */
Goal: lubit(X, geometriya)
X=Sasha
1 solution
Goal: lubit(X,Y)
X=Katya, Y=algebra
X=Sasha, Y=geometriya
X=Maks, Y=programm
X=Genya, Y=matan
X=Katya, Y=matan
5 solution
1.5 Операторы вывода информации
Существуют 2 простых оператора вывода:
1. write («текст», А) Всегда работает, печатает текст, т.е. то, что находится

в скобках
2. writef (шаблон, список переменных)-форматированный вывод.

Допустим, мы хотим написать программу, которая ищет синонимы сло-


ва. Введем предикат synonym(word, syn). Тогда программа будет иметь вид:
domains
word, syn=symbol
predicates
synonym(word, syn)
goal
synonym(brave, X), write("Synonym for 'brave' is "), nl, write(" ' ",X, " ' ."), nl.
clauses
synonym(brave, darong).
synonym(brave, cowardless).

synonym for 'brave' is 'daring'


Внутренняя цель является составной и состоит из 5 подцелей. Syn-
onym(brave,X) - найти утверждение, использующее предикат synonym такое,
что первый объект в нем bravo и связать переменную Х с его вторым объек-
том. Второй подцелью является печать строки символов, третья подцель -
встроенный предикат nl - сдвигает курсор на начало новой строки. Список
аргументов write может быть смешанный, как в четвертой подцели, которая
печатает найденный синоним. В запросе может быть несколько переменных,
например, synonym (P,Q). Ответ будет P=bravo,Q=daring и т.д.
Для реализации арифметических операций в Турбо-Прологе имеются
встроенные предикаты операций:
+,-,*./,mod,div (деление нацело, получение остатка).
Определены все тригонометрические функции: cos(x), sin(x), tg(x), …. и ряд
других функций.
Пример:
аdd (integer, integer) – сложение 2 целых чисел
fadd (real, real) – сложение действительных числа
Predicates
Add(integer, integer)
Fadd(real, real)
Goal
Write(“Result is”), nl, add (44,23), fadd(1.23,3.56).
Clauses
Add(X,Y):- Z=X+Y,write(“Sum=”,Z), nl.
Fadd(P,Q):-R=P+Q,write (“Fsum=”,R),nl.

Result is
Sum=67
Fsum=4.79

Оттранслируем следующие утверждения в правила на Прологе:


- Всякий, кто имеет ребенка, счастлив (введем одноаргументное
отношение "счастлив").
- Всякий Х имеющий ребенка, у которого есть сестра, имеет 2-х детей
(введем новое отношение "иметь двух детей").
- Определим отношение "внук", используя отношение родитель.
- Определим отношение "тетя(X,Y)" через отношение Родитель и сестра.
PREDICATES
parent(STRING,STRING) /* Родитель */
child(string,string) /* Ребенок */
happy(string) /* Счастливый человек */
double(string) /* Человек, имеющий двоих детей */
man(string) /* Мужчина */
sister(string,string) /* Сестра */
grand(string,string) /* Внук */
aunt(string,string) /* Тетя */

/* Описанные предикаты реализуются следующим образом */


CLAUSES
sister(X,Z):- /* Сестра */
parent(Y,X), /* Родитель первого члена предиката такой же */
parent(Y,Z), /* как и у второго члена предиката */
not(man(Z)), /* Второй член предиката не мужчина */
X<>Z. /* Человек не может быть сам себе сестрой */

double(X):- /* Семьи, имеющие двоих детей */


parent(X,Y), /* Люди, у которых есть */
parent(X,Z), /* 2 ребенка,*/
sister(Y,Z), /* являющихся сестрами */
write(" Двух детей имеет ",X,". ").

happy(X):- /* Счастливые люди */


parent(X,_), /* Если у кого-то есть ребенок, то он счастлив */
write(" Счастлив: ",X,". ").

child(X,Y):- /* Ребенок */
parent(Y,X). /* Ребенок - это просто родитель наоборот */

grand(X,Y):- /* Внук */
parent(X,Z), /* Если родителем X является Z, */
parent(Z,Y), /* а родителем Z - Y, то X - внук Y */
write(" Внуком ",X," является ",Y,". ").

aunt(X,Y):- /* Тетя */
parent(Z,Y), /* Сестра родителя */
sister(Z,X), /* является тетей */
write(" Тетей ",Y," является ",X,". ").

parent(mary,bob).
parent(tom,bob). /* Определение */
parent(tom,liz). /* родственных */
parent(bob,ann). /* отношений */
parent(bob,pat).
parent(pat,jim).

man(bob).
man(tom). /* Мужчины */
man(jim).
man(pat).

Глава 2. Методика обучения основам


логического языка программирования Пролог
2.1. Место программирования в курсе информатики
С одной стороны, как любая другая учебная дисциплина, курс инфор-
матики дает учащимся очень важный в современных условиях блок знаний,
навыков и умений, которые многим выпускникам школ могут пригодиться в
жизни. То есть информатика в первом приближении выполняет такую же
роль, как, например, не только точные науки, но и биология, география и мно-
гие другие дисциплины, без овладения которыми трудно быть культурным
человеком и вообще полноценным членом общества.
С другой стороны, информатика (как школьная дисциплина) обладает
еще одним особым качеством и в силу этого выполняет еще одну роль. Вне
зависимости от того, какой багаж знаний она несет, она дает учащимся заме-
чательную возможность. Эта возможность заключается в том, что благодаря
информатике учащиеся разных возрастов, наряду с естественным взрослени-
ем и работой по освоению различных дисциплин, получают уникальную воз-
можность постепенно, поэтапно, соразмерно возрасту, развивать свои творче-
ские способности в целом и творческие способности в области точных наук
особенно. Иначе говоря, информатика является не только наукой или учебной
дисциплиной, но и средством развития личности, способностей детей, пробу-
ждает интеллектуальные задатки освоения других дисциплин, т. е. обслужи-
вает весь процесс развития личности и овладения смежными дисциплинами,
помогает и школьнику, и учителям.
Изучая программирование, ученики лучше понимают сущность работы
компьютеров, их возможности и границы их применения. Написав однажды
свои собственные (пусть даже незамысловатые, но работающие) программы,
ученики обнаруживают, что компьютеры совсем не похожи на волшебные
всемогущие машины, описанные в научно-фантастических рассказах. К де-
тям приходит понимание того, что компьютер является инструментом, кото-
рым должны управлять люди. Только немногие школьники станут профессио-
нальными программистами, или будут иногда программировать на работе,
или сделают программирование своим хобби, но все выиграют от того, что
постигли природу программирования и поняли, что значит создавать соб-
ственные программы.
Программирование помогает школьникам прочувствовать на собствен-
ном опыте (в интеллектуальной игре, осуществляемой по особым правилам)
и пройти все основные этапы формализованного решения некоей творческой,
точно сформулированной задачи. Это дает необычайно сильный толчок для
развития интеллекта в целом и одновременно придает благоприятную эмоци-
ональную окраску работе. Всем учащимся, без исключения, это помогает раз-
вивать навыки мышления и решения задач, а также выработать привычку ак-
куратной и систематической работы, а одаренным детям (прежде всего в об-
ласти точных наук) еще и дает так необходимую пищу для размышлений, по-
исков, раскрепощения скрытых способностей. Формируемое при этом алго-
ритмическое мышление ценно само по себе. Методы, которые дети освоят на
уроках программирования, обязательно будут использоваться позднее при ре-
шении самых различных «взрослых» жизненных и профессиональных задач.
Возможно, это проявится неосознанно и через много лет после окончания
школьного курса информатики, однако и ради этого стоит учить програм-
мированию.
Как правило, ученикам нравится управлять работой компьютера при
помощи собственных программ. Программирование для некоторых детей ста-
новится любимым занятием как в школе, так и дома.
На начальном этапе программирование было операциональным и (од-
новременно) процедурным (например, язык Фортран, исходные версии языка
Бейсика), а уже в усовершенствованном виде – структурным (классический
пример – Паскаль).
Наибольший опыт преподавания программирования в школе накоплен
в отношении, прежде всего, языков типа Бейсик и Паскаль. В конце 1980-х
годов появились курсы, ориентированные на изучение основ математической
логики и логического программирования, с середины 1990-х годов – объект-
но-ориентированного программирования.
2.2. Анализ книг в соответствии с государственным стандартом
Согласно государственному стандарту курсу информатике отводится
105 часов в основной школе и в среднем (полном) общем образовании 280 ча-
сов. Разделу программирование отводится 22 часа (6 часов на алгоритмиче-
ские языки и 16 часов на практику программирования) в среднем (полном)
общем образовании (профильный уровень).
Проанализировав учебники по информатике Угриновича Н. Д., Макаро-
вой Н. В., Гейна А. Г. и Семакина И. Г. пришли к выводу, что только в учебни-
ке Семакина И. Г. за 7 – 9 классы дается логический язык программирования
Пролог. В остальных учебниках этот раздел отсутствует.
В учебнике «Информатика. Базовый курс» под редакцией Семакина И.
Г. для 7 – 9 классов рассмотрены вопросы:
∼ Понятия искусственного интеллекта и базы знаний
∼ Язык логического программирования Пролог
∼ Основные понятия Пролога: факты, правило, цель. Синтаксис Пролога
∼ Создание простейших баз знаний на Прологе (в среде Turbo Prolog) и
формирование целей к ним
∼ Конъюнкция и дизъюнкция в Прологе
∼ Использование конъюнкции и дизъюнкции в Прологе при решении кон-
кретных задач.
Но этот учебник рассчитан только для базового курса.

2.3. Тематическое планирование


курса «Язык программирования Пролог»
Логическое программирование в качестве объекта изучения пришло в
нашу школу гораздо раньше объектного. В период с 1987 по 1995 г. С. Г. Гри-
горьевым, Е. А. Ерохиной, В. А. Кайминым, Н. Д. Угриновичем, А. Г. Щего-
левым и другими авторами были разработаны многочисленные методические
материалы по логическому программированию. Тем не менее специального
пособия по организации курса логического программирования, продолжаю-
щего базовый курс информатики, пока не существует.
Способ изучения Пролога в форме профильного курса в определенной
мере зависит от того, были ли прежде учащиеся знакомы с элементами Про-
лога в ходе изучения базового курса. Если ответ положителен, то учащиеся
знакомы в общих чертах с элементами логики и схемой Пролог-программы,
понятием баз знаний. В любом случае курс должен содержать большую часть
тем, составляющих язык Пролог, но методика их изучения должна учитывать
вышесказанное обстоятельство.
Курс «Язык программирования Пролог» рассчитан на 24 часа. Данный
курс может быть реализован в классах с углубленным изучением информати-
ки (10 класс), в классах физико-математического профиля или в виде электив-
ного курса в 9-10 классах.
Основное учебное пособие по курсу «Язык программирования Пролог»
выстроено в виде лекций. Каждое практическое занятие подкрепляет изуче-
ние материала соответствующей лекцией (за немногими исключениями чисто
теоретических тем).
Требования к знаниям и умениям учащихся:
Учащиеся должны знать:
- состав базы знаний Пролога;
- как в Прологе представляются факты и правила;
- как в Прологе формулируются запросы (цели).
Учащиеся должны уметь:
- построить базу знаний на Прологе для простой предметной области
(типа родственных связей);
- сформулировать на Прологе запросы к данной базе знаний;
- работать на компьютере в среде системы программирования Пролог.
Приведем примерный тематический план изучения языка Турбо-Про-
лог:
Кол-во
Тема учебного занятия часов
(теория/практика)
1. Введение в Пролог 2
2. Факты. Предикатная форма представления фактов.
2
Базы данных. Простые запросы
3. Составные запросы. Правила. Базы знаний Пролога 2
4. Термы Пролога (данные): константы, переменные, со-
2
ставные термы (структуры). Встроенные предикаты
5. Решение логических задач на Прологе 4
6. Операторы сравнения. Арифметические операторы, вы-
3
ражения
7. Структуры данных: списки. Основные предикаты рабо-
4
ты со списками. Решение задач с помощью списков
8. Структуры данных: бинарные деревья. Основные пре-
4
дикаты. Решение задач с помощью бинарных деревьев
9. Контрольная работа 1
Всего: 24
Все конспекты уроков для изучения данного курса расположены в при-
ложении.
2.4. Формы, методы и средства обучения
Основной формой организации учебно-воспитательной работы с уча-
щимися по всем предметам в средней школе является урок. Школьный урок
образует основу классно-урочной системы обучения, характерными призна-
ками которой являются:
• постоянный состав учебных групп учащихся;
• строгое определение содержания обучения в каждом классе;
• определенное расписание учебных занятий;
• сочетание индивидуальной и коллективной форм работы учащихся;
• ведущая роль учителя;
• систематическая проверка и оценка знаний учащихся.
Классно-урочная система организации учебного процесса является
основой структурной организации отечественной школы на протяжении по-
чти всей истории ее существования. Как показывает весь (пока незначитель-
ный) опыт, который накопила наша школа после введения курса ИОВТ, пре-
подавание основ информатики, без сомнения, наследует все дидактическое
богатство отечественной школы – урочную систему, домашние задания, лабо-
раторную форму занятий, контрольные работы и т. п. все это приемлемо и на
уроках информатики.
Классификацию типов уроков (или фрагментов уроков) можно прово-
дить, используя различные критерии. Главный признак – это его дидактиче-
ская цель, показывающая, к чему должен стремиться учитель. Исходя из это-
го признака, в дидактике выделяются следующие виды уроков:
1) уроки сообщения новой информации (урок-объяснение);
2) уроки развития и закрепления умений и навыков (тренировочные
уроки);
3) уроки проверки знаний, умений и навыков.
В большинстве случаев учитель имеет дело не с одной из названных
дидактических целей, а с несколькими (и даже со всеми сразу), поэтому на
практике широко распространены так называемые комбинированные уроки.
Комбинированный урок может иметь разнообразную структуру и обладать в
связи с этим рядом достоинств: обеспечивая многократную смену видов дея-
тельности, они создают условия для быстрого применения новых знаний,
обеспечивают обратную связь и управление педагогическим процессом, на-
копление отметок, возможность реализации индивидуального подхода в обу-
чении.
При преподавании курса «Язык программирования Пролог» основной
формой организации учебно-воспитательной работы с учащимися нами вы-
бран урок. Здесь могут быть использованы все виды уроков: уроки сообще-
ния новой информации (в виде лекций), уроки развития и закрепления уме-
ний и навыков (практические занятия), уроки проверки знаний, умений и на-
выков (контрольная работа).
В дидактике и частных методиках существуют различные классифика-
ции методов обучения, зависящие от того, какой существенный признак поло-
жен в основу классификации.
Наиболее принятой в настоящее время в дидактике является классифи-
кация методов по характеру познавательной деятельности, которую органи-
зует учитель и осуществляют учащиеся в учебном процессе, предложенная
И. Я. Лернером. При этом выделяются пять методов обучения:
1) объяснительно-иллюстративный;
2) репродуктивный;
3) проблемное изложение;
4) частично-поисковый (эвристический);
5) исследовательский.
Следует иметь в виду, что различение методов не означает, что в реаль-
ном процессе обучения эти методы отделены друг от друга; напротив, методы
обучения реализуются в сочетании друг с другом. Даже деление методов на
продуктивные и репродуктивные весьма относительно. В самом деле, любой
акт творческой деятельности невозможен без деятельности репродуктивной.
Решая любую проблему, ученик мысленно воспроизводит уже известные ему
знания. Вместе с тем и акт воспроизведения может содержать элементы твор-
чества, если учитель предложит школьнику изменить цель или логику изло-
жения.
Объяснительно-иллюстративный метод обучения (или информацион-
но-рецептивный, как его иногда называют) заключается в том, что учитель
передает учащимся готовую информацию с помощью различных средств обу-
чения, а учащиеся воспринимают, осознают и фиксируют в памяти эту ин-
формацию. Роль учителя заключается в организации восприятия информации
или же способов деятельности (например, по решению задач). Если же уче-
ник воспринял и понял сообщенную ему информацию или способ действия и
сумел связать их со своими собственными знаниями и представлениями, то
можно говорить об определенной степени усвоения.
Сообщение информации учитель осуществляет с помощью устного
слова (рассказ, лекция, объяснение), печатного слова (учебник, хрестоматия,
справочник и т. д.), наглядных средств обучения (демонстрации, кино-, ви-
део-, диафильмы, схемы и таблицы и т. д.), практического показа способов
деятельности (проведение лабораторной работы, решение задачи, составле-
ние плана к ответу и пр.).
Репродуктивный метод обучения используется для формирования уме-
ний и навыков школьников и способствует воспроизведению знаний и их
применению по образцу или в несколько измененных, но опознаваемых ситу-
ациях. Учитель с помощью системы заданий организует деятельность школь-
ников по неоднократному воспроизведению сообщенных им знаний или по-
казанных способов деятельности.
Учитель пользуется устным и печатным словом, наглядными средства-
ми обучения, а учащиеся используют те же средства для выполнения заданий,
имея образец, сообщенный или показанный учителем.
Репродуктивный метод проявляется при устном воспроизведении сооб-
щенных школьникам знаний, в репродуктивной беседе, при решении физиче-
ских задач. Репродуктивный метод используется и при организации лабора-
торных и практических работ, выполнение которых предполагает наличие до-
статочно подробных инструкций.
В процессе обучения в основной школе репродуктивный метод, как
правило, используется в сочетании с объяснительно-иллюстративным. В
течение одного урока учитель может объяснить новый материал, используя
объяснительно-иллюстративный метод, закрепить вновь изученный материал,
организуя репродукцию его, может вновь продолжить объяснение и т. д.
Подобная смена методов обучения способствует смене видов деятельности
школьников, делает урок более динамичным и повышает тем самым интерес
школьников к изучаемому материалу.
Сущность метода проблемного изложения учебного материала заклю-
чается в том, что учитель не только организует передачу информации, но и
знакомит учащихся с процессом поиска решения той или иной проблемы, по-
казывает движение мысли от одного этапа познания к другому, иллюстрирует
логику этого движения, возникающие противоречия. Иначе говоря, учитель
ставит проблему, сам ее решает, т. е. показывает образцы научного познания,
а учащиеся контролируют убедительность и логику этого процесса, усваива-
ют этапы решения проблем.
При проблемном изложении учебного материала учитель использует
устное слово, печатные тексты (учебника или других источников, например,
хрестоматии), демонстрационные или фронтальные опыты и другие необхо-
димые средства обучения. Роль этих средств зависит от того, какая с их помо-
щью организуется познавательная деятельность учащихся.
Эвристический (или частично-поисковый) метод – это метод, при кото-
ром учитель организует участие школьников в выполнении отдельных шагов
поиска решения проблемы. Роль учителя состоит в конструировании задания,
разбиении его на отдельные этапы, определении тех этапов, которые выпол-
няют школьники самостоятельно, т. е. учитель тем или иным способом орга-
низует самостоятельную познавательную деятельность учащихся. В одних
случаях школьников учат видеть проблемы, в других – строить доказатель-
ство, в третьих – делать выводы из изложенных или продемонстрированных
фактов, в четвертых – высказать гипотезы, в пятых – составлять план про-
верки высказанного предположения и т. д. Иначе говоря, организуется поэле-
ментное усвоение опыта творческой деятельности, овладение отдельными
этапами решения проблемных задач.
Сущность исследовательского метода заключается в организации учи-
телем поисковой, творческой деятельности учащихся для решения новых
проблем и проблемных задач. Назначение данного метода – полноценное
усвоение школьниками опыта творческой деятельности.
С помощью исследовательского метода организуется творческое усвое-
ние знаний, т. е. этот метод учит школьников применять известные им знания
для решения проблемных задач и добывания новых знаний в результате тако-
го решения. Кроме того, он обеспечивает овладение методами научного по-
знания в процессе деятельности по поиску этих методов. Очевидно, что ис-
следовательский метод является условием формирования интереса, потребно-
сти в самостоятельной, творческой деятельности у учащихся.
Характер заданий при исследовательском методе может быть самым
разным: классные лабораторные работы и домашние практические задания;
решение аналитических проблем; задания кратковременные и предполагаю-
щие необходимым определенный срок (неделю, месяц); задания групповые и
индивидуальные и т. д.
При преподавании курса «Язык программирования Пролог» нами вы-
бран объяснительно-иллюстративный метод, т. е. сообщение информации
учитель осуществляет с помощью рассказа, лекции, объяснения, будут ис-
пользованы специальная литература по данной теме, опорные конспекты,
справочники. Для организации лабораторных и практических работ выбран
репродуктивный метод.
В систему средств обучения информатике входит:
 программно-методическое обеспечение курса информатики, включающее
как программные средства для поддержки преподавания, так и инструмен-
тальные программные средства (ИПС), обеспечивающие учителю возмож-
ность управления учебным процессом, автоматизацию контроля учебной
деятельности, разработки программных средств (или их фрагментов) учеб-
ного назначения для конкретных педагогических целей;
 объектно-ориентрованные программные системы, обеспечивающие фор-
мирование культуры учебной деятельности, в основе которых лежит опре-
деленная модель объектного мира пользователя (например, текстовый ре-
дактор, база данных, электронные таблицы, различные графические систе-
мы);
 учебное, демонстрационное оборудование, сопрягаемое с ПЭВМ (имеются
в виду средства обучения, функционирующие на базе информационных
технологий, компенсирующие или амортизирующие отсутствие предмет-
ной среды и обеспечивающие предметность деятельности, ее практиче-
скую направленность, например, учебные роботы, управляемые ЭВМ;
электронные конструкторы; модели для демонстрации принципов работы
ЭВМ, ее частей, устройств);
 средства телекоммуникаций, обеспечивающие доступность информации
для обучаемых, вовлеченность их в учебное взаимодействие, богатое ин-
теллектуальными возможностями и разнообразием видов использования
ресурсов Всемирной информационной сети.
При преподавании курса «Язык программирования Пролог» будут ис-
пользованы такие средства обучения, как компьютер, сама среда програм-
мирования Турбо-Пролог, раздаточные материалы (для знакомства с данной
средой программирования), учебник.

Вам также может понравиться