УДК 378.4
А. И. Горожанов
кандидат филологических наук, доцент, доцент кафедры грамматики и истории немецкого языка факультета немецкого языка МГЛУ e-mail: [email protected]
ДИСЦИПЛИНА «ПРОФЕССИОНАЛЬНО ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ» ДЛЯ ЛИНГВИСТОВ -
ПОТЕНЦИАЛЬНЫХ АВТОРОВ ЭЛЕКТРОННЫХ УЧЕБНИКОВ
В статье рассматриваются перспективы внедрения дисциплины «Профессионально ориентированное программирование» при обучении лингвистов-преподавателей; указывается на ее соответствие ФГОС ВО по направлениям подготовки «45.03.02 Лингвистика» и «45.04.02 Лингвистика»; в качестве предмета изучения выбираются языки программирования HTML (включая CSS и JavaScript) и Python (включая PyQt5 и web2py); дается краткий обзор двух учебных пособий по новой дисциплине.
Ключевые слова: профессионально ориентированное программирование; электронные учебные материалы; обучение иностранному языку; Python; PyQt5; web2py.
A. I. Gorozhanov
Ph.D., Ass. Prof., Chair of German Grammar and History, MSLU email: [email protected]
SUBJECT «PROFESSIONALLY ORIENTED PROGRAMMING» FOR THE LINGUISTS -FUTURE AUTHORS OF DIGITAL TEXTBOOKS
The article touches upon prospects of introducing the subject «Professionally Oriented Programming» in the linguistic education process. The author stresses the point that the new subject meets the requirements of the federal educational standards. As learning objects the programming languages HTML (with CSS and JavaScript) and Python (with PyQt5 and web2py) are recommended. A brief digest of two practice books in professionally oriented programming is made.
Key words: professionally oriented programming; digital learning materials; foreign language teaching; Python; PyQt5; web2py.
Проблема разработки электронных учебных материалов (учебников, учебных пособий, контрольно-измерительных материалов, дистанционных курсов и т. д.) в настоящее время является достаточно актуальной. Стремительное развитие программного обеспечения, его
всё большая обращенность к пользователю, обладающему средним уровнем компьютерной грамотности, не обходит стороной и программное обеспечение для создания программного обеспечения -языки программирования.
Интересно отметить, что многие современные языки программирования сходны с естественными языками в том, что могут иметь диалекты, словарный состав, проявляют синонимию и антонимию и даже могут отразить индивидуальный стиль автора-программиста.
Тенденция приблизить программный код к естественному языку людей (в силу целого ряда причин этим языком является английский) проявляется, например, в языке гипертекстовой разметки HTML (англ. Hypertext Markup Language) [8]. HTML применяется для форматирования содержимого веб-страниц. Его распространенные теги могут представлять собой сокращения или первые буквы английских существительных, например:
<p> - paragraph; <h1> - (1st level) header; <img> - image;
<thead> - table header и др.
Иногда это могут быть слова целиком:
<body>, <table>, <audio>, <acronym> и др.
При всей понятности, без использования CSS и JavaScript HTML не способен создавать динамические и интерактивные веб-страницы, однако он отлично подходит для приобретения первичных навыков работы с программным кодом (см., например, электронный учебник «Информационные и коммуникационные технологии в практике преподавания иностранного языка» [3, с. 36-54]).
По-настоящему многофункциональным, подходящим как для разработки веб-приложений, так и отдельных программ, является язык программирования Python [7]. Начиная с декабря 1989 г., благодаря усилиям датского программиста Гвидо ван Россума Python активно развивается и на сегодняшний день, согласно индексу TIOBE, является пятым по популярности языком программирования в мире, уступая только таким «гигантам», как Java, C/C++ и C# [12].
Обзор современной научной и учебно-методической литературы показывает, что определение «профессионально ориентированный» употребляется чаще всего в таких сочетаниях, как «профессионально ориентированный иностранный язык», «профессионально
ориентированный перевод», «профессионально ориентированный проект», «профессионально ориентированный текст» и некоторые другие. В любом случае определение «профессионально ориентированный» конкретизирует определяемое явление, оставляя в нем только то, что относится непосредственно к будущей профессии обучающегося.
Мы исходим из того положения, что каждый преподаватель иностранного языка (особенно в вузе) является потенциальным автором учебно-методических материалов. В условиях широкого применения дистанционных образовательных технологий (далее - ДОТ) возникает необходимость создания электронных учебных материалов, в частности и для обучения иностранному языку.
Несмотря на наличие большого количества так называемых готовых решений, их эффективность в конкретных условиях может быть далеко не достаточной.
К наиболее удачным «готовым» решениям можно отнести системы управления обучением (от англ. Learning Management System - LMS), среди которых по целому ряду объективных причин мы выделим свободно распространяемую LMS Moodle.
Во-первых, LMS Moodle широко распространена в мире [10].
Во-вторых, ее инсталляционный пакет предоставляется совершенно бесплатно.
В-третьих, система активно разрабатывается и популяризируется крупным сообществом преподавателей-энтузиастов, благодаря чему она снабжена подробной и понятной документацией.
В-четвертых, LMS Moodle имеет открытый программный код, который каждый пользователь-администратор вправе изменить по собственному усмотрению.
Последний пункт и является, на наш взгляд, главным условием успешности системы. Программный продукт учебного назначения не может быть абсолютно универсальным. Только преподаватель конкретной дисциплины может знать, как доработать его до необходимого уровня функциональности.
Неоспоримое преимущество здесь имеют преподаватели информатики, однако многолетняя история существования сообщества LMS Moodle показывает, что многие преподаватели гуманитарных дисциплин также пытаются модифицировать программный код системы, добиваясь при этом значительных успехов.
Приведем пример элементарной модификации - создание дополнительной веб-страницы внутри курса LMS Moodle. «Готовым» решением в этом случае будет ресурс «страница», на которой можно расположить отформатированный текст, картинку или видеоролик [11]. Но предположим, что нам нужно поместить на веб-странице содержимое с элементами Drag&Drop или раскрывающиеся и закрывающиеся контейнеры - то, что приводится в действие с помощью JavaScript.
Произвести такие модификации может только администратор LMS Moodle, имеющий доступ к файлам системы на веб-сервере. В корневом каталоге LMS Moodle создается новый файл, например «newpage.php», в который помещается следующий код на языке программирования PHP (см. Листинг 1):
Листинг 1. Код файла newpage.php
<?php
require_once('config.php');
// Open the page if the user is logged in
if ((is_enrolled(context_course::instance(18), $USER)) or (is_enrolled(context_
course::instance(20), $USER)) or is_siteadmin()) { $PAGE->set_context(get_system_context()); $PAGE->set_pagelayout('standart'); $PAGE->set_title(«New Page»); $PAGE->set_heading(«New Page»); $PAGE->set_url($CFG->wwwroot . '/newpage.php'); // Adding navbar
$PAGE->navbar->ignore_active(); $strHome = «newpage»;
$PAGE->navbar->add($strHome, new moodle_url('newpage.php'));
echo $OUTPUT->header();
// Variables for the content (html and javascript)
$htmlscr = «»; // some code
// Actual content goes here
echo $htmlscr;
echo $OUTPUT->footer();
}
// Else output error message
else {
echo «<h2> You are not authorized, sorry.</h2>»;
}
?>
Доступ к веб-странице ограничивается и предоставляется только студентам, зарегистрированным на курсах с идентификаторами «18» и «20» (см. строку 4 Листинга 1). Если на эту веб-страницу попытается зайти внешний пользователь или пользователь других курсов, то произойдет вывод надписи: «You are not authorized, sorry». Гиперссылку на новую веб-страницу можно расположить где угодно внутри курса LMS Moodle. Переменная $htmlscr должна содержать собственно код веб-страницы, включая код JavaScript.
Приведенный пример показывает, что модификация программного кода требует хотя бы базовых навыков работы с HTML, JavaScript и PHP, а также понимания основ архитектуры LMS Moodle, но при всех этих требованиях дает качественно новый результат, расширяющий возможности реализации процесса обучения. Интегрирование авторской веб-страницы в стандартный курс LMS Moodle не только оживляет этот курс, но и позволяет работать с нужным материалом, не покидая системы и не прибегая к внешним ресурсам, что представляется нам очень важным условием эффективной работы с электронными учебными материалами.
Планомерное обучение программированию, а именно - профессионально ориентированному программированию, поможет будущему преподавателю иностранного языка добиться большего успеха в профессиональной деятельности, не чувствуя себя ограниченным теми или иными «готовыми» техническими решениями.
Подчеркнем, что это утверждение полностью согласуется с требованиями Федерального государственного образовательного стандарта высшего образования по направлению подготовки «45.03.02 Лингвистика», уровень высшего образования «Бакалавриат». Так, в рамках лингводидактической деятельности бакалавр лингвистики должен владеть «средствами и методами профессиональной деятельности учителя и преподавателя иностранного языка...» (ПК-2), быть способен «использовать учебники, учебные пособия и дидактические материалы по иностранному языку для разработки новых учебных материалов по определенной теме» (ПК-3), быть способен «эффективно строить учебный процесс, осуществляя педагогическую деятельность . в соответствии с задачами конкретного учебного курса и условиями обучения иностранным языкам» (ПК-6) [5, с. 10].
Согласно Федеральному государственному образовательному стандарту высшего образования по направлению подготовки «45.04.02
Лингвистика» (уровень магистратуры) выпускник, освоивший программу магистратуры, должен, кроме прочего, решать в рамках линг-водидактической деятельности профессиональные задачи по разработке учебно-методических материалов с использованием современных информационных ресурсов и технологий [6, с. 6].
При обучении лингвистов профессионально ориентированному программированию необходимо сосредоточиться на решении задач, часто встречающихся в повседневной педагогической практике. В связи с этим нам кажется нецелесообразным пользоваться учебниками и учебными пособиями по программированию, в которых рассказывается о программировании вообще (исключением могут быть материалы, в которых популярно излагаются сведения об основных понятиях программирования, таких как «переменная», «алгоритм», «принятие решений», «цикл» и т. п.). Для формирования первичных навыков работы с программным кодом мы рекомендуем работать с HTML, постепенно прибавляя CSS и JavaScript в объемах, достаточных для создания простой электронной книги из нескольких вебстраниц с оглавлением, а далее - упражнений с автоматической проверкой [3, с. 36-81].
После получения базовых навыков обучающиеся могут перейти к созданию полноценных программ для ЭВМ, причем здесь мы наметим два направления - обучение разработке отдельных приложений (для работы на локальном компьютере) или веб-приложений (для работы через Интернет). При достаточном количестве учебных часов не исключается последовательное обучение и по обоим направлениям.
Размышляя об инструментах для создания отдельных приложений и веб-приложений учебного назначения, мы приходим к выводу, что в их основе должен лежать один и тот же язык программирования, что позволит обучающимся максимально сосредоточиться на решении практических задач. Этим языком программирования был выбран Python. Помимо достоинств, указанных выше, приведем мнение Кеннет Ламберт (Пер. с англ. - А. Г.):
1. У Python простой синтаксис, его выражения очень близки к псевдокоду (языку описания алгоритмов) и используют общепринятые в алгебре знаки. Это значит, что студенты смогут больше времени уделить решению интересных задач, а не изучению специфического синтаксиса.
2. Python использует защищенный синтаксис, это значит, что введенные неправильно выражения вызовут сообщение об ошибке.
3. Python подходит для программистов разного уровня. Начинающие могут писать на нем простые программы, а опытные - создавать сложные продукты, оперируя базами данных и используя все достижения современного объектно-ориентированного программирования.
4. Python невероятно интерактивен. Выражения можно вводить прямо в строку интерпретатора, получая немедленно результат программы. Значительные объемы кода можно сохранять в отдельных файлах и вызывать впоследствии в качестве отдельных модулей или запускать как самостоятельные программы.
5. Python - язык общего назначения. В контексте современности это означает, что язык включает в себя ресурсы для создания современных приложений, включая мультимедийные и сетевые.
6. За Python не надо платить, и он распространен на промышленном уровне. Студенты могут загрузить его и работать с ним на разных устройствах. У Python большое сообщество пользователей, что делает умение работать с ним очень полезным [9, c. xxii].
После первичного знакомства с Python нужно переходить к созданию элементарных оконных приложений, где в качестве простых примеров можно использовать встроенную в Python библиотеку tkin-ter [см. 1, с. 54]. Для написания по-настоящему профессиональных оконных приложений для использования в учебном процессе мы рекомендуем воспользоваться графической библиотекой PyQt5. В качестве примера первого экспериментального учебного пособия по профессионально ориентированному программированию для лингвистов нами было разработано электронное учебное пособие «PyQt5 для лингвистов: профессионально ориентированное программирование» [2]. В учебном пособии описывается создание различных программных тренажеров - начиная от элементарных и заканчивая разветвленными, с функцией протоколирования, таймера, воспроизведения аудиофайлов и автоматического анализа протоколов. В качестве задач для самостоятельного решения обучающимся предлагается модифицировать разобранные программы (ср. с деятельностью по модификации LMS Moodle). Все задачи снабжены ключами.
Дальнейшим расширением серии явилось учебное пособие «web2py для лингвистов: профессионально ориентированное программирование» [4]. Фреймворк web2py является пока еще малоизвестным
в России, но обладает, по нашему мнению, мощным потенциалом в качестве инструмента разработки веб-приложений учебного назначения. Сильные стороны 'еЬ2ру можно сформулировать следующим образом.
Во-первых, фреймворк можно загрузить с официального веб-сайта и сразу начать с ним работать без отдельной установки веб-сервера. При запуске фреймворка происходит старт локального веб-сервера и вывод в окно браузера панели управления веб-приложениями 'еЬ2ру, которая, в свою очередь, сама является веб-приложением 'еЬ2ру. Таким образом, весь процесс разработки можно проводить на персональном компьютере без подключения к Интернету.
Во-вторых, в панели управления можно нажатием одной кнопки создать полностью функционирующее шаблонное приложение, которое состоит только из одной содержательной веб-страницы, но при этом предусматривает учетные записи пользователей. Вся дальнейшая работа может быть сведена к модификации этого шаблонного приложения.
В-третьих, все приложения 'еЬ2ру по умолчанию поддерживают кодировку ШТ-8, т. е. позволяют отображать текст на многих языках мира (включая восточные), что особенно важно для электронных учебных материалов по иностранному языку.
В-четвертых, фреймворк изначально предусматривает распределение ролей среди зарегистрированных пользователей, причем количество ролей ограничено только здравым смыслом разработчика.
В-пятых, 'еЬ2ру имеет встроенный мобильный интерфейс. При запуске веб-приложения 'еЬ2ру с мобильного устройства этот интерфейс автоматически включается, не требуя никаких настроек.
В-шестых, разработанные веб-приложения можно бесплатно разместить в Интернете, хотя и с некоторыми ограничениями.
В-седьмых, фреймворк имеет встроенный графический интерфейс работы с базами данных, что существенно упрощает работу с ними [4, с. 4-5].
Последний пункт является ключевым, так как благодаря ему обучающие могут не посвящать много времени такой сложной проблеме, как работа с различными типами баз данных.
Точно так же, как и в первом учебном пособии, обучение здесь происходит путем подробного рассмотрения задач из педагогической практики и их расширения в ходе самостоятельной работы. После небольшого введения, посвященного техническим деталям работы с 'еЬ2ру, обучающиеся решают первую задачу - модификацию
стандартного приложения web2py [4, с. 20-24]. Далее в учебном пособии рассматриваются следующие проблемы [4, с. 2-3]:
• регистрация пользователей в веб-приложениях web2py;
• ограничение доступа к веб-страницам;
• элементарные запросы базы данных;
• добавление веб-страниц с заданиями;
• установление прогрессии выполнения заданий;
• разработка личного кабинета преподавателя;
• расширение возможностей личного кабинета преподавателя и загрузка файлов;
• работа с заданиями открытого типа;
• возможности автоматической проверки содержания текстов.
В результате студенты учатся создавать заготовки для веб-приложений учебного назначения, которые можно наполнять конкретным языковым материалом и сразу внедрять в педагогическую практику. К сожалению, небольшой объем данной работы не позволяет нам рассмотреть учебные пособия по профессионально ориентированному программированию более подробно. Поэтому подведем итог изложенному выше.
Обучение программированию будущих и настоящих лингвистов-преподавателей в форме профессионально ориентированного программирования имеет целью помочь преподавателю иностранного языка быть более успешным в профессии. Содержание дисциплины (исходя из наполнения рассмотренных учебных пособий) не противоречит требованиям действующих ФГОС ВО по направлениям подготовки «45.03.02 Лингвистика» и «45.04.02 Лингвистика». Для обучения профессионально ориентированному программированию необходимо составлять специальные учебники и учебные пособия, отличающиеся от материалов для обучения профессиональных программистов рассмотрением задач, имеющих место в педагогической практике. В качестве предмета обучения предлагаются языки программирования HTML (включая CSS и JavaScript) и Python (включая PyQt5 и web2py).
СПИСОК ЛИТЕРАТУРЫ
1. Горожанов А. И. Автоматизация процесса обучения иностранному языку:
от элементарных программ для ЭВМ до электронных учебников [Электронный ресурс] : монография. - Электрон. текст. данные (1,3 MБ). - Краснодар : НИЦ Априори, 2013. - ISBN 978-5-905897-40-5 (1 CD-ROM)
2. Горожанов А. И. Электронное учебное пособие «PyQt 5 для лингвистов: профессионально ориентированное программирование». - Электрон. данные (3,52 МБ) - М., 2014. - Св-во о гос. рег. № 50201450356 от 28.05.2014 (Доступ к полному тексту через URL: https://www.academia.edu/11570609/ PyQt_5_для_лингвистов_профессионально_ориентированное_програм-мирование_Электронное_учебное_пособие_для_студентов_лингвисти-ческих_вузов_и_факультетов_бакалавриат_и_магистратура_)
3. Горожанов А. И. Электронный учебник «Информационные и коммуникационные технологии в практике преподавания иностранного языка» // Хроники Объединенного фонда электронных ресурсов наука и образование. - № 3 (46). - М. : Ин-т управления образованием РАО, 2013. - с. 60 (Доступ к полному тексту через URL: https://www.academia. edu/11570663/ИНФОРМАЦИОННЫЕ_И_КОММУНИКАЦИОННЫЕ_ ТЕХНОЛОГИИ_В_ПРАКТИКЕ_ПРЕПОДАВАНИЯ_ИНОСТРАННО-ГО_ЯЗЫКА)
4. Горожанов А. И. web2py для лингвистов: профессионально ориентированное программирование : учеб. пособие. - Деп. в ФГБОУ «Российская государственная библиотека». - Св-во о деп. РИД № 1170352 от 14.12.2015. -217 с. (Доступ к полному тексту через URL : https://www.academia. edu/19770213/web2py_для_лингвистов_профессионально_ориентирован-ное_программирование)
5. Федеральный государственный образовательный стандарт высшего образования по направлению подготовки «45.03.02 Лингвистика», уровень высшего образования «Бакалавриат» // Утвержден Приказом Минобрна-уки РФ № 940 от 07.08.2014
6. Федеральный государственный образовательный стандарт высшего образования по направлению подготовки «45.04.02 Лингвистика» (уровень магистратуры) // Вступил в силу с 01 сентября 2014 года
7. About / Python Programming Language. - URL : https://www.python.org/ about (дата обращения: 25.02.2016).
8. HTML5 Specification / W3C Recommendation 28 October 2014. - URL : https://www.w3.org/TR/html5 (дата обращения: 25.02.2016).
9. Lambert K. A. Fundamentals of Python: From First Programs Through Data Structures. - Boston : Course Technology, 2010. - 915 p.
10. Moodle Statistics. - URL : https://moodle.net/stats (дата обращения: 27.02.2016)
11. Page / Moodle Docs. - URL : https://docs.moodle.org/28/en/Page_resource (Дата обращения: 27.02.2016)
12. TIOBE Index for February 2016. - URL : http://www.tiobe.com/tiobe_index (Дата обращения: 25.02.2016)