Введение
Исследование информационных моделей является основной дидактической линией курса информатики на уровнях основного общего и среднего общего образования. Обучающиеся должны уметь строить разные модели для оценки различных свойств объектов, обоснованно выбирать оптимальные из них [1]. Это является ключевой целью обучения моделированию в информатике. Формирование у обучающихся навыков структурного анализа объектов определяет, насколько цифровая модель будет эффективно описывать ключевые свойства предметов и явлений. Ввиду этого умение обучающихся создавать модели и работать с разными их видами составляет фундаментальную базу подготовки в области информатики [2]. Изучение принципов построения разных моделей с помощью таблиц, диаграмм, графиков воплощает теорию моделирования в соответствии с выбранным подходом в практику при решении задач.
Таким образом табличный способ отражает представление информации в структурированном виде как совокупность строк и столбцов. Он позволяет указать отношения объектов друг с другом или сравнить их свойства. При этом данные могут быть записаны в таблице в числовом формате, в виде текста, как значения логических констант или показателей времени [3, 4]. Диаграммы отражают соотношения между данными, подчеркивают тенденции в сравнении выбранной величины. Столбчатые диаграммы позволяют сравнить количественные характеристики объектов, круговые – доли их частей, линейчатые – изменение процессов во времени. Графики открывают горизонты выявления функциональных зависимостей и изучения корреляционных связей. Они дают возможность оценить динамику и цикличность протекания процессов, выяснить пространственные и временные характеристики.
В то же время в школьном курсе информатики на, казалось бы, очевидный важный междисциплинарный характер не всегда обращают должное внимание [5]. Нередко модели изучают отдельно друг от друга, не демонстрируя их всестороннее применение для целостного представления о системе. Так, во многих случаях табличные модели служат инструментами расчетов. В связи с этим именно математическим операциям и логическим функциям в заготовленных таблицах электронных редакторов уделяют основное время при обучении [6]. При этом вопросу оптимального расположения данных в таблицах, организации эффективного отражения связей между ними времени практически не отводят. Недостаточно уроков остается на визуализацию данных в виде графовых моделей. Основное внимание концентрируется вокруг графиков и диаграмм как средства визуализации числовых зависимостей между двумя величинами [7]. Сетевые модели изучаются только в профильной школе как инструмент распараллеливания информационных потоков. Во многом на практике отсутствует подход комплексного использования разных моделей, особенно в тех случаях, когда они выводят описание объектов и их свойств на новый уровень, отражая их как компонента системы. Кроме того, функциональные возможности систем программирования, несмотря на широкий спектр применения, вообще не рассматриваются в школьном курсе информатики [8]. Даже изучение программирования в школе предполагает акцент на знание базовых алгоритмических конструкций и владение известными алгоритмами обработки данных. Использование сред программирования для моделирования функциональных зависимостей, работы формальных исполнителей, математических расчетов характеристик больших данных только занимает свои позиции в школьном курсе информатики.
Цель исследования – рассмотрение возможностей языка программирования Python при анализе информационных моделей, представленных в табличном и графическом виде, и формирование у обучающихся навыков осознанного применения его инструментов.
Материалы и методы исследования
В педагогическом исследовании для изучения причинно-следственных связей обучения применению инструментов языка программирования Python для анализа информационных моделей использовались наблюдение и тестирование. В экспериментальной деятельности происходило обобщение педагогического опыта оперирования табличными и графовыми структурами. На этапах проведения формирующего и констатирующего эксперимента в инструментальной системе PyCharm изучались правила обработки данных, представленных в табличном и графическом виде.
В педагогическом эксперименте, который длился 4 месяца, принимали участие обучающиеся 11-х классов учебных заведений г. Смоленска. В Смоленском физико-математическом лицее ЯВИР при МИФИ и МЭИ были задействованы 19 чел., в средней школе № 6 г. Смоленска – 14 чел. Программа обучения в них соответствует изучению информатики на профильном уровне.
Результаты исследования и их обсуждение
При изучении методов анализа информационных моделей важно продемонстрировать связь выбранного подхода при исследовании требуемых свойств объекта. Одними из ключевых задач моделирования являются поиск дорог и их длины между пунктами на карте, вычисление кратчайшего пути, определение маршрута, содержащего минимальное или максимальное число промежуточных пунктов. Ответы на эти вопросы можно получить, конструируя и анализируя одну модель, например таблицу, схему или график. При этом выбор вида модели будет находиться в прямой зависимости от постановки вопроса задачи. Компактно записать данные о наличии дорог между пунктами можно табличным способом. Отразить структуру сети и проложить маршрут от одного пункта к другому удобно на дорожной схеме.
В то же время задача построения информационной модели по неполным данным, манипулирования частичной информацией, представленной всевозможными способами, а следовательно, выявления всех характеристических свойств системы дорог между городами является объективно более сложной. При ее решении необходимо исследовать зависимости, отраженные в моделях по-разному.
Так, при определении протяженности дорог между населенными пунктами данные можно отразить и в таблице, и на схеме. Табличный способ позволяет оперировать числовыми данными, записанными на пересечении строки и столбца. Эти числа соответствуют длине пути из одного города в другой. Названия городов будут указаны в первой строке и продублированы в первом столбце таблицы, если они известны. В противном случае города можно обозначить, проиндексировав их и задав общим именем, например «П1». На схеме линии отображают наличие дороги между населенными пунктами, а точки – сами города с подписью названия около них. Длина дороги записывается над линией, если по ней можно двигаться в двух направлениях. В случае одностороннего вектора движения линия изображается в виде дуги, над которой записывается длина в прямом направлении, а под ней – в обратном направлении. Если длина дороги неизвестна, то число не указывается, при этом можно ввести обозначение, используя для этого малые буквы латинского алфавита.
Исследуя зависимости на двух моделях, в табличной форме и на схеме, необходимо сопоставить одни данные с другими. По информации о протяженности пути сначала предположить, а затем подтвердить или опровергнуть, между какими городами на схеме проложена данная дорога. После чего определить все возможные комбинации расположения городов. Можно пойти и от обратного: по наличию дороги между населенными пунктами, а также числу входящих путей в города сделать вывод о том, каким городам в таблице они соответствуют. Проводя системный двусторонний анализ двумя методами, можно определить общую схему дорог между населенными пунктами и их протяженность.
В таких случаях анализ данных, как правило, начинают со схемы. Определяют, сколько дорог ведет в каждый из городов. Затем применяют первый принцип: если есть уникальные города с числом дорог, отличным от всех других городов, то в таблице ищут строку или столбец, так как данные в ней симметричны относительно главной диагонали, соответствующие данному городу на схеме по числу значений в горизонтали или вертикали. Так поступают со всеми такими населенными пунктами, определяя их названия и расположение в таблице. После этого, если в ней есть комбинация «строка – столбец» или «столбец – строка», которая ведет в единственный неизвестный город, то по схеме выясняют его название и заносят сведения о нем в первую строку и первый столбец вместо названия пункта «П». Если же на схеме города неуникальны или если в таблице исчерпан выбор дорог, однозначно ведущих в один из оставшихся для строки или столбца город, то применяют второй принцип. В списке городов с одинаковым числом дорог, определенных на схеме, выясняют значения дополнительного характеристического свойства. Принцип представляет собой формирование кортежа, состоящего из значений числа дорог, ведущих в города, в которые приводят пути из рассматриваемого города. По этим дополнительным показателям определяют остальные города в таблице. Для этого выявляют строку или столбец, в которых числа расположены в столбцах или строках соответственно с указанным набором числа дорог. Если же и после этого остаются города, которые невозможно указать однозначно, то оба принципа применяют последовательно к цепочке городов, увеличивая на каждом шаге их количество в исследуемой группе. Отметим, что второй принцип является более сильным, чем первый. Его можно применять независимо от первого принципа сразу на анализируемой схеме. Тем не менее первый принцип проще в применении и более понятен, так как оперирует только одной характеристикой для города – количеством дорог, ведущих в него. Для схем с простой структурой или частями, на которые можно разбить основную схему – районами сети, определяющими группу городов с дорогами между ними, следует применять первый принцип. Он дает более быстрый результат в выявлении полного описания информационной модели. Для схем с городами с одинаковой структурой больше подходит второй принцип. Он позволяет выявить сразу совокупность населенных пунктов, как подсеть, и выяснить характер связи городов с одинаковым числом дорог.
В то же время такой подход к анализу информационных моделей применим в случае относительно небольшого числа городов и дорог между ними в исследуемых табличных моделях и схемах. При росте числа городов эффективность его применения снижается. В этом случае можно говорить о необходимости автоматизации рассмотренных принципов. Это позволяет реализовать алгоритмический подход с использованием инструментов систем программирования, например таких, как язык Python функциональной среды PyCharm [9, 10]. Тем самым можно продемонстрировать обучающимся теоретическую значимость изученных алгоритмов и применимость методов программирования на практике.
При реализации данного подхода необходимо задать систему, которая характеризует строки таблицы с помощью кортежей чисел, соответствующих индексам городов «П». А схема определяет пути из одного города в другой по названиям населенных пунктов. Затем остается описать программный код, который обрабатывает всевозможные комбинации городов и дорог между ними, непротиворечащие табличной информации и данным на схеме.
Программный код (составлен авторами) на языке Python для решения таких задач может выглядеть следующим образом. В нем система дорог между городами задана двумя списками table и graph в соответствии с таблицей населенных пунктов и схемой связей между ними. При этом в условии в таблице должны быть определены дороги между городами, как число, звездочка или иное обозначение в ячейках на пересечении строк и столбцов. На схеме указаны дороги между населенными пунктами в виде линий.
from itertools import permutations
table = ‘457 346 24 123 167 257 156’.split()
graph = ‘АБ АВ БВ БД ВЕ ДГ ГЕ ДЖ ЖЕ ГЖ’.split()
print(‘1 2 3 4 5 6 7’)
for p in permutations(‘АБВГДЕЖ’):
if all(str(p.index(c2) + 1) in table[p.index(c1)] for c1, c2 in graph):
print(*p)
break
Во-первых, необходимо отдельно импортировать функцию permutations из библиотеки itertools языка Python или все ее инструменты [11, 12]. В этом случае после инструкции import следует указать символ «*». Функция permutations позволяет сгенерировать всевозможные перестановки элементов. В рассматриваемом примере это перестановки названий городов ‘АБВГДЕЖ’, описанных как строка.
Во-вторых, необходимо задать два списка, которые соответствуют городам и дорогам. Список table представляет собой кортежи строк, где каждая из них указывает доступные связи для вершины с некоторым порядковым номером. Например, вторая запись в списке table – «346» – иллюстрирует, что город с номером 2 должен быть связан дорогами с городами 3, 4 и 6. Обычно они перечисляются по порядку следования строк в таблице сверху вниз. При этом порядок можно изменить, он не влияет на построение информационной модели. Но в таком случае необходимо будет поменять и порядок возможных вершин модели. Поэтому делать это в решении нецелесообразно, и последовательность кортежей для строк следует сохранять. Отметим, что особенно важно корректно через пробел указать пути в возможные города, то есть вершины и ребра, которыми они соединены. Список graph задает дороги на схеме, они соответствуют ребрам сетевой модели. Так, например, «БВ» означает, что между городами «Б» и «В» на схеме есть путь. Ниже созданных списков выводится строка с названиями городов, в том порядке, в котором они определены в первой строке таблицы или ее первом столбце. Обычно, даже если названия городов указаны в виде «П1», то в команде вывода print указывают только их индексы, нумерация которых начинается с «1».
В-третьих, цикл в программе предназначен для генерации перестановок, которые будут сохраняться в переменной p. Каждая перестановка – это возможное соответствие букв названий городов номерам в табличной модели. Например, если на очередном этапе работы программы будет обрабатываться перестановка ‘БАГВЕДЖ’, то она отражает порядок Б – 1, А – 2, Г – 3, В – 4, Е – 5, Д – 6, Ж – 7 для городов на схеме. Для каждой перестановки p проверяется условие с помощью встроенной функции системной библиотеки all. Она возвращает значение True, если проверяемые комбинации для городов и дорог между ними будут истинными. Значение False будет сформировано в том случае, если какая-то запись в двух списках table и graph противоречит друг другу.
Внутри функции all организован цикл for c1, c2 in graph, который для каждой дороги из пункта c1 в пункт c2 находит в сгенерированной перестановке p позицию первого города и проверяет, что второй город находится в списке доступных населенных пунктов. Функция str(p.index(c2) + 1) преобразует номер второго города в строку с учетом нумерации в Python с нуля, а в таблице с единицы. Затем функция in, проверяющая вхождения элемента в объект table[p.index(c1)], определяет, есть ли город c2 в списке доступных пунктов c1.
В-четвертых, команда print(*p) печатает на экране найденную перестановку, если функция all определила значение True. Буквы названий городов выводятся в одной строке через пробел. Таких перестановок, удовлетворяющих условию задачи, может быть несколько. В этом случае будет выведена первая подходящая перестановка. Команда break прервет выполнение программы при нахождении подходящего ответа. Заметим, что наличие альтернативных перестановок объясняется симметричностью схемы городов в отдельных заданиях. Программа позволяет, исключив команду break, вывести на экран все из них. При этом расположение в них городов не будет влиять на дальнейший ответ.
В-пятых, полученные возможные перестановки после запуска программы позволяют дополнить обе информационные модели – таблицу и схему. Для таблицы будет известно соответствие названий пунктам, а для схемы – протяженность дорог между ними. После этого, объединив совокупные данные, можно ответить на разные вопросы заданий. Например, можно указать длину дороги из одного населенного пункта в другой или сумму протяженностей нескольких дорог. Можно вычислить длину кратчайшего пути из одного города в другой. Можно определить соответствие номеров пунктов их названиям.
В ходе экспериментальной работы обучающимся предлагались для выполнения такие задачи. Система содержала задания разного уровня сложности. Обучающиеся в ходе эксперимента сначала учились решать задания «на бумаге», проводя анализ «вручную». Затем они выполняли задания, предъявляемые в разном формате – в виде таблиц и схем, в системе программирования Python с помощью компьютерных средств моделирования данных. Задания были разработаны в программном комплексе «SmartTeacher» с использованием средств генеративного искусственного интеллекта в соответствии с образовательными картами [13, 14]. Это позволяло в учебном процессе предлагать обучающимся наборы индивидуальных заданий, от простых упражнений к сложным, учитывая текущий уровень их учебных достижений.
На начальном этапе обучения практические задания отражали тренировку умений оперировать данными табличных моделей. Затем были изучены особенности моделирования с помощью схем. На втором этапе обучающиеся исследовали алгоритмы анализа на табличных моделях и схемах, изучали приемы сопоставления данных, представленных на них. На третьем этапе задания предлагалось выполнить в среде PyCharm с помощью инструментов программирования. Для этого обучающиеся повторяли правила объявления списков в языке Python, способы их идентификации и приемы обработки данных в них. На четвертом, заключительном этапе обучающимся предлагалось выполнять разнообразные задания с использованием разных подходов, изученных на предыдущих этапах.
В конце обучения была проведена итоговая контрольная работа, которая состояла из восьми заданий. Задания соответствовали разным этапам обучения, по два упражнения на каждый способ решения: табличный, на схему, на агрегацию данных моделей «ручным» и «программным» методами. Результаты проведенной диагностики показали осознанное применение обучающимися изученных подходов к анализу информационных моделей. Так, высокого уровня усвоения учебного материала достигли 14 чел., продвинутого уровня – 15 чел., базового уровня – 4 чел. Это позволяет заявить о высоких показателях обучения, соответствующих нормальному распределению с платформой в области высоких значений. Гипотеза исследования состояла в том, что использование языка программирования Python для анализа табличных и графических информационных моделей способствует формированию у обучающихся навыков осознанного выбора и применения программных инструментов при решении практических задач.
Качественный анализ условий и результатов эксперимента. Результаты экспериментальной работы позволяют утверждать, что обучающиеся усвоили правила представления и анализа табличных и графических информационных моделей. Они научились выделять свойства объекта в зависимости от ситуации в задаче, после чего строить информационную модель, наиболее точно описывающую выбранные для исследования характеристики. У обучающихся были сформированы навыки оперирования числовыми величинами в табличных моделях, обработки связей между городами на схемах дорожной сети. В системе программирования Python ими были получены знания о генерировании перестановок, приобретены умения создавать списки из строковых текстовых данных и обрабатывать информацию в них, соответствующую вершинам и ребрам графа, представленную в табличном виде и на схеме. При этом обучающиеся параллельно закрепили навыки записи составных условий при использовании логических конструкций.
Задания, генерируемые в системе «SmartTeacher» [15], были созданы с учетом ошибок, типичных при выполнении таких заданий. Это позволило детально объяснить логику решения задачи, продемонстрировав особо значимые элементы, приводящие к неправильному ответу. Это позволяет сделать вывод, что гипотеза экспериментального исследования находит подтверждение в проделанной работе.
Заключение
Таким образом, работа, проведенная в ходе эксперимента, демонстрирует важность анализа информационных моделей, представленных в табличном и графическом виде, как с помощью приемов сопоставления и синтеза информации, так и с применением языка программирования Python на основе формирования и обработки списков элементов и проверки взаимосвязей между данными. При этом формирование у обучающихся представлений о структуре программного кода решения позволяет им сократить время на исследование свойств объекта и дать ответ на основе обобщенных характеристик. Это дает возможность заложить у будущих IT-специалистов навыки осознанного выбора инструментов анализа информационных моделей.
Конфликт интересов
Финансирование
Библиографическая ссылка
Козлов С. В., Быков А. А. АНАЛИЗ ИНФОРМАЦИОННЫХ МОДЕЛЕЙ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА ПРОГРАММИРОВАНИЯ PYTHON // Современные наукоемкие технологии. 2026. № 6. С. 275-280;URL: https://top-technologies.ru/ru/article/view?id=40846 (дата обращения: 03.07.2026).
DOI: https://doi.org/10.17513/snt.40846



