Разработка программ по решению задач статистического анализа

XVI Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке. Летняя площадка 2022

Разработка программ по решению задач статистического анализа

Некрасов И.С. 1
1Муниципальное автономное общеобразовательное учреждение Заводоукоувского городского округа «Заводоуковская средняя общеобразовательная школа № 2»
Уразаева Д.Д. 1
1Муниципальное автономное общеобразовательное учреждение Заводоукоувского городского округа «Заводоуковская средняя общеобразовательная школа № 2»
Автор работы награжден дипломом победителя I степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Я всегда интересовался точными науками, такими как информатика и математика. В 5 классе по предмету информатика мы начали изучать работу с электронными таблицами, составляли формулы и функции по проведению расчетов, строили графики и диаграммы. Данные знания дали мне возможность помогать маме в проведении анализа при работе с электронными таблицами. Но, к сожалению, я не мог выполнить все необходимые расчеты, каждый раз обращался к ресурсам сети Интернет, чтобы изучить работу с той или иной функцией. И я задался вопросом: «А можно ли автоматизировать данный процесс, чтобы не приходилось каждый раз составлять новые функции?». Тогда я обратился к учителю информатики. Учитель рассказал мне о возможных способах, таких как создание электронной таблицы со встроенными функциями и разработка специальных программ, позволяющих провести статистические расчеты посредством чтения данных из электронной таблицы. Меня заинтересовал второй вариант, так как я уже на тот момент изучал язык программирования Python и хотел рассмотреть его дополнительные возможности.

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

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

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

Цель исследования:

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

Задачи исследования:

Исследование функционала языка программирования Python в области применения к задачам статистического анализа.

Разработка программ по выполнению статистических расчётов.

Составление инструкции по использованию программ в помощь учителю.

Оказание помощи учителям в выполнении статистических расчетов на базе МАОУ СОШ №2 г. Заводоуковск.

Методы исследования:

Описательный метод. Включает в себя сбор информации, анализ возможностей языка программирования Python, беседа с учителями.

Метод проектирования. Способствует проведению подбора статистических задач к набору программ и функций по их выполнению.

Экспериментальный метод. Позволит проверить эффективность разработанного материала при его применении учителями в проведении анализа.

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

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

Глава 1. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

1.1 Общая характеристика языка программирования Python.

Python является высокоуровневым объектно-ориентированным языком программирования, использование которого делает возможным выполнение различных задач. Данный язык ориентирован на повышение производительности разработчика и читаемости кода.

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

Python отличается рядом характеристик: 1) код написанный на данном языке программ легко читаем благодаря чёткому и последовательному синтаксису; 2) есть возможность объединить язык с файлами различных типов; 3) массив может включать объекты разных типов; 4) значение любого типа может быть назначено переменной. [5]

В данном языке программирования используется 6 видов оператора:

Условные операторы: if – если; else – иначе, elif (else if) используется, когда условий и альтернатив несколько.

Операторы цикла: while (пока), for (для).

Оператор определения класса class

Оператор определения функции, метода или генератора def.

Оператор обработки исключений try – except – else или try-finally. [5]

Помимо стандартной библиотеки, Python содержит множество других библиотек, каждая из которых имеет своё предназначение. Рассмотрим некоторые из них:

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

2. Dora – библиотека, которая предназначена для анализа основных свойств данных и нахождения в них общих закономерностей.

3. Openpyxl это библиотека Python для чтения и записи файлов Excel (с расширением xlsx / xlsm / xltx / xltm). [3]

В настоящее время Python используется большим количеством программистов во многих странах мира. К одним из основных причин такой распространенности языка является то, что работа осуществляется одинаково эффективно на различных операционных системах. Функционал данного языка позволяет разрабатывать приложения любого объёма.

Таким образом, Python является наиболее оптимальным вариантом при решении задач по статистике, так как данный язык более прост в самостоятельном изучении, а также отвечает всем необходимым требованиям.

1.2 Чтение и запись файлов с использованием библиотеки Openpyxl

В сфере образования посредством статистических вычислений проводится анализ деятельности учебных учреждений, например, подготовки учащихся к сдаче Единого государственного экзамена. Результаты подобных исследований используют для практических выводов. Часто перед учителями стоят задачи по извлечению каких-то данных из файлов формата XLS без предварительной технической подготовки.

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

Openpyxl – это библиотека Python для чтения и записи файлов Excel. Данная библиотека позволяет считывать данные и выполнять статистические вычисления на основе данных из электронной таблицы [5]. Рассмотрим основные возможности библиотеки Openpyxl:

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

Например: wb = load_workbook('ege_result.xlsx')

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

ws = wb['Индивидуальные результаты'], где в квадратных скобках содержится название листа.

Определение ячейки, с которой необходимо вывести числовое значение. Чтобы обозначить данную ячейку в кодовой программе, после того, как определили файл и лист, необходимо ввести следующую строку: ws['E' + str(i)].value, где E-столбец, i – переменная, от которой зависит номер строки.

Функции statistic.mode(), statistic median(). Данные функции позволяют вычислить значения моды и медианы из числового ряда[4].

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

Таким образом, библиотека Openpyxl содержит все необходимые функции для выполнения необходимых статистических расчетов, а также позволяет структурировать данные в целях облегчения анализа.

Глава 2. ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1 Набор программ для реализации статистических расчетов.

При работе педагогу необходимо корректировать данные по названию файла, соответствующего листа, номерам столбцов. Каждая программа позволяет выполнить определенные статистические расчёты: №1 – количество учащихся; №2 – количество учащихся, выполнивших работу на максимальное количество баллов; №3 – количество учащихся, не получивших ни одного балла за ту или иную часть работы; № 4 – часть учащихся, получивших менее минимального балла; № 5 – среднее значение баллов по конкретному заданию; № 6 – максимальное количество набранных баллов; № 7 – размах между наибольшим и наименьшим количество набранных баллов; № 8 – результат в баллах, который встречался чаще всего; № 9 – сумма баллов за задания определенной части; № 10 –количество учащихся, выполнивших более половины заданий. Формулировка задач и программные коды по их реализации представлены в таблице 1.

Таблица 1. Проведение статистических вычислений в среде языка программирования Python

№п/п

Формулировка задачи

Программный код

Реализация поставленной задачи

1

Посчитать количество учащихся, принимающих участие в проверочной работе.

   

2

Определить количество учащихся, выполнивших работу на 100 баллов

   

3

Определить количество учащихся, не получивших ни одного балла за задания из второй части.

   

4

Определить, какую часть от общего числа, составляют учащиеся, получившие менее минимального балла. Полученное значение округлить до 2 знаков после запятой (минимум: 40 баллов».

   

5

Найти среднее значение баллов по заданию №7.

   

6

Определить максимальное количество набранных баллов по проверочной работе.

   

7

Найти размах между наибольшим и наименьшим количеством итоговых баллов по проверочной работе.

   

8

Необходимо по всем заданиям из первой части определить, какие результаты встречались чаще всего.

   

9

Найти количество учащихся, выполнивших более половины заданий

   

10

Найти количество учащихся успешно выполнивших более половины заданий с кратким ответом.

   

2.2 Пример реализации программы

Формулировка задачи: «Определить, какую часть от общего числа, составляют учащиеся, получившие менее минимального балла. Полученное значение округлить до 2 знаков после запятой (минимум: 10 баллов»).

Этапы решения задачи:

Импорт функции из библиотеки, обеспечивающей возможности работы с файлами формата xlsx, для прочтения данных:

from openpyxl import load_workbook

Определение файла и листа, с которых будут считываться данные:

wb = load_workbook('Контрольная работа.xlsx')

ws = wb['Индивидуальные результаты']

Рис 1. Определение листа и файла

Подсчет количества учащихся:

rows = len(list(ws.rows))-2

Исходя из данных файла, вычитаем 2, так как в первых двух строках не содержатся данные по учащимся:

rows = 17 -2 =15

Заводим счетчик, с помощью которого вычисляется количество учащихся, получивших менее 10 баллов:

a = 0

Включаем цикл для перебора всех строк, начиная с третьей (первые две строки не включают данные по итоговым баллам) и определяем столбец, содержащий данные по количеству баллов:

for i in range (3, rows):

k = int(ws['B' + str(i)].value)

Рис.3 Перебор строк и определение столбца

В цикл включаем условие (если количество баллов меньше, то к счетчику прибавляется единица):

if k <10:

a=a+1;

Рис. 4 Работа с условием

Вычисляем часть учащихся (в процентах), получивших менее минимального балла:

s=a*100/ rows

По данным файла получаем:

s = 4*100 / 15 =  26,6666666667

Округляем полученные данные до сотых посредством функции round:

l= round(s,2)

Получаем: 26,6666666667 26,67

Выводим полученный результат:

print ('Количество:', s)

Заключение

Python является наиболее оптимальным вариантом при решении задач по статистике, так как данный язык более прост в самостоятельном изучении, а также отвечает всем необходимым требованиям. Библиотека Openpyxl содержит все функции для выполнения необходимых статистических расчетов, а также позволяет структурировать данные в целях облегчения анализа.

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

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

Библиографический список.

Гэддис Т. Начинаем программировать на Python.  – 4-е изд.: Пер. с англ. – СПб.: БХВ-Петербург, 2019. – 118 с.

Лутц М. Программирование на Python, том I, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2017. – 992 с.

Свейгарт, Эл. Автоматизация рутиных задач с помощью Python: практическое руководство для начинающих. Пер. с англ. — М.: Вильямc, 2017. – 92 с.

Стандартные библиотеки Python [Электронный ресурс]. Режим доступа: https://losst.ru/standartnye-biblioteki-python. Дата обращения: 11.01.2022.

Язык программирования Python [Электронный ресурс]. Режим доступа: http://inf-w.ru/?page_id=4293. Дата обращения: 03.11.2021.

Просмотров работы: 27