An extendable essay on the Sage computer algebra system and an editor for creating extendable essays
- Авторлар: Bordachenkova E.A.1, Zubareva V.N.1, Panferov А.А.1
-
Мекемелер:
- Moscow State University
- Шығарылым: № 2 (2024)
- Беттер: 13-21
- Бөлім: COMPUTER ALGEBRA
- URL: https://bakhtiniada.ru/0132-3474/article/view/262638
- DOI: https://doi.org/10.31857/S0132347424020038
- EDN: https://elibrary.ru/RPFFQI
- ID: 262638
Дәйексөз келтіру
Толық мәтін
Аннотация
An extendable essay is a special format of electronic texts that is more convenient for reading than hypertext. To facilitate the creation and editing of extendable essays, an editor program implemented as a web application is proposed. Using this editor, an extendable essay on the Sage computer algebra system is written. Sage seems to be a good choice for the users who are not familiar with computer algebra systems.
Негізгі сөздер
Толық мәтін
1. Введение
В современном мире людям чаще приходится иметь дело с электронными текстами, чем с текстами, напечатанными на бумаге. Количество электронных текстов лавинообразно растет.
С 1980-х годов проводятся работы, посвященные анализу различий физиологических и когнитивных процессов, происходящих при чтении бумажных и при чтении электронных текстов. Исследователи интересуются разными аспектами электронных текстов, анализируют влияние на читающего физических характеристик текста (таких как яркость и цвет экрана, расположение текста, начертание и размер шрифта и т.п.) и влияние структурных свойств электронных текстов (членение текста на логические фрагменты, размер отображаемых фрагментов). Не по всем вопросам ученые пришли к однозначным ответам, однако, некоторые выводы признаются научным сообществом. В обзоре [1] указывается: “Электронный текст как объект чтения действительно обладает рядом особенностей, из-за которых меняются психологические процессы, задействованные в чтении”. В некоторых работах выясняется, что у читателей при чтении электронных текстов по сравнению с чтением бумажных текстов происходит снижение скорости чтения, повышение когнитивной нагрузки, снижение точности (внимательности) чтения (см. обзор [1]).
Следует отметить, что процессы, задействованные при чтении линейного электронного текста, отличаются от процессов, происходящих при чтении гипертекста. В работе [2] указывается, что наличие ссылок увеличивает умственную нагрузку читающего двояко: напрямую, когда читатель принимает решение о переходе по ссылке, и на более высоком уровне понимания текста — переходы по ссылкам приводят к разрыву связи между частями текста, потере целостности восприятия текста. Форма организации электронного текста, описываемая ниже, разрабатывалась с целью облегчить читателю сохранение целостности восприятия текста.
В статье [3] предложена схема организации текста в виде расширяемого эссе. Расширяемое эссе — текст, представляющий собой краткое изложение материала (учебного, научного, познавательного) с опциональными расширениями, дополняющими исходный текст пояснениями, иллюстрациями, примерами и библиографическими ссылками. Для читателя первоначально расширяемое эссе выглядит как обычный текст, с традиционным разбиением на разделы и абзацы. Некоторые абзацы помечены специальными значками, показывающими, что абзац может быть “расширен”. Если читатель нажмет на значок расширения, абзац будет заменен другим, более пространным, абзацем или несколькими абзацами. Таким образом, читатель имеет возможность настраивать текст, выбирать более краткий или более подробный способ изложения материала в зависимости от своих нужд. Принципиальное отличие расширяемого эссе от гипертекста состоит в том, что при любом расширении текст эссе сохраняет целостность и связность. Это позволяет надеяться, что изменение текста во время чтения не создаст неудобства читателю.
2. Структура расширяемого эссе
Формат расширяемого эссе разрабатывался прежде всего как форма организации учебных материалов, отсюда происходят особенности этого формата [3].
Расширяемое эссе похоже на обычную книгу: имеет название, после которого указан автор, далее идет текст. Текст делится на разделы, которые состоят из абзацев. Каждый абзац может иметь расширение (более подробный вариант текста абзаца), в таком случае слева на полях абзаца стоит значок расширения. В конце раздела могут находиться вопросы для самопроверки.
Текст расширения структурно является абзацем или несколькими абзацами, каждый из которых также может иметь расширения (так сказать, расширения второго, третьего и т.д. уровней). Таким образом, расширяемое эссе имеет линейно-иерархическую структуру. Глубина вложенности расширений формально не ограничивается. Однако опыт показывает, что больше двух уровней расширений не требуется: эссе становится неудобно читать, поскольку появляется слишком сильный контраст в степени подробности изложения материала между основным, нерасширенным, текстом эссе и расширением максимальной глубины.
Расширения бывают нескольких видов, каждому из которых соответствует свой значок:
“+” — более подробное объяснение,
“:” — пример,
“[ ]” — ссылка на библиографический источник,
“T” — вопрос или задача по теме раздела.
Если читатель открыл расширение абзаца и решил, что краткого варианта абзаца ему достаточно для понимания, он может убрать (закрыть) расширение, вернувшись к первоначальному, краткому варианту абзаца, нажав значок “¬” в левом поле расширения. На рис. 1 и 2 приведен пример фрагмента эссе с нераскрытым и с раскрытым расширением.
Рис. 1. Фрагмент эссе с нераскрытым расширением.
Рис. 2. Фрагмент эссе с раскрытым расширением.
Расширение “T” отличается от других видов расширений, оно даёт возможность читателю протестировать себя. При нажатии на значок “T” читателю предъявляется вопрос и предлагается на выбор несколько вариантов ответов. После того как читатель указал выбранный ответ, ему сообщаются правильный ответ и пояснение к нему. Автор эссе может подготовить несколько вопросов к разделу. В таком случае вопрос, предъявляемый читателю, выбирается случайным образом из списка вопросов.
3. Создание расширяемых эссе
Поскольку формат расширяемого эссе предполагает разные уровни подробности изложения материала, автор должен определить, какие из фрагментов нужно объяснять более подробно (т. е. снабдить расширением). Далее, нужно написать не один полный текст по теме эссе; для некоторых фрагментов придется писать несколько вариантов — основной текст и расширение. Наконец, необходимо проверить, что текст эссе будет гладко читаться при любой комбинации фрагментов основного текста и расширений.
В работе [3] расширяемое эссе предлагается реализовать в виде HTML-файла, чтобы читатель мог открывать и читать расширяемое эссе с помощью своего интернет-браузера. Интерактивность (показ и скрытие расширений) обеспечивается программными вставками на языке JavaScript. Если эссе содержит иллюстрации (таблицы, рисунки), кроме HTML-файла, в реализацию эссе включаются соответствующие графические файлы. Реализация эссе хранится, например, у автора на сервере. Читатель обращается к серверу и просматривает эссе в режиме on-line либо скачивает все файлы, составляющие реализацию эссе, на свой компьютер и просматривает эссе без доступа к интернету.
Технически, согласно [3], процесс создания расширяемого эссе состоит в следующем. Первоначально текст эссе оформляется на языке XML; для задания иерархической структуры эссе определен набор XML-тегов. Затем специальная программа переводит текст в HTML-формат, вставляя программные фрагменты, обеспечивающие интерактивность эссе.
С использованием описанной технологии созданы три расширяемых эссе: “Сложность алгоритмов” ([4]), “Реализация расширяемого эссе” ([5]), “Портрет Адели Блох-Бауэр I” ([6]). Авторы столкнулись с проблемой ввода формул, поскольку формат XML не имеет средств для работы с формулами. Технически сложно включить в эссе рисунки. Наконец, трудно вводить текст эссе в XML-файл.
Во время работы над текстом, как правило, автор делает поправки, меняет слова, переформулирует фразы, переставляет местами части текста. При работе с расширяемым эссе этот процесс представляет собой большую сложность, так как вид текста в формате XML далек от текста на бумаге или в текстовом редакторе из-за обилия тегов. Найти в тексте нужное место довольно сложно; внесение любых изменений чревато появлением ошибок в структуре XML-файла.
Программное средство — редактор, который позволил бы работать с текстом расширяемого эссе, не отвлекаясь на моменты его технической реализации, был бы полезен потенциальным авторам. Ниже обсуждается программа-редактор 3E (extendable essay editor), предназначенная для создания расширяемых эссе, и расширяемое эссе о системе компьютерной алгебры Sage, созданное с помощью этого редактора.
4. Функциональность редактора 3E
Редактор предназначен для автора расширяемого эссе и должен обеспечить удобство его работы на протяжении всего периода создания расширяемого эссе.
Прежде всего, нужно скрыть технические подробности реализации расширяемого эссе, чтобы дать возможность автору сосредоточиться на проработке смыслового содержания самого эссе.
Редактор должен обеспечить удобный (традиционный) ввод и форматирование текста.
В редакторе должны быть предусмотрены средства для вставки в эссе формул и иллюстраций (рисунков, таблиц, графиков). Важно интегрировать иллюстративный материал внутрь HTML-файла, содержащего эссе. Читателю удобнее работать с одним файлом-эссе, чем следить за целостностью папки, содержащей файлы расширяемого эссе.
Написание расширяемого эссе – процесс длительный. Редактор должен давать возможность автору сохранить текущий вариант эссе с тем, чтобы продолжить работу с оставленного состояния.
Внешний вид эссе, с которым работает автор, должен отличаться от вида эссе, предъявляемого читателю (хотя бы потому, что автор должен видеть все расширения одновременно). Соответственно, редактор должен давать возможность автору работать с эссе в двух режимах: редактирование (набор текста, вставка расширений и т.п.); просмотр в том виде, как будет видеть эссе читатель, для проверки связности текста при раскрытии расширений.
Расширяемое эссе предоставляется читателю в виде HTML-файла, следовательно, редактор должен генерировать и экспортировать внешнее представление расширяемого эссе в виде HTML-файла.
5. Реализация редактора расширяемых эссе
Поскольку просмотр расширяемого эссе осуществляется в интернет-браузере, представляется логичным и редактирование расширяемых эссе реализовать в виде приложения для работы в браузере. У этого подхода есть как положительные, так и отрицательные стороны. Размещение редактора, выполненного в виде веб-приложения, на сервере дает возможность работать с ним на любом компьютере, подключенном к интернету; установка редактора на компьютер не требуется. Автору-пользователю не нужно обладать никакими специфическими навыками, достаточно просто открыть нужную страницу в браузере. С другой стороны, если отсутствует доступ к интернету, использовать редактор не удастся.
Учитывая все достоинства использования веб-технологий, было принято решение вести разработку редактора 3E в виде веб-приложения на языке JavaScript. В качестве основной библиотеки была выбрана популярная библиотека React, обеспечивающая эффективную обработку и отображение изменяющихся веб-страниц ([7]). React — библиотека с открытым исходным кодом, дающая возможность быстро и просто создать высокопроизводительные веб-приложения.
Расширяемое эссе представляется в виде JavaScript-объекта следующей структуры (рис. 3): на самом верхнем уровне располагаются поля title и author, хранящие название эссе и автора. Содержание самого эссе представляется в виде массива разделов parts, каждый раздел является JavaScript-объектом со следующими полями: partTitle — название раздела, paragraphs — массив абзацев и tasks — контрольные вопросы. Каждый абзац в свою очередь также представляется объектом со следующей структурой: basic — базовое содержание абзаца в формате HTML, extension — расширение к абзацу. Если для абзаца расширения нет, то поле extension имеет значение null, в противном случае, extension представляет собой JavaScript-объект с атрибутами type (тип расширения) и paragraphs — массив абзацев расширения.
Рис. 3. Схема объекта “Расширяемое эссе” в редакторе.
Поле tasks представляет собой массив JavaScript-объектов, каждый из которых содержит текст вопроса (поле question), массив вариантов ответов на вопрос (answers) с указанием правильного варианта (rightAnswer), а также пояснение к правильному ответу (option).
Поскольку для внутреннего представления эссе используется JavaScript-объект, в качестве формата хранения (внешнего представления) расширяемого эссе выбран JSON (JavaScript Object Notation) — текстовый формат для обмена данными, широко используемый в веб-приложениях.
Программа-редактор представляет собой несколько компонентов, из которых можно выделить следующие. Компонент Options — инструментальная панель редактора — осуществляет форматирование вводимого текста, а также сохранение/загрузку JSON-файла эссе. Компонент ViewEssay отображает эссе в режиме чтения. Компонент EssayEditor — основной компонент, сам редактор, отвечающий за отображение инструментальной панели и эссе в режиме редактирования, в котором осуществляется набор текста, добавление и удаление абзацев, добавление и удаление расширений всех типов, включая контрольные вопросы, а также добавление и удаление разделов эссе.
Для отображения формул используется библиотека KaTeX. Работа с формулами реализована так. В режиме редактирования эссе формулы вводятся в формате TEX. Формат TEX привычен для авторов, пишущих тексты на естественно-научные темы, содержащие формулы, т. к. часто издательства принимают статьи именно в этом формате. При отображении эссе в режиме просмотра библиотека KaTeX “на лету” транслирует формулы в формат MathML, позволяющий интернет-браузерам отображать формулы в привычном для человека виде.
6. Пользовательский интерфейс
При создании интерфейса редактора 3E авторы придерживались принципов, изложенных в [8]: узнаваемость, наглядность, лаконичность, традиционность. Использована светлая цветовая палитра для уменьшения зрительной нагрузки.
При запуске редактора 3E открывается окно, изображенное на рис. 4.
Рис. 4. Стартовая страница редактора 3E.
В верхней части редактора находится панель инструментов с кнопками управления. Ниже расположены поля для ввода названия эссе, указания автора (авторов) и, собственно, поля ввода текста эссе.
Кнопки панели инструментов сгруппированы в соответствии с их функциями: управление начертанием символов, выравнивание текста, работа с файлами.
6.1. Группа файловых команд
Редактор позволяет сохранить на компьютер автора текущее состояние эссе, открыть эссе для продолжения работы с ним, конвертировать эссе в формат HTML (рис. 5).
Рис. 5. Кнопки группы файловых команд.
Кнопки “Сохранить” и “Открыть” имеют традиционный смысл. Внешний вид эссе в процессе редактирования несколько отличается от вида, предназначенного для чтения, поэтому в редакторе имеется возможность предварительного просмотра расширяемого эссе. При нажатии на кнопку “Просмотр”: в браузере открывается новая вкладка, в которой отображается то, как будет выглядеть эссе для читателя (рис. 6).
Рис. 6. Отображение расширяемого эссе в режиме просмотра.
При этом в эссе реализована функциональность — можно открывать и закрывать расширения, отвечать на тестовые задания и т. п.
Кнопка “Сохранить HTML” вызывает генерацию HTML-файла, содержащего эссе; сгенерированный файл можно загрузить на компьютер пользователя (автора эссе) для последующей передачи читателям.
6.2. Ввод и редактирование текста эссе
При запуске редактора автоматически создается один раздел: поле названия раздела и поле для ввода текста первого абзаца. Закончив ввод текста раздела, можно добавить новый, нажав кнопку “Добавить раздел”, расположенную под текстом раздела, или создать тренировочные задачи (контрольные вопросы), нажав кнопку “Добавить вопросы”. В редакторе предусмотрена возможность удаления раздела, причем раздел удаляется целиком, включая все абзацы и задачи, без каких-либо предупреждений. Для того чтобы исключить возможность ошибочного удаления раздела, кнопка “Удалить раздел” отличается от кнопок удаления абзацев по начертанию и размещена не слева на экране, а справа — правее названия раздела.
При создании раздела автоматически создается поле для ввода первого абзаца. При заполнении первой строки абзаца очередное слово переносится на новую строку, поле ввода увеличивается по вертикали, ввод продолжается в следующей строке. Работая с текстом абзаца, можно выделять, вставлять и удалять фрагменты текста, используя традиционные комбинации клавиш на клавиатуре компьютера. Выделенные фрагменты можно форматировать при помощи кнопок левой части панели инструментов вверху экрана (рис. 7).
Рис. 7. Группа кнопок управления начертанием символов.
Слева от поля ввода абзаца находятся кнопки “+”, “корзина” и “¶”, позволяющие создать расширение для текущего абзаца, удалить абзац (вместе с расширением) и добавить новый абзац.
6.3. Рисунки
Кнопка “Img” панели инструментов позволяет вставлять рисунки в текст эссе. Удобнее всего поместить рисунок в отдельный абзац. Рисунок можно расположить в центре страницы либо прижать к левому или правому краю. Также рисунки можно вставлять из буфера обмена с помощью сочетания клавиш Ctrl+V.
6.4. Формулы
Математические формулы (например, sin2(x)) набираются в формате TEX внутри знаков $...$: $\sin^2(x)$. Математический вид формулы можно увидеть в режиме просмотра эссе.
Ссылки на редактор расширяемых эссе 3E и на инструкцию к нему находятся на странице http://www.ccas.ru/ca/essay. Редактор запускается в любом современном браузере.
7. Эссе “система компьютерной алгебры Sage: краткое введение”
7.1. Содержание эссе
С использованием редактора 3Е было создано расширяемое эссе, посвященное основам работы с системой компьютерной алгебры Sage. При написании эссе мы опирались на книги В. Штейна [9], П. Циммермана и др. [10], A. Зобнина и др. [11] и использовали документацию сайта системы Sage [12]. В эссе описаны элементарные средства Sage и показана работа с многочленами и с матрицами.
Эссе адресовано читателям, впервые встречающимся с системами компьютерной алгебры. Система Sage — удобная среда для того, чтобы получить первый опыт работы в области компьютерной алгебры. Существуют веб-интерфейсы для работы с Sage, поэтому загружать и устанавливать систему, чтобы попробовать ее возможности и получить первое впечатление, не требуется.
Система Sage (точное название SageMath) — система компьютерной алгебры, охватывающая различные области математики, которая является свободно распространяемым открытым программным обеспечением. В создании и развитии системы принимают участие сотни ученых-разработчиков разных стран, проектом руководит Вильям Штейн.
Одна из идей, лежащих в основе Sage, состоит в том, чтобы максимально использовать существующие математические пакеты, вместо программирования всех алгоритмов с нуля. В Sage интегрировано более сотни специализированных и универсальных пакетов (например, GAP, PARI/GP, Singular, Maxima), что обеспечивает ее функциональную мощь. В качестве языка для работы с системой выбран Питон (Python). Использование универсального популярного языка программирования, поддержанного большим количеством библиотек, еще одна концепция, лежащая в основе Sage. Питон обладает большими выразительными возможностями; в эссе описаны конструкции, образующие логичное, на наш взгляд, подмножество, достаточное для начала освоения Sage.
Работа в системе Sage происходит в режиме диалога: пользователь вводит команду, система дает ответ. Команда — это приказ, например, вычислить значение выражения, построить матрицу или нарисовать график функции. Sage умеет работать с числовыми и с символьными выражениями, в эссе приведены соответствующие операции, проиллюстрированные примерами.
В разделе, посвященном многочленам, показаны операции, применимые к многочленам (перемножение многочленов, возведение в степень, вычисление наибольшего общего делителя двух многочленов и др.) Последний раздел эссе посвящен возможностям работы с матрицами — описание матриц, основные операции над ними, решение матричных уравнений.
Эссе “Система компьютерной алгебры Sage: краткое введение” доступно по адресу http://www.ccas.ru/ca/essay.
7.2. Использование редактора 3E
В процессе подготовки эссе редактор 3E запускался в браузерах Microsoft Edge (версии 115.0.1901.200, официальная сборка, 64-разрядная версия) и Firefox Browser (версии 116.0.2, 64-разрядная версия) под управлением операционных систем Windows 10 и Ubuntu 22.04.3 LTS соответственно.
При написании эссе “Система компьютерной алгебры Sage...”, кроме задачи создания самого эссе, стояла задача проверить работоспособность редактора 3E, в частности, работу с рисунками, формулами, расширениями и др. В эссе, помимо текстовых фрагментов, используются рисунки. Каждый рисунок оформлен в виде отдельного абзаца. Таким образом можно управлять размещением рисунка на странице с помощью команд форматирования абзацев. В эссе использованы два вида шрифтов — с засечками для ввода обычного текста и моноширинный для ввода программного кода. Ввод формул осуществлялся в формате TEX внутри символов $...$, в режиме просмотра формулы отображаются в привычном математическом виде. Максимальная глубина расширений — 1.
Затруднения возникали при вводе специфических символов, которые отсутствуют на клавиатуре (тех, которые вводятся в редакторе Word с помощью меню “Вставка символа”). Эти символы мы копировали из других текстовых редакторов.
В целом, редактор 3E показал свою работоспособность. В качестве направления дальнейшего развития инструмента видится отлаживание взаимодействия редактора с библиотекой KaTeX, возможный отказ от ее использования путем реализации трансляции формул в формат MathML, реализация возможности ввода символов наподобие того, как это устроено в редакторе Word, а также исправление замеченных ошибок.
Благодарности
Авторы выражают признательность А. А. Рябенко и Д. Е. Хмельнову за многократное плодотворное обсуждение работы. Благодарим рецензента за полезные советы. Наша особая благодарность — С. А. Абрамову, автору идеи расширяемого эссе, без которого работа над редактором 3E и над эссе “Система Sage...” не состоялась бы.
Источник финансирования
Проект реализуется по результатам грантового конкурса для преподавателей магистратуры 2022/2023 Стипендиальной программы Владимира Потанина.
Авторлар туралы
E. Bordachenkova
Moscow State University
Хат алмасуға жауапты Автор.
Email: lenabord@mail.ru
Department of Computational Mathematics and Cybernetics
Ресей, Moscow, 119991V. Zubareva
Moscow State University
Email: zubareva.vita@mail.ru
Department of Computational Mathematics and Cybernetics
Ресей, Moscow, 119991А. Panferov
Moscow State University
Email: ast.a_s@mail.ru
Department of Computational Mathematics and Cybernetics
Ресей, Moscow, 119991Әдебиет тізімі
- Voiskunskii A.E., Solodov M.Yu. Influence of electronic text properties on reading efficiency and effectiveness: A literature review, Psikhologiya Chel. Obraz. 2020. V. 2. № 2. P. 134–142. https://doi.org/10.33910/2686-9527-2020-2-2-134-142
- Miall D.S., Dobson T. Reading hypertext and the experience of literature // J. Digital Inf. 2001. V. 2. № 1. https://journals.tdl.org/jodi/index.php/jodi/article/view/35/37.
- Abramov S.A., Bordachenkova E.A., Khmel’nov D.E. Extendable essay as a hypertext scheme for information and educational material // Comput. Math. Math. Phys. 2013. V. 53. P. 369–374.
- Abramov S.A. Extendable essay “Complexity of algorithms.” http://www.ccas.ru/sabramov/essay.
- Khmelэnov D.E. Extendable essay “Implementation of an extendable essay.” http://www.ccas.ru/ca/_media/essayonessay_html.rar.
- Zubareva V.N. Extendable essay “Portrait of Adele Bloch-Bauer I.” http://www.ccas.ru/ca/_media/portrait.rar.
- Banks A., Porcello E. Learning React: Functional Web Development With React and Redux, Oreilly & Associates, 2017.
- Johnson J. Designing with the Mind in Mind: Simple Guide to Understanding User Interface Design Rules, Amsterdam: Elsevier, 2010.
- Stein W. Sage for power users, 2012. https://wstein.org/books/sagebook/sagebook.pdf.
- Zimmermann P., Casamayou A., Cohen N., Connan G., Dumont T., Fousse L., Maltey F., Meulien M., Mezzarobba M., Pernet C., Thiéry N., Bray E., Cremona J., Forets M., Ghitza A., Thoma H. Computational mathematics with SageMath, Society for Industrial and Applied Mathematics, 2018. https://www.sagemath.org/sagebook/english.html.
- Golubkov A.Yu., Zobnin A.I., Sokolova O.V. Komp’yuternaya algebra v sisteme Sage (Computer Algebra in the Sage System), Moscow: MGTU N. E. Baumana, 2013.
- SageMath feature tour. https://www.sagemath.org/tour.html.
Қосымша файлдар
