TY - JOUR T1 - Подготовка будущих учителей информатики области искусственного интеллекта AU - Баранова, Е. В. AU - Симонова, И. В. AU - Лебедева, М. Б. AU - Носкова, Т. Н. Y1 - 2023-04-11 UR - https://rep.herzen.spb.ru/publication/988 N2 - Подготовка современных учителей информатики, бакалавров педагогического образования, специализирующихся в области информационных технологий, предполагает развитие цифровых компетенций, в перечень которых включаются (“The Digital Competence Framework 2.0”: https://ec.europa.eu/jrc/en/digcomp/digital-competenceframework) такие умения, как поиск, анализ и отбор данных, построение моделей объектов для формализации предметной области, применение цифровых технологий для решения различных классов задач. Анализ сущности перечисленных умений показывает их связь с алгоритмической компетентностью учителей информатики, подробно описанную авторами [Баранова и др., 2019, с. 4], и возможность и целесообразность их развития у студентов посредством изучения методов искусственного интеллекта и машинного обучения. Развитие алгоритмической компетентности будущих учителей информатики при изучении технологий искусственного интеллекта предлагается осуществлять на основе связанных по содержанию модулей «Алгоритмы машинного обучения: принципы, математический аппарат, области применения» и «Язык программирования Python и программная реализация алгоритмов машинного обучения» [Баранова и др., 2022]. Разработанная нами методика обучения этой предметной области согласуется с целями и содержанием подготовки будущих учителей информатики, определяемых ФГОС ВО (3++) по направлению педагогического образования, и основывается на разработанных авторами классами учебных задач. Разработанная система задач базируется на модели Б. Блума и его последователей Л. Андерсона и Д. Краcволя [Anderson etc., 2001], которая описывает иерархию развития познавательных действий в виде совокупности категорий: помнить, понимать, применять, оценивать, создавать. Профессиональная деятельность будущих учителей информатики предполагает, в том числе, готовность оценивать качество средств информационных технологий для их применения в учебном процессе, разрабатывать новые программные приложения, анализировать результаты применения цифровых инструментов при реализации образовательного процесса и т. д. Наш опыт показывает [Baranova et al., 2020; Баранова и др., 2019; Баранова и др., 2022], что этапы развития такой готовности соответствуют иерархии познавательных действий, предложенных последователями Б. Блума. Первый модуль предназначен для формирования у студентов первоначальных представлений о технологиях искусственного интеллекта, классах и методах машинного обучения, используемом математическом аппарате, моделях, алгоритмах, цифровых инструментов для их реализации. Фактологические знания о методах машинного обучения и подходах к их решению формируются у студентов при решении задач первого класса. Задачи второго и третьего классов ориентированы на углубленное понимания терминов и определений предметной области, включают вопросы и задания, требующие уточнения смысла определений, например: «опишите метод градиентного спуска с линейной регрессией для двумерного случая», «предложите функционал качества для решения задачи кластеризации». Такие задачи ориентированы на обучение применению знаний об алгоритмах машинного обучения для решения учебных задач средствами компьютерного моделирования. Задачи четвёртого класса ориентированы на развитие умений: анализировать готовые решения конкретных задач машинного обучения, решать аналогичные задачи, в том числе, с использованием самостоятельно выбранных компьютерных средств моделирования, например, задача использования линейной регрессии для прогнозирования заработной платы на основе возраста, образования и профессии, успешности освоения студентами образовательного маршрута и т. д. В рамках модуля «Язык программирования Python и реализация алгоритмов машинного обучения» также предлагается три класса задач, ориентированных на овладение студентами предметной области (технологии искусственного интеллекта) на уровне фактологических, концептуальных и процедурных знаний. Разработанная система классов задач направлена на расширение представлений студентов о структурах данных и базовых конструкциях языка программирования Python, как одного из ведущих языков программирования, используемых для реализации алгоритмов искусственного интеллекта. На наш взгляд этот язык целесообразно изучать после того, как студенты уже овладели каким-либо языком программирования императивной или объектно-ориентированной парадигмы программирования. При изучении нового языка управляющие конструкции и структуры данных сравниваются со способами их реализации и синтаксисом в уже известных студентам языках программирования, что развивает концептуальные знания о программировании, как виде интеллектуальной деятельности. Особенность языка Python - отсутствие, в отличие от многих других языков программирования, требования «жесткой» типизации переменных. У студентов расширяется представление о «типе» данных, как важной концептуальной составляющей языков программирования. Последовательно рассматриваются базовые управляющие конструкции: оператор присваивания, условный оператор, операторы цикла, осуществляется сравнение с синтаксисом этих операторов в других языках программирования. Предлагаются различные задания на разработку программ, которые расширяют представление студентов о способах хранения различных данных, методах обработки и доступа к различным структурам данных, включая специфические для языка Python структуры - списки, кортежи, словари. Таким образом, у студентов развиваются «процедурные» (в терминологии «пересмотренной» технологии Б. Блума) умения: обработки данных различных типов, поиска, сортировки, доступа к данным посредством библиотек языка Python, осуществляется развитие алгоритмической компетенции, как компонента цифровой компетенции студентов. Задачи четвертого класса направлены на развитие познавательных действий самого высокого в иерархии уровня, таких как анализ, оценка и создание. Этот класс объединяет задания первого и второго модуля и предполагают самостоятельное создание студентами программного продукта на языке программирования Python, реализующего простую модель машинного обучения с использованием алгоритмов классификации, линейной регрессии, опорных векторов и т. д. Этапы решения задач предполагают: анализ условия задачи для подбора соответствующего алгоритма и метода из библиотек языка Python, анализ и подготовку данных, создание программы, оценку качества примененного метода. Например, в рамках лекционного материала обучающимся предлагается простая классификационная модель, реализующая распознавание вида животного на основе значений ряда признаков: рост, вес, температура тела и т. д. Классификатор базируется на основе деревьев решений (DecisionTreeClassifier), для его реализации используется библиотека tree из модуля sklearn языка Python. Этот пример иллюстрирует одну из концепций машинного обучения «с учителем», которое реализуется в два этапа: «обучение» классификатора на заранее сформированном наборе маркированных данных, а затем «предсказание» значений выходных данных, определяющих принадлежность объекта классу, другого набора «не маркированных» данных. Рассматриваются методы fit и predict библиотеки sklearn для реализации этих этапов. Далее рассматриваются подходы к оценке эффективности моделей машинного обучения, вводятся понятия матрицы неточностей (confusion_matrix), числовой метрики для оценки качества модели (accuracy) и способы их вычисления средствами библиотек языка Python. Регрессионные модели широко используются в машинном обучении для решения различных классов задач. Регрессия позволяет оценить связь между входными и выходными данными. Значения выходных данных могут принадлежать ряду вещественных чисел и иметь бесконечное количество вариантов. Линейная регрессия относится к алгоритмам машинного обучения «с учителем» [Джоши, 2019]: ▪ исходный набор данных разбивается на две части обучающая (большая) и тестовая; ▪ на основе обучающего набора строится модель, в данном случае ищутся коэффициенты (a, b) такие, чтобы сумма квадратов разностей фактических и вычисленных значений была минимальной среди всех возможных наборов (a, b); ▪ модель проверяется на тестовом наборе, определяется ее качество; ▪ модель используется для «предсказания» новых значений выходной переменной в зависимости от значения входной переменной. Студентам предлагается линейная регрессионная модель, описывающая связь между опытом работы и заработной платой. Рассматриваются различные библиотеки Python, для программной реализации модели: # для ввода входных наборов данных import pandas as pd #для работы с массивами import numpy as np #методы для построения моделей from sklearn import linear_model import sklearn.metrics as sm from sklearn.model_selection import train_test_split #для визуального отображения моделей import matplotlib.pyplot as plt Студенты знакомятся с подходами к работе с данными, представленными в csv файлах, методами для чтения данных и выборки фрагментов наборов данных, методом train_test_split, разбивки исходного набора на обучающий и тестовый, методами визуального отображения исходных данных и получаемых значений. Студентам предлагается текст программы с подробными комментариями [Белоножко и др., 2017]. # Загрузка данных df = pd.read_csv("data/regr_one_x.txt") print(df.head(8)) #- массив независимых данных, в этом случае первый столбец X = df.iloc[:,:-1].values #- массив зависимых данных, в этом случае второй столбец Y = df.iloc[:,1].values # Разбивка данных на обучающий и тестовый наборы X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2,random_state=0) # Создание объекта линейного регрессора regressor = linear_model.LinearRegression() #Обучение модели regressor.fit(X_train,Y_train) # Прогнозирование результата Y_test_pred = regressor.predict(X_test) # Построение графика plt.scatter(X_train, Y_train, color='red')# точки обучающего набора plt.scatter(X_test,Y_test,color = 'green')# точки проверочного набора plt.plot(X_train, regressor.predict(X_train), color='blue', linewidth=4)#регрессия plt.title('Заработная плата vs Опыт(Тренировочные данные)') plt.xlabel('Опыт в годах') plt.ylabel("Заработная плата") plt.show () print("R2 score =", round(sm.r2_score(Y_test, Y_test_pred), 2)) В качестве заданий для лабораторной и самостоятельной работы студентам предлагается выполнить представленные в лекции программы с различными наборами входных данных, проанализировать результаты, сделать выводы о качестве реализованной модели регрессионного анализа. Отдельный этап при реализации алгоритмов машинного обучения - визуализация данных. Студентам предлагаются задания на визуализацию данных средствами методов библиотеки matplotlib. Интерес для будущей профессиональной деятельности студентов представляет современное направление исследований для анализа данных об образовательных процессах - Educational Data Mining (EDM). Методы интеллектуального анализа данных, машинного обучения и статистики применяются к выявлению особенностей и динамики развития различных сущностей, связанных с процессами обучения в университетах, школах и т. д. [Баранова и др., 2021]. Методы EDM позволяют построить модели для описания различных аспектов образовательного процесса, включая [Белоножко и др., 2017]: ▪ модели анализа образовательных данных; ▪ визуализацию данных для наглядного представления о процессах; ▪ рекомендации студентам на основе успешности освоения образовательных маршрутов; ▪ прогнозирование успеваемости, выявление студентов, находящихся в зоне риска; ▪ моделирование индивидуальных образовательных маршрутов студентов; ▪ выявление нежелательного поведения студентов. Студентам предлагается предсказательная модель, базирующаяся на логистической регрессии, и соответствующий скрипт на языке Python для определения успешности освоения студентом курса в зависимости от текущей успеваемости в середине семестра. Самостоятельно студенты работают с программой с различными наборами входных данных, анализируют полученные результаты, формулируют выводы о качестве модели. «Метакогнитивные» знания - четвертая категория, самого высокого уровня, в иерархии Л. Андерсона и Д. Краcволя, подразумевающая знания о процессах познания (knowledge of cognition) и самопознания. Знания такого уровня, на взгляд авторов, необходимы для осуществления студентами исследовательской деятельности, формируются и накапливаются у них в рамках выполнения выпускных квалификационных работ при самостоятельной постановке целей и задач, поиске средств информационных технологий для их решения, разработке моделей, алгоритмов, программной реализации, анализе результатов и оценке качества созданного продукта. В процессе обучения алгоритмам искусственного интеллекта и их программной реализации на языке Python широко используются электронные образовательные ресурсы, представленные в СДО Moodle и включающие разработанные авторами учебно-методические материалы: лекции, демонстрационные примеры, задания для практической и самостоятельной работы студентов. Вывод. Проведенное экспериментальное исследование разработанного подхода с участием студентов третьего и четвёртого курсов РГПУ им. А. И. Герцена, г. СанктПетербурга, оценка результатов по окончании обучения свидетельствуют о развитии алгоритмической компетентности студентов, овладении ими основами технологий искусственного интеллекта и машинного обучения, их готовности реализовывать на языке Python простые алгоритмы машинного обучения.