Введение
Актуальность работы. Современный мир предъявляет особые требования к каждому человеку, и в первую очередь это касается умений применять цифровые технологии. Национальный проект «Образование», федеральный государственный образовательный стандарт среднего общего образования, федеральный проект «Цифровая образовательная среда» устанавливают высокие требования к соответствующим результатам обучения и к цифровому образовательному контенту [1; 2; 3; 4].
Современное образование характеризуется необходимостью усвоения все большего объема информации и формирования довольно сложных навыков. Однако, по мнению авторов, в рамках изучения предмета «Информатика» не все темы обеспечены эффективными обучающими программами.
Кроме того, одним из эффективных приемов обучения является формирование зрительных образов и графических представлений. Поэтому визуализацию функционирования программного кода можно рассматривать как перспективное направление в изучении предмета «Информатика».
Объект исследования определен как обучение программированию в ходе изучения предмета «Информатика» в 11 классе.
Предмет исследования – визуализация как инструмент формирования знаний и умений программирования на языке Python.
Цель проекта – создание обучающей программы «Программирование на языке Python: перевод чисел в различные системы счисления» для повышения качества освоения школьниками языка программирования Python в 11 классе.
Достижение цели обуславливается решением следующих задач:
1) проанализировать пути повышения эффективности изучения предмета «Информатика» в общеобразовательной школе;
2) оценить потенциал использования цифровых образовательных приложений в процессе обучения языкам программирования в ходе изучения предмета «Информатика» в 11 классе;
3) разработать обучающую программу «Программирование на языке Python: перевод чисел в различные системы счисления», позволяющую визуализировать различные этапы ее работы;
4) проверить работоспособность разработанной обучающей программы.
Методы исследования. В ходе работы над проектом были реализованы научные принципы объективности и системности; использован комплексный подход к формированию знаний и умений программирования на языке Python; применены контент-анализ, тестирование, наблюдение, алгоритмизация и иные методы научного исследования.
Практическая значимость проекта состоит в разработке обучающей программы, позволяющей повысить качество обучения программированию на языке Python в ходе изучения предмета «Информатика» в 11 классе за счет визуализации этапов алгоритмизации, создания и функционировании программного кода.
Дорожная карта проекта:
Направление работы, ключевые задачи \ Сроки |
август 2022 |
сентябрь 2022 |
октябрь 2022 |
ноябрь 2022 |
декабрь 2022 |
Анализ степени изученности и разработанности темы исследования. Постановка задач проекта. Изучение путей совершенствования обучения информатики в общеобразовательной школе. |
Х |
||||
Оценка потенциала использования обучающих программ в процессе обучения языкам программирования. |
Х |
Х |
|||
Разработка требований к обучающей программе. Выбор программной среды для реализации проекта. |
Х |
||||
Разработка интерфейса и написание программного кода. |
Х |
Х |
|||
Тестирование и модернизация программы. |
Х |
Х |
|||
Подготовка описания программного продукта и презентации для участия проекта в конкурсах. |
Х |
Х |
Итогом проекта стала обучающая программа «Программирование на языке Python: перевод чисел в различные системы счисления», которая позволяет более успешно осваивать язык программирования Python при изучении предмета «Информатика» в 11 классе, а также готовиться к ЕГЭ.
Глава 1. Теоретическая часть
1.1. Пути повышения эффективности изучения предмета «Информатика» в общеобразовательной школе
Для любого человека сегодня необходимо умение жить в цифровом мире. Оно формируется с раннего возраста, но самая главная его часть приобретается в школе, на уроках информатики. Чтобы стать успешным, нужно освоить школьный курс информатики на довольно высоком уровне. Для этого необходимо применять эффективные приёмы и методы обучения.
Анализ степени изученности и разработанности темы исследования показывает, что вопросы эффективности изучения информатики, в том числе визуализации и разработки обучающих программ, рассматривался многими исследователями и педагогами практиками, такими как С.А.Бешенков, А.В.Гриншкун, О.Ю.Заславская, Э.В. Миндзаева, И.В. Левченко и др.
Для современного молодого человека очень важным является визуальный вид данных, через зрение мы получаем не менее 80% всей информации. Это всегда учитывалось педагогами. В учебниках мы видим иллюстрации, на уроках часто применяются презентации и обучающее видео. Однако в школьном курсе информатики есть некоторые разделы с большим объемом теоретической информации, которая недостаточно полно проиллюстрирована.
Сегодня обучающиеся в значительной части с трудом воспринимают абстрактную текстовую информацию. Поэтому авторы считают, что для помощи школьнику старших классов в изучении информатики необходимо применять визуализацию. Термин «визуализация» имеет много значений – наглядность, видимая конструкция, преобразование невидимого сигнала в видимый и пр. Многие специалисты пишут, что она не только создает образ объекта, но и позволяет правильно мыслить [5; 7]. Это важная часть процесса обучения, которую нужно усилить для более качественного изучения предмета.
В научной литературе описаны различные виды, методы и формы визуализации: лента времени, кластер, инфографика, интеллект-карты и др. В данном проекте авторы считают необходимым использовать инфографику, то есть способ графического представления сведений в виде таблиц, схем [9]. Это позволяет ученику лучше понять теоретический материал. Кроме того, она является основой интерфейса обучающей программы, при проведении тренинга помогает ученику структурировать ответ и правильно сформулировать его, а при изучении операторов языка – понять реализуемый алгоритм, а также содержание кода (за счет развернутых комментариев к нему).
Это очень важно, поскольку при переходе школьника от освоения базы какого-либо языка к работе с кодом обычно сильно теряется наглядность. Очевидно, что алгоритмы программы обычно представляют собой просто текст, составленный из элементов языка программирования по его правилам.
Тот, кто уже знает язык программирования на достаточном уровне, может его прочитать и понять. А для тех, кто только начал изучать этот язык, очень нужна наглядная связь теоретических основ решаемой задачи, реализуемого алгоритма и фрагмента кода с подробным объяснением на русском языке.
В качестве примера предлагается при изучении языка Python провести визуализацию путем внесения в текст программы комментариев с детальными пояснениями. При этом программа должна решать понятную практическую задачу, фрагмент предлагаемого ученику кода должен полностью «закрывать» определенный этап задачи, а комментарии к нему должны пояснять алгоритм решения и особенности использования возможностей языка программирования.
В современной школе большое значение имеет использование примеров из практики [6; 11]. Это не только поддерживает интерес ученика к изучению предмета, но еще и формирует умение решать жизненные задачи. Для учеников 11-го класса также нужна практика в подготовке к ЕГЭ.
Сегодня образовательные интернет-платформы предлагают много вариантов такой практики. Однако при работе с ними очень часто нет возможности быстро потренироваться в решении конкретной задачи и проверить ответ сразу после решения. Кроме того, по опыту авторов и их одноклассников, на первых этапах тренировки в решении задач удобными могут быть наглядные схемы решения задач и другие пособия. Поэтому для изучения информатики и подготовки к ЕГЭ полезными являются тренажеры, нацеленные на решение конкретных типовых задач, облегчающие работу обучающегося и позволяющие быстро проверить ответ.
Для изучения информатики на известных обучающемуся примерах авторы предлагают следующий подход: 1) теоретическое изучение какого-то довольно простого, но важного вопроса (например, запись числа в различных системах счисления, изучаемая в 9-м классе); 2) использование его в качестве примера (в частности, разработка программы получения такой записи при изучении раздела «Алгоритмы и программирование» в 11 классе).
Подводя итоги данного параграфа, авторы считают важным для качественного изучения информатики в школе:
Использовать на уроках и в домашней работе материал, связанный с реальной практической жизнью ученика. Этот материал должен быть знаком ему и не вызывать затруднений в понимании его содержания.
В качестве практических заданий использовать уже известные ученику сведения из ранее изученного, связанные между собой и вызывающие интерес ученика (например, для подготовки к ЕГЭ).
Для подачи учебного материала в наглядной форме необходима его визуализация, причем для изучения информатики авторы считают наиболее эффективной инфографику, то есть использование схем, таблиц, рисунков и пр.
При изучении языков программирования на уровне выше базового визуализацию нужно применять в форме пояснений к программе. В языке Python и некоторых других это комментарий к коду, который должен пояснять используемые переменные и операторы, а также процесс выполнения этого кода.
Важно избегать ситуации, когда ученику одновременно плохо известны и ход решения конкретной практической задачи, и синтаксис языка программирования. Для концентрации на особенностях языка программирования и характеристиках используемого кода нужно предлагать для изучения фрагменты кода, решающие задачу, уже известную ученику.
1.2. Потенциал использования цифровых образовательных приложений в процессе освоения языков программирования в ходе изучения предмета «Информатика» в 11 классе
Классическое школьное образование выглядит очень консервативным. Проверенные временем истины, базовое, неизменяемое знание, одни и те же примеры и задачи, которые решали несколько поколений школьников. На стенах классов размещены плакаты, рассчитанные на годы использования.
Современная школа, особенно в старших классах, должна работать по-другому. Особенно важно это в «высокотехнологичных» дисциплинах, например, в информатике. В этой сфере технологии постоянно развиваются, для качественной учебы нужны новые средства обучения. Специалисты часто говорят о цифровизации школьного образования, частью которого является возможность выполнения заданий на компьютере и получения новых знаний.
Министерство просвещения России в этих условиях реализует федеральный проект «Цифровая образовательная среда» [3; 4]. В школах появляется современное цифровое оборудование и цифровые образовательные сервисы и программы. В этом проекте много внимания уделяется онлайн-обучению, использованию обучающих программ и курсов.
Самым гибким цифровым ресурсом являются обучающие программы. Они позволяют быстро учесть новые данные и уровень подготовки школьников. Такая программа позволяет школьнику активно и быстро работать с материалом, в том числе и без общения с учителем [12].
Структура обучающей программы в общем состоит из 2 частей: содержательной (или информационной) и программной. Информационная часть составляется из учебных материалов, а программная реализуется на том или ином языке программирования. Обычно за содержание отвечает педагог, а за программу – профессионал-программист. При этом педагог должен создать современный учебный материал, подобрать интересные практические примеры и задачи, а программист – найти удачную реализацию идей педагога.
Обучающие программы решают различные задачи, к числу которых относятся: 1) ознакомление с базовым знанием по предмету; 2) углубленное изучение материала; 3) выработка навыков решения типовых задач; 4) обучение действиям в нестандартных ситуациях; 5) развитие способностей;
6) моделирование и проведение цифровых экспериментов; 7) контроль знаний.
Специалисты отмечают такие положительные качества обучающих программ как возможность концентрации большого объема данных с быстрой навигацией по ним; удобства визуализации материала; быстрота создания, изменения и тиражирования; работа ученика в удобное для него время; практическое освоение возможности компьютера; быстрый самоконтроль.
Многие авторы считают, что для создания эффективных обучающих программ нужны: четкая структура материала; возможность контроля знаний; возможность вернуться к ранее пройденному; удобное распределение материала соответственно размерам экрана.
К возможным сложностям использования обучающих программ относят трудность восприятия очень больших объемов сведений; меньшую по сравнению с уроком интерактивность работы с учителем и ряд других. В целом они являются хорошим дополнением к обычному школьному обучению.
По мнению авторов, очень важным является наличие комплекса обучающих программ по тому или иному предмету. Такие программы должны «закрывать» все потребности учеников, весь курс обучения. С этой точки зрения их можно разделить на «базовые» и «продвинутые». Первые соответствуют содержанию учебника, а вторые – углубленному курсу.
Для разработки обучающих программ углубленного типа полезным является участие учеников. Это дает возможность построить материал под возможности класса, а также мотивировать учебную работу всех учеников.
При изучении информатики представляется важным поддерживать интерес к обучению за счет использования практических примеров. В обучающих программах интересный материал из практики можно использовать для изучения разных тем, на разных уровнях подготовки. Поэтому такие программы могут разрабатываться для выпускных классов и объединять в себе вопросы из всего курса информатики. При изучении языков программирования обучающая программа должна предоставлять возможность ознакомления с кодом и комментариями к нему.
Для углубленного изучения языка программирования желательно структурирование программы в соответствии с последовательностью изучения его операторов. Однако это положение не является обязательным, поскольку приоритетным является логика рассмотрения практического примера, решение которого демонстрируется в обучающей программе. Это также показывает ученику работу программиста, решающего реальную задачу.
Основные выводы авторов по данному параграфу:
1. Наиболее интересными и полезными для школьников 11 классов, изучающих информатику, является обучающие программы, помогающие успешно осваивать языки программирования на уровне выше базового.
2. В этих программах должны быть показаны возможности языка программирования на примерах из практики (в том числе и учебной). Также было бы полезным, если такая программа позволит обновить знания по ранее изученным разделам курса. Кроме того, она может включать себя тренажеры для решения типовых задач итоговых экзаменов.
3. Подобного рода комплексные обучающие программы наиболее целесообразно использовать поэтапно: сначала для изучения материала, характеризующего пример и ранее изученный материал, затем как тренажер по решению типовых задач ЕГЭ, а потом – как пример кода на изучаемом языке программирования. Последняя функция требует подготовки развернутых комментариев к коду, с которыми может ознакомиться ученик.
Глава 2. Практическая часть
2.1. Разработка обучающей программы «Программирование на языке Python: перевод чисел в различные системы счисления»
В ходе работы по реализации проекта были дополнительно изучены некоторые возможности языка программирования Python [8; 10], а также расширены имеющиеся знания о записи чисел в различных системах счисления; изучены существующие требования к обучающим программам и определена структура обучающей программы, реализованной в данном проекте; разработаны алгоритмы решения примеров, использованных в обучающей программе; изучен модуль создания графического интерфейса Python; составлен программный код и проведено тестирование обучающей программы.
Авторами было определено, что основными требованиями к обучающей программе являются: 1) возможность обучения языку программирования Python на уровне выше базового, обновления знаний о переводе чисел из одной системы счисления в другую, тренинга в решении некоторых типовых задач ЕГЭ в этой области; 2) интерактивность, наглядность и простота использования обучающимся; 3) возможность контроля результатов тренинга.
В связи с этим были сформулированы дополнительные требования к программному обеспечению: 1) размещение справки о предназначении программы и уровне подготовки обучающихся; 2) наличие «окна» с основным меню для работы пользователя с программой с использованием графического пользовательского интерфейса (GUI); 3) возможность ознакомления пользователя с программным кодом и комментариями к нему.
Алгоритмы решения примеров, используемых в обучающей программе, в целом базируются на основном алгоритме перевода числа из одной системы счисления в другую: число, записанное в одной системе счисления, целочисленно делят на основание другой системы счисления, ответ – это полученные на каждом шаге деления остатки, записанные в обратном порядке. Блок схема основного алгоритма представлена на рисунке 1.
Начало
Да
А ≤ р?
Нет
Считаем частное за заданное число А
Целочисленно делим А на р.
Остаток запоминаем
Записываем цифру системы счисления с основанием р, имеющую равный с А количественный эквивалент
Нет
Частное < р
Да
Последовательность остатков, занесенных в обратном порядке их получения, есть запись заданного числа в системе счисления с основанием р
Конец
Рис. 1. Блок-схема основного алгоритма перевода числа из одной системы счисления в другую
Для разработки удобной для пользователя программы был использован графический интерфейс, основанный на средствах пакета Tkinter. Этот кроссплатформенный пакет (библиотека) установлен в Python как стандартный модуль. Стандартизированными компонентами Tkinter являются кнопки, рамки комбинированные поля и другие графические объекты, называемые виджетами.
Tkinter является событийно-ориентированной библиотекой, поэтому пользователь в процессе работы с программой получает возможность взаимодействовать с ней через виджеты. При реализации данного проекта были использованы такие графические компоненты Tkinter как вкладки, поля ввода текста, кнопки и др.
Взаимодействие пользователя с программой начинается с запуска файла main.exe. При этом открывается окно «О программе», в котором можно ознакомиться с информацией о целях разработки обучающей программы, категориях пользователей и ее авторах. Строка навигации в верхней части окна программы позволяет пользователю нажатием соответствующего ярлыка выбрать любую из имеющихся вкладок: «Типы систем счисления», «Перевод из десятичной системы счисления», «Перевод в десятичную систему счисления», «Перевод в двоичную систему счисления», «Кратные основания систем счисления», «Некоторые правила записи чисел с различными основаниями систем счисления».
На каждой из вкладок пользователь, интерактивно взаимодействуя с обучающей программой, может изучить краткое изложение теории записи чисел в различных системах счисления, ознакомиться с соответствующими примерами или пройти тренинг и проверить результаты решения задач, а также прочитать фрагмент программного кода на языке Python и комментарии к нему. Более подробно порядок работы пользователя с обучающей программой изложен в Приложении 1.
На вкладке «Типы систем счисления» представлены возможности реализации алгоритма перевода чисел из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную, а также в непозиционную римскую систему счисления. На иллюстрациях кратко изложена теория с описанием позиционных и непозиционных систем счисления, а также примеры записи чисел. Обучающимся предоставлена возможность перевести произвольное десятичное число в указанные системы счисления. Пользователь знакомится с использованием условного оператора при переводе в римскую систему счисления, а также со специальными встроенными функциями для перевода в двоичную, восьмеричную и шестнадцатеричную системы счисления.
Вкладка «Перевод из десятичной системы счисления» демонстрирует теорию и реализацию алгоритма перевода чисел из десятичной системы счисления в другую позиционную. Обучающийся может ввести произвольное десятичное число и нужное ему основание системы счисления, после чего программа автоматически производит перевод и заполняет соответствующие поля для визуализации решения задачи. В программном коде представлены и прокомментированы: модуль генерации случайных данных; создание и использование словаря для подстановки букв латинского алфавита вместо соответствующих цифр в формулы; циклический алгоритм, в котором используется целочисленное деление и получение остатков.
При переходе на вкладку «Перевод в десятичную систему счисления» пользователю наглядно представлена реализация алгоритмов перевода числа из любой системы счисления в десятичную с помощью степенного ряда и схемы Горнера. В комментариях к коду особое внимание уделено циклическим структурам для сбора строки, представляющей тот или иной метод в развернутой форме, а также использование словаря для подстановки цифр в формулы вместо соответствующих букв латинского алфавита.
Вкладка «Перевод в двоичную систему счисления» реализует алгоритм перевода чисел из десятичной системы счисления в двоичную с использованием комбинаторики. Обучающемуся представлены основы теории «задачи о рюкзаке», показано как десятичное число собирается из степеней двоек, предоставлена возможность использования интерактивного тренажера и ознакомления с комментариями к коду, в которых детально рассмотрена циклическая структура, используемая для сбора строки двоичного представления числа в развернутой форме.
На вкладке «Кратные основания систем счисления» представлен тренажер по решению типовой задачи перевода чисел с кратными основаниями систем счисления на примере перевода двоичного числа в восьмеричное и шестнадцатеричное. Наглядно показано решение через разложение исходного числа на триады и тетрады цифр, модуль генерации случайных данных, а также специальные встроенные функции для перевода в двоичную, восьмеричную и шестнадцатеричную системы счисления.
Вкладка «Некоторые правила записи чисел с различными основаниями систем счисления» представляет собой тренажер для отработки решения типовой задачи ЕГЭ по вычислению разницы чисел, записанных в любой одинаковой системе счисления. Обучающийся получает случайно сгенерированное задание и может быстро проверить правильность своего ответа. В коде прокомментированы возможности создания словаря для подстановки букв латинского алфавита вместо соответствующих цифр, а также представлен циклический алгоритм для получения записи в различных системах счисления, в котором используется целочисленное деление и получение остатков.
2.2. Проверка работоспособности и полезности обучающей программы «Программирование на языке Python: перевод чисел в различные системы счисления»
Разработанная в ходе реализации проекта обучающая программа была проверена на работоспособность в ходе опытной эксплуатации группой обучающихся 11 «А» класса СОШ № 10 г. Жуковского и АНО ПО «ИТ ХАБ». Существенных недостатков не выявлено, замечания по оформлению интерфейса программы были устранены по мере поступления. Пользователи положительно оценили предложенный теоретический материал, интерактивность, наглядность и простоту эксплуатации программы, содержание и возможность контроля результатов тренинга. С учетом полученных предложений определены направления дальнейшего развития проекта: разработка web-версии обучающей программы; создание версий программы на английском и немецком языках для расширения круга пользователей; информационно-методическая поддержка программы (обучающее видео и вебинары).
Промежуточные результаты работы по проекту были представлены авторами в форме доклада «Разработка обучающих программ как элемент реализации национальной стратегии цифровизации образования» на всероссийской конференции «Современная правоприменительная практика в Российской Федерации: проблемы и пути их решения», прошедшей 17.11.2022 в ЧУ ООВО «Институт экономики и культуры». Выдан сертификат, научный руководитель получил благодарность от оргкомитета конференции (см. Приложение 2).
Сформирован и направлен 16.11.2022 в Федеральную службу по интеллектуальной собственности комплект документов на прохождение процедуры государственной регистрации программы для ЭВМ.
Обучающая программа и материалы к ней переданы для ознакомления и рецензирования в ГБОУ ВО МО «Академия социального управления» и ряд общеобразовательных школ г. Москвы и Московской области.
Заключение
В ходе реализации проекта был выявлен ряд закономерностей в сфере повышения качества изучения информатики в общеобразовательной школе, к наиболее существенным из которых можно отнести следующие:
1. Для высокого качества обучения нужно вызвать и поддерживать интерес обучающихся к изучению информатики, а это требует, в числе прочего, визуализации материала, использования важных для школьников примеров и применения обучающих программ.
2. Наиболее целесообразной формой визуализации материала учебного курса по информатике в 11 классе является инфографика, то есть применение схем, графиков и иных форм графической подачи информации.
3. Наибольший интерес у обучающихся вызывают примеры из их личной практики, либо непосредственно относящиеся к перспективам успешного завершения учебы в школе, сдачи ЕГЭ и поступления в вуз.
Практическим результатом проекта стала обучающая программа «Программирование на языке Python: перевод чисел в различные системы счисления», которая позволяет повысить качество изучения предмета «Информатика» в 11 классе, освоения школьниками языка программирования Python и подготовки к единому государственному экзамену.
Данная программа обеспечивает возможность изучения языка программирования Python на уровне выше базового, обновления знаний о переводе чисел из одной системы счисления в другую; интерактивное взаимодействие с обучающимся; отличается наглядностью и простотой пользования; предлагает использование тренажеров в решении ряда типовых задач ЕГЭ и контроля полученных при этом результатов.
Список использованной литературы
Указ Президента РФ от 07.05.2018. № 204 «О национальных целях и стратегических задачах развития Российской Федерации на период до 2024 года».
Решение президиума Совета при Президенте Российской Федерации по стратегическому развитию и национальным проектам от 03.09.2018 об утверждении паспорта национального проекта «Образование» URL: http://static.government.ru/media/files/UuG1ErcOWtjfOFCsqdLsLxC8oPFDkmBB.
pdf (дата обращения: 21.08.2022).
Паспорт федерального проекта «Цифровая образовательная среда» национального проекта «Образование» // Протокол заседания проектного комитета по национальному проекту «Образование» от 07.12.2018 г. № 3.
URL: https://ermobrazovanie.bashkortostan.ru/documents/active/373503/ (дата обращения: 22.08.2022).
Приказ Минпросвещения России от 02.12.2019 № 649 «Об утверждении Целевой модели цифровой образовательной среды».
Аранова С. В. Культурологическая тенденция визуализации учебной информации в школьном обучении // Известия РГПУ им. А. И. Герцена. 2019. № 193. С. 107 – 115.
Бешенков С.А., Трубина И.И., Миндзаева Э.В. Курс информатики в современной школе. Текст доклада на заседании 7 совместного семинара ИПИ РАН и ИНИОН РАН «Методологические проблемы наук об информации» (21 мая 2012 г.) и послесловие к нему. URL: https://cyberleninka.ru/article/n/kurs-informatiki-v-sovremennoy-shkole (дата обращения: 19.08.2022).
Гриншкун А.В., Левченко И.В. Возможные подходы к созданию и использованию визуальных средств обучения информатике с помощью технологии дополненной реальности в основной школе // Вестник Российского университета дружбы народов. Серия: Информатизация образования. 2017. Т. 14. № 3. С. 267—272.
Гуриков С. Основы алгоритмизации и программирования на Python // М.: «Форум», 2018. Т. 343.
Заславская О.Ю., Пучкова Е.С. Анализ возможностей визуализации и подходы к ее применению для обучения информатике учителей начальных классов в системе среднего профессионального образования // Вестник Российского университета дружбы народов. Серия: Информатизация образования. 2015, №3, С. 7-13.
Златопольский Д. Основы программирования на языке Python //Litres, 2019.
Левченко И.В. Информационные технологии в общеобразовательном курсе информатики в контексте фундаментализации образования // Вестник РУДН. Серия: Информатизация образования. 2018. Т.15. №3. С. 282-293.
Студенческая библиотека он-лайн / Общие требования к обучающей программе [Электронный ресурс] // URL: https://studbooks.net/516149/bzhd/obschie_trebovaniya_obuchayuschey_programme (дата обращения: 11.08.2022).
Приложение 1
Инструкция по работе с обучающей программой
«Программирование на языке Python: перевод чисел в различные системы счисления»
Начало работы с программой производится путем запуска файла main.exe. Перед пользователем появляется окно программы, открытое на вкладке «О программе», где располагается краткая информация о целях ее создания, для кого была разработана, указаны авторы программы (рис. 1).
Рис. № 1. Вкладка «О программе»
Обучающая программа содержит следующие разделы:
Типы систем счисления.
Перевод из десятичной системы счисления.
Перевод в десятичную систему счисления.
Перевод в двоичную систему счисления.
Кратные основания систем счисления.
Некоторые правила записи чисел с различными основаниями систем счисления.
Для перехода к тому или иному разделу программы необходимо нажимать на ярлыки соответствующих вкладок в верхней части окна программы.
На вкладке «Типы системы счисления» представлены возможности языка Python, позволяющие реализовать алгоритм перевод чисел из десятичной системы счисления в непозиционную на примере римской системы счисления, а также перевод из десятичной в двоичную, восьмеричную и шестнадцатеричную системы счисления. Здесь кратко изложена теория с описанием позиционных и непозиционных систем счисления, а также примеры записи чисел. Обучающимся предлагается ввести произвольные десятичные числа в соответствующие поля и посмотреть результат перевода по нажатию кнопок «=» и «Перевод» (рис. 2).
Рис. № 2. Вкладка «Типы системы счисления»
На вкладке есть возможность ознакомиться с кодом и комментариями к нему. В алгоритме перевода в римскую систему счисления представлены возможности использования условного оператора. При работе с позиционными системами счисления пользователь знакомится со специальными встроенными функциями для перевода в двоичную, восьмеричную и шестнадцатеричную системы счисления (рис. 3).
Рис. № 3. Код программы к задачам на 1 вкладке
На вкладке «Перевод из десятичной» представлена реализация соответствующего алгоритма. На ней кратко изложен математический подход и схема действий для осуществления перевода из десятичной в любую другую позиционную систему счисления.
Обучающемуся предложено ввести произвольное десятичное число в зеленое поле и нужное ему основание системы счисления – в желтое. После чего программа автоматически производит перевод и заполняет соответствующие поля для визуализации решения задачи (рис. 4).
Пользователю доступен соответствующий код программы и комментарии к нему. В нем представлен модуль генерации случайных данных, а также возможности словаря для подстановки букв латинского алфавита вместо соответствующих цифр в формулы. Сам перевод представлен циклическим алгоритмом, в котором используется целочисленное деление и получение остатков (рис. 5).
Рис. № 4. Вкладка «Перевод из десятичной»
Рис. № 5. Код программы к вкладке «Перевод из десятичной»
На вкладке «Перевод в десятичную» представлены возможности языка Python, позволяющие реализовать алгоритм перевода числа из любой системы счисления в десятичную двумя разными способами.
Обучающемуся предлагается ввести в зеленое поле число в любой системе счисления, которое может содержать в себе в том числе и буквы латинского алфавита. В желтое поле нужно ввести основание системы счисления. По нажатию кнопки «Перевод» программа переводит заданное число в десятичную систему счисления. Слева будет представлен ответ, полученный с помощью алгоритма перевода путем представления числа в виде степенного ряда. Справа же представлен алгоритм перевода с помощью схемы Горнера (рис. 6).
Нажав на иконку глаза, вы можете увидеть код на языке Python и комментарии к нему. Обучающийся может ознакомиться с циклическими структурами для сбора строки, представляющей тот или иной метод в развернутой форме, а также использование словаря для подстановки цифр в формулы вместо соответствующих букв латинского алфавита (рис. 7).
Рис. № 6. Вкладка «Перевод в десятичную»
Рис. № 7. Код программы к вкладке «Перевод в десятичную»
На вкладке «Перевод в двоичную» представлена реализация алгоритма перевода чисел из десятичной системы счисления в двоичную с использованием комбинаторики. Здесь изложена теория, связанная с решением «задачи о рюкзаке», и показано как десятичное число собирается из степеней двоек.
Обучающимся предоставлена возможность потренироваться на интерактивном тренажере в решении данной задачи, подсчете в уме степеней двоек и оперативно проверить свое решение (рис. 8).
Пользователю доступен соответствующий код программы и комментарии к нему. В нем представлены циклические структуры для сбора строки двоичного представления числа в развернутой форме (рис. 9).
Рис. № 8. Вкладка «Перевод в двоичную»
Рис. № 9. Код программы к вкладке «Перевод из десятичной»
На следующей вкладке размещен тренажер по решению типовой задачи в курсе информатики – переводу чисел с кратными основаниями систем счисления. В частности, здесь представлен пример перевода двоичного числа в восьмеричную и шестнадцатеричную системы счисления.
На вкладке кратко изложена математическая основа этого перевода и представлена схема разложения двоичного числа на триады и тетрады цифр.
Обучающемуся предлагается задание, сгенерированное случайным образом. Ему необходимо правильно представить двоичное число в восьмеричной и шестнадцатеричной системе счисления. Для проверки ответа нужно нажать на кнопку «Проверить». В соответствующих полях формы будут представлены результаты (рис. 10).
Рис. № 10. Вкладка «Кратные системы счисления»
На вкладке есть возможность ознакомиться с кодом программы, содержащий модуль генерации случайных данных, а также специальные встроенные функции для перевода в двоичную, восьмеричную и шестнадцатеричную системы счисления (рис. 11).
Рис. № 11. Код программы к вкладке «Перевод из десятичной»
На вкладке «Некоторые правила» обучающемуся предлагается тренажер для отработки решения типовой задачи ЕГЭ, и представлены возможности языка Python, позволяющие реализовать данный алгоритм.
Перед решением задачи у пользователя есть возможность ознакомиться с основными теоретическими выкладками, описывающими общие правила записи значений выражения в различных системах счисления.
Обучающийся получает случайно сгенерированное задание и может быстро проверить правильность своего ответа (рис. 12).
Также у него есть возможность ознакомиться с кодом на языке Python и комментариями к нему. В программе показана необходимость использования словаря для подстановки букв латинского алфавита вместо соответствующих цифр в формуле, а также представлен циклический алгоритм для получения записи в различных системах счисления, в котором используется целочисленное деление и получение остатков (рис. 13).
Рис. № 12. Вкладка «Кратные системы счисления»
Рис. № 13. Код программы к вкладке «Некоторые правила»
Для выхода из программы необходимо нажать на крестик в правом верхнем углу окна обучающей программы.
Приложение 2