УДК 681.3.06

ИСПОЛЬЗОВАНИЕ СОВРЕМЕННЫХ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ В ОБУЧЕНИИ СТУДЕНТОВ, СПЕЦИАЛИЗИРУЮЩИХСЯ ПО НАПРАВЛЕНИЮ «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА», РАЗЛИЧНЫМ ПАРАДИГМАМ ПРОГРАММИРОВАНИЯ

Волченков Николай Геннадьевич
Национальный исследовательский ядерный университет «МИФИ»
кандидат технических наук, доцент кафедры кибернетики

Аннотация
При обучении программированию важно не только использовать такие современные технологии как дистанционные методы обучения, «облачные» сервисы, но и освоение не одного, а, по меньшей мере, двух различных подходов к созданию программ (двух парадигм – императивной и декларативной). В статье кратко описан опыт демонстрации студентам интерфейса двух языков, исповедующих указанные парадигмы. Это императивный визуальный язык Visual Basic и декларативный язык логического программирования Пролог.

Ключевые слова: «облачный» сервис, визуальное программирование, декларативное программирование, дистанционные методы обучения, императивное программирование, логическое программирование, межъязыковый интерфейс, парадигма программирования, язык Prolog, язык Visual Basic


THE USE OF THE MODERN INFORMATION TECHNOLOGIES IN THE TEACHING STUDENTS SPECIALIZING IN "COMPUTER SCIENCE AND ENGINEERING", VARIOUS PROGRAMMING PARADIGMS

Volchenkov Nikolay Gennadievich
National Research Nuclear University MEPhI (Moscow Engineering Physics Institute)
PhD in engineering, associate professor of Department of Cybernetics

Abstract
When teaching programming, it is important not only to use modern technologies such as distance learning methods, "cloud" services, but also the development of not one but at least two different approaches to creating programs (two paradigms - imperative and declarative). The article briefly describes the experience of student demonstrations interface of two languages, professing these paradigms. It is imperative visual language Visual Basic and declarative logic programming language Prolog.

Keywords: "cloud" services, cross-language interface, declarative programming, distance learning methods, imperative programming, logic programming language Prolog, programming paradigm, visual programming language Visual Basic


Рубрика: 01.00.00 ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Волченков Н.Г. Использование современных информационных технологий в обучении студентов, специализирующихся по направлению «Информатика и вычислительная техника», различным парадигмам программирования // Современные научные исследования и инновации. 2015. № 3. Ч. 1 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2015/03/47345 (дата обращения: 04.10.2017).

Введение

Автор в течение последних 15 лет параллельно читает студентам, специализирующимся по направлению «Информатика и вычислительная техника», ряд курсов по тематикам: (1) «Информатика: Алгоритмизация и программирование» (традиционное императивное программирование, офисное программирование, языки Visual Basic и VBA); а также (2) «Логическое программирование» (нетрадиционное декларативное программирование, язык Пролог).

Курсы тематики (1) предназначены студентам первого курса бакалавриата ряда кафедр Национального исследовательского ядерного университета (НИЯУ МИФИ); курс тематики (2) предназначен студентам 4-го курса бакалавриата (а также первого курса магистратуры) одной из кафедр того же университета.

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

Третий раздел статьи посвящен проблеме обучения не одной (как правило, императивной) парадигме программирования, а нескольким, по крайней мере, двум парадигмам: императивной и декларативной. Эти парадигмы программирования, проповедуемые двумя указанными выше тематиками, принципиально отличаются друг от друга.

Императивная парадигма считается более традиционной, возникла на заре программирования более 60 лет тому назад. Она проповедует алгоритмический подход к написанию программы на том или ином языке программирования императивного типа: во главу угла ставится принцип «как», а не «что», то есть, принцип составления подробной инструкции того, какие стандартные действия надо выполнить интерпретатору языка программирования императивного типа, чтобы решить задачу.

Декларативная парадигма, возникшая на 2 десятилетия позже императивной, напротив, во главу угла ставит принцип «что», а не «как», то есть, принцип составления точного формального описания желаемого результата и исходного множества средств, которые могут понадобиться для его получения. Интерпретатор языка декларативного программирования берёт на себя автоматический выбор необходимых для решения задачи средств и последовательность их применения.

Разумеется, цели и задачи курсов двух указанных тематик существенно и принципиально отличаются друг от друга. По указанным двум тематикам автором многие годы читались лекции, проводились практические занятия и были опубликованы многочисленные учебные пособия, в частности [1], [2] и [3], что дает ему право говорить о значительном методическом опыте их преподавания.

В настоящее время методика преподавания курсов указанных выше направлений претерпела существенные изменения в связи с появлением новых возможностей современных информационных технологий. В частности, имеются в виду дистанционные методы, «облачная» технология, использование интерфейса образовательных подсистем и языков программирования. Автор пришел к выводу о возможности успешного применения разработанной им единой методики преподавания курсов, относящихся к различным по своей сути тематикам, перечисленным выше.

Дистанционные методы общения преподавателя со студентами в ходе выполнения самостоятельных (домашних) заданий

Объективными предпосылками перехода к «безбумажной» технологии общения со студентами, выполняющими домашние задания по программированию, послужило то обстоятельство, что каждый (без исключения) студент в настоящее время имеет возможность использовать интернет и электронную почту в общении с преподавателем практически, в режиме «онлайн». Кроме того, студенты обеспечиваются возможностью использовать среду программирования для отладки программ и получения результатов.

В частности, в курсе «Логическое программирование» студенты используют лицензионный продукт: компилятор языка Prolog фирмы LPA [4]. (Лицензия предоставлена фирмой автору данной статьи для ограниченного использования этого продукта в учебных целях.) Студенты имеют возможность «мгновенного» (по прямой ссылке) скачивания архива с указанным продуктом с «облачного» сервиса «Диск», на который он загружается преподавателем в начале семестра. Примечательно, что для использования данного сервиса студенту нет необходимости иметь собственный почтовый ящик на поисковом портале (например, Google или Яндекс) – почта на этом портале должна быть лишь у преподавателя. Этот же сервис позволяет студентам скачивать, во-первых, варианты домашних заданий и, во-вторых, примеры решения типичных задач в виде интерпретируемых программных кодов. Также в виде интерпретируемых кодов студенты представляют отлаженные программы – результаты решений задач – и высылают их по электронной почте преподавателю. В случае затруднений при решении задач, студенты по запросу получают от преподавателя консультации в режиме «онлайн».

Более чем 10-летний опыт (а последние 3 года, с использования упомянутого выше «облачного» сервиса) применения данной «безбумажной» технологии общения со студентами показал ее высокую эффективность.

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

Главным и важнейшим для студентов учебно-методическим материалом (УММ) при изучении курсов рассматриваемых направлений, по мнению автора, являются конспекты лекций и материалы семинарских и лабораторных занятий. В настоящее время в университете, где преподает автор, созданы благоприятные условия для чтения лекций и проведения практических занятий (в том числе, по информатике и программированию) с компьютерной демонстрацией презентаций на больших экранах в аудиториях. (Компьютер встроен в рабочий стол преподавателя.)

По каждой лекции и по каждому практическому занятию каждого курса автор подготовил презентацию (файл офисного приложения MS Power Point), которую он демонстрирует в ходе чтения лекции и проведения практического занятия. Это относится как к курсам «Информатика» и «Программирование» (для подготовки бакалавров), так и к курсу «Логическое программирование» (для подготовки магистров). В первом случае, практические занятия – это лабораторные работы по программированию на языке VBA для офисного приложения MS Excel. Во втором случае, это семинарские занятия по декларативному программированию на Прологе, а также самостоятельная работа студентов с использованием упомянутого выше компилятора языка Prolog фирмы LPA.

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

Все указанные выше презентации автор разместил на сервисе «Яндекс-диск» в формате PDF с тем, чтобы они были доступны для дополнительного изучения студентами по прямым ссылкам, даже если студент не обладает офисным приложением MS Power Point. Адрес соответствующего файла в формате PDF на сервисе «Яндекс-диск» преподаватель оглашает в конце каждого занятия.

«Облачный» сервис «Диск» (в частности, «Яндекс-диск») используется автором и для упрощения студентам процесса подготовки к прохождению заключительной аттестации. По прямым ссылкам студент имеет возможность скачать файлы формата PDF с формулировками задач, подобных тем, которые предлагаются на зачете, а также с методическими рекомендациями их решений.

Демонстрация на примерах межъязыкового интерфейса расширения возможностей программ, требующих как декларативного, так и императивного подхода

На младших курсах университетского образования при изучении программирования студенты, как правило, осваивают какой-либо императивный язык программирования. На завершающем этапе образования им может быть предложен для изучения один из языков другой, менее традиционной декларативной парадигмы. Автор считает, что для эффективного усвоения различий парадигм и полезности каждой из них целесообразно продемонстрировать студентам создание и демонстрацию программных проектов, в которых минимальными, доступными для усвоения средствами реализовано совместное использование (взаимодействие, интерфейс) языков с различными парадигмами.

В качестве примеров рассмотрим интерфейс декларативного языка логического программирования Пролог и императивного визуального языка программирования Visual Basic. В частности, будет рассмотрен интерфейс Пролога и языков группы Visual Basic (VB-6; VB-2010 – и более поздних версий на платформе .NET; VBA for Microsoft Office).

Польза и смысл указанного интерфейса заключается в том, что Пролог, как язык декларативного программирования, ориентирован, в основном, на символьную обработку данных и не обладает в достаточной степени инструментами визуализации, которыми в достаточной степени обладает Visual Basic.

Интерфейс различных версий языка Visual Basic и языка логического программирования Пролог

До появления современных версий языка Visual Basic на платформах .NET автор преподавал основы программирования на языке Visual Basic 6 [1] – более ранней, «классической», версии. (Следует отметить, что она стала основой языка офисных приложений VBA многих, в том числе, и всех современных версий.) Студентам, освоившим этот визуальный императивный язык программирования, впоследствии (через несколько семестров) было предложено изучить основы логического программирования на языке Пролог в рамках семестрового курса «Логическое программирование». Завершающей фазой изучения данного курса явилось выполнение задания по реализации интерфейса освоенного ранее языка Visual Basic и Пролога. За основу была взята одна из первых попыток автора статьи напрямую «связать» язык Visual Basic 6 с хорошо развитыми средствами визуализации (в частности, графики) и язык символьной обработки декларативного типа Пролог – для решения известной задачи «о греко-латинском (эйлеровом) квадрате» [6].

Для визуализации результатов работы программы на Прологе было спроектировано Windows-приложение в интегрированной среде разработки на языке Visual Basic 6.

Очевидно, что студенты, изучающие логическое программирование и, в частности, алгоритмы полного перебора на языке Пролог, получают в своё распоряжение хорошее средство визуализации решений, которые получаются в виде текстового файла. Именно текстовые файлы позволяют обмениваться данными программами на языке Visual Basic и Пролог.

Пример результата работы указанного приложения показан на рисунке 1.


Рисунок 1 – Окно приложения «Греко-латинский квадрат», спроектированного на языке Visual Basic 6.0 (2000 г.)

Исходные данные – размерность квадрата (в данном случае, 5) и номер решения (в данном случае, 1) вводится в виде (N,K) в текстовое поле. После щелчка команды меню Input эти данные записываются в текстовый файл, который становится доступным программе на Прологе. Эта программа может быть запущена с помощью интерпретатора этого языка следующей командой меню: Res. После щелчка команды меню Res («получить результат») запускается программа Пролог-интерпретатора и компилируется программа, которая формирует результат своей работы в виде другого текстового файла. Записи этого файла – строки матрицы. Они высвечиваются в поле списка справа на экранной форме. Одновременно, результат представляется в наглядном графическом виде (в графическом поле слева на экранной форме) – естественно, с помощью процедур программы на языке Visual Basic, использующих графику.

Итак, изучение интерфейса двух указанных языков с принципиально различными парадигмами легко воспринимается студентами в процессе изучения курса «Логическое программирование» («ЛП») на 4-м курсе бакалавриата кафедры Кибернетики НИЯУ МИФИ по следующим причинам. С одной стороны, к этому времени студентам уже достаточно хорошо известны принципы и приемы программирования на императивном языке (в данном случае, на языке Visual Basic 6). С другой стороны, изучение первой половины курса «ЛП» позволяет студентам освоить приемы программирования на Прологе переборных алгоритмов, а также использование встроенных предикатов Пролога для записи общих данных, которыми обмениваются программы на Прологе и Бейсике.

Спустя 10 лет, в 2010 году, для той же задаче о греко-латинском квадрате (без какого-либо изменения программы на Прологе) был реализован интерфейс языка Visual Basic на платформе .NET фирмы Microsoft [2] (в данном случае, языка Visual Basic 2010) и языка логического программирования Пролог. Была использована та же версия базисного языка Пролог, реализованного фирмой LPA [4]. Несущественные изменения были сделаны лишь в той части программы на VB-2010, которые обеспечивали вызов программы на Прологе.

В данной статье автор представляет другой пример: интерфейс языка Visual Basic на платформе .NET (языка VB 2010) и языка Пролог фирмы LPA – для демонстрации программы синтаксического анализа на основе встроенного в Пролог механизма DCG [3, с.242 – 261].

Окно Window-приложения, спроектированного на языке Visual Basic 2010, с демонстрацией работы программы синтаксического анализа на Прологе показано на рисунке 2.

Рисунок 2 – Окно приложения «Синтаксический анализ языка с помощью механизма DCG», спроектированного на языке Visual Basic 2010

Ценным качеством данного приложения является то, что программа на Прологе, реализующая синтаксический анализатор (в данном случае, анализатор языка {anbncn}), целиком загружается в текстовое поле экранной формы. В левое нижнее поле пользователь записывает анализируемую цепочку. В правом нижнем поле появляется полученный Прологом результат. Очевидно, студенту предоставляется достаточно широкий простор для проведения различных экспериментов с данным приложением.

Интерфейс языка VBA (Visual Basic for Applications) и языка логического программирования Пролог

Уже на младших курсах при изучении основ информатики студенты, как правило, осваивают и элементы программирования макрокоманд (макросов) на языке VBA [7].

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

Первый пример – это создание макроса для офисного приложения Microsoft Excel 2010 (или более поздних версий), который решает задачу перевода записи числа из цифровой формы в словесную форму (в так называемую «пропись»). Примеры записей чисел в той и другой форме представлены на рисунке 3.

Рисунок 3 – Лист книги MS Excel 2010 с результатом работы программы на Прологе – переводом записи числа из цифровой формы в форму «прописи» – и наоборот

Макрос на языке VBA, вызывающий Пролог-программу, для данного приложения практически не отличается от программного модуля, который был создан для описанного выше примера о греко-латинском квадрате.

Второй пример – это проведение так называемых частичных вычислений. В данном случае, автор имеет в виду упрощение символьного выражения, которое может получиться, например, в результате символьного дифференцирования – задачи, которая идеально демонстрирует возможности Пролога как логического языка символьной обработки.

Например, при дифференцировании программой на Прологе арифметического выражения ln(a / x) + 5 * x ^ 4 + 4 * x ^ 3 + 3 * x ^ 2 + 2 * x + a, получается следующее выражение: a * (-1 * x ^ (-1 – 1) * 1) * (a / x) ^ -1 + 5 * (4 * x ^ (4 – 1) * 1) + 4 * (3 * x ^ (3 – 1) * 1) + 3 * (2 * x ^ (2 – 1) * 1) + 2 * 1 + 0.

Такое выражение явно нуждается в упрощении. Один из путей упрощения – частичное вычисление выражения.

Здесь демонстрируется реализация работы программы частичного вычисления на Прологе, которая вызывается из приложения MS Excel (2007, 2010) с помощью макроса, написанного на языке VBA for Excel. Фрагмент листа книги Excel может быть таким, как показано на рисунке 4.

Рисунок 4 – Лист книги MS Excel 2010 с результатом работы программы на Прологе – частичным вычислением арифметического выражения

На рисунке 5 показана экранная форма, вызываемая, например, щелчком кнопки, установленной непосредственно на листе книги Excel, как показано на рисунке 4.

Рисунок 5 – Вызываемая с листа книги MS Excel 2010 пользовательская форма для проведения частичного вычисления

На данной форме установлены командные кнопки, позволяющие (1) загрузить и показать пользователю данного приложения программу на Прологе; (2) ввести и загрузить арифметическое выражение и (3) вызвать и запустить программу на Прологе, упрощающую это выражение (производящую его частичное вычисление).

Отметим, что из текста программы на Прологе, показанного в окне формы на рисунке 5, можно увидеть, что исходное (вычисляемое) выражение берётся Прологом из текстового файла string.txt, куда оно было записано после щелчка командной кнопки «Загрузить исходное арифметическое выражение» (процедура-событие CommandButton_Click на языке VBA). Результат частичных вычислений, выполненных Прологом, помещается в текстовый файл struct.txt тоже Прологом. Перемещение записей результата из файла struct.txt в правое нижнее поле на форме выполняется снова процедурой на языке VBA.

Интерфейс двух языков программирования в данном примере (как и во всех предыдущих) проявляется в полной мере.

Заключение

Представляется целесообразным и плодотворным расширение использования в процессе преподавания программирования студентам технических вузов таких современных и эффективных технологий как дистанционный оперативный обмен условиями задач по программированию, а также оперативный обмен учебными материалами с помощью «облачных» сервисов. Кроме того, представляется разумным с точки зрения расширения кругозора обучение студентов языкам с принципиально различными парадигмами. Рассмотренные в статье примеры позволяют сделать вывод о целесообразности включения в процесс преподавания программирования студентам, обучающимся по направлению «Информационные технологии», обучение проектирования взаимодействия (интерфейса) языков с различными парадигмами. В частности, плодотворного интерфейса языков декларативного и императивного стилей. Например, логического языка Пролог и визуального языка Visual Basic.


Библиографический список
  1. Волченков Н.Г. Программирование на Visual Basic 6: В 3-х ч. – Части 1, 2 – Учебное пособие. Часть 3 – Задачник. – М.: ИНФРА-М, 2000. – 288 с. (Часть 1), 280 с. (Часть 2), 238 с. (Часть 3).
  2. Волченков Н.Г., Троицкий А.К. Проектирование Windows-приложений на языке Visual Basic .NET (2005, 2008): Учебно-методическое пособие. – М.: НИЯУ МИФИ, 2010. – 96 с.
  3. Сергиевский Г.М., Волченков Н.Г. Функциональное и логическое программирование: Учебное пособие для студентов высших учебных заведений. – М.: Издательский центр «Академия», 2010. – 320 с.
  4. Сайт фирмы Logic Programming Associates (LPA Ltd). [ Электронный ресурс]. URL: http://www.lpa.co.uk(дата обращения: 18.02.2015).
  5. Волченков Н.Г. Логическое программирование. Язык Пролог: Тексты лекций. – М.: МИФИ, 2003. – 136 с.
  6. Греко-латинский_квадрат. Материал из Википедии – cвободной энциклопедии. [ Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Греко-латинский_квадрат (дата обращения: 18.02.2015).
  7. Слепцова Л.Д. Программирование на VBA Microsoft Office 2010: Самоучитель. – М.: ООО «И.Д.Вильямс», 2010. – 432 с.


Все статьи автора «Волченков Николай Геннадьевич»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

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

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: