Автоматизация процесса обучения иностранному языку:...

148
Горожанов Алексей Иванович Автоматизация процесса обучения иностранному языку: от элементарных программ для ЭВМ до электронных учебников Научное издание Краснодар 2013

Transcript of Автоматизация процесса обучения иностранному языку:...

1

Горожанов Алексей Иванович

Автоматизация процесса обучения иностранному языку:

от элементарных программ для ЭВМ

до электронных учебников

Научное издание

Краснодар

2013

2

УДК 372.881.1

ББК 74.00

Г 67

Рецензенты:

Бекузарова Н.В., кандидат педагогических наук, доцент, Сибирский федеральный университет,

Красноярск

Теряева Т.Н., доктор технических наук, профессор, Кузбасский государственный технический

университет им. Т.Ф. Горбачева, Кемерово

Горожанов Алексей Иванович

Г 67

Автоматизация процесса обучения иностранному языку:

от элементарных программ для ЭВМ до электронных учебников:

Монография / А.И. Горожанов – Краснодар, 2013. – 148 с.

ISBN 978-5-905897-40-5 (1 CD-ROM)

Настоящая книга посвящена процессам автоматизации обучения ино-

странному языку и является результатом пятилетнего практического опыта ав-

тора в этой области. Издание предназначено, в первую очередь, для преподава-

телей иностранного языка. В первом разделе приводится краткий исторический

обзор развития компьютерной техники. Следующий, методический, раздел по-

священ обзору различных классификаций упражнений по иностранному языку.

Далее проводится тщательный анализ современных языков программирования,

которые позже будут служить инструментами создания элементарных про-

грамм для ЭВМ учебного назначения. В разделе, посвященном электронным

учебникам и учебным пособиям, приводится авторское определение электрон-

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

рекомендуется опираться составителям подобных материалов. В завершении

следует Приложение с кодом всех программ для ЭВМ, которые рассматрива-

лись выше. Для удобства читателей файлы программ размещены на Интернет-

сайте поддержки книги по адресу https://sites.google.com/site/deegraa.

ББК 74.00

УДК 372.881.1

ISBN 978-5-905897-40-5 (1 CD-ROM) © Горожанов А.И., 2013

3

Оглавление

Предисловие ............................................................................................................ 4

Развитие компьютерной техники и первые попытки ее применения

в сфере образования (исторический обзор) ...................................................... 6

Классификации упражнений по иностранному языку:

отечественный и зарубежный опыт ................................................................. 25

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

элементарных программ для ЭВМ учебного назначения ........................... 49

Принципы создания простых электронных упражнений

по иностранному языку ..................................................................................... 58

Комплексные электронные упражнения по иностранному языку

как комбинация элементарных составляющих .......................................... 101

Электронные учебники и учебные пособия

по иностранному языку: опыт создания и применения ............................ 112

Программы для ЭВМ учебного назначения

для решения частных задач ............................................................................. 126

Литература .......................................................................................................... 134

Приложение. Код рассматриваемых программ ........................................... 147

4

Предисловие

Настоящая книга посвящена процессам автоматизации обучения ино-

странному языку и является результатом пятилетнего практического опыта ав-

тора в этой области.

В основной части книги приводится краткий исторический обзор развития

компьютерной техники, начиная со «Считающих весов» Вильгельма Шикхарда

и заканчивая современными компьютерами. Цель исторического раздела – по-

казать достижения выдающихся ученых и подвести читателя к 60-м гг. XX в.,

когда компьютеры впервые были применены в сфере образования, в частности

для обучения иностранному языку.

Следующий, методический, раздел посвящен обзору различных классифи-

каций упражнений по иностранному языку. Рассмотрены отечественные, за-

падноевропейские и американские разработки. Это необходимо для создания

собственной типологии упражнений, в основе которой лежат технические па-

раметры, учитываемые при создании электронных учебных материалов.

Далее проводится тщательный анализ современных языков программиро-

вания, которые будут служить инструментами создания элементарных про-

грамм для ЭВМ учебного назначения. Этот термин также выдвигается и объяс-

няется автором и является основополагающим в данной работе. Согласно

принципу «от простого к сложному» анализ компьютерных программ начина-

ется с самых простых вариантов. Каждая программа представляет собой типо-

вое электронное упражнение, причем его реализация показана одновременно

на двух языках программирования: JavaScript и Python, что позволяет читате-

лю выбрать для своей практической работы наиболее подходящий из двух ин-

струментов.

За построением простых упражнений следует реализация комплексных уп-

ражнений, представляющих собой цепочки разнотипных заданий. Это наиболее

5

интересные программы, требующие от составителя творческого подхода и

стратегического мышления.

В разделе, посвященном электронным учебникам и учебным пособиям,

приводится авторское определение электронного учебника, а также формули-

руются универсальные принципы, на которые рекомендуется опираться соста-

вителям подобных материалов.

В последнем разделе основной части книги приводится пример элементар-

ной программы для ЭВМ учебного назначения для самостоятельной работы с

активным вокабуляром. Пример призван стимулировать читателя на создания

компьютерных программ, направленных на решение частных образовательных

задач.

Далее следует Приложение с кодом всех программ для ЭВМ, которые рас-

сматриваются в основной части работы (Для удобства файлы программ разме-

щены на Интернет-сайте поддержки книги по адресу https://sites.google.com/

site/deegraa/). Роль Приложения нельзя недооценивать, т.к. без него все описан-

ное в основной части останется всего лишь теоретическими выкладками и на-

бором непонятных символов.

Автор надеется, что читатель, знакомясь с содержанием книги, захочет по-

пробовать создать и применить на практике свои собственные компьютерные

программы, и Приложение послужит ему в этом хорошим подспорьем, а в спи-

ске литературы он найдет необходимые для этого источники.

Автор

6

Развитие компьютерной техники

и первые попытки ее применения в сфере образования

(исторический обзор)

Историю компьютерной техники можно начать с тех времен, когда древ-

ние люди научились считать, т.е. заложили основы математики. Как и любое

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

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

личных стран и эпох.

В 1623 г. немецкий математик и астроном, профессор Тюбингенского уни-

верситета Вильгельм Шиккард изготовил «Считающие весы» – шестиразрядное

механическое вычислительное устройство, которое могло складывать и вычи-

тать числа. Устройство представляло собой соединение зубчатых передач, в

специальных окошках появлялись цифры результата операций [31].

В 1643 г. появляется суммирующая машина французского ученого Блеза

Паскаля, предназначенная для сложения с помощью разрядных колес, разде-

ленных на 10 секторов. Машина Паскаля автоматически переносила единицы в

следующий разряд при полном повороте колеса предыдущего разряда, макси-

мальное число колес равнялось восьми. «Паскалина» предназначалась прежде

всего для выполнения сложения, но при необходимой сноровке оператора была

способна на все четыре арифметических действия [26].

В 1673 г. немецкий ученый-энциклопедист Готфрид Вильгельм Лейбниц

построил механический калькулятор (арифмометр), который наряду с четырь-

мя арифметическими действиями был способен также извлекать квадратный

корень и возводить в степень. В калькуляторе Лейбниц применил двоичную

систему счисления, предвосхитив развитие современной компьютерной тех-

ники [18].

В 1808 г. французский изобретатель Жозеф Мари Жаккард изготавливает

автоматический ткацкий станок. Станок Жаккарда был первым устройством с

7

программным управлением. В нем использовались перфокарты с двоичным ко-

дом (есть отверстие / нет отверстия), согласно которым машина автоматически

производила ткань с тем или иным рисунком [99, с. 3].

Принцип перфокарт Жаккарда был использован английским математиком

Чарльзом Бэббиджем при проектировании в 1843 г. аналитической машины,

которая имела память (на 1000 компьютерных слов из 50 символов), устройст-

во управления (посредством перфокарт) и механизм, производящий математи-

ческие расчеты. Также Бэббидж планировал создать устройство, позволяющее

сохранять результаты операций на перфокартах и устройство вывода на пе-

чать. Несмотря на то, что при жизни ученого работа над аналитической маши-

ной не была завершена, модель Бэббиджа считается прообразом ЭВМ, а сам

математик – одним из отцов современного компьютера [96, с. 2].

Также в 1843 г. английский математик Ада Лавлейс составила три первые

в мире вычислительные программы для проектируемой аналитической машины

Бэббиджа. А. Лавлейс впервые использовала понятия рабочей переменной,

цикла и вложенного цикла, что позволяет по праву назвать ее первым в мире

программистом [99, с. 4]. Также она высказала предположение, что область

применения таких машин не ограничится математическими расчетами, но рас-

пространится на создание музыки и графики [38].

В 1854 г. английский математик Джордж Буль создает булеву алгеб-

ру – систему логики, в которой каждая переменная может принимать одно из

двух значений: «истина» (1) или «ложь» (0). С булевой алгеброй стало воз-

можно манипулировать высказываниями-утверждениями с помощью матема-

тических операций как с числами. Сегодня этот подход используется при

разработке алгоритмов и для структурно-функционального описания, анали-

за и синтеза электронных схем [99, с. 3].

В 1890 г. американский изобретатель Герман Холлерит заканчивает произ-

водство и приступает к испытаниям машины, которая впоследствии будет на-

звана табулятором Холлерита. Табулятор успешно справился со сложной прак-

8

тической задачей – обработкой анкет переписи населения США. Предваритель-

но анкеты переводились на перфокарты, а затем, используя иголки, замыкав-

шие электрическую цепь, табулятор производил статистические расчеты. Таким

образом удалось провести полный статистический анализ более 62 млн анкет

всего за два с половиной года, а предварительные результаты получить уже че-

рез шесть недель. Впоследствии Г. Холлерит организовывает компанию, из-

вестную сегодня как IBM [100, с. 490].

В 1936 г. английский математик Алан Мэтисон Тьюринг предложил мо-

дель вычислений, в которой каждый алгоритм разбивался на последова-

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

цией, названной впоследствии машиной Тьюринга. Он показал, что можно по-

строить универсальную машину, способную работать так же, как любая про-

стая машина Тьюринга, если в нее ввести описание этой простой машины. То

есть фактически функцию вычислительной машины определяло не ее устройст-

во, а то, какая программа будет в нее введена [1]. Позднее, в 1950 г.,

А. Тьюринг опубликовал статью «Может ли машина мыслить?», в которой рас-

суждал о возможностях создания искусственного интеллекта [27].

В 1941 г. немецкий изобретатель Конрад Цузе патентует в Берлине вычис-

лительную машину Z3, первый полнофункциональный программно управляе-

мый и свободно программируемый в двоичном коде с плавающей точкой рабо-

чий компьютер. Z3 выполняла четыре арифметических действия и извлекала

квадратный корень. Она работала с помощью электромеханических реле и при-

водилась в действие электромотором. Машина Цузе имела процессор, клавиа-

туру для ввода данных, устройство вывода (панель с лампочками), устройство

для чтения перфокарт и механическую память для хранения 64 22-битовых ве-

щественных числа. Машина производила одно умножение за 16 циклов вычис-

лений, тратя на это около трех секунд. Также Цузе разработал первый в мире

высокоуровневый язык программирования Планкалкюль (нем. Plankalkül) [93].

9

В 1942 г., абсолютно независимо от изобретений К. Цузе, американские

исследователи Джон Винсент Атанасов и Клиффорд Эдвард Берри протестиро-

вали первый в мире электронный цифровой компьютер ABC (Atanasoff-Berry

Computer). ABC был непрограммируемый и предназначался только для реше-

ния линейных уравнений. Революционным в конструкции ABC была идея хра-

нения разрядов двоичных чисел при помощи конденсаторов (есть заряд / нет

заряда), а чтоб конденсаторы не теряли свой заряд, они периодически переза-

ряжались. Также Дж. Атанасов впервые применил в компьютере электронные

лампы [42].

В 1943 г. американский инженер Говард Хатауэй Эйкен при поддержке

фирмы IBM и руководствуясь разработками Ч. Бэббиджа, создает программи-

руемый электромеханический компьютер IBM Mark-I – автоматический вычис-

литель, управляемый последовательностями. Компьютер считывал инструкции,

записанные на длинной перфорированной ленте, работая над программой авто-

матически, без вмешательства человека. За одну секунду Mark-I мог произвести

три операции сложения или вычитания, умножение или деление требовали око-

ло шести секунд. Результат выводился на бумагу посредством электрической

пишущей машинки [99, с. 5].

В 1946 г. американские ученые Джон Преспер Экерт и Джон Уильям Мок-

ли завершили сборку электронного цифрового интегратора и вычислителя

ENIAC (англ. Electronic Numerical Integrator and Computer). Компьютер весил 27

тонн и содержал более 17 тыс. вакуумных ламп. Размеры и сложность устрой-

ства оправдывались скоростью и точностью работы: сложение выполнялось за

0,2 мс, а умножение – за 2,8 мс, извлечение квадратного корня требовало более

300 мс. Однако компьютер имел небольшой объем памяти (20 слов) и програм-

мировался только вручную, путем перекоммутирования кабелями, что занима-

ло огромное количество времени. В ENIAC использовалась десятичная система

исчисления [73]. Позднее, при поддержке математика Джона фон Неймана,

группой Дж. Экерта и Дж. Мокли был разработан электронный дискретный пе-

10

ременный компьютер EDVAC (англ. Electronic Discrete Variable Automatic

Computer), использующий двоичную систему исчисления, что позволило сни-

зить количество вакуумных ламп до 6000. Внутренняя память компьютера

(расширенная по сравнению с ENIAC) уже содержала не только данные, но и

программу [72].

Первой в мире серийной ЭВМ для коммерческого использования считает-

ся компьютер UNIVAC (англ. UNIVersal Automatic Computer), произведенный

под руководством Дж. Экерта и Дж. Мокли в количестве 46 экземпляров (начи-

ная с 1951 г.) компанией Ремингтон Рэнд. Машина была ориентирована на ре-

шение практических задач (например для обработки данных переписи населе-

ния и социологических опросов), поэтому удобство пользования занимало важ-

ное место в списке предъявляемых к ней требований. UNIVAC имела консоль

оператора с клавишами, за которой можно было сидеть как за столом. К маши-

не можно было подключить осциллограф, электрическую печатную машинку и

до 10 накопителей на пластиковых лентах, имеющих восемь дорожек для запи-

си [John W. Mauchly UNIVAC]. UNIVAC зарекомендовала себя как надежная и

точная. Экземпляр № 5, установленный в Ливерморской лаборатории США, за

четыре года работы использовался в 184 проектах и за 19130 часов эксплуата-

ции выполнил столько расчетов, сколько бы смогли сделать 440 человек за 100

лет безошибочной работы [79].

Несмотря на высокую стоимость несколько UNIVAC были приобретены

университетами США (в том числе Гарвардом и Нью-Йоркским университетом

[113; 46, с. 28]). С этого момента можно говорить собственно об истории ком-

пьютерной техники в образовании.

Следует подчеркнуть, что главной причиной изобретения компьютера, на-

чиная с самых первых механических устройств, наряду со стремлением вы-

дающихся личностей к открытию нового, было желание избавить человека от

необходимости долгих и утомительных вычислений, которые приходилось

11

производить вручную и которые отнимали много времени, т.е. другими слова-

ми – избавить себя от рутины и оставить время для созидательного творчества.

Компьютеры первой половины XX в., включая UNIVAC, были еще пока

очень громоздки и дороги, чтобы получить массовое распространение и быть

понятными. Их обслуживание требовало большого штата специалистов и ог-

ромного объема специальных знаний, например, ENIAC невозможно было за-

программировать, не зная архитектуры машины и не владея обширными мате-

матическими знаниями [48].

Дальнейшее развитие вычислительной техники пойдет по пути уменьше-

ния размера машин, их удешевления и создания интерфейсов, призванных быть

понятными без специальной долговременной подготовки. Не последнюю роль с

этом сыграла и коммерческая составляющая.

В 1947 г. американские исследователи Уильям Шокли, Джон Бардин и

Уолтер Браттейн демонстрируют первый транзистор – устройство заменившее

в последствии вакуумные лампы [115]. Транзисторы проводили электричество

более эффективно, потребляли меньше электроэнергии, занимали меньше места

и не перегревались, их срок службы измерялся десятками лет [99, с. 10].

Еще одним крупнейшим шагом в развитии вычислительной техники бы-

ло появление в 1960 г. работоспособной интегральной схемы, которое стало

возможным благодаря открытиям нескольких ученых (Вернера Якоби,

Джеффри Даммера, Джека Килби, Курта Леговица и Роберта Нойса и др.)

[87; 44; 46, с. 179].

Следующим шагом было изобретение микропроцессора, изготовленного в

1971 г. в компании Intel Тэдом Хоффом, Федерико Фаггином и Гарри Буном

[46, с. 218]. Компьютер Altair 8800 с процессором Intel 8080, представленный

широкой публике в 1975 г. и разработанный группой инженеров под руково-

дством Эда Робертса, можно назвать настоящим персональным компьютером,

который стоил 400 $ (набор деталей без сборки). У компьютера не было ни

дисплея, ни клавиатуры. Программы нужно было вводить с помощью тумбле-

12

ров, а считывать результат с помощью лампочек. Несмотря на спартанский ди-

зайн Altair 8800 пользовался оглушительным успехом, в том числе и по той

причине, что Эд Робертс открыто опубликовал все параметры компьютера. Это

позволило другим компаниям разрабатывать и продавать дополнительные мо-

дули, которые расширяли возможности машины (включая возможности под-

соединения монитора и клавиатуры). Студенты Гарварда Билл Гейтс, Пол Ал-

лен и Монте Давыдофф разработали для Altair 8800 интерпретатор языка

BASIC [46, с. 233].

В 1977 г. Стив Джобс и Стив Возняк выпускают на рынок персональный

компьютер Apple II, представленный в мире более пяти миллионами экземпля-

ров и ставший настоящим массовым домашним и деловым персональным ком-

пьютером. Apple II имел встроенный язык программирования BASIC и элек-

тронные таблицы VisiCalc для деловых расчетов. Для загрузки внешней инфор-

мации к компьютеру подключались 5,25-дюймовые дисководы. Также Apple II

проигрывал звук и выводил на дисплей графическую информацию [104].

Выпущенный в 1984 г. компанией Apple Macintosh стал первым персо-

нальным компьютером, использующим графический интерфейс пользователя, а

не интерфейс командной строки. Для удобного управления графическим ин-

терфейсом Macintosh имел мышь [96, с. 4].

Переход к графическому интерфейсу – важное нововведение, которое сде-

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

большинство обучающих программ.

Таким образом, можно констатировать, что в 80-е гг. XX в. человечество

получило массовый удобный мультимедийный персональный компьютер, ко-

торый мог быстро оперировать огромными объемами информации. С появле-

нием сетей, в первую очередь Интернета, и удобных браузеров компьютер стал

средством коммуникации и доступа к базам данных, включая университетские

библиотеки и архивы.

13

Стремление передать компьютеру рутинную работу возникло не только

среди ученых-представителей точных наук. Мысль о том, что может делать

компьютер и где он может существенно помочь, возникла практически во всех

сферах жизни. Педагогическая наука не могла оставаться в стороне от движе-

ния всеобщей компьютеризации.

Первые шаги вычислительной техники в педагогике связаны с обучением

самой работе на компьютере, в частности – с обучением языкам программиро-

вания. И это абсолютно естественно, т.к. любое устройство требует каких-то

знаний, чтобы им пользоваться.

В связи с этим кажется уместным разделить все взаимоотношения компь-

ютера и педагогической деятельности на две области:

а) обучение с помощью компьютера, где цель – работа на компьютере

(например, обучение информатике);

б) обучение посредством компьютера тому, что не связано напрямую с

компьютером (например, чтению на родном языке, иностранному языку и т.д.).

В первом случае компьютер является и предметом исследования, и его це-

лью, и средством достижения цели. Однако во втором случае необходимо точно

определить место и роль компьютера в педагогической деятельности. Нужно

понять, является ли он только средством обучения, которое можно заменить

чем-то другим, не меняя характера производимой работы, или он – качественно

новое средство обучения, от которого абсолютно нельзя отказаться в современ-

ных условиях.

В приведенной нами краткой истории вычислительной техники есть при-

меры, когда компьютер только ускорял работу, которую могли бы выполнить

люди вручную. Табулятор Холлерита позволил выполнить работу по анализу

данных переписи населения быстрее, но эта же работа могла бы быть выполне-

на и людьми. Ничего качественно нового табулятор не делал. Совсем другой

пример – это программное обеспечение VisiCalc, которое помогало рассчитать

бюджет даже тем людям, которые никогда не сумели бы сделать этот расчет на

14

бумаге. Более показательный пример из современной практики – коллективное

редактирование документа соавторами, находящимися на расстоянии тысяч ки-

лометров друг от друга, при котором внесенные в документ изменения тут же

становятся видны остальным коллегам, количество которых ограничено только

рамками здравого смысла.

То, что компьютер функционирует по определенному заданному алгоритму

и немедленно реагирует на произведенное человеком действие (введенную ин-

формацию), хорошо согласовывалось с идеями бихевиоризма, а именно с прин-

ципами программируемого обучения американского психолога Берреса Фреде-

рика Скиннера, которые были представлены им в 1958 г. Б.Ф. Скиннер предлагал

подавать учебный материал маленькими порциями (фреймами), каждый фрейм

состоит из некоторой информации и утверждения, на которое ученик должен от-

ветить, вслед за ответом следовала мгновенная реакция: в случае правильного

ответа переход к следующему фрейму или комментарий и переход к следующе-

му фрейму, в случае неверного ответа переход на следующий фрейм не происхо-

дил. Положительный эффект, связанный с переходом к следующему шагу по-

вышал мотивацию к обучению [88, с. 12]. Достаточно сложно представить рабо-

ту по такой схеме, используя обычную книгу, поскольку не будет обеспечен ре-

гулируемый переход к следующему фрейму, в случае же сдачи ответа препода-

вателю на проверку потеряется мгновенность ответа. Вариант индивидуального

занятия, когда преподаватель мгновенно проверяет ответ одного ученика сложно

осуществим. В пользу компьютера здесь говорит и тот факт, что он по своей

природе «бесконечно терпелив и объективен» [96, с. 9]. Начало коммерческого

распространения компьютеров в 50-е гг. XX в. давало надежду на реализацию

идей Скиннера в режиме «компьютер-ученик».

Идеи бихевиоризма в последствии найдут применение в современном про-

граммном обеспечении учебного назначения, пусть и в несколько измененном

виде.

15

В 1960-е гг. XX в. в Стэнфорде Патрик Суппес и Ричард Аткинсон прово-

дят исследования по возможностям обучения с компьютерной поддержкой

(англ. Computer-Assisted Instruction, также Computer-Assisted Learning) матема-

тике и чтению [99, с. 11].

Одной из разновидностей CAI является обучение языку с компьютерной

поддержкой (англ. Computer-Assisted Language Learning). Пионерами в этой об-

ласти считаются два проекта: PLATO и TICCIT. Проект PLATO (англ. Pro-

grammed Logic for Automatic Teaching Operations) стартовал в Университете

Иллинойса в 1960 г. Система предназначалась для интерактивного индивиду-

ального обучения большого числа студентов, в ней были реализованы новатор-

ские для того времени решения: форум между участниками, специальный язык

программирования для создания универсальных учебных курсов, ведение запи-

си работы и др. В частности, в системе PLATO был разработан большой курс

по французскому языку, содержащий письменные грамматические задания и

задания на работу с вокабуляром. Дополнительными являлись задания по

французской лингвистике, географии и культуре Франции. Курс охватывал ра-

боту над тремя коммуникативными навыками: чтением, письмом и аудирова-

нием (которое по большей части сводилось к письму). Курс с самого начала не

рассматривался как единственно достаточный для овладения иностранным язы-

ком. Перед ним стояла задача помогать в выполнении механической работы над

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

бодного говорения. Проект TICCIT (англ. Time-shared, Interactive, Computer

Controlled Information Television) был реализован в 1969 г. в Университете Бри-

гама Янга (Юта). Проект опирался на телевизионные и компьютерные техноло-

гии. Сочетая текстовую, звуковую информацию, а также видео записи TICCIT

являлся первым мультимедийным языковым курсом. Система была не такой

гибкой как PLATO, она не давала составителю курса выбора типов упражнений

(все это уже было встроено в оболочку), для работы с ней использовалась спе-

циальная клавиатура с 15 дополнительными клавишами (Правило, Пример, Уп-

16

ражнение, Совет, Задание, Легко, Сложно и др.). По названию клавиш можно

проследить алгоритм действий пользователя. Сначала следовало ознакомление

с правилом, затем изучение примера, далее выполнение упражнения, для чего

можно было запросить помощь и увеличить или уменьшить уровень сложно-

сти) [76, с. 15-19].

Среди преимуществ CAI можно отметить следующие. Обучение принима-

ет более индивидуальный характер, т.к. учащийся сам распределяет свое время

и работает в комфортном для себя темпе. Выбор материала и его последова-

тельность также может выбираться учащимся (если это предусмотрено про-

граммой). Благодаря мультимедийности современных компьютеров задейству-

ются различные каналы восприятия информации. Учащийся не боится делать

ошибки как в классе перед другими людьми. Безусловно, справедливо будет

отметить и недостатки обучения такого рода. Не все учащиеся профессиональ-

но и психологически готовы работать самостоятельно. Сбои компьютерного

оборудования и ошибки программного обеспечения могут снизить мотивацию.

Чрезмерное количество гиперссылок и другой дополнительной информации

рассеивают внимание и отвлекают от основного задания. К тому же большое

количество некачественного в методическом и техническом плане программно-

го обеспечения для CAI портит репутацию высокопрофессиональных систем

[118, с. 18-19].

Система PLATO была не только первым проектом CAI. Ее создание по-

служило стимулом для дальнейшей разработки систем управления обучением

(англ. Learning Management System).

Понятие LMS тесно связано с понятием сети (локальной, как в случае с

PLATO, или глобальной – Интернет). Даже сегодня, когда компьютеры полу-

чили массовое распространение, позволить себе мощный компьютер, на кото-

ром работает современное сложное программное обеспечение, может далеко не

каждый. Во времена возникновения первых учебных компьютерных программ

этот факт был еще более очевиден. Система PLATO была установлена на одном

17

мощном компьютере, а доступ к учебным курсам предоставлялся на терминалы

(первоначально одновременно для 20 пользователей).

Идея создания образовательных сетей, значительно расширяющих воз-

можности человека в наполнении всякого момента его жизни учением, взаимо-

действием с другими людьми и вниманием к ним, была высказана в 1970 г. ав-

стрийским философом Иваном Илличем в книге «Освобождение от школ. Про-

порциональность и современный мир». И. Иллич писал, что хорошая образова-

тельная система должна иметь три цели: она должна давать всем, кто хочет

учиться, доступ к имеющимся ресурсам в любое время их жизни независимо от

возраста; позволять всем поделиться своими знаниями с теми, кто хочет нау-

читься этому от них; наконец, предоставлять каждому желающему возмож-

ность ознакомиться с проблемами общества и обсудить их. Например, для на-

хождения друзей по интересам пользователь предъявит свое имя и адрес и

опишет деятельность, для которой он ищет партнеров. Компьютер вышлет ему

имена и адреса тех, кто заинтересован в той же деятельности. Такого рода сеть

может быть использована и для консультирования с преподавателем – профес-

сионалом в нужной области, причем учителей можно будет выбирать самостоя-

тельно [17]. Идеи И. Иллича нашли воплощение в современных LMS, социаль-

ных сетях и таких проектах как Wikipedia.

В 1982 г. в Нью Гэмпшире был основан центр компьютерного обучения

(англ. Computer Assisted Learning Center), целью которого было предоставлять

доступное и качественное обучение, строящееся на трех составляющих: ком-

пьютер, сеть, учебный материал. В начале 1986 г., при помощи сети

QuantumLink для компьютеров Commodore 64 начал работу первый обучающий

центр CALC. К 1995 г. деятельность центра распространилась на сети PC-Link,

AppleLink, AOL, Delphi, GEnie, and CompuServe. Преподавателями центра были

энтузиасты, считавшие, что обучение онлайн имеет огромный, еще не раскры-

тый потенциал. В центре обучались тысячи слушателей, посещая виртуальные

18

занятия 2-3 часа в неделю. С 1995 г. CALC Online Campus полностью перешел

на работу через Интернет [82].

Система CALC Online Campus позволяла преподавателям и учащимся при-

нимать участие в групповых дискуссиях, организовывать и проводить экспери-

менты, задавать вопросы, искать научную литературу, работать в группах, про-

изводить статистический анализ, обмениваться материалами по электронной

почте и проводить презентации онлайн [47, с. 26].

В 1997 г. на рынке появилась WebCT – коммерческая система для обуче-

ния онлайн, предназначавшаяся для образовательных учреждений. Система

предлагала большое количество интерактивных сервисов для проведения заня-

тий. Разработчик системы Мюррей Голдберг из Университета Британской Ко-

лумбии уделил большое внимание возможности построения виртуальной учеб-

ной среды, строящейся на работе с содержимым Интернет-страниц. В 2006 г.

WebCT была приобретена корпорацией Blackboard Inc. [47, с. 27].

В 1998 г. австралийский инженер Мартин Дугиамас, наблюдая за все воз-

растающим интересом педагогического сообщества к обучению онлайн [57],

начал разработку LMS с исходным открытым кодом, предназначенную для

бесплатного распространения. Эта система получила название Модульной объ-

ектно-ориентированной динамической учебной среды – Moodle (англ. Modular

Object-Oriented Dynamic Learning Environment). Первая действующая версия

Moodle появилась в августе 2002 г. Согласно статистике, на сегодняшний день

Moodle используется в 224 странах мира и предлагает более 6,8 млн учебных

курсов. Количество преподавателей, использующих Moodle, превышает

1,2 млн, количество студентов – 64 млн человек [25].

Современные LMS функционируют главным образом через Интернет, что

позволяет осуществлять доступ к образовательным ресурсам сколь угодно уда-

ленно. LMS – это комплекс программного обеспечения, цель которого осуще-

ствлять поддержку учебного процесса, создавая этим некую виртуальную обра-

зовательную среду [47, с. 21].

19

Задачами LMS являются не столько передача учебной информации и хра-

нение учебных курсов, сколько сложное администрирование учебного процес-

са, включающее: предоставление (или ограничение) доступа к тому или иному

контенту; протоколирование деятельности студентов, включая учет времени

работы по видам деятельности; управление учебными группами; предоставле-

ние аналитической информации по отдельным студентам и учебным группам.

Именно эта работа лучшим образом выполняется компьютером и вряд ли мо-

жет быть так эффективно и быстро выполнена человеком. Задача оператора

LMS (администратора, преподавателя) – направлять студентов в самостоятель-

ной работе, консультировать их посредством форумов, модерировать общение

студентов между собой и оперативно реагировать на аналитическую информа-

цию, собираемую системой. Таким образом, функции человека и машины очень

хорошо разделяются, и каждый делает то, что у него получается лучше всего:

компьютер считает, человек думает.

LMS многообразны и могут различаться по сложности и областям приме-

нения (например, бизнес или образование), однако в общем виде все они долж-

ны: осуществлять централизованное и автоматизированное администрирова-

ние; поддерживать самостоятельную работу пользователей; предоставлять дос-

туп к учебному контенту; располагать интерфейсом (платформой) для удобной

работы через сеть; поддерживать принятые стандарты размещаемых данных;

уметь персонализировать данные [61]. Говоря о LMS, используемых в образо-

вании, обязательно необходимо добавить возможность студентам самим созда-

вать и модерировать группы по интересам в рамках форумов для создания бо-

лее полноценной виртуальной учебной среды.

Существуют варианты готовых LMS, которые разрабатываются как ком-

мерческий продукт (Microsoft SharePointLMS, Blackboard Learning System, De-

sire2Learn), а также свободно распространяемые системы (Moodle, .LRN,

Claroline, Dokeos, Sakai) [60; 45; 54; 78; 56; 51; 55; 105].

20

Некоторые свободно распространяемые системы, например LMS Moodle,

Claroline, позволяют изменять свой программный код, т.е. адаптировать про-

дукт для конкретных условий.

Основными функциональными компонентами, используемыми в большин-

стве LMS, являются:

инструмент управления пользователями, ролями, курсами, блоками, а

также составления отчетов;

учебный план;

календарь учебного курса;

доска объявлений;

описание траектории обучения;

система оповещения студента;

базовые учебные материалы, а также ссылки на дополнительные ре-

сурсы (материалы для чтения, ссылки на внешние ресурсы в Интер-

нете и др.);

инструмент оценки успешности усвоения знаний;

тесты с автоматической проверкой;

инструмент наглядного представления результатов тестов с коммен-

тариями;

сортировка учебных курсов по степени сложности;

форумы для общения участников системы;

реализация курсов по технологиям дистанционного или смешанного

обучения;

возможность записи на курс;

система регистрации студента, позволяющую отслеживать информа-

цию о его учебной активности;

инструменты для определения пробелов в знаниях;

программы учебных дисциплин;

21

система формирования учебных и других групп;

система сбора статистических данных по курсам [47, с. 22].

Исходя из перспективы пользователя курса (студента) все компоненты

LMS можно разделить на компоненты, содержащие учебные ресурсы, и компо-

ненты, организующие активные действия. К первым относятся средства комму-

никации (форумы, чаты, электронная почта, видеоконференции и т.д.) и тесто-

вые задания, ко вторым – инструменты, выводящую информацию в различных

форматах (HTML, XML, SCORM и т.д.).

Инструменты коммуникации уже содержаться в LMS и имеют, как прави-

ло, понятный интерфейс, поэтому работа с ними не представляет большого

труда. Инструменты, выводящие информацию, заслуживают более пристально-

го внимания, так как содержание (учебный контент) для них подготавливает

сам преподаватель – чаще всего не имеющий специальной компьютерной под-

готовки (например, знаний HTML).

Для облегчения процедуры помещения учебного контента в LMS были

предприняты шаги в двух главных направлениях: стандартизации форматов

представления информации в LMS и создание компьютерных программ, пере-

водящих простую текстовую информацию в понятный LMS код [Горожанов

СУО, с. 79].

С необходимостью стандартизации форматов учебного контента разработ-

чики и пользователи LMS столкнулись после распространения на рынке боль-

шого количества вариантов виртуальных учебных сред. Курсы, хорошо функ-

ционирующие в одной системе, не были переносимыми на другую платформу,

таким образом переход образовательной организации к работе с другой LMS

(если она была объективно лучше и удобнее) становилось затруднительным,

так как при этом приходилось перерабатывать весь учебный материал заново. В

связи с этим начали разрабатываться стандарты представления информации.

Первые усилия по стандартизации форматов представления данных в LMS

имели своей целью обмен курсами между организациями, использующими раз-

22

ные системы. Еще одна важная задача заключалась в том, чтобы обеспечить не-

зависимость учебных материалов и их авторов от той или иной LMS, сделав

универсальные учебные курсы самостоятельной позицией на рынке.

Одна из первых успешных попыток была предпринята в 1988 г., когда

крупнейшие авиационные корпорации (Boeing, Airbus, и McDonnell Douglas)

создали ассоциацию AICC (англ. Aviation Industry Computer-Based Training

Committee) [39]. Целью ассоциации была разработка вопросов, связанных с

дистанционным обучением для нужд отрасли, в первую очередь – разнообраз-

ных тренировочных и тестовых материалов [47, с. 32].

В 1997 г. Министерство обороны США начинает проект ADL (англ.

Advanced Distributed Learning), с целью стандартизации и модернизации систем

управления образовательной деятельностью. Разработанный в ходе проекта па-

кет стандартов SCORM (англ. Sharable Content Object Reference Model) получил

широкое распространение и является на сегодняшний день одним из самых

востребованных в LMS [47, с. 33].

SCORM основан на стандарте XML (англ. eXtensible Markup Language),

который в свою очередь произошел от SGML (англ. Standard Generalized

Markup Language).

SGML был разработан Чарльзом Голдфарбом, который в 1967 г. поступил

на работу в компанию IBM и начал работать с компьютерными базами данных.

Он руководствовался идеей отделения содержимого документа от информации

о его форматировании. В 1969 г. Ч. Голдфарб, Эдвард Мошер и Рэймонд Лори

разрабатывают язык разметки GML (англ. Generalized Markup Language). GML

разделял информацию на логические блоки при помощи тегов, понятных для

компьютеров IBM. Размеченный таким образом текст легко выводился на экран

или на печать в отформатированном виде. Работа над развитием языка разметки

продолжалась и привела к появлению SGML, стандартизированного Междуна-

родной организацией по стандартизации в 1986 г. (ISO 8879:1986 SGML) [63].

23

Следующим важным шагом в истории развития языков разметки была раз-

работка HTML (англ. HyperText Markup Language) – языка гипертекстовой раз-

метки, интерпретируемого веб-браузерами. Благодаря HTML, также закреплен-

ному в стандарте ISO, содержимое веб-страниц читается любыми браузерами и

на любых компьютерах [ISO/IEC 15445:2000]. В настоящее время разработкой

и информационной поддержкой HTML занимается Консорциум всемирной

паутины [116].

С 1996 г. W3C начинает поиски более гибкого языка, который бы позволил

не только статически отображать форматированный текст, но и осуществлять

обмен информацией между программами. Спецификации XML были опублико-

ваны в 1998 г. [110].

Документ XML может быть использован как база данных, с которой легко

работают современные языки программирования. Эту особенность важно учи-

тывать при создании электронных учебных материалов (учебники, учебные по-

собия, тесты, рейтинги и т.д.).

Стандартный пакет SCORM представляет собой архив .zip, состоящий из

набора содержательных и служебных файлов. Обязательным компонентом яв-

ляется файл imsmanifest в формате XML, который описывает структуру пакета.

Учебный контент может быть удобно реализован на HTML [97]. Стандарт

SCORM гарантирует, что любой контент электронного обучения и любая из

распространенных LMS могут работать друг с другом [98], в связи с этим паке-

ты SCORM получили большое распространение в образовании. На сегодняш-

ний день созданы удобные редакторы, которые позволяют создавать учебные

модули (учебники, учебные пособия) преподавателям, не обладающим знания-

ми XML или HTML, сохраняя результат в виде пакета SCORM. Среди редакто-

ров есть свободно распространяемые программы, например eXe [62].

Пакет SCORM можно создать и самостоятельно, но это потребует навыков

программирования на языках гипертекстовой разметки и основательных знаний

структуры пакета. Некой «золотой серединой» при работе с пакетами SCORM

24

может быть создание самого простого SCORM в программе eXe (программа

возьмет на себя сложную процедуру создания множества служебных файлов

архива) и последующее изменение только содержательных файлов XHTML

(например, добавление упражнений).

Суммируя изложенное выше можно сказать, что пройдя трудный путь от

первых механических устройств до компьютеров, в XXI век человечество всту-

пило вооруженное мощной вычислительной техникой, которая позволяет вли-

ять на все сферы жизни нашего общества. Ведущие университеты мира, имея в

своем распоряжении высокопроизводительные компьютеры, активно использу-

ет их для сложных вычислений и моделирования процессов, которые сложно и

дорого осуществить в реальных условиях.

Удивительно, что при всем прогрессе в естественнонаучной области, гу-

манитарные науки только слегка затронуты процессами автоматизации. В част-

ности, в методике обучения иностранному языку, еще даже не сложилось еди-

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

ционое обучение не достаточно автоматизировано, что на наш взгляд довольно

странно.

Мы ни в коей мере не говорим сейчас о полной замене преподавателя

компьютером – это миф, который больше подходит для сценария фантастиче-

ского кинофильма. Мы говорим о стремлении, которое испытывали Виль-

гельм Шиккард, Блез Паскаль, Готфрид Лейбниц и сотни других выдающихся

ученых – освободить ученого (а в нашем случае – преподавателя) от каждо-

дневной рутины, освободив его время для созидательного творчества. Именно

это и является для нас целью автоматизации процесса обучения иностранному

языку, которой посвящены все последующие главы.

Перед тем как перейти к оценке потенциала элементарных программ для

ЭВМ, рассмотрим современные типологии упражнений по иностранному язы-

ку, созданные отечественными и зарубежными педагогами.

25

Классификации упражнений по иностранному языку:

отечественный и зарубежный опыт

Исходя из видов речевой деятельности, упражнения по иностранному язы-

ку могут быть направлены на обучение чтению, письму, аудированию или го-

ворению.

С.Ф. Шатилов, автор понятия «языковые навыки», предлагает следующую

типологию упражнений по критерию соответствия упражнений целям обучения

иностранному языку в средней школе:

1. подлинно (естественно)-коммуникативные;

2. условно (учебно)-коммуникативные;

3. некоммуникативные упражнения.

К первым относятся упражнения во всех видах речевой деятельности, ко-

торые побуждают учащихся пользоваться этими видами коммуникации как в

родном языке. Основным мотивом выполнения таких упражнений является ес-

тественная потребность в коммуникации.

Характерной особенностью второго типа упражнений является то, что они

позволяют осуществить тренировку языкового материала в учебной (условной)

коммуникации, имитирующей естественную. Коммуникативная условность

этих упражнений (их «псевдокоммуникативность») выражается в том, что опе-

рации и действия, которые выполняют учащиеся в них, хотя и носят речевой

характер, редко встречаются в естественной коммуникации, например: называ-

ние предметов и их местонахождения (по картинке).

Условно-коммуникативные упражнения могут быть классифицированы

следующим образом:

1) условно-коммуникативные ситуативные упражнения, выполняемые с

опорой на образную наглядность (картинки, слайды, кадры диафильмов);

2) условно-коммуникативные ситуативные упражнения, выполняемые с

опорой на ситуацию, создаваемую в учебном процессе;

26

3) условно-коммуникативные упражнения, выполняемые с помощью

словесно воссоздаваемых ситуаций;

4) контекстно-обусловленные коммуникативные упражнения по тексту и

в связи с текстом;

5) контекстные и ситуативно-обусловленные коммуникативные упраж-

нения по фрагментам темы, по теме.

В третий тип упражнений (некоммуникативные упражнения) входят так

называемые подготовительные, предречевые, неситуативные (языковые) трени-

ровочные упражнения. Для большинства этих упражнений характерно отсутст-

вие связи с речевой ситуацией или речевым контекстом, их некоммуникатив-

ный, формальный характер, их направленность преимущественно на языковую

сферу [30, с. 55-58].

Н.И. Гез исходит из трех принципов при составлении упражнений для

обучения устной речи:

1) Последовательность формирования речевых умений и навыков пред-

полагает наличие в системе упражнений двух основных типов – языковых (тре-

нировочные) и речевых. Языковые упражнения служат для выработки речевых

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

ления в речевую ситуацию, имитирующую в какой-то мере условия реального

общения.

2) Оба типа упражнений тесно связаны и имеют место на любой стадии

развития навыка, в том числе и в период ознакомления с новым материалом.

3) Виды упражнений внутри каждого типа также отражают последова-

тельность формирования речевого навыка и реально существующих видов вы-

сказывания. Виды упражнений не являются постоянными. Необходимость ис-

пользования тех или иных упражнений, их дозировка и сочетаемость зависит от

этапа обучения, от сложности языкового материала и конкретной практической

задачи.

27

На основании этих принципов выделяются следующие (1) языковые и (2)

речевые упражнения:

1a. Имитация (без преобразования структур и с частичным преобразова-

нием структур).

1b. Преобразование информации (видоизменение структур на основе ло-

гических операций, конструирование структур и комбинирование и группиров-

ка структур).

2a. Подготовленная речь (с опорой на формальные признаки, с опорой на

источники информации и с опорой на изученную тему).

2b. Неподготовленная речь (с опорой на источник информации и с опорой

на жизненный опыт учащихся) [21, с. 78-81].

Для обучения лексики иностранного языка И.В. Рахманов предлагает учи-

тывать, с одной стороны, особенности изучаемой лексики и, в связи с этим,

трудности ее усвоения, а с другой – цель ее усвоения. Говоря о трудностях изу-

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

графию, фонетическую и грамматическую характеристику, а кроме того, его

связь с уже усвоенными словами и отличием от аналогичных слов родного язы-

ка. Цель упражнений для работы над лексикой связана с тем, будет ли она слу-

жить для репродукции (активная лексика) или для рецепции (пассивная лекси-

ка). Например, в языковом вузе преимущество отдается активной лексике. При

построении системы упражнений следует учитывать:

1. Необходимость репродуктивного или рецептивного усвоения слов.

2. Типологию трудностей слова.

3. Нарастание трудностей:

а) работа над изолированным словом и над словом в контексте;

б) языковые и речевые упражнения.

4. Разностороннюю работу над словом:

а) значение и употребление слов;

28

б) семантические отношения с другими словами немецкого языка и осо-

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

в) грамматическая характеристика;

г) этимология;

д) звуковая форма и орфография.

5. Преемственность с уже усвоенными словами [21, с. 145].

Н.Б. Соколова предлагает разбить упражнения для развития активных

грамматических навыков на три группы:

1) Упражнения в воспроизведении грамматических структур по образцам:

а) ответьте на вопросы утвердительно;

б) замените выделенное слово по образцу;

в) составьте предложения по подстановочной таблице;

г) подтвердите утверждение.

2) Упражнения в видоизменении грамматических структур:

а) перестройте предложение по образцу;

б) выразите ту же мысль иначе;

в) дополните предложения;

г) ответьте на вопрос, употребив при этом придаточное предложение с

союзом...

3) Упражнения в комбинировании грамматических структур (носят пре-

имущественно коммуникативный и ситуативный характер):

а) подготовьтесь к беседе на заданную тему;

б) употребите в заданной ситуации те или иные грамматические конст-

рукции;

в) перескажите текст, употребив при этом определенную грамматическую

форму;

г) употребите пословицы в подходящей ситуации.

29

На всех этапах тренировки параллельно проводятся рецептивные упраж-

нения, которые располагаются в порядке нарастания трудностей: от изолиро-

ванных предложений к связным текстам:

1. Определите синтаксическую функцию данного явления в предложе-

нии (выборочный грамматический разбор).

2. Переведите предложения на русский язык.

3. Найдите в тексте изучаемую конструкцию.

4. Выпишите из текста изучаемые явления и сгруппируйте их.

5. Объясните употребление данной грамматической формы.

6. Прочтите текст; ответьте на контрольные вопросы.

Особо Н.Б. Соколова выделяет рецептивные грамматические упражнения,

выполняемые на слух:

1. Прослушайте пары предложений и установите, чем они отличаются на

слух.

2. Прослушайте предложение и упростите его конструкцию.

3. Прослушайте предложение и разбейте его на синтагмы.

4. Определите временнóе соотношение главного и придаточного пред-

ложений (одновременность, предшествование и т.д.).

5. Определите на слух значение омонимичных форм.

6. Прослушайте текст; ответьте на контрольные вопросы [21, с. 188-191].

Е.А. Маслыко, П.К. Бабинская, А.Ф. Будько и С.И. Петрова в «Настоль-

ной книге преподавателя иностранного языка» также предлагают классифика-

цию упражнений по аспектам (произношение и интонация, лексика, грамма-

тика) и по видам речевой деятельности (аудирование, говорение: монологиче-

ская и диалогическая речь, чтение и письмо), а также много внимания уделяют

системе работы с текстом, выделяя предтекстовый, текстовый и послетексто-

вый этапы [20].

C.К. Фоломкина, в работах которой большое внимание уделяется чтению

как рецептивному виду речевой деятельности (не пассивному, т.к. рецепция

30

требует от читающего как интеллектуальной активности высокой степени, так и

процессов (ре)продукции), выделяет ознакомительное, поисковое, просмотро-

вое и изучающее чтение [29, с. 31]. Каждый вид чтения предусматривает свои

упражнения.

Ознакомительное чтение считается наиболее простым, т.к. не осложнено

какими-либо специальными задачами понимания. Оно создает благоприятные

условия для переноса приемов чтения из родного языка, поэтому оно должно

преобладать на протяжении первого этапа обучения. Задачей ознакомительного

чтения является понимание основной линии содержания, поэтому в качестве

объектов проверки преподаватель заранее выделяет все основные факты и глав-

ные второстепенные. Все вопросы, утверждения и т.д. в упражнениях контроли-

руют эти выделенные факты. Перечислим формулировки заданий для упражне-

ний, предлагаемых для развития способности ознакомительного чтения:

1. Прочитайте текст с тем, чтобы потом ответить на вопросы по основно-

му содержанию текста.

2. Прочитайте текст и отметьте в упражнении предложения, соответст-

вующие его содержанию.

3. Прочитайте текст и скажите, какие из услышанных утверждений соот-

ветствуют его содержанию.

4. Найдите/зачитайте/выпишите главные положения/ключевые факты

текста.

5. Какие слова можно было бы вынести перед текстом в качестве

ключевых?

6. Приведите из текста все факты, подтверждающие ... / опровергающие ...;

укажите/найдите предложения, характеризующие параметры/преимущества/ ...

прибора/устройства/...

7. Укажите в тексте места, не соответствующие тем сведениям, которые

ваш преподаватель сообщил предварительно.

31

8. Перечислите факты, на основании которых автор строит свои выводы;

дают ли они для этого основания?

9. Составьте перечень основных/наиболее интересных проблем/вопросов,

затрагиваемых в тексте.

10. Напишите предложения/номера предложений в последовательности,

отражающей события в тексте.

11. Какие из следующих утверждений вы отнесете к основным (А), а ка-

кие – к второстепенным (Б)?

12. Какие из приведенных предложений можно было бы включить в текст?

13. Укажите, какие из следующих предложений могли бы служить загла-

виями частей текста и в какой последовательности.

14. Исправьте предложенный план текста.

15. Составьте к тексту вопросы, ответы на которые могли бы служить пла-

ном текста.

16. Объясните значение заголовка/заключительного предложения текста.

17. Какое из приведенных слов/определений лучше всего передает содер-

жание текста/части текста/состояние Н./характеризует поступок Н. и т.д.

18. Какой из предложенных после текста абзацев, мог бы служить его про-

должением?

19. Какая аннотация/резюме передает содержание статьи наиболее адек-

ватно?

20. Напишите аннотацию/резюме текста.

21. Прочитайте план. Читая текст, сверяйтесь с планом, чтобы убедиться,

что вы поняли все основные моменты содержания.

22. Читая текст, найдите ответы на следующие вопросы.

23. При чтении разделите текст на части в соответствии с предложенным

планом/укажите начало каждой новой части.

32

24. Разделите текст на части, законченные в смысловом отношении. (До-

полнительным может быть задание найти в каждом ключевом куске ключевое

предложение).

25. Составьте из абзацев связный текст.

26. Какая из предложенных аннотаций относится к указанному тексту?

27. Прочитайте текст; напишите к нему 3-4 вопроса; задайте вопросы ва-

шему партнеру; потом ответьте на его вопросы.

28. Прочитайте свою часть текста; изложите его содержание партнерам;

решите, какое место в тексте занимает ваша часть.

29. Восстановите текст.

30. Закончите предложения.

31. Перескажите основное содержание текста.

32. Напишите на иностранном языке краткое изложение/резюме текста.

33. Письменно ответьте на следующие вопросы (каждый ответ должен

представлять собой 2-3 предложения) [29, с. 216-226].

Изучающее чтение направлено на развитие точного понимания всего тек-

ста. Кроме того, его задачей является сформировать у студента умение само-

стоятельно преодолевать затруднения в понимании иностранного текста. Объ-

ектом «изучения» при этом является информация, содержащаяся в тексте, а не

языковой материал. Наиболее распространенным способом проверки при изу-

чающем чтении является перевод текста на родной язык.

Для упражнений на развитие способности изучающего чтения, предлага-

ются следующие формулировки:

1) Прочтите и переведите текст на русский (родной) язык.

2) Переведите отмеченные в тексте/названные преподавателем предло-

жения.

3) Проанализируйте содержание текста.

4) Прослушайте комментарий к тексту/пересказ текста. Прочитайте текст,

какие новые – по отношению к прослушанному – сведения в нем содержатся?

33

5) Прочитайте два текста. Укажите различия между ними.

6) Какая из аннотаций/резюме передает более адекватно содержание про-

читанной вами статьи?

7) Решите предложенную проблему/логическую задачу.

8) Выполните инструкцию: начертите план, внесите изменения/соответ-

ствующие обозначения в предложенные план/схему/диаграмму, составьте гра-

фик/диаграмму и т.д.

9) Сократите текст, опустив несущественные детали.

10) Сравните текст на иностранном языке и его перевод на русский; оцени-

те качество перевода/укажите на неточности в переводе [29, с. 226-229].

Просмотровое чтение может носить различный характер – от выяснения

области, к которой относится книга/статья, освещаемой в ней тематики до ус-

тановления круга основных вопросов, рассматриваемых в ней. Этот вид чтения

требует от читающего не только довольно высокой квалификации как чтеца, но

и владения значительным объемом языкового материала, поэтому более де-

тальный просмотр следует отнести на продвинутые этапы обучения. Однако

приемам просмотра следует обучать с самого начала курса иностранного языка.

Для развития просмотрового чтения следует как можно чаще предоставлять

студенту самостоятельно выбирать текст – один из 2-4 текстов из газеты, жур-

нала, хрестоматии и т.д., которые предлагает преподаватель. Приведем приме-

ры формулировок заданий для упражнений, имитирующих условия просмотро-

вого чтения:

1) Определите, о чем текст/указанная статья в газете/книге.

2) Просмотрите текст; определите, освещаются ли в нем следующие

вопросы.

3) Просмотрите выделенные в тексте слова/слова, данные перед статьей.

Характеризуйте текст.

4) Просмотрите статьи/тексты/аннотации. Скажите, какие из них относят-

ся к проблеме... / теме... / области...

34

5) Отберите статьи/тексты, освещающие вопрос.../посвященные проблеме...

6) Просмотрите номер журнала/сборник/подборку статей. Скажите, какая

тематика в них освещается.

7) Найдите в газете статью о.../в сборнике текстов рассказ о... [29,

с. 229-231].

Поисковое чтение существует в профессиональной деятельности специали-

ста как самостоятельный вид чтения, поскольку ему приходится искать в источ-

никах ту или иную конкретную информацию – формулировки, данные и т.д. В

учебных условиях оно выступает, скорее, как упражнение, т.к. осуществляется,

как правило, по указанию преподавателя. Задания, связанные с поиском, следует

давать как можно чаще, причем объектом поиска должна быть всегда опреде-

ленная информация. Приведем несколько упражнений на поисковое чтение:

1) Просмотрите тексты (указываются 3-4 ранее прочитанных текста) и

подберите из них факты, которые относятся к теме «...»/которые могли бы слу-

жить иллюстрацией к тезису. утверждению .../которые показывают ... и т.п.

2) Укажите в тексте абзацы (в журнале – статьи, в книге – главы, в

главе – разделы и т.д.), в которых содержатся данные о .../характеристики...

3) Найдите в статье определение/вывод/формулировку пробле-

мы/термин, обозначающий.. и зачитайте его/ее вслух.

4) Найдите в тексте факты, упомянутые в аннотации/резюме.

5) Отметьте в тексте места, дающие ответы на предложенные вопросы.

6) Найдите в тексте факты (не предложения!), которые дают основание

для предлагаемых выводов/тезисов.

7) Найдите и отметьте в тексте места, относящиеся к... (далее указывает-

ся тема/характеристика и т.д.) [29, с. 231-233].

В учебных материалах Института им. Гёте, предназначенных для повыше-

ния квалификации преподавателей немецкого языка как иностранного также

выделяются четыре речевые умения: аудирование, говорение, чтение и письмо,

для каждого из которых приводится своя типология упражнений.

35

Упражнения на аудирование разделяются на три группы: выполняемые до,

во время и после прослушивания.

До прослушивания выполняются:

1. построение ассоциограмм (где ключевым словом является тема текста);

2. работа с карточками к тексту (с короткими высказываниями, относя-

щимися к тексту);

3. работа с картинками к тексту (то же, что и работа с карточками, но

вместо надписи используется картинка) [52, c. 52-73].

Прослушивание может быть двух видов: интенсивное (подробное) и экс-

тенсивное (селективное). При интенсивном прослушивании можно применять

следующие упражнения и упражнения-игры:

1. лото с цифрами (учащиеся заполняют карточки числами и при прослу-

шивании зачеркивают числа, совпадающие с написанными в карточках; вместо

чисел можно использовать буквы);

2. лото со словами (учащиеся получают карточки с пронумерованными

точками, при прослушивании они соединяют линиями названные точки, в ре-

зультате должно получиться слово);

3. визуальный диктант (рисование картинки, содержащей заданные зара-

нее предметы; учащиеся должны расположить предметы правильно относи-

тельно друг друга);

4. ориентирование по карте города (спросить дорогу, понять ответ, пра-

вильно отреагировать на него);

5. работа со списками слов (заключается в основном в том, что учащиеся

получают листок, на котором уже есть часть слов из текста, остальные нужно

дописать; задание можно как угодно варьировать);

6. подвижные игры (учащиеся выполняют телодвижения в зависимости

от услышанного, перед игрой устанавливаются правила) [52, c. 79-108].

При экстенсивном прослушивании, цель которого понять только самое

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

36

1. внесение информации в таблицы и формы;

2. выполнение задания с помощью услышанного (например, поиск сокро-

вищ с помощью карты) [52, c. 109-114].

После прослушивания выполняются упражнения (устно или письменно):

1. ответить на вопросы к тексту;

2. изложить свою точку зрения;

3. кратко изложить услышанное [52, с. 117].

Упражнения на говорение подразделяются на (1) упражнения, подготавли-

вающие устную коммуникацию, (2) упражнения помогающие осуществлять и

структурировать устную коммуникацию и (3) упражнения, которые симулиру-

ют устную коммуникацию [95, с. 43].

К первым относятся:

1. упражнения на артикуляцию;

2. упражнения на формирование и закрепление вокабуляра, который

обеспечит связную речь без необходимости готовить ее заранее;

3. упражнения на формирование и закрепление разнообразных клише,

обеспечивающих адекватное выражение различных интенций говорящего

[95, с. 51].

Ко вторым относятся:

1. ведение диалога;

2. ведение телефонного разговора;

3. постановка вопросов и подготовка интервью;

4. ведение дискуссии и аргументация;

5. построение монологического высказывания / рассказа [95, с. 108].

К третьим относятся различные ролевые игры [95, с. 148].

Чтение также подразумевает набор упражнений, к которым относятся,

прежде всего ответ на вопросы к прочитанному тексту, которые можно разде-

лить на ситуативные (поставленные к содержанию какого-либо конкретного

37

текста) и универсальные (подходящие для любого текста определенного жанра,

например, «Какова тема текста?»). К другим видам упражнений относятся:

1. различного рода членение текста (например, на абзацы);

2. поиск определенной информации;

3. отделение важной информации от второстепенной;

4. установление сходства и/или отличий между элементами текста;

5. заполнение таблиц (фактически, ответы на вопросы, относящиеся к

персонажам);

6. достраивание текста (например, заполнение пропусков);

7. работа с вокабуляром текста;

8. рефлексия (т.е. размышление о пользе выполненных упражнений) [119,

с. 17-30].

Согласно Б. Каст письмо (как вид речевой деятельности) связано с форми-

рованием трех компетенций: (1) коммуникативно-прагматической, (2) созна-

тельной и (3) творческой. Кроме того, упражнения, направленные на формиро-

вание этих компетенций, распределяются на пять типов:

1. подготовительные;

2. конструирующие;

3. структурирующие;

4. свободные, творческие;

5. коммуникативные [74, с. 34].

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

ражнения по расширению вокабуляра, построение ассоциограмм и упражнения

на правописание [74, с. 34-47].

Конструирующие упражнения состоят из построения предложений и опре-

деления темы и ремы, тренировки коннекторов, комбинирования нескольких

предложений в одно, построения из отдельных предложений связного текста,

описания людей [74, с. 54-84].

38

Структурирующие упражнения разделяются на пересказ диалога в виде

монолога, дополнение текста (например, написание продолжения), изменение

перспективы рассказа, написание краткого изложения, написание истории по

картинкам, обсуждение стилистических особенностей разных типов текстов

[74, с. 87-105].

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

стов, индивидуально или в соавторстве. Для активации воображения использу-

ются различные картинки, ситуации, проблемные темы и т.д. [74, с. 125-133].

Коммуникативные упражнения эмитируют реальные ситуации письмен-

ного общения, например, написание письма или составление протокола [74,

с. 139-162].

В немецкоязычном справочном издании Handbuch Fremdsprachenunterricht,

упражнения определяются как деятельность учащегося, в процессе которой он

многократно повторяет одни и те же или почти одни и те же (сходные) дейст-

вия, с целью их закрепления и последующего продуктивного применения, а

также приводится общая классификация упражнений, в которой присутствуют

следующие типы:

1. упражнения на произношение;

2. упражнения на вокабуляр;

3. грамматические упражнения;

4. коммуникативные упражнения;

5. творческие упражнения.

Упражнения на произношение требуют высокой концентрации и интен-

сивной физической деятельность. Центральное место занимает подражание

произношению речи носителя языка, которую можно слушать и в записи. Про-

износить услышанное можно по одному или хором, но последний вариант ус-

ложняет контроль правильности выполнения. Таким образом тренируются сло-

восочетания, короткие предложения (например, вопросы и ответы), которые

также могут иметь ценность для коммуникации. Для снятия языкового барьера

39

можно применять ролевые игры. Сравнивая особенности в родном и изучаемом

языке можно добиться осознанного понимания различий в произношении.

Можно подкреплять упражнения визуальной информацией (картинкой), прави-

лами произнесения звуков, интонационными схемами [66, с. 226-227].

Упражнения на вокабуляр помогают узнавать, понимать, запоминать и

правильно употреблять незнакомые слова. Кроме того, они помогают развитию

следующих способностей:

a) узнавание и активация когда-то уже изученных значений (пассивный

вокабуляр);

b) понимание значений незнакомых слов на основе имеющихся знаний

языка (потенциальный вокабуляр);

c) расширение вокабуляра за счет знания правил словообразования.

Различают по меньшей мере семь типов упражнений на вокабуляр:

1. Запоминание двуязычных равнозначных пар (ассоциативные пары).

Этот тип упражнения самый известный и самый распространенный. Страницу

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

справа их соответствия на изучаемом языке. Проверять себя можно закрывая по

очереди то левую, то правую часть страницы. Недостаток таких упражнений за-

ключается в том, что среди естественных языков имеется довольно ограниченное

количество точных соответствий между единицами вокабуляра. Для более точ-

ного понимания значения слова часто необходим контекст или пояснения.

2. Запоминание одноязычных списков вокабуляра. Этот тип упражнения

отличается от предыдущего тем, что и новое слово, и объяснение его значения

дается на изучаемом языке. Такие упражнения хорошо вписываются в концеп-

цию полного исключения родного языка при изучении иностранного. Посколь-

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

гают комбинировать объяснение на изучаемом языке с объяснением на родном

языке, добавляя к спискам вокабуляра третью колонку.

40

3. Запоминание единиц вокабуляра в типичном окружении. При этом да-

ется сама единица в исходной форме, контекст, в котором она чаще всего

встречается, и (по необходимости) пояснение значения на родном языке.

4. Угадывание значений. Этот тип упражнений основывается на точке

зрения, что самый эффективный способ приобретения знаний – это использова-

ние уже имеющего опыта. Например, при подготовительной работе с текстом

учащемуся объясняется не весь новый вокабуляр, а только часть. Остальное

нужно понять исходя из уже имеющихся знаний (знания схем словообразова-

ния, интернационализмов, типичных грамматических контекстов, правил по-

строения текстов и аргументации). Цель упражнения – развить у учащегося

технику понимания незнакомых слов, которую он сможет применять при само-

стоятельном чтении и в ситуациях общения.

5. Работа со словарем. Работа с одноязычными и двуязычными слова-

рями – важнейшая составляющая процесса расширения вокабуляра. Этой ра-

боте следует специально обучать, т.к. для работы со словарем нужно пони-

мать, что следует искать. Для этого нужно уметь образовывать исходные

словоформы, понимать, какие слова в составе идиоматических выражений

являются главными и т.д.

6. Когнитивные упражнения. Упражнения этого типа развивают понима-

ние механизмов функционирования языка. При этом затрагиваются такие явле-

ния как производные слова, лексико-семантические ряды, омонимия, омогра-

фия, омофония, антонимия, шкалы значений, синонимия, подчинение части це-

лому, стилистические особенности и т.д.

7. Ситуативно-прагматические упражнения служат для формирования

понимания потенциального применения единиц вокабуляра в ситуациях реаль-

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

тексте действия и облекают их в словесную форму. Упражнения часто имеют

вид текста с пропусками, в который нужно вставить слова из предложенных

[66, с. 229-231].

41

Под грамматическими упражнениями понимается генерирование письмен-

ных или устных выражений как результат следования инструкциям по обработ-

ке языкового материала. Их цель – уверенное, доведенное до автоматизма

употребление грамматики изучаемого языка в форме правильных высказыва-

ний. Различают следующие виды грамматических упражнений:

1. упражнения на установление соответствий между несколькими груп-

пами слов / словосочетаний / текстов;

2. упражнения на трансформацию (например, активный залог в пассивный);

3. упражнение на подстановку (например, составление предложения из

предложенных компонентов);

4. упражнения на дополнение, в которых учащимся предлагается до-

строить неполные слова или части текста, используя знания тех или иных

грамматических правил.

5. упражнения на построение высказываний с опорой на вводные слова,

предложения или картинки (например, комментарий к дорожному знаку или

продолжение реплики диалога).

Из перечисленных видов упражнений можно формировать смешанные ва-

рианты. Чтобы грамматические упражнения не выглядели сухо и скучно, нужно

стараться включать в них творческий компонент, делать их эмоционально на-

сыщенными, лексически понятными и составленными в цепочки по принципу

«от простого к сложному» [66, с. 232-235].

Коммуникативные упражнения, направленные на формирование способ-

ности генерировать адекватные в ситуации общения высказывания, которые

будут правильно поняты собеседником, могут принимать форму коротких диа-

логов (с учителем или между учениками) или ролевых игр на тему самых рас-

пространенных жизненных ситуаций (в магазине, на улице, в гостинице и т.д.).

Такие упражнения можно применять уже на начальном этапе изучения языка.

Более сложным видом коммуникативных упражнений являются симуляции, в

ходе которых учащиеся должны решать сложные задачи, разбиваясь на группы

42

и представляя различные точки зрения. Симуляции могут включать дискуссии

на сложные социальные и профессиональные темы, в которых учащиеся долж-

ны хорошо ориентироваться [66, с. 236-237].

Целесообразность творческих упражнений обусловливается тем, что каж-

дый учащийся является самостоятельной личностью, способной к творчеству. К

такому типу упражнений можно отнести:

1. стихотворение с пропусками, которые надо устранить не нарушая

рифмы;

2. реконструкцию стихотворного текста из отдельных строк и написание

для него заголовка;

3. пересказ текста от перспективы совершенно неожиданного персонажа

(например, какого-то животного);

4. предвосхищение событий в тексте;

5. расширение исходного текста (например, написание окончания рас-

сказа или вставка дополнительного диалога между персонажами);

6. преобразование исходного текста (например, написание альтернатив-

ной концовки, построение аналогичного по форме, но другого по содержанию

текста, построение аналогичного по содержанию, но другого по форме текста);

7 сочинение, т.е. порождение текста с использованием уже имеющихся

знаний изучаемого языка; упражнение может содержать дополнительные тре-

бования (объем, стиль, используемый вокабуляр и т.д.) [66, с. 238-239].

С. Бахманн, С. Гергольд и Г. Весслинг приводят классификацию упражне-

ний по иностранному языку, цель которых – формирование межкультурной

компетенции. При этом они разделяют их на четыре блока:

Блок 1. Развитие межкультурной осведомленности и восприятия:

1. описание и комментарий увиденного и услышанного;

2. работа с картинкой;

3. рассказ историй (по картинке);

4. оценка ситуаций и людей;

43

5. описание людей (по шаблону);

6. рассказ историй о картинках;

7. личная оценка и интерпретация изображения на картинке;

8. изменение перспективы рассказа;

9. описание картинки/ситуации по памяти;

Блок 2. Высказывание мнения:

1. продолжение неоконченного рассказа;

2. написание ассоциограмм;

3. изготовление коллажей из картинок и текста;

4. исключение слов, которые не подходят;

5. нахождение антонимов и градаций значений;

6. разговор об общих вещах;

7. нахождение критериев для общих понятий;

8. определение собственных предпочтений;

9. определение различий значений (напр. Café, Bar, Kneipe);

10. формулирование вопросов об общих понятиях;

11. проектная работа над общими понятиями (напр. гостиная);

Блок 3. Сравнение культур:

1. сравнение и нахождение различий;

2. нахождение общего;

3. классификация;

4. обсуждение деталей;

5. социокультурные компоненты в сравнении;

6. способы выражения неопределенности (нем. man);

7. сравнение стереотипов;

8. обусловленные культурой взаимосвязи;

Блок 4. Формирование коммуникативной компетенции в ситуации меж-

культурного общения:

44

1. анализ эффекта речевых актов и их языковой реализации;

2. анализ коммуникационных стратегий;

3. анализ социокультурных особенностей текстов определенных типов;

4. анализ и сравнение стилей выражения;

5. перевод;

6. ответная реакция (активное аудирование);

7. межкультурное взаимодействие;

8. дискуссия по ролям;

9. пересказ;

10. метакоммуникация (дискуссия о коммуникации) [43].

Стандарты Американского совета по делам преподавания иностранных

языков (США) определяют коммуникацию на изучаемом языке как процесс,

включающий три составляющие: межличностную, интерпретационную и пре-

зентационную.

Межличностная составляющая описывает двустороннюю письменную или

устную коммуникацию с активным обменом мнениями. При этом могут быть

задействованы говорение, аудирование, чтение и письмо.

Интерпретационная составляющая описывает только интерпретацию мне-

ний (например, прослушивание аудиопотока, чтение текста, просмотр фильма).

Так как автор новостей, текста или фильма не участвует в коммуникации, воз-

можность обмена мнениями отсутствует. Здесь задействованы аудирование,

чтение и просмотр видео.

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

никацию, при которой не возможен обмен мнениями. При этом задействованы

говорение и письмо.

Так как каждая из трех упомянутых составляющий апеллирует к различ-

ным умениям, формирующим коммуникативную компетенцию, представляется

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

45

учащегося в виде пяти блоков: аудирование, говорение, чтение, письмо и про-

смотр видео. Каждый блок содержит свойственные ему упражнения.

Умение аудирование задействует различные виды знания с целью понима-

ния того, что было сказано. Для его развития используются следующие упраж-

нения:

1. прослушивание диалогов (вживую и в записи);

2. прослушивание реплик учителя, требующих какой-либо реакции (фор-

мулировки заданий, вопросы);

3. прослушивание телерадиовещания (радио- и телепередачи, новости,

постановки);

4. прослушивание стихов и песен (вживую или в записи);

5. прослушивание аудиозаписей (записанных учителем, студентами или

профессиональными дикторами и актерами);

6. прослушивание презентаций (доклады, презентации, лекции);

7. прослушивание рассказов (письменно подготовленных и зачитываемых

вслух).

Умение говорение – центральное, чтобы «говорить на иностранном языке».

Упражнения:

1. беседа с одним/несколькими собеседниками;

2. беседа с большой группой собеседников;

3. ролевая игра;

4. вопрос-ответ (устный обмен репликами);

5. повторение (того, что произнес кто-то другой);

6. обсуждение (дебаты);

7. презентация (подготовленная студентом с использованием критериев

или без них – реклама продукта, доклад);

8. аудио- или видеозапись;

9. рассказ истории;

10. пение;

46

11. определение явлений (студенты устно дают определение словам);

12. описание чего-либо (устно);

13. чтение стихов.

Умение письмо присутствует во всех трех составляющих процесса комму-

никации: межличностной, интерпретационной и презентационной. Упражнения:

1. вопрос-ответ (письменный обмен репликами);

2. создание письменного текста (сочинение, отчет);

3. создание заголовков или надписей для окружающих предметов;

4. определение явлений (студенты письменно дают определение словам);

5. написание предложение/абзаца (для описания предмета, ситуации);

6. создание комиксов;

7. написание скрипта (эпизода мыльной оперы, пьесы, комедийного шоу);

8. написание стихотворения;

9. написание письма;

10. создание игры (лото, карточки, Своя игра);

11. написание рассказа;

12. запись в дневник (например, в блог);

13. написание книги (коллективное задание);

14. участие в дискуссии онлайн (по заданной теме);

15. создание теста (самостоятельно или в паре);

16. создание подписей для иллюстраций;

17. создание газеты (информационного бюллетеня, журнала, брошюры);

18. создание таблицы (структурирование информации о предмете);

19. создание семантических рядов;

20. редактирование текстов (друг друга);

21. конспектирование (презентаций, докладов, лекций).

Умение чтение сходно с аудированием, с той лишь разницей, что инфор-

мация, которую нужно обработать и понять, поступает из письменного источ-

ника. Упражнения:

47

1. чтение рассказа (чтение, анализ, знакомство с художественной литера-

турой и различными жанрами);

2. чтение стихов;

3. чтение газет и журналов (стран изучаемого языка);

4. чтение книги, романа;

5. чтение письма;

6. чтение учебника;

7. чтение комиксов;

8. чтение таблиц и графиков (например, прогнозы погоды, результаты со-

циологических опросов);

9. чтение статей (в энциклопедиях, Интернет-изданиях);

10. чтение записей в дневниках и блогах.

Умение просмотр видео (NB: отсутствует в отечественной практике!) опи-

сывается как очень важное, так как позволяет лучше всего «погрузиться» в

культуру изучаемого языка. Упражнения:

1. просмотр постановки (танцевальные представления, музыкальные кон-

церты, пьесы);

2. просмотр видео (классические фильмы, реклама, документальные

фильмы);

3. просмотр сцен из жизни (спортивные мероприятия, в аэропорту, собе-

седование);

4. посещение выставки или экскурсия (реально или виртуально);

5. просмотр картинок [86].

Опираясь на сказанное выше, отметим, что перечисленные классификации

упражнений в целом не противоречат друг другу. Каждая фокусируется на сво-

их критериях, например аспекте языка (фонетика, грамматики, лексика), рече-

вых умениях (аудирование, чтение, письмо, говорение) или на присутст-

вии/отсутствии в упражнении какого-либо признака (например, творче-

48

ские/нетворческие упражнения). Также можно выделить отдельно комплексы

упражнений для работы с текстом и упражнения-игры.

Несколько позже (в разделе, посвященном автоматизации процесса по-

строения упражнений) мы рассмотрим самые распространенные типы упраж-

нений, исходя из принципа «от простого к сложному» как относительно слож-

ности выбранного инструмента построения (например, языка программирова-

ния), так и времени затраченного на построение упражнения.

49

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

элементарных программ для ЭВМ учебного назначения

An algorithm must be seen to be believed,

and the best way to learn about what an al-

gorithm is all about is to try it.

Donald Knuth,

The Art of Computer Programming

Вряд ли возможно точно подсчитать количество языков программирова-

ния в современном мире [77]. Счет идет на тысячи, однако основных, исполь-

зуемых миллионами программистов, насчитывается всего несколько десятков.

Из них мы остановимся только на самых перспективных для процесса препо-

давания иностранного языка, позволяющих создавать программы элементар-

ного уровня.

Под программами элементарного уровня мы понимаем программы для

ЭВМ, написанные на высокоуровневых языках программирования, в том числе

и на скриптовых, для создания которых достаточно владеть только базовыми

знаниями программирования, лишь немного бóльшими, чем обладает «продви-

нутый» пользователь персонального компьютера. Дополнительным параметром

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

вия подключения к сети (глобальной или локальной).

Из предложенного определения можно заключить, что не всякий язык про-

граммирования подходит для написания программ элементарного уровня. С

другой стороны, из отвечающих критерию необходимо выбрать наиболее попу-

лярные языки программирования, причем характеристика «популярный» в дан-

ном контексте имеет исключительно положительное значение. По данным, соб-

ранным в Интернете за 2011-2013 гг. можно сделать заключение о стабильном

положении в рейтинге популярности следующих языков программирования: C,

C++, C#, Java, PHP, JavaScript, Python, Perl, Visual Basic, Ruby [68; 89; 120; 107].

50

Языки C, C++, C# и Java пользуются огромной популярностью среди про-

граммистов. И хотя на них можно писать программы, которые будут выполнять

очень простые действия, в основном они используются в крупных коммерче-

ских проектах. Например, на C написана часть операционной системы

Windows. Также на этих языках пишут сложные компьютерные игры и бизнес-

приложения. Исходя из этого даже самые простые программы на C, C++, C# и

Java сложно причислить к элементарному уровню.

Visual Basic – язык программирования, разработанный компанией

Microsoft для создания приложений с графическим интерфейсом для MS Win-

dows [24]. Язык распространяется на коммерческой основе, что (несмотря на

высокое качество продукта) в нашем понимании можно трактовать как сниже-

ние уровня универсальности применения.

Язык PHP используется для написания интерактивных веб-приложений,

причем для функционирования программ необходим сервер (удаленный или

его локальный симулятор). На PHP написана система управления обучением

Moodle. В принципе, на PHP возможно написать программы, не требующие об-

ращения к серверу, но это потребует дополнительных усилий со стороны про-

граммиста. И даже в этом случае решение не будет универсальным, т.е. напи-

санную программу нельзя будет отправить по электронной почте коллеге, что-

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

установок на своем компьютере.

JavaScript – скриптовый язык, интерпретируемый браузерами (напр.

Chrome, Mozilla, Safari, Opera и др.). Программы на JavaScript встраиваются в

содержимое веб-страниц в виде функций и не требуют обязательного обмена

информацией с сервером. В совокупности с языком гипертекстовой разметки

HTML и каскадными таблицами стилей CSS язык JavaScript является очень

мощным инструментом для написания программ учебного назначения элемен-

тарного уровня (от всплывающих подсказок до комплексов упражнений с авто-

матической проверкой). Основной плюс JavaScript – незамедлительная реакция.

51

Он позволяет веб-страницам мгновенно отвечать на действия, когда пользова-

тель переходит по ссылке, заполняет форму или просто водит указателем мыши

по экрану [19, с. 19].

JavaScript востребован в таких популярных продуктах как, например,

Gmail и Google Docs.

Языки программирования Python, Perl и Ruby демонстрируют стабильный

рост популярности. Их создателей объединяет идея предложить людям, осо-

бенно начинающим программистам, эффективные способы решения задач ма-

лым количеством хорошо читаемого кода (причем сами языки в основном на-

писаны на языке программирования C). Python, Perl, Ruby и все стандартные

модули расширения к ним предоставляются безвозмездно, что указано на офи-

циальных сайтах. Python свободно используется и распространяется, даже для

коммерческого использования [35]. Perl является свободным программным

обеспечением и распространяется под Универсальной общественной лицензией

[34]. Ruby распространяется абсолютно бесплатно, его также можно свободно

использовать, копировать, модифицировать и распространять дальше [36].

Язык программирования Python выделяется на фоне двух других тем, что

пользуется огромной популярностью в академической среде. Гибкость приме-

нения языка Python позволяет ему быть и первым (учебным) языком для начи-

нающих программистов, и одним из основных языков работы для опытных

профессионалов. Один из лидеров зарубежного ИТ-образования, Массачусет-

ский технологический институт предлагает курсы цикла «Введение в основы

программирования», в ходе которых студенты учатся алгоритмическому мыш-

лению именно на Python [32].

В предисловии к книге «Мыслить как программист. Учимся с Python»

Джэффри Элкнер пишет, что выбирая альтернативу языку C++ для преподава-

ния в школах США и изучив все мыслимые варианты, он пришел к следующе-

му выбору: «Мне нужен был язык, которым пользуются профессиональные

программисты, и вокруг которого сформировалось активное сообщество разра-

52

ботчиков. И, что наиболее важно, этот язык должен быть легким в изучении и

преподавании. Когда я рассмотрел имеющиеся варианты в свете моих сообра-

жений, лучшим кандидатом оказался Python.» [22].

В книге «Fundamentals of Python: From First Programs Through Data

Structures» Кеннет Ламберт так обосновывает выбор темы книги, перечисляя

достоинства языка Python:

у Python простой синтаксис, его выражения очень близки к псевдокоду

(языку описания алгоритмов) и используют общепринятые в алгебре знаки. Это

значит, что студенты смогут больше времени уделить решению интересных за-

дач, а не изучению специфического синтаксиса;

Python использует защищенный синтаксис, это значит, что введенные

неправильно выражения вызовут сообщение об ошибке;

Python подходит для программистов разного уровня. Начинающие мо-

гут писать на нем простые программы, а опытные создавать сложные продукты,

оперируя базами данных и используя все достижения современного объектно-

ориентированного программирования;

Python невероятно интерактивен. Выражения можно вводить прямо в

строку интерпретатора, получая немедленно результат программы. Значитель-

ные объемы кода можно сохранять в отдельных файлах и вызывать впоследст-

вии в качестве отдельных модулей или запускать как самостоятельные про-

граммы;

Python – язык общего назначения. В контексте современности это озна-

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

ний, включая мультимедийные и сетевые;

за Python не надо платить, и он распространен на промышленном уров-

не. Студенты могут загрузить его и работать с ним на разных устройствах. У

Python большое сообщество пользователей, что делает умение работать с ним

очень полезным.

53

В целом Python очень удобный и гибкий язык для развития навыков про-

граммирования, который в равной степени подходит и для новичков, и для

профессионалов. Но самое главное – с Python студенты-первокурсники меньше

времени проведут уставившись в монитор, и больше сил отдадут процессу раз-

мышления над задачами и их решением [75, c. XXII].

Приведенное выше хорошо согласуется с философией Python, которая бы-

ла сформулирована Тимом Петерсом в 19 высказываниях:

Красивое лучше, чем уродливое.

Явное лучше, чем неявное.

Простое лучше, чем сложное.

Сложное лучше, чем запутанное.

Плоское лучше, чем вложенное.

Разреженное лучше, чем плотное.

Читаемость имеет значение.

Особые случаи не настолько особые, чтобы нарушать правила.

При этом практичность важнее безупречности.

Ошибки никогда не должны замалчиваться.

Если не замалчиваются явно.

Встретив двусмысленность, отбрось искушение угадать.

Должен существовать один – и, желательно, только один – очевидный

способ сделать это.

Хотя он поначалу может быть и не очевиден, если вы не голландец.

Сейчас лучше, чем никогда.

Хотя никогда зачастую лучше, чем прямо сейчас.

Если реализацию сложно объяснить – идея плоха.

Если реализацию легко объяснить – идея, возможно, хороша.

Пространства имён – отличная штука! Будем делать их побольше! [106]

54

Стандартная первая программа начинающего питониста, которая заключа-

ется в выводе на экран фразы «Hello, world!», в Python 3.3 займет только одну

строку:

print("Hello, world!")

Для функционирования этой программы достаточно сохранить строку print

("Hello, world!") в файл hello.py и запустить его с помощью интерпретатора.

Интерпретатор для Python (IDLE – Integrated DeveLopment Environment) уста-

навливается автоматически вместе с ядром языка и набором его стандартных

библиотек. Для демонстрации работы кода можно также просто набрать

print("Hello, world!") в строке интерпретатора и нажать <Enter>. Результатом

будет вывод на экран искомой фразы.

Для создания графического интерфейса (GUI – Graphical User Interface) в

Python существует стандартная библиотека tkinter, которая по умолчанию вклю-

чена в установочный комплект Python [108]. Библиотека импортируется в каче-

стве модуля в программу, после чего становятся доступны все ее возможности.

Пример элементарной программы по выводу фразы «Hello, world!» с за-

действованием графического интерфейса пользователя занимает четыре строки

кода и выглядит следующим образом:

from tkinter import *

frame = Tk()

Label(frame, text="Hello, World!").pack()

frame.mainloop()

Результатом работы программы является окно с надписью «Hello, world!»,

выполненное черным шрифтом на сером фоне. Для построения надписи мы ис-

пользовали виджет Label [91].

Еще одним простым инструментом создания графического интерфейса на

Python является дополнительный модуль EasyGui, написанный на tkinter. Мо-

дуль необходимо установить дополнительно с сайта разработчика. Однако на

данный момент работа над проектом приостановлена [33].

55

Эти два несложных примера убедительно иллюстрируют высокий потен-

циал языка программирования Python для написания элементарных программ (в

том числе и содержащих графический интерфейс пользователя) малым и хоро-

шо читаемым кодом. Ниже мы рассмотрим, насколько эффективен Python для

создания элементарных программ для ЭВМ учебного назначения.

Итак, основные два языка программирования, которые мы признали под-

ходящими для написания элементарных программ для ЭВМ учебного назначе-

ния, являются JavaScript (в совокупности с HTML и CSS) и Python (с модулем

tkinter как основным средством создания графического интерфейса пользовате-

ля). Проведем сравнительный анализ свойств и возможностей этих языков,

представив результаты в виде таблицы (см. Таблицу 1):

Таблица 1

Сравнение возможностей языков программирования JavaScript и Python

Свойства/Возможности Python JavaScript

компилируемый /

интерпретируемый

компилируемый

программами типа

py2exe; интерпре-

тируется внутри

среды разработки

IDLE для удобства

тестирования и от-

ладки

интерпретируется брау-

зером

простой и понятный

синтаксис

да да

кроссплатформенность да;

работает на ОС

Windows, Mac,

Unix

да;

стабильно работает с

большинством совре-

менных популярных

браузеров (испытывает

некоторые трудности с

Internet Explorer)

возможность создания про-

грамм с графическим интер-

фейсом пользователя

да;

при помощи биб-

лиотеки tkinter

да;

графический интерфейс

реализуется на HTML и

CSS

56

Продолжение таблицы 1

Свойства/Возможности Python JavaScript

бесплатное распространение да;

поставляется со

средой разработки

IDLE и набором

стандартных моду-

лей

да;

нет необходимости ска-

чивать, код можно наби-

рать в текстовом редак-

торе и тестировать в

браузерах, которые так-

же распространяются

бесплатно

широкое распространение по

всему миру среди профес-

сионалов и любителей

да да

широкое распространение в

академической среде

да скорее нет, чем да

наличие многочисленной

бесплатной справочной ли-

тературы и курсов для само-

стоятельного изучения в Ин-

тернете

да да

наличие дополнительных

библиотек, расширяющих

возможности языка

да;

EasyGui, PyQt,

WxPython и мн. др.

[114]

да;

jQuery, jQueryUI,

ExtCore и мн. др. [8]

возможность создавать при-

ложения, работающие оф-

флайн

да да

возможность создавать при-

ложения, работающие в сети

да да

возможность работать с ба-

зами данных

да нет

возможность работать с ма-

лыми базами данных оф-

флайн

да;

особенно с локаль-

ными базами дан-

ных XML и SQLite

нет

возможность работать с фай-

ловой системой, а также воз-

можность считывать данные

из файла/записывать данные

в файл

да;

например, файлы

.txt, .doc

нет

57

Продолжение таблицы 1

Свойства/Возможности Python JavaScript

возможность легкой модифи-

кации программ другими

пользователями (не автором)

за счет хорошо читаемого кода

и подробных комментариев

да да

возможность создавать элек-

тронные учебные материалы

сложной структуры

да да

возможность создавать элек-

тронные учебные материалы

с интерактивными элемента-

ми (например, автоматиче-

ской проверкой)

да да

возможность создавать элек-

тронные учебные материалы

с формированием интерфейса

протокола работы

да да

возможность создавать элек-

тронные учебные материалы

с сохранением подробного

протокола работы в отдель-

ном файле

да нет

Изучив содержание таблицы можно сделать два важных вывода: 1. оба

языка программирования имеют большой потенциал для создания электронных

учебных материалов; 2. с точки зрения создания элементарных программ для

ЭВМ учебного назначения главное отличие JavaScript от Python заключается в

том, что первый только создает интерфейсы, а второй – работает с файлами и

базами данных.

Мы рассмотрели примеры классификации упражнений по иностранному

языку, а также современные средства, позволяющие создавать программы для

ЭВМ элементарного уровня. Далее обратимся к принципам создания таких про-

грамм на выбранных языках программирования (JavaScript, Python), где каждая

программа будет представлять собой одно упражнение или другими словами,

минимальный элемент электронного учебного курса (учебника, учебного посо-

бия) по иностранному языку.

58

Принципы создания простых электронных упражнений

по иностранному языку

Чтобы определить прогрессию рассмотрения упражнений, нужно понять,

какие из них являются более простыми, а какие более сложными (оценивая с

точки зрения автора-составителя). Для этого построим свою типологию упраж-

нений по иностраному языку, исходя из нескольких критериев.

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

1. утвердительный/отрицательный ответ на поставленный вопрос

(да/нет);

2. ответ в виде только одного из предложенных вариантов (один из многих);

3. ответ в виде нескольких из предложенных вариантов (несколько из

многих);

4. открытый ответ, предусматривающий однозначное соответствие (на-

пример, только B);

5. ответ, предусматривающий наличие некоторого количества информа-

ции (например, 200-400 символов);

6. ответ, предусматривающий наличие определенных единиц (например,

чтобы обязательно присутствовали B, C и D).

7. ответ, предусматривающий объяснение хода рассуждения (алгоритм

решения задачи).

По видам представления информации выделим упражнения, содержащие:

1. только текстовую информацию;

2. картинку;

3. аудио- или видеозапись.

По форме реализации отметим упражнения, предусматривающие:

1. ввод текста в поле (заполнение пропусков);

2. маркирование правильного ответа (галочки, нажатие на кнопки);

3. манипуляции (рисование, drag & drop).

59

По сложности исполнения структуры выделим простые (1) и комплекс-

ные (2) упражнения, предусматривающие соответственно:

1. одно или несколько однозначных действий (например, заполнение не-

скольких пропусков по единой формулировке задания);

2. цепочки действий, в которых следующие задания строятся на результа-

тах выполнения предыдущих.

Выберем в качестве базовой классификацию упражнений по критерию

«характер ожидаемого ответа». Самое простое упражнение, предусматриваю-

щее ответ «да» или «нет», эффективно для самостоятельной проверки усвоения

учебного материала, причем принципиальное значение имеет немедленная ре-

акция на ответ пользователя (верно/неверно). Более сложным является вариант,

предусматривающий некоторый сценарий поведения, например, вывод под-

сказки-комментария при неправильном ответе, понижение уровня сложности,

протоколирование ответа.

В самом простом варианте, в котором существует только формулировка

вопроса и поле ответа (есть галочка/нет галочки), упражнение будет характери-

зоваться как:

«да/нет» (по характеру ожидаемого ответа);

содержащее только текст (по видам представления информации);

маркирование (по форме реализации);

простое (по сложности исполнения).

Рассмотрим реализацию такого упражнения на выбранных языках про-

граммирования, но прежде пропишем основные параметры электронного уп-

ражнения, оно должно:

иметь графический интерфейс;

содержать формулировку задания;

содержать поле ответа (в виде клетки, в которой при нажатии кнопки

мыши помещается галочка);

60

иметь кнопку, инициализирующую процедуру проверки;

выводить информацию об успешности решения задания.

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

реализации и являются универсальными. Следующий шаг заключается в выбо-

ре программного средства. Рассмотрим в этом качестве JavaScript.

Реализация на JavaScript будет всегда состоять из двух частей, первая из

которых – создание графического интерфейса (статической HTML-страницы), а

вторая – написание функции JavaScript, которая будет производить некоторое

действие (например, автоматическую проверку).

Создадим графический интерфейс упражнения согласно выделенным па-

раметрам. Для этого в пустом файле .html нужно набрать минимальный код-

шаблон, который далее можно расширять1:

<!DOCTYPE html>

<HTML>

<HEAD>

<META HPPT-EQIUV="Content-Type" CONTENT="text/html; char-

set=utf-8">

<TITLE>Example</TITLE>

</HEAD>

<BODY>

</BODY>

</HTML>

Если открыть этот шаблон в браузере, то пользователь увидит белый эк-

ран. Это и есть тот «чистый лист», с которого начинается работа в HTML5.

Создадим в графическом интерфейсе (т.е. на веб-странице) элементы упражне-

1 Здесь и далее мы сознательно не будем останавливаться на подробном техническом разборе

каждой строки кода, останавливаясь только на методически значимых блоках. Подробно о

языках программирования, используемых в книге, можно прочитать в руководствах и спра-

вочниках, ссылки на которые приведены в списке литературы.

61

ния: формулировку вопроса, поле для ответа и кнопку для проверки результата,

получается код:

<!DOCTYPE html>

<HTML>

<HEAD>

<META HPPT-EQIUV="Content-Type" CONTENT="text/html; char-

set=utf-8">

<TITLE>Examlpe</TITLE>

</HEAD>

<BODY>

<h3>Подтвердите или опровергните утверждение:</h3>

<h4>Русский и белорусский языки являются родственными.</h4>

<p><input type="checkbox"> Да/Нет</p>

<p>(поставьте галочку, если утверждение верно)</p>

<button>Проверить</button>

</BODY>

</HTML>

Теперь, после того, как графический интерфейс создан, можно писать

функцию JavaScript, которая располагается внутри заголовка HTML-страницы.

В нашем примере функция check() должна выводить окно с оценкой ответа при

нажатии кнопки «Проверить». Для этого JavaScript должен проверить, марки-

ровано окно ответа или нет. Функцию необходимо прописать также в HTML-

коде (добавить идентификатор для поля ввода и связать кнопку проверки с

функцией). Получаем следующий код:

function check() {

if (document.getElementById("box01").checked == true) {

alert("ПОЗДРАВЛЯЮ! Вы ответили правильно!") }

}

62

Если перенести последнюю фигурную скобку на предыдущую строку, то

код функции займет только три строки. В принципе, функцию можно записать

и в одну строку, но тогда код станет очень сложным для чтения и модифициро-

вания. Поэтому лучше оценивать размер программ в символах без пробелов.

Для функции check() это 109 символов. Полностью код программы состоит из

522 символов (см. Программу JS_001 в Приложении). Программа соответствует

выдвинутым параметрам, но для более успешной работы с ней добавлен ком-

ментарий для пользователя: «поставьте галочку, если утверждение верно». Не-

смотря на то, что добавление увеличивает программный код, методически та-

кой шаг является оправданным, т.к. уменьшает шанс некорректного выполне-

ния задания в связи с непониманием технической стороны работы. Можно так-

же сказать, что это делает интерфейс более дружественным для пользователя,

что ведет в конечном счете к повышению мотивации. И напротив, при частых

ошибках из-за того, что пользователь не понимает, что от него хотят, когда

электронные учебные материалы не содержат подробных и ясно написанных

инструкций, студент теряет всякое желание работать с ними, что негативно от-

ражается на отношении к учебному предмету.

Созданное нами при помощи HTML и JavaScript упражнение является уни-

версальным продуктом. Его код можно интегрировать в любой электронный

учебник или учебное пособие, написанное на HTML. Более того, такое упраж-

нение можно разместить на сайте, если у вас есть права вносить изменения в

заголовок HTML-страницы (например, на сегодняшний день бесплатные сайты

Google, созданные по шаблонам, не позволяют этого делать) и провайдер раз-

решает в полной мере использование JavaScript.

Можно расширить упражнение и сделать его более интерактивным, т.е.

более полно взаимодействующим с пользователем, например добавить под-

сказку при неправильном ответе. В принципе, чем больше программа реагирует

на действия пользователя, тем больше у последнего возникает ощущение об-

63

щения, ощущение того, что ему помогают учиться. В нашем случае мы стиму-

лируем пользователя повторить нужный учебный материал.

Функция check() расширится одним условием, а подсказка поместится в

скрытом контейнере:

function check() {

if (document.getElementById("box01").checked == true) {

alert("ПОЗДРАВЛЯЮ! Вы ответили правильно!") }

else {

document.getElementById("hint01").style.display = "";

document.getElementById("hint01").style.color = "navy" }

}

...

<div id="hint01" style="display: none"><p>К сожалению, Вы дали не-

верный ответ. Рекомендую повторить Лекцию 2, Раздел 5</p></div>

При неверном ответе (отсутствии галочки в поле ввода) атрибут контейне-

ра с идентификатором hint01 изменится таким образом, что его содержимое

станет видимым. Для удобства восприятия текст подсказки имеет синий цвет.

Размер программы составил 745 символов без пробелов1.

В результате мы получили в полной мере интерактивное упражнение, реа-

гирующее как на верный, так и на неверный ответ, уместив код в 24 строки. Это

полностью отвечает поставленной задаче построения элементарной программы

для ЭВМ учебного назначения, а выбор в качестве программного средства язык

JavaScript позволяет говорить об универсальном характере электронного уп-

ражнения.

Рассмотрим реализацию этого же упражнения на языке программирования

Python. Для создания графического интерфейса пользователя воспользуемся

модулем tkinter. Код программы также будет состоять из двух частей: построе-

1 Здесь и далее по умолчанию указывается размер программ в символах без пробелов.

64

ния графического интерфейса и написания функции check(), которая обеспечит

автоматическую проверку ответа (см. Программу Py_001).

Программа также занимает 22 строки и состоит из 718 символов, что почти

что идентично объемным параметрам аналогичной программы на HTML и

JavaScript. Статический интерфейс реализуется с помощью виджета1 Frame, ко-

торый имеет имя Example и в котором помещаются виджеты Label (2 шт.),

Checkbutton и Button. Они выстроены в главном окне (root) в ячейках скрытой

таблицы, организованной методом grid().

Проверка результата происходит с помощью функции check(), которая

проверяет значение поля ввода (ch_box) и в случае правильного ответа выводит

на экран окно с надписью «ПОЗДРАВЛЯЮ! Вы ответили правильно!», которое

можно закрыть как всякое другое окно в Windows.

Расширив упражнение как в примере JS_002 мы получим программу объе-

мом 886 символов, которая будет содержать подсказку-текст в виджете Label,

который становиться видимым при проверке ответа функцией check() – если

испытуемый ответил неверно (см. Программу Py_002).

Сравним на примере взятого в качестве образца упражнения эффектив-

ность JavaScript и Python. На данном этапе программы на JavaScript предстают

в более выгодном свете, исходя, например, из их объема. Они более универ-

сальны, если рассматривать вариант встраивания их в электронный учебник,

написанный на HTML. Программы на Python в том простом виде, как они пред-

ставлены здесь, достаточно сложно встраиваются даже в электронный учебник,

написанный на самом Python (для полноценной работы с упражнением лучше

всего представить его в виде отдельного класса, чтобы в полную силу исполь-

зовать преимущества объектно-ориентированного программирования). Тем не

менее, выводы делать пока рано, а мы и дальше будем придерживаться прин-

ципа создания всех электронных упражнений на примерах JavaScript и Python

для того, чтобы создать правильно представление о потенциале этих языков 1 Под виджетом понимают минимальный элемент графического интерфейса.

65

программирования для написания элементарных программ для ЭВМ учебного

назначения.

Выберем следующим примером упражнение на выбор единственно пра-

вильного варианта из нескольких (например, трех) предложенных. Такое уп-

ражнение будет характеризоваться как:

«один из многих» (по характеру ожидаемого ответа);

содержащее только текст (по видам представления информации);

маркирование (по форме реализации);

простое (по сложности исполнения).

Определим его основные параметры, оно должно:

иметь графический интерфейс;

содержать формулировку задания;

содержать поле ответа (в виде трех кружков, только один из которых

можно маркировать);

иметь кнопку, инициализирующую процедуру проверки;

выводить информацию об успешности решения задания;

выводить подсказку в случае неверного ответа;

выставлять балл за ответ, принимая во внимание число неудачных

попыток.

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

тем, что требуют от составителя программы учесть, с какого раза пользователь

добился правильного ответа. Так как только один из трех ответов является пра-

вильным, максимальное количество неверных ответов равняется двум, третий

ответ автоматически будет верным по принципу исключения. Поскольку мы

ставим целью не «угадывать» правильные ответы, а приходить к ним с помо-

щью активации усвоенных знаний, две неверные попытки будут означать, что

студент получил ноль баллов за выполнение упражнения. Нахождение пра-

вильного ответа с первой попытки будет награждено 100 баллами, а одна не-

66

верная попытка приведет к потере половины баллов, т.е. за решение со второй

попытки учащийся получит только 50 баллов.

Реализуем данное электронное упражнение на JavaScript. Построим поле

ответа с помощью кнопок радио1. Для того, чтобы кнопки считались связанны-

ми, они должны иметь одно имя:

<form name="form">

<p><input type="radio" name="question">laufen</p>

<p><input type="radio" name="question">wählen</p>

<p><input type="radio" name="question">Pferd</p>

</form>

Для того, чтобы посчитать попытки, назначим переменную, которая будет

увеличиваться на единицу при каждом нажатии на кнопку «Проверить»:

<script> var counter = 0; </script>

Функцию проверки разместим после кода HTML. При каждом нажатии

кнопки инициализируется функция check(), которая увеличивает переменную

counter на единицу, проверяет, правильно ли выполнено задание (т.е. маркиро-

вана ли первая кнопка радио, которая имеет индекс ноль), далее в зависимости

от значения переменной counter выставляется балл. Если выбрана неверная

кнопка, то на экран выводится соответствующее предупреждение и подсказка.

Вся функция имеет следующий вид:

function check() {

counter++;

if (document.form.question[0].checked == true) {

if (counter == 1) { alert('Правильно! Вы получаете 100 баллов.') }

else if (counter == 2) { alert('Правильно! Вы получаете 50 баллов.') }

1 Вероятно, названы по аналогии с кнопками старых радиоприемников, в которых при нажа-

тии на одну из кнопок выбора радиостанции, предыдущая нажатая кнопка автоматически

поднималась вверх. Получалось, что в нажатом положении находилась всегда только одна

кнопка.

67

else { alert('Это правильный ответ, но баллов вы, к сожалению, не

получаете.') }

}

else {alert('К сожалению, пока неверно\nРекомендую повторить Лек-

цию 2, Раздел 1.')}

};

Вся программа имеет объем 825 символов. Она уже более гибкая по срав-

нению с предыдущим упражнением, т.к. позволяет учесть количество попыток

ответа и скорректировать в зависимости от этого выставляемый балл (см. Про-

грамму JS_003).

Перейдем к реализации этого упражнения на Python. Программа получает-

ся несколько большей по объему (1178 символов), однако по своей структуре

мало отличается от своего аналога на JavaScript. В коде также присутствует

часть, создающая графический интерфейс пользователя с кнопками радио, и

функция проверки (см. Программу Py_003).

Программы на обоих языках можно признать достаточно сходными, что не

позволяет говорить об очевидном преимуществе того или другого. Однако, за-

ходя немного вперед, отметим, что создание накапливающей переменной (в

нашем случае – подсчет нажатий на кнопку проверки, а в широкой практике

веб-программирования – составление статистики обращений по ссылкам) в

JavaScript, не связанным с сервером, задача нетипичная, но посильная. Для

Python накопление данных – совершенно привычная практика, что будет глав-

ным образом видно на сложных примерах, требующих обращения к локальным

базам данных.

Итак, в самом первом упражнении, которое мы рассмотрели, было всего

два варианта ответа. Во втором – уже три (хотя можно добавить дополнитель-

ные кнопки радио и довести количество предлагаемых вариантом практически

до любого числа), что все же является небольшим количеством. В следующем

примере, в котором мы рассмотрим упражнение на выбор нескольких вариан-

68

тов из многих, количество ответов резко возрастет до порядка десятков, что ус-

ложнит задание.

Рассмотрим упражнение на выбор нескольких ответов из многих, такое

упражнение будет характеризоваться как:

«несколько из многих» (по характеру ожидаемого ответа);

содержащее только текст (по видам представления информации);

маркирование (по форме реализации);

простое (по сложности исполнения).

Приведем его исходные параметры, оно должно:

иметь графический интерфейс;

содержать формулировку задания;

содержать поле ответа (в виде трех клеток, каждую из которых можно

маркировать);

иметь кнопку, инициализирующую процедуру проверки;

содержать строку, в которой указывается количество оставшихся по-

пыток;

выводить информацию об успешности решения задания;

выводить подсказку в случае неверного ответа;

выставлять балл за ответ, принимая во внимание число неудачных

попыток;

в случае исчерпания попыток вывести соответствующее предупрежде-

ние и завершить работу.

Наряду с тем, что вариантов ответов стало больше (при трех клетках коли-

чество вариантов ответов такого упражнения равняется восьми), в интерфейсе

упражнения появился изменяемый элемент, визуализирующий количество ос-

тавшихся попыток. Технически это требует не только создания переменной

counter, но и отображения ее значения на экране. Следуя принципу построения

элементарных программ для ЭВМ, мы должны решить эту задачу малым коли-

69

чеством кода и максимально удобно для последующей модификации програм-

мы. Поэтому для решения поставленной задачи на JavaScript мы прибегнем к

инструментам библиотеки jQuery.

jQuery является мультибраузерной бесплатной библиотекой JavaScript, де-

виз которой можно перевести как «Пиши меньше, достигай большего»1. Прак-

тически это означает, что связав файл библиотеки с создаваемой веб-страницей,

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

ном JavaScript. Удобство использования jQuery состоит в том, что набрав всего

несколько строк кода можно выполнить большое количество сложных действий

с содержимым веб-страницы (в нашем случае – с учебным материалом) [8].

В рассматриваемом упражнении мы используем возможности jQuery для

того, чтобы визуализировать число оставшихся у испытуемого попыток. Связь

с файлом библиотеки устанавливается строкой в заголовке HTML-страницы:

<script type="text/javascript" src="jquery2.js"></script>

Как и в предыдущем примере, объявим следующей строкой переменную

counter, ее начальное значение будет равняться трем:

<script> var counter = 3; </script>

В интерфейсе поле ввода представлено тремя клетками, или более точ-

но – полями ввода типа checkbox, с индивидуальными идентификаторами:

box01, box02 и box03. Строка, содержащая количество оставшихся попыток,

т.е. значение переменной counter, разместим в контейнере после кнопки

«Проверить»:

<div><p>Попыток осталось: 3</p></div>

Первоначально контейнер пока не связан с переменной counter, это будет

сделано после первого вызова функции check(), которая содержит следующий

код:

1 англ. «write less, do more».

70

function check() {

counter--;

if (counter < 0) { alert('Больше не осталось попыток.') }

else {

$('div p').text("Попыток осталось: " + counter);

if ((document.getElementById("box01").checked == true) && (docu-

ment.getElementById("box02").checked == true) && (docu-

ment.getElementById("box03").checked == false)) {

if (counter == 2) { alert('Правильно! Вы получаете 100 баллов.')

}

else if (counter == 1) { alert('Правильно! Вы получаете 50 бал-

лов.') }

else if (counter == 0) { alert('Правильно! Вы получаете 30 бал-

лов.') }

}

else {alert('К сожалению, пока неверно\nРекомендую повторить Лек-

цию 3, Раздел 2.')}

}

};

При нажатии кнопки «Проверить» переменная counter сразу уменьшается

на единицу, дальше происходит проверка ее значения, а остальные действия

выполняются только если число попыток не является отрицательным. Это со-

гласуется с требованием вывести оповещение об исчерпании всех попыток и

завершить работу с упражнением. Если переменная counter больше либо равна

нулю, то происходит реакция на ответ, введенный испытуемым. Визуализиро-

ванное количество попыток изменяется на соответствующее, например на «2»

после первого нажатия на кнопку «Проверить». Это делается при помощи ме-

тода text() библиотеки jQuery. Аналогичная процедура только средствами

JavaScript была бы более громоздкой, что противоречит выбранному нами пути

71

составления элементарных программ. Далее, в зависимости от номера попытки,

студент получает балл за правильный ответ: с первой попытки – 100 баллов, со

второй – 50 баллов, с третьей – 30 баллов. Четвертая и последующие попытки

исключаются. При вводе неверного ответа на экран выводится подсказка. Про-

грамма занимает 1073 символа (см. Программу JS_004).

Реализуем то же самое упражнение на Python. Подобно алгоритму про-

граммы на JavaScript, программа будет содержать часть, строящую графиче-

ский интерфейс, и функцию проверки. Визуализация оставшихся попыток

осуществляется при помощи еще одного виджета Label, текст которого обнов-

ляется при каждом нажатии на кнопку «Проверить». Можно заметить, что

объем программы на Python увеличивается за счет того, что каждый элемент

графического интерфейса (виджет) приходится прописывать дважды. Первый

раз для того, чтобы создать переменную объекта и прописать его свойства, а

второй раз – для того, чтобы визуализировать его, т.е. поместить в нужное ме-

сто окна root, например:

lab_counter = Label(root, text="Попыток осталось: %s" % str(counter))

lab_counter.grid(row=6, column=0, sticky=W)

Кроме того, все атрибуты объектов прописаны целыми словами на англий-

ском языке: row, column, sticky, text, variable, master, width и т.д. С одной сторо-

ны, это удлиняет программу, с другой – является одной из главных особенно-

стей языка программирования Python, т.к. именно за счет этого создается хо-

рошо читаемый глазами код. Программа состоит из 1523 символов (см. Про-

грамму Py_004). Она почти в полтора раза больше, чем ее аналог на JavaScript.

Отсюда можно заключить, что на данном этапе, когда программы еще очень

просты, JavaScript лидирует по параметру «количество кода». Это наблюдение,

конечно, не говорит о том, что JavaScript превосходит Python по удобству и

функциональности, но бесспорно демонстрирует его сильные стороны и за-

ставляет думать о нем как о полноценном программном средстве для разработ-

чика программ для ЭВМ учебного назначения.

72

На практике, любые программы, даже самые легкие, рекомендуется снаб-

жать подробными комментариями. Несмотря на то, что это увеличивает объем

программы до двух и более раз, комментарии являются еще одним инструмен-

том, позволяющим быстро понять содержание программы и назначение тех или

иных строк кода. Количество комментариев никак не влияет на скорость рабо-

ты программы, поскольку все строки, которые начинаются с символов «##»

(или просто «#») игнорируются интерпретатором (см. Программу Py_004c).

До сих пор мы работали только с одним видом представления информа-

ции – текстовым. Рассмотрим работу с такими распространенными в педаго-

гической практике явлениями как картинка и звук1. Для нашего дальнейшего

изложения очень важно установить, насколько изменяется структура про-

граммы и ее объем при использовании не только текста, но и иллюстратив-

ного и звукового материала.

При работе с картинкой и звуком или, другими словами, – с графическими

и звуковыми файлами, необходимо помнить о соблюдении авторских прав. Для

того, чтобы избежать многих сложностей правового порядка (особенно если

материалы предназначены для коммерческого использования) мы рекомендуем

использовать в создаваемых электронных учебных материалах собственноруч-

но изготовленные цифровые фотографии и аудиофайлы. Фотографии и аудио

записи достаточно хорошего качества при сегодняшнем развитии техники

можно сделать даже мобильным телефоном.

Рассмотрим возможности внедрения картинки в HTML-страницу. Для это-

го существуют специальный одинарный тэг <img>, в атрибуте src которого

прописывается место расположения графического файла. Поддерживаются

форматы .gif, .jpeg, .png. Для того, чтобы картинка изображалась правильно,

1 Мы намеренно выпускаем из своего поля зрения видеозаписи, виду того, что помещение

видеороликов в электронные учебные материалы связано со сложной процедурой, касаю-

щейся области авторского права, если речь не идет о материалах записанных специально для

учебника или учебного пособия самими авторами.

73

следует сразу придать ей нужный размер. Это можно сделать в самых простых

редакторах, например в стандартном редакторе операционной системы

Windows Paint. По умолчанию браузер будет изображать картинку в масштабе

1:1, т.е. в ее реальном размере. Получается, что для добавления картинки в

электронное упражнение, достаточно одной строки кода, например:

<img src="image.png">

Средства модуля tkinter также позволяют работать с изображениями из

графических файлов. Единственным ограничением является формат (поддер-

живаются файлы .gif). Создание объекта картинки, его запись в объект Label и

размещение объекта Label (содержащего эту картинку) на экране занимает три

строки кода, например:

img = PhotoImage(file = "image.gif")

label = Label(root, image = img)

label.pack()

Пример элементарной программы на Python, содержащей картинку и под-

пись под ней, приведен в Приложении (см. Программу Py_005).

Из рассмотренного можно заключить, что разница между HTML/JavaScript

и Python в представлении графической статической информации несуществен-

на, и оба языка программирования позволяют легко размещать картинку (с не-

которыми ограничениями по формату) в графическом интерфейсе пользовате-

ля. Что касается аудиофайлов, то тут ситуация обстоит несколько иначе. Это

проиллюстрирует последующее изложение.

Рассмотрим возможности HTML/JavaScript в отношении управляемого

воспроизведения звуковых файлов. Под управляемым воспроизведением мы

понимаем возможность хотя бы инициализировать воспроизведение звука по-

средством какого-либо действия, например нажатия на кнопку. Для этого нам

даже не придется задействовать JavaScript, так как в HTML5 заложен парный

тэг <audio></audio>, активирующий в браузере аудиоплеер, который не только

проигрывает указанный в тэге аудиофайл, но и позволяет управлять его вос-

74

произведением, т.е. строит графический интерфейс с кнопками воспроизведе-

ния, паузы и слайдером регулировки громкости. Строка с таким кодом выгля-

дит следующим образом:

<audio src="sound.wav" controls>

Атрибут controls активирует панель управления воспроизведением (см.

Программу JS_005).

Для создания аналогичной программы в Python необходимо импортиро-

вать дополнительные модули. Одним из модулей, позволяющим проигрывать

аудиофайлы является winsound. Сразу оговоримся, что он работает только в

операционной системе Windows и только с форматом .wav. Его преимущество

состоит в том, что он является стандартным и поставляется в комплекте с уста-

новочным пакетом Python (как и модуль tkinter). Winsound позволяет проиграть

аудиофайл без возможности паузы, для начала произведения нужно написать

соответствующую функцию, которая будет инициализирована нажатием кноп-

ки (см. Программу Py_006).

На Python можно написать и полноценный аудиоплеер с элементами

управления, но для этого придется использовать внешние дополнительные мо-

дули, например модули из коллекции pygame [90]. Мы же будем и дальше при-

держиваться выбранных стандартных модулей, оставаясь в русле элементарных

программ для ЭВМ.

Можно сделать вывод, что если включение картинки в интерфейс про-

грамм на JavaScript и Python в равной степени удобно, то с воспроизведением

аудиофайлов ситуация обстоит несколько по-другому. HTML5 предлагает ми-

нималистичное и удобное решение с интегрированным аудиоплеером, в то вре-

мя как на Python нужно самостоятельно полностью выстраивать интерфейс. И

все же, несмотря на эти отличия, главный итог сравнения заключается в том,

что оба языка программирования доказывают свою высокую эффективность

для создания элементарных программ для ЭВМ учебного назначения с исполь-

75

зованием в рамках одного графического интерфейса текстовой информации,

картинки и звука.

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

и остановимся на проблеме размера программ на HTML/JavaScript и Python.

Все рассмотренные примеры показывают, что при равной функциональности

программы на Python являются все-таки более объемными. В пределах одного

электронного упражнения эта разница является незначительной, но если речь

идет о создании больших комплексов упражнений, разница в количестве кода

может оказаться существенной.

Чтобы прояснить ситуацию, нам кажется уместным продемонстрировать

еще одну «сильную» сторону языка программирования Python, а именно – соз-

дание классов. Составляя комплексы упражнений на JavaScript нам придется

увеличивать код пропорционально количеству создаваемых упражнений. Для

построения графического интерфейса придется писать HTML-код и создавать

для него отдельную функцию JavaScript. Другими словами, если одно упражне-

ние содержит 1000 символов, то два упражнения будут содержать около 2000

символов и т.д.

Для того, чтобы создать цепочку из нескольких упражнений на Python

можно создать класс для этого типа упражнений, а затем инициировать его

функции столько раз, сколько нужно. Обратимся к примеру. В файле

classexercise.py (Программа classexercise Приложения) мы создали класс под

названием Exercise(). Внутри этого класса находятся две функции:

exRadioThree(...)1 и check(). Это не что иное как упражнение типа «один из мно-

гих» одного из предыдущих примеров (см. Программу Py_003). Функция

exRadioThree(...) содержит аргументы, которые задают параметры упражнения:

intro – формулировка задания, question – вопрос, text1 – первый вариант ответа,

1 Многоточие внутри скобок означает, что у функции есть аргументы.

76

text2 – второй вариант ответа, text3 – третий вариант ответа, key – правильный

вариант ответа, hint – текст подсказки ().

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

бую другую программу с помощью одной строки: import classexercise. В каче-

стве примера, доказывающего удобство работы с классами, создадим цепочку

из двух упражнений типа «один из многих». Помещая в функцию

exRadioThree(...) различные аргументы, вернее – придавая аргументам функции

exRadioThree(...) различные значения, мы наполним упражнения нужным нам

материалом (см. Программу Py_007). При этом каждое очередное упражнение

будет помещаться всего в двух строках кода, что и доказывает преимущество

такого решения при поставленной задаче – создавать элементарные программы,

в том числе и по параметру «количество кода». Таким же образом мы использу-

ем модуль tkinter, в котором заранее были созданы виджеты Label, Button,

Radiobutton и др. В наших программах мы просто «вызываем» соответствую-

щие функции, которые могут быть очень сложны и объемны, но мы даже не за-

мечаем этого, потому что используем их как готовые объекты. Использование

готовых классов характерно и для JavaScript (пример библиотеки jQuery), но

такая практика вряд ли впишется в концепцию создания элементарных про-

грамм для ЭВМ. В нашей работе мы ограничимся использованием библиотеки

jQuery, инструментов которой, по нашему мнению, более чем достаточно для

написания программ учебного назначения. В то же время создание универсаль-

ного класса в Python практически не отличается от написания отдельной про-

граммы (для этого можно построчно сравнить Программы Py_003 и

classexercise в Приложении). Мы и далее будем использовать только макси-

мально простые и «прозрачные» решения на выбранных нами языках програм-

мирования, поскольку (подчеркнем в очередной раз!) наш читатель – препода-

ватель иностранного языка, а не профессиональный программист.

77

Мы рассмотрели реализацию упражнений типа «да/нет», «один из многих»

и «несколько из многих» по характеру ожидаемого ответа. Все упражнения

включали маркирование как способ выполнения задания. Рассмотрим далее

еще один вариант упражнений простого типа, предусматривающий заполнение

пропусков, т.е. помещение текста в окна и поля ввода.

В практике преподавания иностранного языка упражнения на заполнение

пропусков имеют широчайшее распространение. В отличие от маркирования

этот тип упражнений является несколько менее формализованным, т.к. требу-

ет не выбрать (иногда просто «угадать»), а достроить конструкцию исходя из

имеющихся знаний языка. Впрочем, заполнение пропусков можно свести к

очень формальной работе, поэтому следует различать внутри этого типа на-

стоящие открытые задания и псевдооткрытые, фактически сведенные до того

же выбора из нескольких вариантов. Приведем примеры таких полярных реа-

лизаций.

1. Определите род указанных немецких существительных, для этого в по-

лях ввода поставьте m для мужского рода, f для женского рода и n для среднего

рода:

Mann ___

Frau ___

Kind ___.

2. Дополните высказывание на немецком языке подходящими по смыслу

глаголами в настоящем времени:

Wenn ich dieses Museum _______, _______ ich mich immer an meine Kind-

heit.1

Первое упражнение лишь формально является упражнением на пропуски.

Фактически – это реализация выбора одного из трех вариантов. Если поставить

1 Один из предполагаемых правильных вариантов: Wenn ich dieses Museum besuche, erinnere

ich mich an meine Kindheit.

78

во всех пропусках один и тот же вариант, то задание уже можно считать вы-

полненным на 33,3 %. Даже если усложнить упражнение и привести в нем сло-

ва только одного грамматического рода или только двух родов, то все равно ос-

танется шанс угадать верный ответ.

Во втором упражнении требуется ввести глаголы в настоящем времени,

причем их нужно согласовать с подлежащим (а для этого нужно сначала найти

подлежащее). Упражнение составлено так, что возможны несколько вариантов

правильных ответов, например, на месте первого глагола могут стоять besuchen

или sehen, чтобы определить второй глагол, нужно проследить его управление

(an A). Угадать здесь уже невозможно.

Для преподавателя иностранного языка ценными являются и первое, и

второе упражнение. Но поскольку мы разбираем возможности автоматизации,

посмотрим на них под несколько другим углом зрения. Первое упражнение уже

реализовано нами в примерах типа «один из многих» (рядом с каждым сущест-

вительным можно поместить три кнопки радио для каждого рода). Программ-

ную реализацию второго упражнения еще предстоит тщательным образом рас-

смотреть.

Между примером 1 и примером 2 можно выделить и промежуточное

звено – это упражнения, предусматривающие ввод текста (из предложенных

вариантов) в поля ответов, но в отличие от примера 1 текст может представ-

лять собой не один символ, а целые слова, словосочетания или даже закон-

ченные предложения. Такие упражнения носят характер имитационных, ко-

торые часто используются при аудировании, с той лишь разницей, что ими-

тация заключается не в произнесении, а в написании. Начнем работу с имен-

но такого упражнения, оно будет характеризоваться как:

«один из многих» (по характеру ожидаемого ответа);

содержащее только текст (по видам представления информации);

ввод текста в поле (по форме реализации);

простое (по сложности исполнения).

79

Приведем его исходные параметры, оно должно:

иметь графический интерфейс;

содержать формулировку задания;

содержать поля ввода ответа;

иметь кнопку, инициализирующую процедуру проверки;

содержать строку, в которой даются варианты ответов;

сообщать об успешности решения задания.

Для работы с введенной в поля ответов текстовой информацией нужно

уметь оперировать с данными типа string (строки). Этот тип данных заложен по

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

Начнем с JavaScript. Окна ввода ответа создаются с помощью одинарного тэ-

га <input> с атрибутами size (размер окна) и maxlength (максимальное количество

вмещающихся символов). Мы создадим два поля ввода. Функция JavaScript в этом

примере построена немного по-другому. Во-первых, JavaScript оперирует стиля-

ми, которые указаны в заголовке HTML-страницы внутри парного тэга <style>.

Всего задано два стиля: для покраски фона поля ввода в зеленый и красный цвета,

в зависимости от правильности/неправильности ответа. Правильные ответы со-

держатся в массиве arrRes, который состоит из двух элементов – по количеству

полей ввода. С помощью селектора jQuery $('input') и метода each() программа пе-

ребирает все окна ввода и проверяет, правильно ли они заполнены. При правиль-

ном ответе окно окрашивается в зеленый цвет, при неправильном – в красный.

Размер программы – 780 символов (см. Программу JS_006).

Перейдем к реализации на Python. Для создания окон ввода мы используем

виджет Entry, для текста поместим до и после окна ввода виджеты Label. Не-

много усложнит задачу размещение виджетов на экране, для этого мы восполь-

зуемся контейнером LabelFrame (три экземпляра), в котором разместятся пер-

вое предложение, второе предложение и строка вариантов ответов. Функция

проверки с помощью цикла for пошагово проверит соответствие двух массивов

80

(массив ответов и массив содержимого окон ввода) и в зависимости от резуль-

татов проверки покрасит окна в зеленый или красный цвет. Размер программы

без комментариев составит 966 символов (см. Программу Py_008).

Технически от этого упражнения до упражнения с открытым ответом (пре-

дусматривающим однозначное соответствие) всего один маленький шаг. Нужно

только убрать из интерфейса строку вариантов ответа. Но с точки зрения мето-

дики менять придется все содержимое, чтобы не получилось так, что упражне-

ние имеет сотни вариантов ответов. Например, можно составить упражнения на

подстановку форм артикля или окончаний прилагательных (для тех языков, в

которых эти явления имеют место). Отсюда можно заключить, что для такой

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

можно также в какой-то степени упражнения на орфографию и узнавание лек-

сических единиц (вырезаются по нескольку букв в каждом N-ном слове текста).

Приведем конкретные примеры.

Составим упражнение на достраивание небольшого немецкоязычного тек-

ста формами артикля и окончаниями прилагательных. Оно будет характеризо-

ваться как:

открытый ответ, предусматривающий однозначное соответствие;

содержащее только текст (по видам представления информации);

ввод текста в поле (по форме реализации);

простое (по сложности исполнения).

Приведем его исходные параметры, оно должно:

иметь графический интерфейс;

содержать формулировку задания;

содержать поля ввода ответа;

иметь кнопку, инициализирующую процедуру проверки;

содержать строку, в которой даются пояснения к выполнению задания;

сообщать об успешности решения задания.

81

В JavaScript используем для визуализации пояснений к выполнению зада-

ния всплывающую подсказку. При наведении указателя мыши на слово «Tipp»

подсказка появится на экране. Правильные ответы, также как и в предыдущем

примере, будут содержаться в массиве arrRes. Дополнительно мы разместили

рядом с кнопкой проверки кнопку сброса, которая активирует вторую функцию

JavaScript. Эта функция удаляет все из ячеек, включая цветовое оформление.

Продемонстрируем на этом примере прием, позволяющий улучшить каче-

ство программ и повысить их привлекательность в глазах студентов. Наш опыт

применения электронных учебных материалов показывает, что плохо проду-

манные программы, реагирующие некорректно даже на правильные решения,

могут существенно снизить мотивацию к изучению предмета в целом. Одним

из неприятных моментов, связанных с заполнением ячеек, может быть разница

между заглавными и строчными буквами. Конечно, студенты-старшекурсники

обязаны понимать разницу между большими и маленькими буквами, тем более,

что это может иметь смыслоразличительный признак. Но для только начинаю-

щих изучать иностранный язык и только привыкающих к работе с электронны-

ми учебниками можно сделать и некоторое послабление, например, признавать

ответ верным без учета регистра (например, ответ «en», «EN» и даже «En» бу-

дут считаться одинаково правильными). Для того, чтобы осуществить этот при-

ем на практике, нужно добавить в функцию проверки метод toLowerCase(). Та-

ким образом мы трансформируем все введенные в окна буквы в маленькие. Это

оптимальное решение, плохой альтернативой которому было бы создавать не-

сколько массивов с ответами. Теперь упражнение стало немного «снисходи-

тельней» к своему пользователю. Объем кода измеряется 1596 символами (см.

Программу JS_007).

На фоне примера на JavaScript ее аналог на Python получается опять не-

сколько громоздким – 2580 символов (см. Программу Py_009). Но помня об

удобстве легкого создания классов, мы не придадим этому значения. Интер-

фейс программы состоит из формулировки задания, двух кнопок (проверки и

82

очистки окон ввода). Предложения с пропусками и пояснения помещены в че-

тыре контейнера LabelFrame. Функции проверки и очистки – предельно просты.

Основной объем кода (который, впрочем, остается простым и очень понятным)

приходится на построение графического интерфейса. Трансформация введен-

ных символов к маленьким буквам осуществляется с помощью метода lower().

Здесь мы подходим к важному уточнению понятия элементарной про-

граммы для ЭВМ учебного назначения. Объем программы нисколько не влияет

на то, обозначим ли мы ее как элементарную или нет. Последние примеры на

JavaScript и Python показывают, что при увеличении предложений с пропуска-

ми в любом случае будет увеличиваться и программный код, строящий графи-

ческий интерфейс упражнений. И если даже предположить, что количество

элементов упражнения будет стремиться к бесконечности, то все равно мы бу-

дем причислять такие программы к элементарным, т.к. решающим для опреде-

ления является то, что программа, какой бы объемной она ни была, состоит из

элементарных компонентов – функций, классов или элементов интерфейса. В

дальнейшем, когда программы будут состоять из сотен, а может быть и тысяч

строк кода, это определение поможет нам оставаться в русле установленных

принципов, а читателю – успешно следить за изложением.

Следуя выбранной классификации, перейдем к рассмотрению упражнений,

требующих ответ, в котором должно присутствовать некоторое количество ин-

формации. Для достижения нужных результатов от программы требуется неко-

торая аналитическая работа, которая не может просто сводиться к сравнению

введенных в окна и заложенных в память (массив) ответов. Такие упражнения

не предназначены полностью для самостоятельной работы. Программными

средствами мы можем создать только фильтры, которые позволят преподавате-

лю (или тьютору) внимательно проверять только те работы, которые отвечают

заданным в программе критериям (например, критерию объема). Студенту это

83

позволит понять, что еще можно улучшить перед сдачей работы на окончатель-

ную проверку.

Одним из самых простых случаев такого упражнения является проверка

объема текста, например, короткого письменного доклада, реферата, эссе и т.п.

Как правило многие студенты-лингвисты довольно неплохо составляют тексты

на заданную тему в целом, но только единицы умеют создать текст строгого

объема и с заданной структурой.

Составим требования к электронному упражнению, которое помогло бы

студенту написать структурированный текст заданного объема, оно должно:

иметь графический интерфейс;

содержать формулировку задания;

содержать пояснения к выполнению задания;

содержать поля ввода ответа;

содержать кнопку, инициализирующую процедуру проверки;

содержать окна, в которых ведется подсчет количества символов в по-

лях ввода.

Для построения графического интерфейса в HTML существует парный тэг

<textarea></textarea> с нужными нам атрибутами cols (количество колонок в

символах), rows (количество строк в символах) и maxlength (максимальное ко-

личество символов). Последний атрибут имеет для нас особую ценность, т.к.

фактически наполовину решает поставленную задачу. Рядом с полями ввода,

внизу справа, разместим окна, в которые функция JavaScript будет помещать

количество введенных символов. Функция активируется нажатием кнопки

«Check length». В качестве дополнительной подсказки в полях ввода по умол-

чанию дублируются количественные критерии задания.

Функция JavaScript, выводящая на экран длину введенного текста, по-

строена с помощью библиотеки jQuery. Вначале создается массив length для

хранения количества введенных символов и переменная i как индекс для эле-

84

ментов этого массива. Внутри функции check_l() имеются две функции. Первая

перебирает все поля ввода <textarea></textarea> и записывает введенный в них

текст в массив length. Вторая перебирает все окна <input> и записывает в них

количество символов текста их соответствующих элементов массива length.

Программа состоит из 1070 символов (см. Программу JS_008).

Существует техническая возможность активировать функцию check_l()

всякий раз при изменении текста в любом из полей ввода. Однако такое реше-

ние, каким бы красивым в техническом плане оно не казалось, было нами от-

вергнуто по соображениям методического характера, ведь дополнительные

действия на экране (в данном случае – постоянно меняющиеся числа) отвлекли

бы учащегося от самого главного – написания хорошего текста на заданную

тему.

Очень часто при создании электронных учебных материалов составители

стараются сделать их технически как можно более сложными, заполняя графи-

ческий интерфейс пользователя ненужными красочными деталями, которые

рассеивают внимание и отвлекают от занятий. Мы придерживаемся принципа

экономии в оформлении, что не означает полного отказа от цветового оформле-

ния или более развитой интеракции, чем пока приводится в наших примерах.

Но представьте себе бумажный учебник по математике, в оформлении которого

использовано несколько десятков замысловатых шрифтов и столько же цветов

для выделения формул и графиков. Работать с таким учебником будет просто

невозможно. Вообще, следует относится к дизайну учебных материалов как от-

дельной области исследования, только очень косвенно связанной с дизайном

рекламных плакатов или веб-сайтов. Немного позже, при рассмотрении ком-

плексов упражнений и электронных учебных пособий, мы предложим некото-

рые варианты цветового оформления. Пока же важно подчеркнуть, что кажу-

щаяся «серость» внешнего вида наших примеров является не недостатком язы-

ков программирования, но особенностью изложения, в котором мы пока что не

фокусируемся на цветовых решениях.

85

Вернемся к реализации поставленной задачи, уже на языке программиро-

вания Python. Для создания полей ввода задействуем виджет Text с атрибутами

width и height для указания соответственно ширины и высоты в символах. Да-

лее создадим три массива: ent – для полей ввода, length – для окон длины текста

и criteria – для хранения заданных критериев допустимой длины. Элементы

графического интерфейса пользователя выстраиваются при помощи метода

grid(). Сама функция минималистична. В отличие от программы на JavaScript

написать в поля ввода больше символов, чем разрешено в задании можно, но в

этом случае при нажатии на кнопку проверки число окрасится в красный цвет,

предупреждая о расхождении параметров. Размер программы – 1602 символа

(см. Программу Py_010).

Обе рассмотренные реализации упражнения можно технически улучшить в

соответствии с возможностями JavaScript и Python. Предположим, что студент

написал текст о городе Оксфорд. Теперь нужно «собрать» его (поскольку он

разбит на три поля ввода графического интерфейса программ) и отправить пре-

подавателю или тьютору на проверку, а может быть распечатать и сдать препо-

давателю на очном занятии. Можно скопировать его по частям в текстовый

файл и сохранить или просто распечатать, но это связано со множеством до-

полнительных действий, которые можно рассматривать и как неудобства, кото-

рые, как мы уже отмечали выше, могут сказаться не только на отношении к

электронным учебным материалам, но и на мотивации к учебному предмету в

целом. Задача составителя электронных учебных материалов – создавать про-

дукты максимально высокого качества, вызывающие только положительные

эмоции у пользователей. (В принципе, к этому стремятся производители любо-

го качественного программного обеспечения).

Изменим две последние программы, добавив в них возможность придать

составленному студентом тексту законченный оформленный вид. И JavaScript,

и Python эта задача по силам. Начнем, как всегда, с JavaScript.

86

Как мы уже отмечали, JavaScript не работает с файлами. Все, что может

быть с его помощью создано, располагается в пределах веб-страницы. Поэтому

мы ограничены пределами графического интерфейса, в котором находится само

упражнение. Работая в браузере Google Chrome мы имеем возможность сохра-

нить веб-страницу в формате .pdf или вывести ее на печать. Поставим себе за-

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

временно убирая все остальное с экрана. Информацию о количестве символов в

каждой части и общее количество символов в тексте надо оставить, представив

ее в удобном для проверяющего виде. Также уместно будет поместить на экран

данные студента, выполнившего работу (например, ФИО, адрес электронной

почты и номер учебной группы).

Для выполения поставленной задачи мы воспользуемся возможностью

библиотеки jQuery менять содержимое веб-страниц. Для этого нужно создать

пустой контейнер с уникальным идентификатором, например <div

id="new"></div>, в который jQuery поместит информацию в нужном нам виде.

В другой контейнер поместим то содержимое, которое будет скрыто при нажа-

тии кнопки «Submit», в нашем случае – все, включая сами кнопки «Check

length» и «Submit». После контейнера old добавим контейнер data с тремя окна-

ми ввода для ФИО, адреса электронной почты и номера учебной группы сту-

дента. Таким образом весь код тела программы окажется распределенным меж-

ду тремя контейнерами: old, data и new.

Функция submitAll() получается достаточно компактной. Для того, чтобы

студент не забыл ввести данные о себе, в начале функции проверяется, есть ли

информация в окнах контейнера data. Если хотя бы одно окно не заполнено, то

обработка информации не происходит, вместо этого выводится предупрежде-

ние: «Please fill in all data fields!».

Если проверка дает положительный результат, функция скрывает пооче-

редно контейнеры old и data, а затем с помощью метода append() заполняет пус-

той контейнер new данными о студенте и составленным текстом. Для еще

87

большего удобства на экране появляется кнопка, активирующая процедуру пе-

чати. Объем программы увеличился практически вдвое и составил 2301 символ

(см. Программу JS_008m), однако внесенные модификации существенно улуч-

шили ее функциональность.

Несмотря на усовершенствования, программа JS_008m все-таки имеет и

существенный недостаток: после того как нажата кнопка «Submit» внести кор-

рективы в текст уже невозможно. Единственным вариантом остается копиро-

вать вручную с экрана текст в какой-нибудь редактор (например, Word), изме-

нять его там и сохранять в виде файла. Все эти действия полностью дискреди-

тируют идею автоматического формирования ответа программой. Положение

можно исправить, добавив еще одну кнопку в интерфейс, формируемый функ-

цией submitAll():

$('#new').append('<p><button onClick="back()">Back</button></p>');

Кнопка «Back» активирует функцию back(), которая опять делает контей-

неры old и data видимыми:

function back() {

$('#old').removeAttr('style');

$('#data').removeAttr('style');

}

Тем самым мы снова получим возможность изменить содержимое полей

ввода, но при повторном нажатии кнопки «Submit» обнаружится, что новая

версия не заменила старую, а просто дополнительно добавилась, т.к. метод

append() просто добавляет в контейнер new наш новый вариант (см. Программу

JS_008m2). С одной стороны, это лишняя информация, с другой – возможность

увидеть «версии» работы, что тоже может иметь методическую ценность. В

любом случае, мы видим, что JavaScript – при всех достоинствах – имеет и ог-

раничения. Это объясняется тем, что обычно в веб-программировании

JavaScript мало используется локально. Если бы рассматриваемое нами упраж-

нение было размещено на сервере, то при нажатии кнопки «Submit» ответ ис-

88

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

но языков программирования, а затем формировал бы ответ отдельно для сту-

дента и отдельно для преподавателя.

Поскольку в нашей работе мы ограничили выбранные языки программи-

рования локальным применением, попробуем устраним этот недостаток с по-

мощью jQuery. Добавим в конец функции back() две строки:

$('#new').remove();

$('body').append('<div id="new"></div>');

Первая строка полностью удалит контейнер new с предыдущим вариантом

ответа, а вторая строка создаст заново такой контейнер, чтобы при очередном

нажатии кнопки «Submit» функция submitAll() смогла использовать его для за-

писи нового результата. Теперь задачу можно считать решенной, что доказыва-

ет мощность JavaScript как языка программирования даже в локальном исполь-

зовании: у нас в запасе сразу два варианта электронного упражнения, которые

позволяют сохранять версии работы или замещают старую версию новой.

Приступим к решению поставленной задачи на Python. Данный пример по-

зволяет продемонстрировать возможность Python работать с файлами. Сделаем

так, чтобы при нажатии кнопки «Submit» программа формировала отдельный

файл, в котором также как и в реализации на JavaScript содержались данные об

исполнителе, составленный текст и его количественные характеристики. Также

рассмотрим варианты возможности сохранения версий работы.

Программа импортирует три дополнительных модуля: io – для работы с

файлами, time – для получения текущего времени и tkinter.messagebox – для вы-

вода на экран окна предупреждения (некоторый аналог команды alert() в

JavaScript).

В отличии от программы Py_010 в рассматриваемой модификации добави-

лась функция submitAll(), которая выполняет ряд простых операций:

1) инициализирует функцию check_l() для того, чтобы заполнить массив

length параметрами длины текста в полях ввода;

89

2) проверяет текст в полях ввода на соответствие критериям;

3) при несоответствии критериям выводит на экран окно предупреждения

и прекращает работу;

4) при соответствии критериям проверяет, заполнены ли личные данные,

т.е. есть ли в каждом поле личных данных какие-либо символы;

5) формирует имя файла для преподавателя из первого слова поля ввода

«ФИО» и номера учебной группы;

6) создает новый файл с указанным в п. 5 именем, причем атрибут «w»

(write) указывает на то, что даже если файл с таким именем уже существовал,

он будет создан заново; для добавления информации в уже имеющийся файл

без уничтожения его содержимого используется атрибут «a» (append);

7) записывает в новый / уже имеющийся файл личные данные учащегося,

текущее время, все части текста с заголовком, параметры объема частей в сим-

волах (см. Содержание файла Иванов45.txt);

8) закрывает файл.

Программа состоит из 3788 символов (см. Программу Py_010m). Сформи-

рованный файл .txt может быть отправлен на проверку преподавателю. Python

имеет возможность создавать текстовые файлы не только формата .txt, но и .doc

(и при необходимости выбор этого параметра можно предусмотреть отдельно).

Мы продемонстрировали одну из «сильных» сторон языка программиро-

вания Python – возможность работы с файловой системой, в частности – очень

легко создавать текстовые файлы и изменять их содержимое. Это можно ис-

пользовать в будущем для создания небольших баз данных, а также для анализа

и обработки различных текстов.

Написанные нами программы можно усовершенствовать и дальше, напри-

мер, ввести параметры ограничения текста не только по верхней, но и по ниж-

ней границе, или предусмотреть запись версий в разные файлы – выбор опций

ограничен только пределами фантазии разработчика.

90

Следующее упражнение, требующее от студента ответа, содержащего оп-

ределенные языковые единицы, является типичным для составления письмен-

ных текстов с заданными заранее параметрами. В качестве заданных заранее

параметров здесь выступают определенные лексические единицы или грамма-

тические явления.

Технически самый простой вариант таких элементов – это служебные сло-

ва, например, предлоги для немецкого языка. Сформулируем технические па-

раметры для электронного упражнения этого типа, оно должно:

иметь графический интерфейс;

содержать формулировку задания;

содержать техническую инструкцию для студента (как технически пра-

вильно выполнять упражнение);

содержать поле ввода ответа в виде текста;

содержать окна, в которых ведется подсчет количества символов в по-

лях ввода;

иметь кнопку, инициализирующую процедуру проверки;

выводить информацию об успешности решения задания;

выводить сообщение в случае неверного ответа;

иметь поля для записи личных данных испытуемого;

формировать файл .txt с текстом, удовлетворяющим критериям.

Составим формулировку задания:

Beschreiben Sie Ihr Zimmer. Verwenden Sie dabei folgende Präpositionen: auf, über,

in, an.

Ihr Text soll 200-250 Symbole enthalten.

Цель технической инструкции – объяснить, как правильно записать текст,

например (приведем ее на русском языке):

91

При написании текста используйте немецкую раскладку клавиатуры

(правильно пишите буквы ä, ü, ö, ß). Не ставьте пробелы перед знаками

препинания.

Старайтесь избегать длинных предложений со сложной пунктуацией.

Подробная инструкция позволит исключить неправильный анализ текста,

который будет проводить программа. Умлаутам и ß уделено повышенное вни-

мание, т.к. некоторые учащиеся заменяют их на письме сочетаниями типа «ue»,

«ae», «oe», «ss» что в принципе было допустимо по необходимости на старых

печатных машинках, но при сегодняшнем уровне развития техники уже не яв-

ляется проблемой. Также в текстах студентов по невнимательности появляются

лишние пробелы или дублирование знаков препинания. Два и более пробела

между словами не являются препятствием для компьютерного анализа, но про-

бел перед точкой или запятой критичен.

Предположим, что учащийся составил следующий текст:

In meinem Zimmer stehen an jedem Fenster bequeme grüne Sessel. Über den

Fenstern hängen helle Lampen. Auf dem großen schwarzen Schreibtisch aus

Holz liegen verschiedene Bücher. Ich mache das erste Buch auf und lese.

Посчитать количество символов в тексте достаточно легко – это было сде-

лано в предыдущем примере. Новый шаг – это проведение анализа на выявле-

ние предлогов. При этом важно отличить предлоги от других похожих буквен-

ных сочетаний (например, отделяемых приставок). Всю заранее заданную про-

грамме информацию удобно хранить в массивах. Создадим несколько масси-

вов: prep – для хранения предлогов; words – для хранения всех слов текста;

exception – для хранения союзов. Последний массив выделен для того, чтобы

провести процедуру сортировки предлогов от отделяемых приставок. Если за

словом, похожим на предлог, будет следовать союз (как в последнем предло-

жении Ich mache das erste Buch auf und lese.), то слово будет идентифицировано

как приставка, т.к. употребление предлога с такой позиции невозможно. В обо-

их языках программирования анализ текста начнется с разбивки текста на от-

92

дельные слова. Критерием для выделения слова являются пробелы. Знаки пре-

пинания будут прибавляться к слову и считаться его составляющими. И это

очень удобно, т.к. сразу поможет исключить еще больше отделяемых приставок

(ведь после предлога не может стоять знак препинания).

Начнем с реализации на JavaScript. Графический интерфейс в некоторой

степени повторяет интерфейс предыдущей программы, с той лишь разницей,

что техническая инструкция реализована в виде всплывающей подсказки. Это

«разгружает» интерфейс и фокусирует внимание на задании.

Количество функций увеличилось до пяти, т.к. для анализа текста понадо-

билось произвести дополнительные проверки. Функция check_l() пополнилась

проверкой объема текста по нижней границе. При неудовлетворительном ре-

зультате индекс количества символов окрашивается в красный цвет.

Функция isInArray(element, array) позволяет проверить, содержится ли за-

данный элемент в данном массиве. Поскольку такая проверка будет встречаться

не один раз, то уместно далее вызывать для этой цели функцию с двумя аргу-

ментами, а не печатать снова и снова большое количество кода.

Функция check_pre() производит анализ текста на наличие предлогов, от-

деляя их от прочих похожих случаев (отделяемых приставок). Замечательно,

что объем кода функции не увеличится при увеличении проверяемого текста и

количества предлогов. Анализируемая информация поступает из массивов

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

ется на отдельные слова и тоже помещается в массив. Перед проверкой слова из

текста приводятся к написанию с маленькой буквы, чтобы программа фиксиро-

вала предлоги, которые начинают предложение (Auf dem großen schwarzen

Schreibtisch). Компактности функции также способствует применение предва-

рительно заготовленной функции isInArray(...). В случае применения всех ука-

занных в задании предлогов возвращается значение true.

Функция submitAll() не только формирует новый интерфейс, скрывая и по-

казывая контейнеры, но и производит трехступенчатую проверку готовности

93

работы. На первой ступени проверяется соответствие текста критерию объема,

на второй ступени фиксируется факт использования всех предлогов, на третьей

ступени проверяется, введена ли личная информация. При успешном прохож-

дении всей проверки функция формирует интерфейс для преподавателя. Объем

программы составляет 3155 символов (см. Программу JS_009).

Перейдем к реализации на Python. Функция check_pre() будет в целом

идентична аналогу на JavaScript, функция submitAll() также содержит трехсту-

пенчатую проверку, а затем – в случае успеха – формирует файл. Нововведени-

ем можно считать оповещение пользователя о создании файла. Программа со-

стоит из 3690 символов. В этой связи стоит подчеркнуть достаточно небольшой

разрыв в объеме программ на JavaScript и Python, что говорит в данном случае

о преимуществе синтаксической структуры последнего. Удобство проверки на-

личия элемента в массиве говорит в пользу Python, в то время как в JavaScript

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

isInArray(...).

Пример проведенного анализа текста с помощью элементарных программ

показывает, что автоматизации доступны и упражнения с открытым ответом.

Программы для ЭВМ служат очень хорошим фильтром, который позволяет ис-

ключить из проверки большое количество ответов, руководствуясь набором

формальных критериев. К тому же, программы оказывают и обучающий эф-

фект, «подсказывая» студенту, что еще можно улучшить в своей работе. Одно

это экономит большой объем времени преподавателя, даже при условии, что он

сам будет создавать такие компьютерные программы.

Важной методической задачей при обучении тому или иному иностранно-

му языку видится анализ языковых явлений с целью определения, какие фор-

мальные критерии можно выделить, чтобы на их базе строить эффективные и

интересные электронные упражнения.

В этом разделе нам осталось рассмотреть возможность автоматизации еще

одного выделенного нами типа упражнений – предусматривающее объяснение

94

хода решения. На первый взгляд такие упражнения (или задачи) относятся к

области точных наук, но они востребованы и в гуманитарной сфере, в частно-

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

позволяют преподавателю оценить, насколько сознательно выполнено задание.

Запись алгоритма решения развивает у студента способность к анализу своих

действий, умение формулировать мысль, осмысленно и точно употреблять тер-

мины. Такой вид деятельности сходен с упражнениями во время очного заня-

тия, когда преподаватель просит студента прокомментировать выбор той или

иной лексической единицы или грамматического явления.

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

го предлога, первая часть которого представляет собой заполнение пропусков, а

вторая – требует открытого ответа в качестве коммментария.

При изучении предлогов важно, чтобы учащийся не просто запоминал

примеры употреблений или, что много хуже, словарный перевод предлога, но

представлял пространство так же, как и носитель языка. Соответствия не обяза-

тельно должны быть однозначными. Чем шире свобода выбора, тем интереснее

может быть комментарий студента. Например, при описании комнаты, к кото-

рому мы уже обращались в наших примерах, какая-то вещь может находиться

внутри шкафа, под шкафом, на шкафу или за ним; газета может лежать под

столом, на столе или в нем, и таких примеров (от примитивных до сложных)

можно привести большое множество.

Интерфейс упражнения будет содержать формулировку задания, поясне-

ние, техническую инструкцию, контекст с пропусками, поля ввода комментария

и личных данных и кнопки управления. От программы мы потребуем проверки

правильности заполнения пропусков (для простоты примера ситуацией преду-

смотрен единственно правильный вариант), проверку критериев длины ком-

ментария и формирование интерфейса / файла ответа.

В программе на JavaScript мы воспользуемся уже готовыми наработками

из предыдущих примеров, руководствуях принципом составления программ из

95

элементарных компонентов. Таким образом мы построим функцию проверки

правильности заполнения пропусков (два предлога), предусмотрев для ее акти-

вации отдельную кнопку. Также в упражнении будет присутствовать кнопка

проверки длины комментария и кнопка формирования интерфейса ответа.

Функция submitAll() перед формированием интерфейса ответа проводит

трехступенчатую проверку: длины комментария, ввода правильных предлогов

и заполнения всех личных данных. Объем программы – 3159 символов (см.

Программу JS_010).

Реализация на Python сходна по структуре. В контейнере lab_fr размещает-

ся предложение с пропущенными предлогами и кнопка проверки. Далее следу-

ет поле ввода комментария, кнопки проверки длины и формирования файла от-

вета, а также окна ввода личных данных.

Функция check_pre() уже знакома нам из Программы Py_008, но дополнена

тем, что возвращает значение true или false в зависимости от того, выполнено

ли все задание. Функция submitAll() также проводит трехступенчатую проверку

и формирует файл ответа. При успешной записи файла выводится сообщение

«Gut gemacht!». Объем программы – 4071 символ (см. Программу Py_012).

Мы рассмотрели все типы электронных упражнений, предложенной нами

классификации, приведя по одному образцу кода реализации для

HTML5/JavaScript и Python – объемом от нескольких сотен до нескольких ты-

сяч символов. С нашей точки зрения это доказывает, что оба языка программи-

рования подходят для написания элементарных программ для ЭВМ учебного

назначения, которые можно успешно составлять не будучи профессиональным

программистом по прохождении курса повышения квалификации, в том числе

и дистанционно.

Проанализируем составленные нами примеры программ, чтобы выделить

основные элементы языков программирования, которыми нужно владеть авто-

ру электронных учебных материалов.

96

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

граммирования. При этом условно разделим все элементы языка на две группы:

a) участвующие в построении графического интерфейса пользователя (статиче-

ские), и б) работающие с информацией «внутри» программы и преобразующие

вследствие этого графический интерфейс пользователя (динамические). В связ-

ке HTML5/JavaScript за статическое оформление отвечает HTML51, а за сооб-

щение динамики контенту веб-страницы – функции JavaScript. В языке про-

граммирования Python графический интерфейс пользователя строится с помо-

щью виджетов модуля tkinter, а динамические преобразования производятся с

помощью функций, использующих другие встроенные модули. В таблицах 2-5

будут перечислены только наиболее употребительные элементы, используемые

в наших примерах, т.к. перечисление всех команд, методов, тэгов и атрибутов

приводится в отдельных справочных изданиях, входящих в список литературы.

Таблица 2

Графический интерфейс средствами HTML5

Элемент языка программирования Роль при построении упражнений

Тэг имени веб-страницы:

<tiltle></title>

Создание имени веб-страницы

Тэги заголовков и параграфов: на-

пример, <h1></h1>, <p></p>,

<pre></pre>)

Представление текстовой информации

Тэг гиперссылки: <a></a> Преобразование текста в гиперссылку

Тэг кнопки: <button></button> Вывод кнопки

Тэг элементов ввода:

<input></input>. Атрибуты тэга за-

дают тип элемента: например,

checkbox, radio, button, reset.

Вывод элементов ввода (кроме полей

ввода, см. тэг <textarea></textarea>)

1 Еще одним мощным инструментом оформления веб-страницы являются каскадные табли-

цы стилей, которые были использованы в некоторых примерах (см. содержание тэга

<style></style>).

97

Продолжение таблицы 2

Элемент языка программирования Роль при построении упражнений

Тэг поля ввода: <textarea></textarea> Вывод поля ввода

Тэг контейнера: <div></div> Создание контейнера для структуриро-

вания элементов веб-страницы

Тэг создания контейнера элементов

ввода: <form></form>.

Объединение несколько элементов

ввода в единый блок

Тэг размещения картинки: <img> Вывод картинки

Тэг аудиоплеера: <audio></audio> Вывод аудиоплеера

Таблица 3

Элементы функций JavaScript/jQuery

Элемент языка программирования Роль при построении упражнений

Метод alert() Вывод окна оповещения или преду-

преждения

Метод getElementById() Нахождение элемента веб-страницы с

нужным идентификатором

Массивы Хранение информации (например, отве-

тов к заданиям) и операции с ней

Условный оператор if Проверка соответствия критериям

Цикл for Перебирание значений одной перемен-

ной в указанном порядке

Метод toLowerCase() Преобразование текста к написанию

маленькими буквами

Команда $('x').text('y'). Требует им-

порта библиотеки jQuery

Помещение текста y в элемент веб-

страницы x

$('x').addCalss('y'). Требует импорта

библиотеки jQuery

Сообщает элементу веб-страницы x

класс y

$('x').removeCalss('y'). Требует им-

порта библиотеки jQuery

Удаляет класс y элемента веб-

страницы x

98

Продолжение таблицы 3

Элемент языка программирования Роль при построении упражнений

$('x').prop('y), $('x').val(), $('x').attr('y',

'new'). Требует импорта библиотеки

jQuery

Считывает значение трибута y элемен-

та веб-страницы x; или присваивает

атрибуту новое значение

$('x').each(function() {} ) Выполнение действий, заключенных в

фигурные скобки, последовательно для

каждого элемента x

Таблица 4

Графический интерфейс средствами библиотеки tkinter

Элемент языка программирования Роль при построении упражнений

Виджет Label Создание надписи

Виджет Button Создание кнопки

Виджет Message Создание окна оповещения или преду-

преждения

Виджет Checkbutton Создание элемента ввода в виде клетки с

галочкой

Виджет LabelFrame Создание контейнера для других виджетов

Виджет Radiobutton Создание элемента ввода в виде кнопки

радио

Виджет Entry Создание элемента ввода в виде окна

для заполнения

Виджет Text Создание поля ввода

Виджет PhotoImage Вывод картинки

Метод title() Создание заголовка главного окна

Метод get() Получение значения виджета (в виде тек-

ста или значений 0/1)

Метод focus() Помещение курсора на виджет

Метод визуализации pack() Организация виджетов простой последо-

вательностью

Метод визуализации grid() Организация виджетов в ячейках таблицы

99

Таблица 5

Элементы функций Python

Элемент языка программирования Роль при построении упражнений

Массивы Хранение информации (например,

ответов к заданиям) и операции с ней

Условный оператор if Проверка соответствия критериям

Цикл for Перебирание значений одной пере-

менной в указанном порядке

Метод lower() Преобразование текста к написанию

маленькими буквами

Команда winsound.PlaySound(). Ноб-

ходимо импортировать модуль

winsound

Воспроизведение звука в фоновом

режиме

Команда open(). Необходимо импор-

тировать модуль io

Создание/открытие файла

Метод write(). Необходимо импорти-

ровать модуль io

Запись содержимого в открытый

файл

Команда

time.asctime(time.localtime(time(time))).

Необходимо импортировать модуль

time

Получение текущего времени из ча-

сов компьютера

Содержание таблиц позволяет заключить, что для написания элементар-

ных программ для ЭВМ требуется знание нескольких десятков основных эле-

ментов языков программирования HTML5/JavaScript и Python. Много это или

мало? По сравнению с лексическим запасом естественных языков – не так уж и

много. Безусловно, некоторое время нужно потратить на изучение основных

принципов программирования (можно сравнить их с правилами грамматики ес-

тественных языков), однако опыт показывает, что всего двух академических ча-

сов занятий достаточно для обучения молодых преподавателей иностранного

языка основам HTML5, причем самостоятельно дальше обучаться способны

100

более 90 % из них. Многие из сегодняшних студентов уже знакомились с язы-

ками программирования высокого уровня в старших классах школы, что преду-

сматривается Федеральным государственным образовательным стандартом

среднего (полного) общего образования [28].

Все это создает предпосылки для эффективного внедрения электронных

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

торами этих материалов (не только содержательной части, но и программного

кода) могут выступать сами преподаватели, прошедшие соответственный курс

подготовки или обучившиеся сами (путь автора этой книги).

101

Комплексные электронные упражнения по иностранному языку

как комбинация элементарных составляющих

Мы переходим к рассмотрению комплексных электронных упражнений по

иностранному языку. Они, как и простые упражнения, представляют собой

элементарные программы для ЭВМ учебного назначения, т.к. для нас важен в

первую очередь не показатель объема, а наличие сколь угодного количества

элементарных объектов (например, функций или элементов графического ин-

терфейса пользователя).

Главным отличием электронных комплексов упражнений от их традици-

онных аналогов на бумажных носителях является не только возможность быст-

рого изготовления и последующей модификации, но также и построение строго

заданной последовательности выполнения заданий, где выполнение каждого

последующего действия становится возможным только после выполнения

(полного или частичного) всех предыдущих.

При этом мы можем широко использовать ступенчатые подсказки, отсы-

лающие учащегося к повторению учебного материала, а также вводить систему

подсчета баллов, если того требует ситуация. В технической части мы будем

опираться на примеры из предыдущего раздела, используя уже упомянутые

языки программирования, хотя – на наш взгляд – более сложной здесь является

методическая часть, т.е. выбор учебного материала, его организация в правиль-

ной последовательности и нахождение такого отклика программы на действия

учащегося, который бы мотивировал его на продолжение занятий и стремление

пройти всю цепочку до конца.

Хорошо составленная цепочка упражнений должна, подобно произведе-

нию художественной литературы, иметь сюжет, за развитием которого хочется

следить. Этот принцип отражается в первую очередь на выборе лексического

материала, который раскрывается от упражнения к упражнению, обрастая но-

выми подробностями, поэтому даже для грамматических и фонетических уп-

102

ражнений следует выбирать содержательные и познавательные тексты, рабо-

тать с которыми будет интересно в принципе любому любознательному чело-

веку (если только это не занятия по профессионально ориентированной комму-

никации, где тексты должны быть напрямую связаны с будущей профессией

студента).

Приведем пример грамматических упражнений по немецкому языку

на основе текста о выдающемся художнике Лукасе Кранахе Старшем.

Приведем этот текст (в некотором сокращении в отличие от оригинального

варианта)1:

Der Maler Cranach aus Kronach

Am Rande des Frankenwaldes liegt die Geburtsstadt des großen Malers Lucas

Cranach d. Ä. Das mittelalterliche Städtchen Kronach hat eine reizvolle Umge-

bung und befindet sich im Zentrum von vier touristischen Straßen.

In der Fränkischen Galerie, die 1983 auf der Festung Rosenberg als Zweigmu-

seum des Bayerischen Nationalmuseums eröffnet wurde, befinden sich mehrere

Gemälde von Lucas Cranach d. Ä. In insgesamt 25 Schauräumen sind hier frän-

kische Kunstwerke aus dem Mittelalter und der Renaissance (13. bis 16. Jahr-

hundert) vertreten.

An Kronach führt kein Weg vorbei: Die Burgenstraße, die Bier- und Burgen-

straße, die Spielzeugstraße und die Porzellanstraße, alle kreuzen sie die kleine

Stadt am Tor zum Frankenwald. Ebenso wichtig für den Tourismus ist aber der

große Sohn der Stadt, der wohl bedeutendste deutsche Maler der Reformations-

zeit: Lucas Cranach. Er nannte sich nach seinem Geburtsort, in dem er 1472 zur

Welt kam. Sein Vater Hans war Maler, Lucas durfte in der väterlichen Werkstatt

gelernt haben. Nach 1500 verließ er die Stadt, um nach Wien und später nach

Wittenberg zu gehen.

1 Источник текста: Сайт Deutsche Welle; автор: Пиа Грам.

103

Упражнение будет направлено на работу с несколькими грамматическими

темами: окончания прилагательных, предлоги, артикль (в немецком языке

окончания прилагательных изменяются в зависимости от рода, числа и падежа).

Поскольку мы нацелены на создание цепочки из трех упражнений (исходя из

удобства представления примера) мы не можем просто вырезать из текста все

предлоги, артикли и окончания прилагательных. Но также нельзя и предъявить

учащемуся сразу три упражнения, в каждом из которых попеременно вырезаны

указанные элементы языка, т.к. при этом одно упражнение станет ключом к

двум другим.

Отсюда мы сделаем вывод, что условием появления на экране второго уп-

ражнения будет полное выполнение первого, а приступить к третьему упраж-

нению можно будет только выполнив и первое, и второе. Технически это легко

осуществимо в обоих языках программирования. Материал сгруппируем по

принципу «от частного к целому», т.е. придем к целому тексту, начиная с от-

рывков.

Демонстрируя учащемуся первое упражнение необходимо будет каким-

то образом скрыть то, что может послужить явной подсказкой для выполне-

ния второго и третьего, поэтому мы начнем с выбора форм артиклей,

которые не имеют вокруг себя предлога или прилагательного. Это могут

быть не обязательно целые предложения из текста, а их несколько упрощен-

ные варианты, достаточные для выполения задания и не меняющие содержа-

ния статьи. Для того чтобы задание не казалось однообразным и формаль-

ным, попросим испытуемого угадать (найти в энциклопедиях или Интернете)

имя художника, о котором идет речь. Это также будет обязательным услови-

ем перехода к следующему упражнению (окончания прилагательных выреза-

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

вие не нарушает целостности воспрятия текста):

104

___ Geburtsstadt des Malers liegt am Rande ___ Frankenwaldes.

___ Städtchen Kronach hat ___ reizvoll_ Umgebung.

Ebenso wichtig wie ___ Burgenstraße, ___ Bier- und Burgenstraße, ___ Spiel-

zeugstraße und ___ Porzellanstraße ist für ___ Kronach der groß_ Sohn ___ Stadt,

der wohl bedeutendst_ deutsch_ Maler ___ Reformationszeit: N.

Sein Vater Hans war ___ Maler, und in seinem Haus kam N 1472 zur Welt.

Первому упражнению должна предшествовать очень ясная инструкция,

определяющая действия пользователя, например:

Дополните текст правильными формами артикля. В случае нулевого ар-

тикля поставьте в окошко цифру 0. Используя свои знания или другие ис-

точники (Интернет, энциклопедии) постарайтесь угадать имя человека,

о котором идет речь. Впишите его имя в специальное окно. После того,

как Вы выполните первую часть упражнения, на экране появится вторая

и так далее. Всего упражнение содержит три задания.

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

ставить в окно ввода цифру ноль. Это сделано для того, чтобы при нажатии

кнопки проверки еще до выполнения задания окна с нулевым артиклем не

окрасились в зеленый цвет, что являлось бы явной подсказкой. И поскольку

мы не хотим, чтобы выполнение упражнений превращалось в формальный

механический процесс, мы рекомендуем даже в том случае, если в окне ниче-

го не должно находиться, заполнять ее каким-либо символом.

Второе упражнение представляет собой фрагмент исходного текста, в

котором вырезаны предлоги и артикли. Окончания прилагательных пока за-

менены на символы подчеркивания. В нем уже больше лексического мате-

риала, но весь текст, равно как и заголовок, давать еще рано. Несмотря на то,

что мы стараемся не делать явных подсказок, мы вырежем некоторые пред-

логи и артикли, которые присутствовали в первом упражнении. Поскольку

порядок слов во втором упражнении несколько изменен, будем считать эти

пропуски заданием на внимание. В итоге получаем следующий текст:

105

___ Rande des Frankenwaldes liegt die Geburtsstadt des groß__ Malers Lucas

Cranach d. Ä. Das mittelalterlich__ Städtchen Kronach hat eine reizvoll__ Um-

gebung und befindet sich ___ Zentrum ___ vier touristisch__ Straßen.

___ d__ Fränkisch__ Galerie, die 1983 ___ d__ Festung Rosenberg als Zweig-

museum d__ Bayerisch__ Nationalmuseums eröffnet wurde, befinden sich meh-

rere Gemälde ___ Lucas Cranach d. Ä. ___ insgesamt 25 Schauräumen sind

hier fränkisch__ Kunstwerke ___ d__ Mittelalter und d__ Renaissance (13. ___

16. Jahrhundert) vertreten.

Третье упражнение предоставляет студенту весь текст о художнике. Зада-

ние немного усложняется тем, что в уже знакомом отрывке требуется только

заполнить пропущеные окончания прилагательных, а новый отрывок дополнить

и окончаниями прилагательных, и предлогами, и артиклями. После правильно-

го выполнения третьей части все три контейнера с упражнениями закрываются,

и становится видимым четвертый конейнер с текстом без пропусков, который

можно сохранить / распечатать для дальнейшей работы.

Описанные выше действия реализуются на JavaScript с помощью четырех

функций. Графический интерфейс пользователя заключен в четыре контейнера,

которые выводятся на экран или скрываются соответсвующими функциями (см.

Программу JS_011).

Самым главным средством, позволяющим в нужный момент выводить на

экран или убирать с экрана информацию, являются контейнеры, удобно рабо-

тать с которыми помогает библиотека jQuery и каскадные таблицы стилей CSS.

Нетрудно заметить, что основной объем программы составляет сам текст о ху-

дожнике, в то время как функции JavaScript предельно компактны.

Программу можно сколь угодно модернизировать и расширять, добавляя к

цепочке другие элементарные упражнения, однако самым большим неудобст-

вом, с которым сталкиваются студенты при выполнении комплексных упраж-

нений на JavaScript, является то, что прогрессию работы невозможно сохра-

нить. Поэтому мы настоятельно не рекомендуем создавать излишне длинные

106

цепочки (больше трех упражнений) на JavaScript, т.к. любой сбой в работе

браузера или случайное обновление содержимого веб-страницы сведет на нет

всю выполненную работу студента и вернет его снова к первому заданию. Это

вовсе не означает, что JavaScript плохо пригоден для составления комплексных

упражнений. Надо просто осознавать потенциал этого языка программирования

и использовать его методически грамотно, создавая упражнения, которые

должны быть сделаны сразу, «на одном дыхании».

Объединяя такие цепочки упражнений в разделы можно создавать целые

учебники и учебные пособия, в которых упражнение, выполненное в виде эле-

ментарной программы для ЭВМ будет являться минимальной структурной еди-

ницей. Такие примеры мы рассмотрим в следующей главе, а пока оценим воз-

можности языка программирования Python для создания комплексных упраж-

нений по иностранному языку на примере уже рассмотренного алгоритма.

К программе на Python мы предъявим повышенные требования, в частно-

сти введем элементы протоколирования. Для этого мы задействуем модуль ра-

боты с файлами io, который уже встречался нам в программах.

Для вывода полного текста о художнике после выполнения всех трех уп-

ражнений программа сформирует файл .html и откроет его в браузере, установ-

ленном на компьютере пользователя по умолчанию. Для этого в код программы

необходимо импортировать еще один стандартный модуль: webbrowser.

Здесь мы подходим к важному моменту в нашей работе – взаимодейст-

вию Python и HTML5/JavaScript. Python способен создавать файлы .html (так

же как и .txt и .doc) и открывать их для просмотра в браузере пользователя

(для наших программ мы настоятельно рекомендуем использовать Google

Chrome, в которм тестировался весь приведенный код). К сожалению, на

уровне элементарных программ для ЭВМ невозможно сохранить изменения,

которые пользователь произведет в файле .html, созданном Python. Другими

словами, если в Python будет создано упражнение в виде веб-страницы, то на

нашем уровне рассмотрения не получится запротоколировать ответы студента,

107

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

ваться в режиме тренажера, т.е. для самостоятельной тренировки во внеучеб-

ное время и вне аудитории.

В виде файлов .html удобно формировать отчеты, протоколы и другие

вспомогательные файлы данных, помещать в них кнопки печати, производить

выделение шрифтом и цветом, строить таблицы, что способствует комфортно-

му восприятию информации. В нашей цепочке упражнений текст о Лукасе

Кранахе выводится после выполнения всех трех заданий в виде файла .html с

кнопкой печати, крупным полужирным заголовком, разбитый на абзацы и

имеющий бежевый цвет фона. Так он воспринимается лучше, чем простой тек-

стовый файл. Именно легкое форматирование представляемого текста является

тем главным аргументом «за», почему мы рекомендуем формировать отчеты

программ Python в виде веб-страниц.

Итак, цепочка из трех упражнений успешно реализована на Python (см.

Программу Py_013). Она содержит шесть функций и элементы графического

интерфейса пользователя, в том числе панель меню с единственной вкладкой

file. Функция bedAn() выводит на экран инструкцию пользователя в виде окна

оповещения. Функция exitPro() завершает работу программы на любом этапе

работы и активируется в помощью команды exit вкладки file меню. Функции

check_1(), check_2() и check_3() проверяют упражнения 1, 2 и 3 и в случае успе-

ха выводят соответствующие окна оповещения и проколируют время выполне-

ния заданий. Даже в режиме тренажера это поможет учащемуся проанализиро-

вать темп своей работы и сравнить результаты при повторном выполении уп-

ражнений. Функция showText() формирует файл .html и открывает его в браузе-

ре, установленном по умолчанию. Последняя функция – самая объемная, по-

скольку содержит в себе все содержание формируемого файла .html.

Так же как и в реализации на JavaScript правильные ответы хранятся в мас-

сивах arrRes1, arrRes2 и arrRes3. Однако их можно хранить и в отдельном тек-

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

108

тов, варианты которых хранятся в разных файлах. Например, если в тесте де-

сять заданий на множественный выбор (каждое задание на выбор одного из пя-

ти вариантов), то программа будет брать из файла формулировки заданий (для

виджета Label и подписей к кнопкам радио), а при проверке получать из того

же файла правильные ответы. В этом случае для подготовки очередного вари-

анта теста преподавателю не нужно будет переписывать программу, а только

занести в текстовый файл новую информацию. Программа не будет требовать

изменений, что удобно, если составитель тестов не владеет навыками програм-

мирования.

Графический интерфейс программы состоит из уже знакомых простых

элементов, за исключением виджета Menu, в котором до этого момента не бы-

ло необходимости. Панель меню располагается в верхней части основного ок-

на, которое является главным контейнером, не изменяющимся все время рабо-

ты программы. Контейнеры отдельных упражнений выводятся и удаляются

(точнее, делаются невидимыми благодаря методу forget()) попеременно, не

разрешая пользователю переходить к следующему заданию, не выполнив пре-

дыдущее.

Рассматривая реализацию программы на JavaScript мы рекомендовали не

составлять длинных цепочек, т. к. при закрытии браузера или обновлении веб-

страницы прогрессия выполнения полностью потеряется. Постараемся спра-

виться с этой проблемой с помощью Python. Модифицируем нашу программу

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

полнять все задания с самого начала, а начинать уже с текущего упражнения.

Например, если выход из программы происходит на втором упражнении, то

при следующем запуске работа начинается с него же, а не сначала.

Ввиду большого объема программы комплексного упражнения приведем

только способ решения проблемы, а практическую реализацию сведем к мини-

муму кода (см. Программу Py_013m).

109

Прогрессия выполнения упражнения хранится в файле counter.txt. Перво-

начально содержимое файла состоит только из одного символа – цифры 0. Это

означает, что пользователь еще не приступал к работе. После импорта модулей

и построения функций программа строит графический интерфейс пользователя,

но не визуализирует его полностью, пока не состоится проверка значения нака-

пливающей переменной, хранящейся в файле. Проверка с помощью условного

оператора if происходит в конце кода, хотя и имеет центральное значение для

программы. Переменная считывается из файла, после чего он закрывается. Если

значение переменной равно нулю, то визуализируется контейнер с упражнени-

ем номер один. При значениях 1, 2 или 3 инициализируются функции

choice_1(), choice_2() или choice_3() соответственно.

Функции choice_x()1 построены сходным образом. Каждая из них инициа-

лизирует соответствующую ее числовому индексу функцию check_x(), увели-

чивает значение накапливающей переменной на единицу и записывает это зна-

чение в файл прогрессии. Информация в файл не добавляется, таким образом в

файле все время находится только одна цифра (от нуля до трех включительно).

Вызывать сразу функции check_x() нельзя, т.к. если увеличивать накапливаю-

щую переменную внутри них, то переход к следующему упражнению только

при открытии и немедленном закрытии программы будет происходить незави-

симо от успешности выполнения задания. Функции choice_x() также инициали-

зируются кнопками перехода к следующему упражнению (в нашем случае

кнопки «Next»).

Продемонстрируем этот достаточно сложный алгоритм на примерах дей-

ствий пользователя при нескольких последовательных запусках программы:

Пример А.

1. Первый запуск программы (накапливающая переменная counter равна

нулю, на экран выводится контейнер с первым упражнением).

1 x в данном случае обозначает любое число.

110

2. Выход из программы с помощью нажатия кнопки exit меню file (глав-

ное окно программы закрывается, переменная counter остается без изменений).

Пример Б.

1. Второй запуск программы (накапливающая переменная counter равна

нулю, на экран выводится контейнер с первым упражнением).

2. Нажатие кнопки «Next» (инициализируется функция choice_1(), кото-

рая в свою очередь инициализирует функцию check_1(); контейнер в первым

упражнением скрывается и на экран выводится следующий контейнер, пере-

менная counter увеличивается на единицу и записывается в файл).

3. Выход из программы с помощью нажатия кнопки exit меню file (глав-

ное окно программы закрывается, переменная counter равна 1).

Пример В.

1. Третий запуск программы (накапливающая переменная counter равна 1,

инициализируется функция check_1(), на экран выводится контейнер сразу со

вторым упражнением).

2. Выход из программы с помощью нажатия кнопки exit меню file (глав-

ное окно программы закрывается, переменная counter остается без изменений и

равняется 1).

В нашем примере – ради краткости кода – отсутствует учебный контент,

что совершенно немыслимо в реальных условиях. Но можно предположить, что

если каждый контейнер содержит упражнение, которое может быть выполнено,

а может быть и не выполнено или выполнено неправильно, то при нажатии

кнопки «Next» необходимо производить проверку, по результатам которой

пропускать пользователя дальше или оставлять на текущем задании.

Итак, при нажатии кнопки «Next» инициализируется функция choice_x(),

которая сразу активирует функцию check_x(). Внутри нее производится про-

верка ответов учащегося, которая с помощью глобальной переменной resx счи-

тает количество правильных ответов. Если это количество будет равно макси-

муму, то функция check_x() скроет текущий контейнер и выведет на экран сле-

111

дующий. После этого программа перейдет обратно в функцию choice_x(). Там

также произойдет проверка количества правильных ответов (именно поэтому

переменная resx должна быть глобальной), и только в случае успеха переменная

counter увеличится, и произойдет ее запись в файл).

Возможность сохранять прогрессию выполнения комплексных упражне-

ний позволяет работать с ними на протяжении некоторого времени, включая и

выключая компьютер, что очень важно для создания индивидуальной траек-

тории обучения. Заметим, что каким бы примитивным не казалось предло-

женное нами решение, оно позволяет нам оставаться в русле концепции эле-

ментарных программ для ЭВМ, которые состоят из сколь угодного числа про-

стых компонентов.

Возможно, нам справедливо возразят, что сохранение прогрессии в про-

стом текстовом файле не защищает его от изменений со стороны студента, что,

как может показаться, приведет к фальсификации результата. Да, все предло-

женные нами программы обладают открытым кодом (особенно программы на

HTML5/JavaScript) и никак не защищены от просмотра кем-либо. И это сделано

абсолютно сознательно, т.к. любые попытки шифрования неизбежно усложнят

работу, а в результате могут ничего не дать, поскольку ни одна программа или

база данных, какой бы сложной и дорогостоящей она не была, не может быть

на 100 % защищена от несанкционированного просмотра.

Наши электронные учебные материалы рассчитаны на студента, желающе-

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

данных, а на удобство пользования и создание дополнительной мотивации к

изучению иностранного языка.

112

Электронные учебники и учебные пособия по иностранному языку:

опыт создания и применения

Об электронных учебниках и учебных пособиях сегодня говорят и пишут

очень много. Электронный учебник – это современная форма представления

учебного материала, которая часто сравнивается с традиционным бумажным

учебником, что вызывает много споров об уместности и современности тех и

других. Для более глубокого понимания того, что же является электронным

учебником, а что нет, необходимо определить параметры, отличающие его от

традиционной бумажной книги. Важнейшими из них являются:

1. Мультимедийность. Возможность представления информации в раз-

личных форматах (текстовом, графическом, аудио- и видеоформатах), интерак-

тивность – в границах одного интерфейса (под этим мы понимаем отсутствие

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

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

дополнительно использовать магнитофон или плеер, а для связи с преподавате-

лем или другими участниками учебной группы – телефон, Интернет и т.д.).

2. Интерактивность. Возможность взаимодействия с интерфейсом (на-

жатие кнопок, автоматическая проверка заданий, всплывающая подсказка, пуск

и остановка воспроизведения аудио- и видеоматериалов и др.). Это отличает

электронный учебник от электронных документов, например графического

формата .jpg, предназначенных только для чтения и не предусматривающих ин-

теракции.

3. Он написан программным кодом. Это в очередной раз отличает электрон-

ный учебник от документов, представленных в электронном формате – например

просто отсканированных. Программный код может быть основан, например, на

HTML или XML. В наших примерах мы пользуемся языками программирования

HTML5/JavaScript и Python.

113

4. Динамичность содержания. Возможность оперативно вносить измене-

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

ям. Этот параметр позволяет проводить полноценную стадию отладки учебни-

ка, когда он уже используется в учебном процессе. По результатам отладки

можно вносить изменения любого объема и сложности. Текст электронного

учебника гораздо легче исправить и дополнить, чем заняться переизданием

традиционного учебника [15, c. 131].

5. Поддержка онлайн. Возможность размещать в сети Интернет материа-

лы, дополняющие содержание электронного учебника. В совокупности с пре-

дыдущим пунктом это позволяет поддерживать высокую степень актуальности

материала учебника, что особенно важно для таких дисциплин как «Язык

СМИ», «Общественно-политическая лексика» и др.

Пункт № 5 является универсальным и применим даже для традиционных

бумажных учебных материалов. Остальные пункты применимы только к элек-

тронным учебникам и учебным пособиям.

Суммируя сказанное дадим следующее определение электронного учебни-

ка: Он написан программным кодом, и его бумажная копия по функцио-

нальности не может быть приравнена к цифровому оригиналу.

Такое определение исключает из рядов полноценных электронных учебни-

ков не интерактивные веб-страницы, которые хотя и написаны программным

кодом (например, на HTML), но не предоставляют пользователю возможность

интеракции и поэтому ничем не отличаются от своей бумажной копии.

Большинство членов преподавательского сообщества (в частности, препо-

даватели иностранного языка) придерживаются мнения, что создавать электрон-

ные учебники сложно и дорого. Однако одна из целей нашей работы – опроверг-

нуть это заблуждение, которое впрочем имеет под собой некоторое основание.

На рынке программного обеспечения учебного назначения в настоящее время

присутствует большое количество участников – от крупных концернов до фирм-

однодневок, – которые агрессивно рекламируют свою продукцию с целью полу-

114

чения прибыли. Именно такое поведение и формирует у коллег мнение о дорого-

визне и сложности электронных учебных материалов.

К счастью, благодаря энтузиастам-ученым в области информатики, а также

возможностям Интернета, в мире возникает движение против монополий и то-

тальной коммерциализации программного обеспечения для образовательных

целей. Ярким примеров тому является система управления обучения Moodle,

которая при всех недостатках, является бесплатной и хорошо зарекомендовав-

шей себя системой, эффективно функционирующей во многих вузах планеты.

Помимо систем управления обучением, через Интернет распространяются

качественные инструменты для создания электронных учебных материалов – от

отдельных упражнений до целых учебников (например, eXeLearning [62]). Та-

кие инструменты обладают большим методическим потенциалом, постоянно

дополняются и улучшаются сообществом разработчиков и отличаются от ус-

ловно бесплатных программ именно тем, что совершенно не нацелены на полу-

чение когда-либо какой-то прибыли (за исключением добровольных пожертво-

ваний).

Таким образом, у потенциального разработчика электронных учебников

появляется хороший выбор: воспользоваться готовыми бесплатными решения-

ми или обучиться элементарному программированию, примерам применения

которого мы и посвятили значительную часть нашей работы.

Рассмотрим далее пример электронного учебного пособия, написанного на

HTML5/JavaScript и апробированного в ходе года работы со студентами-

лингвистами, изучающими немецкий язык с начального уровня.

Учебное пособие полностью вписывается в концепцию элементарных про-

грамм для ЭВМ, т.к. состоит из упражнений (простых и комплексных), а также

текстовых инструкций, которые представляют собой простые веб-страницы.

Мы не будем приводить полностью код учебного пособия (тем более, что

оно состоит из множества файлов), а остановимся на методических принципах,

115

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

процессе.

Электронное учебное пособие по грамматике немецкого языка (вводный

курс) структурно состоит из стартовой страницы (включая оглавление), стра-

ницы введения и шести уроков. Каждый урок состоит из раздела, предъявляю-

щего новый вокабуляр, в том числе и терминологию. Затем следует объяснение

грамматического материала, который сгруппирован в таблицы или краткие

предложения с примерами. Грамматический материал разбит на маленькие час-

ти (иногда их называют квантами), чтобы облегчить его восприятие студентом.

После объяснения правил следует кнопка для перехода к упражнениям. Коли-

чество упражнений не одинаково для разных тем. Материал первых уроков

тренируется на простых упражнениях, начиная с третьего урока вводятся ком-

плексные упражнения. В конце каждого урока размещается ссылка на поуроч-

ный вокабуляр, используемый в упражнениях [5].

Учебное пособие было апробировано года со слушателями второго высше-

го образования факультета немецкого языка Московского государственного

лингвистического университета в течение 2012/13 учебного года. Интересна

оценка студентов, которую они выразили в ходе работы с учебным пособием.

Особенностью аудитории было то, что в силу некоторой специфики слушате-

лей второго высшего образования, для некоторых из них работа с электронны-

ми учебными материалами представляла совершенно новый вид деятельности.

В течение учебного года студенты отмечали как положительные, так и отрица-

тельные стороны работы с электронным учебным пособием, сравнивая его с

традиционными бумажными учебниками.

Среди положительных сторон отмечались следующие:

1. Учебное пособие распространялось бесплатно, в то время как многие

бумажные учебники и словари приходилось покупать.

116

2. Грамматические материал подробно объяснялся и распределялся ма-

лыми порциями (квантами), после чего следовали упражнения на тренировку

объясненных правил.

3. Упражнения проверялись автоматически и сразу, при нажатии кнопки.

4. Благодаря кнопкам навигации от упражнения можно было быстро вер-

нуться обратно к тренируемым правилам для повторения.

5. Наличие поурочного вокабуляра.

6. Наличие русских переводов формулировок заданий.

7. Возможность работать в индивидуальном темпе.

8. Соотнесенность с лексическим материалом на других занятиях по не-

мецкому языку (практиковалось аспектное преподавание).

9. Поддержка онлайн (по большей части – техническая). Некоторые опе-

чатки и сбои, имевшиеся в тестовых версиях уроков, были замечены студента-

ми и исправлены авторами в связи с обращениями. Исправленные файлы пуб-

ликовались на сайте поддержки, так что эти сбои практически не нарушали не-

прерывности процесса обучения. Также на сайте публиковались разъяснения по

работе с учебным пособием, что тоже оказалось очень полезным.

10. Некоторые студенты отметили положительно возможность распечатки

уроков, списков вокабуляра и упражнений, что, конечно, лишило материалов

интерактивности, но позволяло работать с ними без компьютера.

Негативные отзывы об учебном пособии в целом не поступали, хотя рабо-

та с ним и вызывала некоторые трудности технического характера, которые в

определенном контексте можно было принять за недостатки.

В частности, на компьютерах некоторых студентов не было программы

для открытия архивов .zip, в котором находилось учебное пособие, а некоторые

функции JavaScript не работали в браузере Internet Explorer, что было устранено

установкой архиватора и Google Chrome. Кроме того оказалось, что некоторые

студенты не имеют достаточного опыта работы с персональным компьютером,

поэтому им потребовалась помощь более сведущих товарищей. Один из сту-

117

дентов пользовался на протяжении всего времени только распечатками, так и

не сумев научиться должным образом работать с электронной версией.

Некоторые пожелания со стороны студентов касались навигации по учеб-

ному материалу. Так, по их просьбе кнопки возврата к предыдущему уроку и

перехода к следующему уроку и стартовой странице были продублированы в

верхней части урока, тогда как первоначально располагались только снизу.

Учет пожеланий студентов повысил их мотивацию, усилил желание и дальше

работать над улучшением внешнего вида учебного пособия, внес в коллектив

дух творчества, что в целом положительно сказалось на изучении дисциплины.

В целом, практика применения электронных учебных материалов в виде

локального веб-сайта, написанного на HTML5/JavaScript, оказалась удачной.

Рассмотрим далее более подробно выработанные принципы организации учеб-

ного материала, которые можно охарактеризовать как общие и эффективные

для всех электронных учебников и учебных пособий по иностранному языку.

Лучше всего это сделать, описав один урок, к примеру, первый. Интерфейс

урока начинается с кнопок навигации: «Zur Startseite» и «Zur Lektion 2», кото-

рые ведут на стартовую страницу и к уроку 2 соответственно. Кнопки выровне-

ны по центру. Далее все элементы интерфейса будут выровнены по правому

краю, некоторые с небольшим отступом.

Фон страницы заполнен бежевым цветом (код #EEE8AA). Цвет основного

шрифта – черный. Важное выделено голубым. Для фона таблиц выбран белый

цвет, вокруг которого бежевый визуально образует рамку. Это основные цвета

интерфейса. Такие цвета не создают резких контрастов и комфортны для вос-

приятия.

Каждый урок поделен на разделы, в первом уроке (Lektion 1) их шесть.

Раздел A озаглавлен «Üben Sie den Wortschatz». Так как студенты, для которых

предназначен материал, еще пока совсем не знают немецкого языка, к заголов-

ку прикреплена всплывающая подсказка «Выучите вокабуляр». Принцип под-

ведения всплывающей подсказки к каждой немецкой фразе, где это только воз-

118

можно, является очень важным и формулируется нами как принцип двупланово-

го текста. На основном плане интерфейса расположен немецкоязычный текст,

а на плане всплывающих подсказок – его русский эквивалент. Такой способ

представления материала невозможен в бумажном варианте и применим только

для электронных учебных материалов. С его помощью пользователь имеет как

будто сразу два текста в пределах одного интерфейса. В бумажном варианте

пришлось бы или создавать целиком дополнительную русскоязычную страни-

цу, или делать сноски, или подписывать перевод в скобках. Все эти способы

излишне перегружают интерфейс и потому неудобны.

Рядом с заголовком раздела находится небольшой графический объ-

ект – буквы WS на голубом фоне. Это знак того, что раздел посвящен работе с

вокабуляром. Картинка не выделяется настолько, чтобы мешать, но в то же

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

ся преимуществом. Еще одна картинка такого же размера, но с буквами z.B. и

насыщенным желтым фоном предназначена для обозначения примеров.

В разделе A присутствует только одна таблица личных местоимений. Ме-

стоимения выделены голубым, остальной текст – черного цвета. Таблица нари-

сована прерывистыми линиями (мелкими точками), что соответствует принци-

пу, который мы обозначаем как принцип разгрузки интерфейса. Прерывистые

линии менее заметны и поэтому в меньшей степени отвлекают читателя от ос-

новного содержания.

Раздел B посвящен употреблению глаголов haben и sein. В нем приводятся

две таблицы форм глаголов в настоящем времени. За таблицами следуют при-

меры употребления, переведенные на русский язык. При переводе авторы спе-

циально старались выбирать варианты, не совпадающие дословно с немецкими

примерами. Например, для немецкого предложения «Bist du müde?» выбран

русский вариант «Ты устал?», а не «Ты усталый?», так как важно с первых за-

нятий иностранным языком отучать студентов от привычки пословного пере-

вода. Понимание того, что перевод – это трансформация, а не механический пе-

119

ренос слов с помощью словаря – важный шаг для будущего лингвиста и любого

другого студента, ставящего перед собой цель выучить иностранный язык, а не

говорить родным языком иностранными словами. Принцип, используемый ав-

торами при составлении переводов мы обозначаем как принцип неприятия по-

словного перевода. Другими примерами следования этому принципу являются

переводы «Sie sind erfahren» как «У них есть опыт», а не как «Они опытны», хо-

тя в немецком языке возможен и вариант «Sie haben Erfahrung». Перевод глаго-

ла haben как «иметь» тоже иногда встречается среди студентов. Поэтому мы

приводим варианты «У меня есть время» для «Ich habe Zeit» и «Она в отпуске»

для «Sie hat Urlaub».

Сторонникам прямого метода, которые бы оставили в примерах только

немецкие предложения, мы возразим, что по нашему опыту студенты все равно

пытаются мысленно переводить увиденное на родной язык, поэтому лучше сра-

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

хих переводов в последствии.

После примеров располагается кнопка «Zu den Übungen» (выровнена по

правому краю), которая является кнопкой навигации и ведет к упражнениям

раздела B. Всего для раздела составлены четыре упражнения, код которых на-

ходится в отдельном файле .html. По форме реализации они представляют со-

бой заполнение пропусков, в каждый из которых нужно вписать подходящую

форму глагола sein.

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

средств был минимализирован. В частности, не использовалась библиотека

jQuery и работа с массивами. С одной стороны, код стал проще, но при этом

программа стала громоздкой и абсолютно неудобной для модификаций. Разбе-

рем принцип ее работы.

Графический интерфейс упражнения строится с помощью таблицы, кото-

рая помещена в тэг формы, он имеет имя:

<form name="ub1b1"><table></table></form>

120

Таблица состоит из восьми строк и двух колонок. В первой колонке распо-

лагаются предложения, содержащие глагол sein, вместо которого оставлены

пропуски, реализованные с помощью тэга <input></input>. Тэги <input></input>

также содержат атрибут name. Получается, что в каждой стоке расположены

два предложения, в каждом из них – по одному пропуску.

Во вторую колонку таблицы с помощью тэга <img> помещена картинка

yes_no_0.png, содержащая атрибут name и идентификатор. При первом выводе

интерфейса картинка не видна, т.к. представляет собой прямоугольник, закра-

шенный цветом фона веб-страницы. Если испытуемый введет правильные фор-

мы глагола sein в окна одной строки, то при инициализации функции проверки

картинка сменится на галочку зеленого цвета (файл yes_no_1.png). Также на эк-

ран будет выведено окно оповещения, с количеством правильных ответов из

всех возможных, например: «Решено правильно: 2 из 16».

Далее следуют кнопки «Prüfen» и «Löschen», выровненные по правому

краю. Последними элементами графического интерфейса являются ссылка для

возвращения к уроку 1 и кнопка «Печать» (выровнены по левому краю).

В программу входят две функции JavaScript: reset_all_ub1b1() и

check_ub1b1(). Первая функция невелика, ее задача – заменить все картинки

второй колонки таблицы на первоначальные. Это делается с помощью цикла

for, который с помощью идентификатора перебирает по одной все картинки и

присваивает их атрибуту src значение yes_no_0.png:

document.getElementById(i).src = "yes_no_0.png"

Вторая функция намного сложнее, так как создает отдельную переменную

для значения каждого из 16 окон ввода, а затем с помощью условного операто-

ра if проверяет соответствие ответа студента правильному ответу. При каждом

правильном ответе накапливающая переменная результата res_ub1b1 увеличи-

вается на единицу. Всего функция задействует условный оператор if 24 раза,

т.к. проверяет не только соответствие значения ячеек правильному варианту, но

121

также проверяет и правильность строки (двух окон ввода сразу) для помещения

туда картинки yes_no_1.png.

Этот пример наглядно демонстрирует преимущества библиотеки jQuery, c

помощью которой код функции сократился бы в разы. При этом правильные

ответы необходимо было бы записать в массив, а вместо файла с галочками ок-

на ввода окрашивались бы в красный или зеленый цвета, как было продемонст-

рировано в примерах предыдущего раздела. Также можно было бы отказаться

от имен окон.

При анализе примера без использования jQuery (см. Программу JS_012)

возникает парадоксальная ситуация: с одной стороны, программа в высшей

степени элементарна, т.к. составлена с помощью нескольких самых простых

элементов языка, с другой стороны – использование операций с массивами и

библиотеки jQuery (на первый взгляд она может показаться излишне сложной)

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

грамму в кротчайшие сроки. Для добавления новых окон ввода в программу с

использованием jQuery нужно всего лишь изменить графический интерфейс и

дополнить массив ответов, тогда как в последнем примере придется вводить

новые переменные и добавлять проверки с помощью условного оператора if.

Мы считаем, что выбор лучше сделать в пользу jQuery.

Вернемся по ссылке к странице урока 1. Остальные разделы урока выпол-

нены аналогично разделу B, согласуясь с выдвинутыми нами принципами:

– двупланового текста;

– разгрузки интерфейса;

– неприятия пословного перевода.

Принцип двупланового перевода применим только к электронным учеб-

ным материалам, т.к. бумажные носители не являются интерактивными. Ос-

тальные принципы реализуются как в электронных, так и в бумажных учебни-

ках и учебных пособиях.

122

Двуплановый текст хорош не только для перевода. Например, в разделе C

урока 2 для комментирования примера «Das Kind zeichnet ein Haus. Das Haus ist

hoch.» всплывающая подсказка привязана к подчеркнутым словам. Она объяс-

няет, почему артикли и глагол стоят именной в такой форме:

Das → Определенный артикль ср. р. ед. ч. им. п. Характеризует существи-

тельное Kind, которые является подлежащим.

zeichnet → Форма 3-го л. ед. ч. от глагола zeichnen. Основа глагола оканчи-

вается на -n с предшествующим ей согласным, поэтому между основой и окон-

чанием стоит соединительная -e-.

ein → Неопределенный артикль ср. р. ед. ч. вин. п. Характеризует сущест-

вительное Haus, которое является прямым дополнением, потому что глагол

zeichnen - переходный. Это новая информация, поэтому употребляется неопре-

деленный артикль.

Das → Определенный артикль ср. р. ед. ч. им. п. Характеризует существи-

тельное Haus, которое является подлежащим. Это уже известная информация,

поэтому здесь стоит определенный артикль.

Мы привели целиком текст всплывающих подсказок, чтобы стало ясно, в

какой степени их текст способствует разгрузке интерфейса. Самое главное, что

перед глазами студента только законченное высказывание на немецком языке.

Весь комментарий скрыт и может быть не будет востребован вовсе, если у сту-

дента не возникает вопросов. Немецкие предложения из девяти слов просто по-

теряются в почти 100 словах подсказки, что затруднило бы восприятие первых

как целого. Благодаря такому приему каждый элемент интерфейса может иметь

объемные комментарии, не теряя удобства восприятия.

Безусловно, работа с электронными учебными материалами имеет свои

особенности. В нашем случае первое занятие курса практической грамматики

немецкого языка было посвящено презентации электронного учебного пособия

и объяснению работы с ним, включая техническую и методическую части. Это

было сделано потому, что дома студенты уже должны были начать работу с ма-

123

териалом первого урока, но ранее имели дело только с бумажными учебными

материалами.

Несмотря на то, что студенты работали с электронным учебным пособием

дома, неверно было бы утверждать, что оно предназначается только для само-

стоятельной работы, и может рассматриваться как самоучитель. Форму работы

было правильно бы охарактеризовать как смешанную (англ. blended learning).

От студента ожидалось не то, что он прочтет дома теоретический материал,

изучит примеры, выполнит правильно задания, а на очном занятии перескажет

все наизусть и во время контроля выполнит те же упражнения на оценку. Такой

характер работы приведет к тому, что студент только выучит наизусть примеры

и формулировки правил, но не продвинется ни насколько в понимании взаимо-

связей между языковыми явлениями и на практике растеряется, увидев конст-

рукции, которые он еще не изучал. Да и роль преподавателя в этом случае све-

дется только к механическому восприятию результатов и выставлению балла,

согласно критериям (то же самое делает компьютер в рассмотренных выше

программах).

Наша работа была направлена на то, чтобы научить студентов видеть про-

блемы, формулировать вопросы, строить гипотезы, т.е. работать с языковым

материалом как лингвисты-исследователи, не забывая при этом добросовестно

учить то, что должно быть выучено. Приведем пример из урока 1, раздел B.

Разбирая иллюстрации к таблицам спряжения глагола haben в настоящем

времени, студент видит пример: Sie sind erfahren. – У них есть опыт. (Напомним,

здесь используется принцип неприятия пословного перевода.) Что может быть

необычно для студента: Перевод не пословный. Проблемный вопрос может быть

сформулирован так: Почему нельзя просто сказать «они опытные», ведь это от-

вечает переводу каждого слова по немецко-русскому словарю? Студент строит

гипотезу и приходит с результатами размышлений на очное занятие.

124

Оговоримся, что поначалу эти проблемы могут быть заметны не всем, по-

этому задача преподавателя в данном случае состоит в том, чтобы перед тем

как решать проблему, помочь всем студентам ее увидеть.

Итак, мы формулируем проблему, обсуждаемую на очном занятии: У од-

ного и того же высказывания может быть несколько переводов, не обязательно

пословных (а чаще всего именно не пословных), причем все они будут считать-

ся правильными. После формулировки проблемы ожидается дискуссия под

управлением преподавателя. Первые вопросы со стороны студентов могут быть

такими:

– Почему так происходит?

– Зачем нужно разбирать несколько вариантов, если можно записать

один, выучить его и получить «пять»?

– Как научиться переводить, если словари практически в этом не помо-

гают?

– Какими словарями лучше пользоваться? и мн. др.

Хуже, если вопросы не поступают вовсе и группа не проявляет активности.

Это свидетельствует о низком уровне мотивации, и преподавателю потребуется

весь его талант и знания, чтобы изменить ситуацию к лучшему. К концу заня-

тия дискуссию нужно подвести к выводам, например, что:

– профессиональное знание иностранного языка состоит не только в ме-

ханическом запоминании слов и что целостные высказывания не всегда равны

простой сумме составных частей (можно привести несколько фразеологизмов,

характерных для данного иностранного языка);

– не все словари годятся для профессиональной работы (рассказать, ка-

кие бывают и какие лучше);

– нужно учиться выражать одно и то же различными способами (напри-

мер, «Я занят» как «Ich habe keine Zeit», «Ich bin beschäftigt», «Ich habe viel zu

tun» и др.).

125

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

сительно технической стороны работы с электронным учебным пособием или

формулировок теоретического материала.

При таком подходе очное занятие оправдывает себя, т.к. дома студент не

может полноценно участвовать в дискуссии, главным компонентом которой яв-

ляется богатый опыт преподавателя (мы a priori исходим из того, что описы-

ваемую работу выполняет педагог высшей квалификации). Конечно, в идеаль-

ных условиях, которые далеко не всегда можно создать на практике, препода-

ватель является одновременно и автором / соавтором электронных учебных ма-

териалом. В этом случае он легко сможет ответить не только на вопросы, свя-

занные с предметом, но и поможет студентам разобраться с вопросами техни-

ческого характера. По нашему мнению, высокая компетентность преподавате-

ля, равно как и увлеченность своим предметом, является важнейшим мотиви-

рующим фактором. Этим преподаватель как будто говорит студенту: «Я захо-

тел – и у меня получилось. Захочешь ты – и у тебя все получится!»

В заключительной главе нам осталось разобрать пример электронных

учебных материалов, реализованных в виде элементарных программ для ЭВМ,

который предназначается полностью для самостоятельной работы студентов.

126

Программы для ЭВМ учебного назначения для решения частных задач

Рассмотренные нами в предыдущих разделах элементарные программы

для ЭВМ учебного назначения являются по своей сути упражнениями (просты-

ми или комплексными), из которых можно создавать крупные информацион-

ные структуры, такие как электронные учебники и учебные пособия.

Кроме этого для обучения иностранному языку могут быть полезны не

только программы-упражнения, но и другие, дополнительные, программы, по-

зволяющие автоматизировать некоторые привычные процессы.

Одним из таких процессов является запоминание новых лексических еди-

ниц, и какие бы ультрасовременные и революционные методики изучения ино-

странного языка не были бы изобретены в будущем, все равно учащимся надо

будет так или иначе расширять свой вокабуляр, говоря просто – учить слова.

Одним из распространенных и хорошо зарекомендовавших себя способов это

делать являются двусторонние карточки, на одной стороне которых все написа-

но на одном языке (родном), а на других – на другом языке (иностранном). Пе-

ребирая и переворачивая карточки, учащийся проверяет свои знания. Регуляр-

ная работа с карточками (делать это можно не обязательно дома, а где угодно)

всегда дает положительный эффект.

Подумаем, как можно усовершенствовать этот процесс с помощью компь-

ютерной программы. При этом поставим перед собой задачу не только перене-

сти содержимое карточек с бумаги на экран компьютера, но и усовершенство-

вать процесс, внеся что-то новое, не осуществимое на бумаге.

Определим основные параметры программы, она должна:

иметь графический интерфейс, в какой-то степени сходный с бумаж-

ными карточками, которые можно листать вперед и назад;

иметь цветовое оформление;

127

выводить на карточке не только перевод, но и дополнительные данные:

пример употребления, общий комментарий и грамматический коммен-

тарий (набор дополнительных данных может варьироваться);

хранить содержание карточек в отдельном файле;

загружать с помощью меню тот или иной набор карточек;

выводить с помощью меню содержание набора карточек алфавитным

списком;

содержать упражнения на работу с вокабуляром карточек.

В качестве родного языка выберем английский, в качестве изучаемого – ис-

панский.

Итак, программа для ЭВМ учебного назначения для работы с активным

вокабуляром, которую мы рассмотрим, написана на языке программирования

Python [6]. Поскольку мы выбрали для составления элементарных программ два

языка программирования, и, принимая во внимание, что из них только Python

способен работать с файлами, выбор сделан в сторону последнего.

Файл набора карточек представляет собой небольшую базу данных, доступ

к которой осуществляется через графический интерфейс пользователя про-

граммы для работы с активным вокабуляром. В нашем случае файл .xml со-

ставляется вручную (см. Содержание файла Spanish_A1.xml). Правила довольно

просты (тем более, если у Вас есть хотя бы какой-то опыт программирования на

HTML). Первой строкой идет объявление файла .xml и задается кодировка со-

держания:

<?xml version="1.0" encoding='utf-8'?>

Далее действует следующее правило: Вся информация должна быть за-

ключена в парные тэги. В файле Spanish_A1.xml имеется только два тэга: <vo-

cabulary></vocabulary> и <unit></unit>. Последний может иметь атрибуты esp,

trans, ex, gr и spec. В них содержатся соответственно испанское слово, его анг-

лийский эквивалент, пример употребления, грамматический комментарий и

128

общий комментарий. Последние два атрибута являются опциональными и

свойственны только глаголам. Набор карточек создан, программа на Python

может с ним работать как с базой данных.

Как и во всех случаях, программа состоит из части, строящей графический

интерфейс пользователя, и из функций, придающих интерфейсу динамику и

обрабатывающих данные.

Для построения графического интерфейса используется библиотека tkinter.

Кроме нее в программу импортируются модули io (для работы с файлами),

xml.dom.minidom (для чтения файлов .xml), webbrowser (для работы с веб-

браузером), tkinter.messagebox (для вызова окон оповещения) и tkinter.filedialog

(для вызова окна выбора файла).

В качестве глобальных переменных используются элементы массивов, что

совершенно не является обязательным. Перед построением графического ин-

терфейса карточки программа автоматически запускает функцию openFile(), ко-

торая открывает окно файлового менеджера. Пользователь выбирает файл-

набор карточек, с которым хотел бы работать. Без выбора файла (который мо-

жет находиться не обязательно в той же папке, что и программа) открыть про-

грамму невозможно. Затем выбранный файл считывается в переменную, про-

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

лов (эта информация будет востребована позже). Далее создается главное окно

программы, в нем располагается контейнер карточки. Создается меню из трех

блоков: File (команды Open, Exit), Info (команды Database Info, Program Info,

Show All, Help), Exercises (команда Exercise 1). Каждая команда инициализиру-

ет соответствующую функцию. Под контейнером карточки располагается кон-

тейнер кнопок управления, в котором находятся две кнопки, выровненные по

центру: «Previous» и «Start/Next». Кнопки предназначены для пролистывания

карточек назад и вперед. При достижении конечных карточек (первой или по-

следней) кнопки деактивируется. Это сделано для того, чтобы предотвратить

сбой программы, которая будет искать следующую карточку и, не найдя, вы-

129

нуждена будет завершить работу. Листать карточки можно и кнопками «,», «.».

Это удобно, особенно если пользователь работает на компьютере без мыши.

Фон контейнера карточки имеет льняной цвет (код #faf0e6), которые можно от-

нести к естественным и приятным для восприятия. В верхнем левом углу кон-

тейнера ставится порядковый номер карточки (не алфавитное расположение, а

порядок следования в файле .xml). Немного правее и ниже следует главное сло-

во карточки – крупно, синим цветом. Под ним слева, примерно в три раза мель-

че, светло-серым цветом дан английский эквивалент. В бумажных карточках

для его размещения используется оборотная сторона, но мы посчитали пра-

вильным разместить все в пределах одного интерфейса. Светло-серые малень-

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

пись, пользователю придется очень внимательно присматриваться и сделать

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

ной карточки. Еще ниже, так же крупно и на одном вертикальном уровне со

словом карточки черным цветом дан испанский пример. Цвета подобраны так,

что внимание пользователя фокусируется прежде всего на главном слове, затем

на примере, а только в последнюю очередь – на английском эквиваленте. Если

карточка содержит комментарии (один или оба), то кнопки функций, выводя-

щих их в виде окон оповещения, появляются внизу справа.

Число функций в программе равно двадцати. Первые три функции, ини-

циализирующиеся до построения графического интерфейса – это openFile(),

readFile(...) и countVerbs(). Первую мы уже описали выше. Функция readFile(...)

получает имя файла в виде аргумента, открывает его для чтения, считывает и с

помощью метода parseString() представляет его содержимое в виде документа

xml, с которым будут потом работать другие функции.

Функция countVerbs() подсчитывает количество глаголов в карточках. Де-

лается это по формальному признаку. Если английский эквивалент имеет час-

тицу «to» плюс пробел, то слово в карточке считается глаголом.

130

Последующие функции вызываются пользователем из графического ин-

терфейса. За перелистывание карточек отвечают четыре функции: nextItem(),

nextItemBut(...), prevItem() и prevItemBut(...). Функции nextItem() и

nextItemBut(...) отличаются только тем, что активизируются соответственно

нажатием кнопки «Start/Next» или клавишей «.», аналогичное замечание каса-

ется также prevItem() и prevItemBut(...).

Функции строят контейнер карточки, проверяя при этом, сколько атрибу-

тов имеется у тэга <unit></unit> документа xml. Другими словами, функция бе-

рет номер текущей карточки, ищет в документе xml тэг <unit></unit> с этим

номером и анализирует его. В зависимости от количества атрибутов (от трех до

пяти) в контейнер карточки помещается три, четыре или пять элементов. При

пролистывании вперед переменная номера карточки увеличивается, при про-

листывании назад – уменьшается.

Обратимся к меню программы. В блоке File содержаться две команды. Ко-

манда Open инициализирует функцию openNew(), которая фактически переза-

пускает программу, предоставляя пользователю возможность выбрать новый

набор карточек из файла. На экран выводится окно выбора файла.

Команда Exit запускает функцию destrRoot(), которая осуществляет выход

из программы, предварительно запрашивая у пользователя подтверждение. По-

сле утвердительного ответа на вопрос «Are you sure you want to exit flashcards?»

программа закрывается.

Блок меню Info – самый объемный. Он включает четыре команды. Коман-

да Database Info инициализирует функцию infoAboutFile(), которая выводит на

экран окно оповещения с информацией о количестве карточек и названии фай-

ла .xml, например:

There are 23 entries in database C:/.../Spanish_A1.xml

Команда Program Info запускает функцию progInfoShow аналогичным об-

разом выводит информацию о программе и авторе:

Flashcards by A.Gorozhanov, Ph.D. Ver. 1.3

131

Команда Help обращается к функции showHelp(), которая открывает стра-

ницу поддержки программы в Интернете (https://sites.google.com/site/

deegraa/program-flashcards), запуская при этом веб-браузер, установленный на

компьютере пользователя по умолчанию.

Самой интересной является команда Show All, связанная с функцией

showAllUnits(). По сути функция являет программой в программе, она строит но-

вое окно графического интерфейса (виджет Toplevel), состоящее из двух частей:

левой и правой. В левой части помещается список с элементом прокрутки, в кото-

рый помещаются слова карточек в алфавитном порядке (задействуется метод

sort()). Под списком помещена кнопка «Get info to the selected unit», которая ини-

циализирует функцию infoToTheUnit(). Она визуализирует правую часть графиче-

ского интерфейса, помещая в нее контейнер со всей имеющейся информацией о

выделенном в левой части слове (см. Интерфейс алфавитного списка Программы

Py_014). Если при нажатии кнопки «Get info to the selected unit» никакое слово из

списка не выделено, то выводится окно оповещения следующего содержания:

Warning! No unit is selected!

Представление всех карточек в виде алфавитного списка – удобный сер-

вис, позволяющий легко найти нужное слово и просмотреть информацию о

нем. Фон контейнера имеет льняной цвет.

Блок Exercises содержит только команду Exercise 1, которая инициализи-

рует элементарную программу – упражнение на формы имеющихся в карточках

глаголов. При выборе команды инициализируется функция toDoEx1(), которая

также создает новое окно графического интерфейса (см. Интерфейс упражне-

ния Программы Py_014). В нем сверху вниз располагаются: формулировка за-

дания, тренируемый глагол, шесть окон ввода для форм настоящего времени,

кнопки «Check» и «Next», а также окно ввода с буквами «á», «é» и «í», которые

нужны для выполнения упражнения (символы можно копировать и вставлять в

окна форм глаголов). Ответ можно вводить большими, маленькими или даже

разными буквами, на процедуру проверки это никак не повлияет. Кнопка

132

«Check» инициализирует функцию check1(), которая проверяет содержимое

окон ввода и сравнивает с формами из документа xml. Окна с неверными отве-

тами окрашиваются в красный цвет, окна с верными ответами остаются белы-

ми. Балл за ответы не выставляется.

С помощью кнопки «Next» (функция next1()) можно перейти к следующе-

му глаголу. При этом создается новое окно Toplevel, а старое уничтожается.

Переход осуществляется не зависимо от того, сделано или не сделано задание,

чтобы упражнения можно было пролистывать до нужного глагола. Если коли-

чество глаголов подошло к концу, выводится окно оповещения с надписью

«That's all. No verbs left».

Мы кратко рассмотрели код программы, сформулируем рекомендации по

ее применению в учебном процессе.

Программу можно развивать и совершенствовать, в частности, может ока-

заться полезной возможность распечатки карточек или создание других упраж-

нений. И технически это несложно сделать, добавив в меню дополнительные

команды и написав для них соответствующие функции.

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

бой только оболочку, не функционирующую без правильно структурированно-

го файла .xml. Благодаря этому автоматически выполняются три важных дейст-

вия: оформляется карточка, формируется алфавитный список и строятся уп-

ражнения на формы глаголов. Предполагается, что в реальных условиях про-

грамма будет установлена на компьютерах учащихся, а файл карточек будет

подготавливаться преподавателем. При работе над какой-либо темой препода-

ватель может публиковать файл с вокабуляром на сайте поддержки или в сис-

теме управления обучением, устанавливая сроки для усвоения материала. Та-

кой подход облегчит прохождение промежуточного и финального контроля и

студенту, и преподавателю, т.к. первый будет знать, что учить, а второй будет

помнить, что и в каком объеме требовать. Для облегчения работы преподавате-

ля по составлению файлов с карточками, можно разработать программу на

133

Python, которая имела бы графический интерфейс с пятью окнами ввода (по

максимально возможному числу атрибутов тэга <unit></unit>) и дописывала бы

вводимую информацию в файлы карточек, хотя на наш взгляд внесение новых

слов в файлы .xml – процесс довольно простой и понятный.

Рассмотренный пример программы для работы с активным вокабуляром

доказывает, что язык программирования Python удобен не только для написа-

ния электронных упражнений, но также и для составления элементарных про-

грамм для ЭВМ, направленных на решение других образовательных задач. Не-

смотря на кажущуюся сложность программы, она состоит из элементарных

функций, связанных между собой общим сюжетом, что позволяет легко моди-

фицировать ее и адоптировать к конкретным условиям.

В целом, подводя итог, можно заключить, что процедура автоматизации

процесса обучения иностранному языку, не обязательно сводится сразу к соз-

данию масштабной системы управления обучением или виртуальной учебной

среды, управляемой главным компьютером учебного заведения (хотя стремить-

ся к этому – хорошая цель). Небольшие локальные программы, установленные

на компьютерах преподавателей и студентов, могут также внести существен-

ный вклад в процесс оптимизации обучения. Это могут быть целые электрон-

ные учебники и учебные пособия, программы для решения частных задач, на-

пример, для работы с вокабуляром или проверки контрольных работ, необхо-

димые в тех или иных условиях.

Мы показали, что современные программные средства, а именно языки

программирования высокого уровня JavaScript и Python предоставляют препо-

давателям иностранного языка мощные инструменты для решения многих по-

вседневных профессиональных задач. Время и силы, потраченные на их изуче-

ние, в итоге обязательно оправдают себя, помогут педагогам не отстать от тех-

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

богатые традиции отечественной педагогической мысли.

134

Литература

1. Алан Тьюринг // История компьютера [Электронный ресурс]. –

URL:http://chernykh.net/content/view/443/655 (Дата обращения: 20.01.2013).

2. Анисимов А.М. Работа в системе дистанционного обучения Moodle //

Учебное пособие [Электронный ресурс]. – URL:http://moodle-center.ru/

lib/anisimov-am-rabota-v-sisteme-distantsionnogo-obucheniya-moodle-

uchebnoe-posobie (Дата обращения: 12.03.2013).

3. Анищенко А.В., Горожанов А.И. Мультимедийное модульное учебно-

методическое пособие по немецкому языку «Немецкий в интерактивных

упражнениях» // Библиотека РТО на портале ОФЭРНиО. 10.02.2012. –

URL:http://ofernio.ru/rto_files_ofernio/17894.doc (дата обращения:

10.02.2013).

4. Анищенко А.В., Горожанов А.И., Санжарова И.Э. Электронный браузер-

ный учебник немецкого языка «Немецкий день за днем» (уровень A 1/1) //

Библиотека РТО на портале ОФЭРНиО. 15.03.2012. – URL:http://

ofernio.ru/rto_files_ofernio/18017.doc (дата обращения: 10.02.2013).

5. Бабкина Е.С., Горожанов А.И., Казанцева Ю.М. Электронное учебное по-

собие по грамматике немецкого языка (вводный курс) / Бабкина Е.С., Го-

рожанов А.И., Казанцева Ю.М., Фадеева Е.П. // Библиотека РТО на пор-

тале ОФЭРНиО. 26.10.2012. – URL:http://ofernio.ru/rto_

files_ofernio/18630.doc (дата обращения: 24.06.2013).

6. Горожанов А.И. Комплект элементарный программ для ЭВМ учебного

назначения «Иностранный язык» // Библиотека РТО на портале ОФЭР-

НиО. 03.07.2013. – URL:http://ofernio.ru/rto_files_ofernio/19346.doc (дата

обращения: 01.10.2013).

7. Горожанов А.И. Программа для ЭВМ учебного назначения для работы с

активным вокабуляром // Библиотека РТО на портале ОФЭРНиО.

135

05.02.2013. – URL:http://ofernio.ru/rto_files_ofernio/18935.doc (дата обра-

щения: 27.06.2013).

8. Библиотека jQuery [Электронный ресурс]. – URL:http://jquery.com/ (Дата

обращения: 11.05.2013).

9. Богомолов А.Н. [Текст]: дисс. … д-ра пед. наук: 13.00.02 / И.П. Павлова. –

М., 2008. – 354 с.

10. Гез Н.И., Ляховицкий М.В., Миролюбов А.А. Методика обучения ино-

странным языкам в средней школе: Учебник / Гез Н.И., Ляховицкий М.В.,

Миролюбов А.А., Фоломкина С.К., Шатилов С.Ф. – М.: Высш. школа. –

1982. – 373 с.

11. Горожанов А.И. Программа для ЭВМ учебного назначения «Помощник

экзаменатора: проверка тестов» // Библиотека РТО на портале ОФЭРНиО.

13.02.2013. – URL:http://ofernio.ru/rto_files_ofernio/18936.doc (дата обра-

щения: 10.02.2013).

12. Горожанов А.И. Системы управления обучением. Краткий исторический

обзор // Современная наука: тенденции развития: Матер. IV Междунар.

науч.-практ. конф. 26 марта 2013 г.: Сборник научных трудов. – Красно-

дар, 2013. – В 2-х т. Т. I. С. 75-80.

13. Горожанов А.И. Электронное учебное пособие по развитию коммуникатив-

ных умений на немецком языке «С немецким в XXI век» // Библиотека РТО

на портале ОФЭРНиО. 20.04.2012. – URL:http://ofernio.ru/rto_files_ofernio/

18140.doc (дата обращения: 10.02.2013).

14. Горожанов А.И., Фадеева Е.П. Программа для ЭВМ учебного назначения

«Интерактивные таблицы основных форм немецких сильных и неправиль-

ных глаголов» // Библиотека РТО на портале ОФЭРНиО. 07.08.2012. –

URL:http://ofernio.ru/rto_files_ofernio/18482.doc (дата обращения:

10.02.2013).

15. Григорьева О., Ланкин В. Электронный учебник: возможности, пробле-

мы, перспективы. // Высшее образование в России. 2008. № 2. С. 130-134.

136

16. Дронов В.А. HTML5, CSS3, Web 2.0. Разработка Web-сайтов. – СПб.:

БХВ-Петербург, 2011. – 416 с.

17. Иллич И. Освобождение от школ. Пропорциональность и современный

мир. – М.: Просвещение, 2006. – 160 с. [Электронный ресурс]. –

URL:http:// svitk.ru/004_book_book/14b/3241_illih-osvobojdenie_ot_hkol.php

(Дата обращения: 24.01.2013).

18. Калькулятор Лейбница // Великие изобретения всех времен и народов

[Электронный ресурс]. – URL:http://www.great-inventions.ru/elektronika-i-

vychislitelnaya-texnika/kalkulyator-lejbnica (Дата обращения: 19.01.2013).

19. Макфарланд Д. JavaScript: Подробное руководство. – М.: Эксмо, 2011. –

608 с.

20. Маслыко Е.А., Бабинская П.К., Будько А.Ф. Настольная книга преподавате-

ля иностранного языка: Справ. пособие / Маслыко Е.А., Бабинская П.К.,

Будько А.Ф., Петрова С.И. – Мн.: Высш. шк., 1999. – 522 с.

21. Очерки по методике обучения немецкому языку. (Для педагогических ву-

зов) / под ред. И.В. Рахманова. – М.: Высш. шк., 1974. – 244 с.

22. Предисловие Джеффри Элкнера // Мыслить как программист. Учимся с

Python / Джеффри Элкнер, Аллен Б. Дауни, Крис Мейерс и Андрей Трофи-

мов [Электронный ресурс]. – URL:http://juster.fvds.ru/learnwithpython/ru2e/

preface.html (Дата обращения: 13.05.2013).

23. Сарана Т.П. Компьютерные программы в самообучении иностранному

языку на отделениях заочного обучения [Текст]: дисс. … канд. пед. наук:

13.00.02 / Т.П. Сарана. – М., 2003. – 203 с.

24. Среда Visual Studio [Электронный ресурс]. – URL:http://

msdn.microsoft.com/ru-RU/vstudio/cc136611 (Дата обращения: 12.05.2013).

25. Статистика Moodle [Электронный ресурс]. – URL:https://moodle.org/stats

(Дата обращения: 25.01.2013).

137

26. Суммирующая машина Паскаля // Мегаэнциклопедия Кирилла и Мефо-

дия [Электронный ресурс]. – URL:http://www.megabook.ru/Article.asp?

AID= 607452 (Дата обращения: 19.01.2013).

27. Тьюринг А. Может ли машина мыслить? (С приложением статьи Аж. фон

Неймана Общая и логическая теория автоматов. Пер. и примечания Ю.В.

Данилова). М.: ГИФМЛ, 1960 [Электронный ресурс]. – URL:http://

inf.1september.ru/2000/2/art/alan1.htm (Дата обращения: 20.01.2013).

28. Федеральный государственный образовательный стандарт среднего (пол-

ного) общего образования (10-11 кл.) (утвержден приказом Минобрнауки

России от 17 мая 2012 г. № 413) // Сайт Министерства образования и нау-

ки РФ [Электронный ресурс]. – URL:минобрнауки.рф/документы/2365

(Дата обращения: 22.06.2013).

29. Фоломкина С.К. Обучение чтению на иностранном языке в неязыковом

вузе: Учеб.-метод. пособие. – М.: Высш. шк., 2005. – 255 с.

30. Шатилов С.Ф. Методика обучения немецкому языку в средней школе:

Учеб. пособие для студентов пед. ин-тов по спец. № 2103 «Иностр. яз.». –

М.: Просвещение, 1986. – 223 с.

31. Энциклопедический словарь АКАДЕМИК // Шиккард, Вильгельм [Элек-

тронный ресурс]. – URL:http://dic.academic.ru/dic.nsf/es/93167/

%D0%A8%D0%98%D0%9A%D0%9A%D0%90%D0%A0%D0%94 (Дата

обращения: 19.01.2013).

32. A Gentle Introduction to Programming Using Python // MIT OpenCourseWare

[Электронный ресурс]. – URL:http://ocw.mit.edu/courses/electrical-

engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-

using-python-january-iap-2011/index.htm (Дата обращения: 13.05.2013).

33. About EasyGui // EasyGui [Электронный ресурс]. –

URL:http://easygui.sourceforge.net/index.html (Дата обращения:

13.05.2013).

138

34. About Perl // The Perl Programming Language [Электронный ресурс]. –

URL:http://www.perl.org/about.html (Дата обращения: 12.05.2013).

35. About Python // Python Programming Language – Official Website [Элек-

тронный ресурс]. – URL:http://python.org/about (Дата обращения:

12.05.2013).

36. About Ruby // Ruby: A Programmer's Best Friend [Электронный ресурс]. –

URL:http://www.ruby-lang.org/en/about (Дата обращения: 12.05.2013).

37. ACTFL / American Council on the Teaching of Foreign Languages [Элек-

тронный ресурс]. – URL:http://www.actfl.org (Дата обращения:

21.05.2013).

38. Ada Byron, Lady Lovelace // Biographies of Women Mathematicians [Элек-

тронный ресурс]. – URL:http://www.agnesscott.edu/lriddle/women/love.htm

(Дата обращения: 19.01.2013).

39. AICC official website [Электронный ресурс]. – URL:http://

www.aicc.org/joomla/dev/index.php?option=com_content&view=article&id=1

43&Itemid=2 (Дата обращения: 26.01.2013).

40. AICC official website [Электронный ресурс]. – URL:http://

www.aicc.org/joomla/dev/index.php?option=com_content&view=article&id=1

43&Itemid=2 (Дата обращения: 26.01.2013).

41. Apache OpenOffice official website [Электронный ресурс]. – URL:http://

www.openoffice.org (Дата обращения: 21.02.2013).

42. Atanasoff Berry Computer // John Vincent Atanasoff and the birth of electronic

digital computer [Электронный ресурс]. – URL:http://jva.cs.iastate.edu/

operation.php (Дата обращения: 20.01.2013).

43. Bachmann S., Gerhold S., Wessling G. Aufgaben und Übungstypologie zum

interkulturellen Lernen // Zielsprache Deutsch 27. – Soest: Landesinstitut für

Schule. – 1996. – P. 77-91.

44. Berlin L. The Man Behind the Microchip:Robert Noyce and the Invention of

Silicon Valley. – N.Y.: Oxford University Press, 2005. – 425 p.

139

45. Blackboard Inc. [Электронный ресурс]. – URL:http://www.blackboard.com

(Дата обращения: 24.01.2013).

46. Ceruzzi R. A History of Modern Computing. Cambridge, MA: The MIT Press,

2003. – 445 p.

47. Cheng I., Safont L.V., Basu A., Goebel R. Multimedia in education: Adaptive

learning and testing. – Singapore: World Scientific Publshing, 2010. – 178 p.

48. Clippinger R.F. A Logical Coding System Applied to the ENIAC (Electronic

Numerical Integrator and Computer) [Электронный ресурс]. – URL:http://

ftp.arl.mil/mike/comphist/48eniac-coding/sec1.html (Дата обращения:

20.01.2013).

49. Cloud Intelligence – Official website of Cloud Intelligence, LLC. –

[Электронный ресурс]. – URL:http://www.cloudint.com/index.html (Дата

обращения: 25.11.2012).

50. Cloud University: Open Source Education // Instructables – a web-based doc-

umentation platform – [Электронный ресурс]. – URL:http://

www.instructables.com/community/Cloud-University-Open-Source-Education

(Дата обращения: 26.11.2012).

51. Consortium Claroline [Электронный ресурс]. – URL:http://

www.claroline.net/ (Дата обращения: 24.01.2013).

52. Dahlhaus B. Fertigkeit Hören / Fernstudieneinheit 5. – München: Goethe-

Institut, Langenscheidt, 1994. – S. 192.

53. Description of all CSS specification// W3C [Электронный ресурс]. –

URL:http://www.w3.org/Style/CSS/specs#selectors (Дата обращения:

05.03.2013).

54. Desire2Learn Inc. [Электронный ресурс]. – URL:http://desire2learn.com

(Дата обращения: 24.01.2013).

55. Dokeos home [Электронный ресурс]. – URL:http://dokeos.com (Дата обра-

щения: 24.01.2013).

140

56. Dotlrn home [Электронный ресурс]. – URL:http://dotlrn.org/index.html (Да-

та обращения: 24.01.2013).

57. Dougiamas, Martin, Taylor, Peter C. Interpretive analysis of an internet-based

course constructed using a new courseware tool called Moodle. [Электронный

ресурс]. – URL:http://online.dimitra.gr/sektrainers/file.php/1/

MartinDougiamas.pdf (Дата обращения: 25.01.2013).

58. Downey A., Elkner J., Meyers Ch. How to Think Like a Computer Scientist.

Learning with Python. – Wellesley: Green Tea Press, 2008. – 280 p.

59. Educational Technology and Mobile Learning [Электронный ресурс]. –

URL:http://www.educatorstechnology.com (Дата обращения: 27.05.2013).

60. ElearningForce International [Электронный ресурс]. – URL:http://

www.sharepointlms.com (Дата обращения: 24.01.2013).

61. Ellis R.K. A Field Guide: Learning Management Systems [Электронный ресурс].

– URL:http://www.astd.org/~/media/Files/Publications/LMS_fieldguide_20091

(Дата обращения: 24.01.2013).

62. eXeLearning official website [Электронный ресурс]. – URL:http://

exelearning.org/wiki (Дата обращения: 02.02.2013).

63. Goldfarb C.F. The Roots of SGML – A Personal Recollection, 1996 [Элек-

тронный ресурс]. – URL:http://www.sgmlsource.com/history/roots.htm (Дата

обращения: 27.01.2013).

64. Google Cloud platform. – [Электронный ресурс]. – URL:https://

cloud.google.com (Дата обращения: 24.11.2012).

65. Grimes S. BI at 50 Turns Back to the Future // InformationWeek online Journal

– [Электронный ресурс]. – URL:http://www.informationweek.com/software/

business-intelligence/bi-at-50-turns-back-to-the-future/211900005 (Дата

обращения: 25.11.2012).

66. Handbuch Fremdsprachenunterricht / hrsg. von Karl Richard Bausch... – 3.,

überarb. und erw. Aufl. – Tübingen; Basel; Francke, 1995. – S. 585.

141

67. HTML Book [Электронный ресурс]. – URL:http://htmlbook.ru (Дата обра-

щения: 28.05.2013).

68. IEEE Spectrum [Электронный ресурс]. – URL:http://spectrum.ieee.org/at-

work/tech-careers/the-top-10-programming-languages (Дата обращения:

12.05.2013).

69. ISO/IEC 26300:2006/Amd 1:2012 – Open Document Format for Office Appli-

cations (OpenDocument) v1.1 [Электронный ресурс]. – URL:http://

www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=5

9302 (Дата обращения: 24.02.2013).

70. ISO/IEC 15445:2000(E) Information technology – Document description and

processing languages – HyperText Markup Language (HTML) [Электронный

ресурс]. – URL:http://www.cs.tcd.ie/misc/15445/15445.html#REFTEXT

(Дата обращения: 27.01.2013).

71. JClick – ein innovatives Autorentool zum Erstellen, Publizieren und Evaluieren

von interaktiven Übungen mit Multimediaunterstützung über die Java-

Plattform [Электронный ресурс]. – URL:http://jclic.edugroup.at (Дата об-

ращения: 27.01.2013).

72. John W. Mauchly and the Development of the ENIAC Computer: The EDVAC

Design // Penn LIBRARY: exhibitions [Электронный ресурс]. –

URL:http://www.library.upenn.edu/exhibits/rbm/mauchly/jwm9.html (Дата

обращения: 20.01.2013).

73. John W. Mauchly and the Development of the ENIAC Computer: The

UNIVAC and the Legacy of the ENIAC // Penn LIBRARY: exhibitions [Элек-

тронный ресурс]. – URL:http://www.library.upenn.edu/exhibits/rbm/mauchly/

jwm11.html (Дата обращения: 20.01.2013).

74. Kast B. Fertigkeit Schreiben / Fernstudieneinheit 12. – München: Goethe-

Institut, Langenscheidt, 1999. – S. 232.

75. Lambert K.A. Fundamentals of Python: From First Programs Through Data

Structures. – Boston: Course Technology, 2010. – 915 p.

142

76. Levy M. Computer-Assisted Language Learning: Context and Conceptualiza-

tion. – N.Y.: Oxford University Press, 1997. – 299 p.

77. List of programming languages // Wikipedia, the free encyclopedia [Элек-

тронный ресурс]. – URL:http://en.wikipedia.org/wiki/List_of_programming_

languages (Дата обращения: 12.05.2013).

78. LMS Moodle home [Электронный ресурс]. – URL:https://moodle.org (Дата

обращения: 24.01.2013).

79. Michael G. The Univac 1 Computer [Электронный ресурс]. – URL:http://

www.computer-history.info/Page4.dir/pages/Univac.dir (Дата обращения:

19.01.2013).

80. Microfost – Cloud computing in education. – [Электронный ресурс]. –

URL:http://www.microsoft.com/education/en-

us/solutions/Pages/cloud_computing.aspx (Дата обращения: 24.11.2012).

81. Monaco A. A View Inside the Cloud // The Institute – The IEEE news source,

June, 2012. – [Электронный ресурс]. – URL:http://theinstitute.ieee.org/

technology-focus/technology-topic/a-view-inside-the-cloud (Дата обращения:

24.11.2012).

82. Morabito M.G. CALCampus // History [Электронный ресурс]. –

URL:http://www.calcampus.edu/calc.htm (Дата обращения: 24.01.2013).

83. Neatorama – informational resource. – [Электронный ресурс]. – URL:http://

www.neatorama.com/2009/09/02/when-was-the-internet-born (Дата обраще-

ния: 23.11.2012).

84. Neuner G. Socio-cultural interim worlds in foreign language teaching and

learning // Intercultural competence / ed. by M. Byram. Strasbourg: Council of

Europe Publishing, 2003. – P. 15-62.

85. Notepad++ Home / A free source code editor which supports several pro-

gramming languages running under the MS Windows environment. –

[Электронный ресурс]. – URL:http://notepad-plus-plus.org (Дата

обращения: 30.06.2013).

143

86. Olphen M. van, Hofer, M., Harris, J. World languages learning activity types //

From College of William and Mary, School of Education, Learning Activity

Types Wiki [Электронный ресурс]. – URL:http://activitytypes.wmwikis.net/

file/view/ WorldLanguagesLearningATs-Feb2011.pdf (Дата обращения:

20.05.2013).

87. Patent DE833366: Halbleiterverstärker. Angemeldet am 15. April 1949, An-

melder: SIEMENS AG, Erfinder: Werner Jacobi.

88. Pritchard A. Ways of learning: learning theories and learning styles in the

classroom (2nd edition). – David Fulton: London, 2009. – 122 p.

89. Programming Language Popularity [Электронный ресурс]. – URL:http://

www.langpop.com/ (Дата обращения: 12.05.2013).

90. Pygame Home [Электронный ресурс]. – URL:http://www.pygame.org/

news.html (Дата обращения: 07.06.2013).

91. Python GUI Programming (Tkinter) [Электронный ресурс]. – URL:http://

www.tutorialspoint.com/python/python_gui_programming.htm (Дата обра-

щения: 13.05.2013).

92. Python Programming Language – Official Website [Электронный ресурс]. –

URL:http://python.org (Дата обращения: 22.11.2012).

93. Raul R. Konrad Zuse’s Legacy: The Architecture of the Z1 and Z3 // IEEE

Annals of the History of Computing. 1997. V. 19. № 2. P. 5-16. – [Электрон-

ный ресурс]. – URL:http://ed-thelen.org/comp-hist/Zuse_Z1_and_Z3.pdf (Да-

та обращения: 20.01.2013).

94. Ryan P., Falvey S., Merchant R. Regulation of the Cloud in India // J. of Inter-

net Law. October. 2011. № 15 (4). – 17 p. – [Электронный ресурс]. –

URL:http://ssrn.com/abstract=1941494 (Дата обращения: 22.11.2012).

95. Schatz H. Fertigkeit Sprechen / Fernstudieneinheit 20. – München: Goethe-

Institut, Langenscheidt, 2006. – S. 208.

96. Schifter C.C. Infusing Technology into the Classroom: Continuous Practice

Improvement. – Hershey: NY, 2008. – 282 p.

144

97. SCORM Content Packages [Электронный ресурс]. – URL:http://

www.scormsoft.com/scorm/cam/contentPackages (Дата обращения:

28.01.2013).

98. SCORM official website [Электронный ресурс]. – URL:http://scorm.com/

scorm-explained (Дата обращения: 26.01.2013).

99. Sharp V.F. Computer education for teachers: Integrating technology into class-

room teaching. Jefferson City: John Wiley & Sons, Inc. 2009. – 393 p.

100. Spencer D.D. Herman Hollerith // Mcmillan encyclopedia of computers / ed.

by G.G. Bitter. – N.Y.: Mcmillan. 1992. – p. 490-491.

101. Stack Overflow // The flagship site of the Stack Exchange Network [Элек-

тронный ресурс]. – URL:http://stackoverflow.com (Дата обращения:

21.05.2013).

102. Stevenson D. Information and Communications Technology in UK Schools.

An independent Inquiry. London: 1997. – 44 p.

103. Teemu A. Cloud Learning as Universal Primary Education [Электронный

ресурс]. – URL:http://tarina.blogging.fi/2011/11/12/cloud-learning-as-

universal-primary-education (Дата обращения: 26.11.2012).

104. The Apple II // Apple II History: «The story of the most personal computer»

[Электронный ресурс]. – URL:http://apple2history.org/history/ah03/ (Дата

обращения: 20.01.2013).

105. The Sakai Foundation [Электронный ресурс]. – URL:http://

www.sakaiproject.org/ (Дата обращения: 24.01.2013).

106. The Zen of Python // PEP20 by Tim Peters. Russian translation from

http://ru.wikipedia.org/wiki/Python [Электронный ресурс]. – URL:http://

www.python.org/dev/peps/pep-0020/ (Дата обращения: 13.05.2013).

107. TIOBE Programming Community Index for May 2013 // TIOBE Software

[Электронный ресурс]. – URL:http://www.tiobe.com/index.php/content/

paperinfo/tpci/index.html (Дата обращения: 12.05.2013).

145

108. Tkinter Documentation // Python [Электронный ресурс]. –

URL:http://wiki.python.org/moin/TkInter (Дата обращения: 13.05.2013).

109. Tkinterbook [Электронный ресурс]. – URL:http://effbot.org/tkinterbook (Да-

та обращения: 19.05.2013).

110. Translating XML-Based Documents [Электронный ресурс]. – URL:http://

www.xtm-intl.com/files/content/xtm/resources/Translating%20XML%20based

%20documents%20%E2%80%93%20XML%20Journal.pdf (Дата обращения:

27.01.2013)

111. TurboSite – Official Website [Электронный ресурс]. – URL:http://

brullworfel.ru/turbosite (Дата обращения: 26.03.2013).

112. Tutorialspoint – Simple Easy Learning [Электронный ресурс]. – URL:http://

www.tutorialspoint.com/index.htm (Дата обращения: 27.01.2013)

113. UNIVAC 1 (1951) First Commercially Available Computer [Электронный

ресурс]. – URL:http://www.computermuseum.li/Testpage/UNIVAC-1-

FullView-A.htm (Дата обращения: 19.01.2013).

114. Unofficial Windows Binaries for Python Extension Packages [Электронный

ресурс]. – URL:http://www.lfd.uci.edu/~gohlke/pythonlibs (Дата обращения:

13.05.2013).

115. Vardalas J. Twists and Turns in the Development of the Transistor // IEEE-

USA Today's Engineer [Электронный ресурс]. – URL:http://

www.todaysengineer.org/2003/May/history.asp (Дата обращения:

21.01.2013).

116. W3C official website // History [Электронный ресурс]. – URL:http://

www.w3.org/TR/html51/introduction.html#history-0 (Дата обращения:

27.01.2013).

117. w3schools // the world's largest web development site [Электронный ресурс].

– URL:http://www.w3schools.com/default.asp (Дата обращения: 16.06.2013).

146

118. Ward M. A Template for CALL Programs for Endangered Languages // Dublin

City University [Электронный ресурс]. – URL:http://www.computing.dcu.ie/

~mward/mthesis.html (Дата обращения: 22.01.2013).

119. Westhoff G. Fertigkeit Lesen / Fernstudieneinheit 17. – München: Goethe-

Institut, Langenscheidt, 2005. – S. 176.

120. What are the Most Popular Programming Languages in the World? [Элек-

тронный ресурс]. – URL:http://aisha91.hubpages.com/hub/What-is-the-Most-

Top-Programming-Languages-in-Google (Дата обращения: 12.05.2013).

147

Приложение. Код рассматриваемых программ

При написании приведенных в Приложении программ использовались

языки программирования HTML5 (+ CSS3), JavaScript 1.8.5 (+ jQuery 2.x), Py-

thon 3.3. Бóльшая часть программ имеет государственную регистрацию и

входит в Комплект элементарных программ для ЭВМ учебного назначения

«Иностранный язык» [6]. Ввиду значительного объема кода все рассматри-

ваемые программы можно найти на Интернет-сайте поддержки, расположен-

ном по адресу https://sites.google.com/site/deegraa (раздел Научно-

исследовательская работа).

148

Научное издание

Горожанов Алексей Иванович

Автоматизация процесса обучения иностранному языку:

от элементарных программ для ЭВМ до электронных учебников.

Издающая организация:

Научно-издательский центр Априори, г. Краснодар

тел.: 8-918-18-09-879

сайт: www.apriori-nauka.ru e-mail: [email protected]

ИП Акелян Нарине Самадовна