Научная статья на тему 'АРХИТЕКТУРА РЕКОМЕНДАТЕЛЬНОЙ СИСТЕМЫ ДЛЯ ОБУЧЕНИЯ ЯЗЫКАМ ПРОГРАММИРОВАНИЯ'

АРХИТЕКТУРА РЕКОМЕНДАТЕЛЬНОЙ СИСТЕМЫ ДЛЯ ОБУЧЕНИЯ ЯЗЫКАМ ПРОГРАММИРОВАНИЯ Текст научной статьи по специальности «Строительство и архитектура»

CC BY
75
16
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Auditorium
Ключевые слова
Рекомендательная система / обучение языкам программирования / архитектура рекомендательной системы. / Recommender system / teaching programming languages / recommendation system architecture.

Аннотация научной статьи по строительству и архитектуре, автор научной работы — Макаров К. С., Овчинников А. В., Меркеева Е. Е.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по строительству и архитектуре , автор научной работы — Макаров К. С., Овчинников А. В., Меркеева Е. Е.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ARCHITECTURE OF A RECOMMENDER SYSTEM FOR TEACHING PROGRAMMING LANGUAGES

The paper presents an overview of various platforms for teaching programming languages, and an analysis of existing solutions. The requirements for a recommender system for teaching programming languages are formulated. Taking into account the presented requirements, as well as modern trends in the design and development of recommender systems, the architecture of the recommender system for teaching programming languages has been developed

Текст научной работы на тему «АРХИТЕКТУРА РЕКОМЕНДАТЕЛЬНОЙ СИСТЕМЫ ДЛЯ ОБУЧЕНИЯ ЯЗЫКАМ ПРОГРАММИРОВАНИЯ»

УДК 004.8

АРХИТЕКТУРА РЕКОМЕНДАТЕЛЬНОЙ СИСТЕМЫ ДЛЯ ОБУЧЕНИЯ ЯЗЫКАМ ПРОГРАММИРОВАНИЯ

© 2023 К. С. Макаров1, А. В. Овсянников2, Е. Е. Маркеева3

1 кандидат технических наук, доцент кафедры программного обеспечения и администрирования информационных систем e-mail: runaway90@mail.ru 2магистрант 2 курса направления подготовки «Прикладная математика и информатика» e-mail: ovsyannikovxxx@yandex.ru 3студентка 4 курса бакалавриата направления подготовки ««Прикладная математика и информатика» e-mail: katerina. markeeva @ mail. ru

Курский государственный университет

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

Ключевые слова: рекомендательная система; обучение языкам программирования; архитектура рекомендательной системы.

ARCHITECTURE OF A RECOMMENDER SYSTEM FOR TEACHING PROGRAMMING LANGUAGES

© 2023 K. S. Makarov 1, A. V. Ovsyannikov 2, E. E. Markeeva 3

1 Candidate of Technical Sciences, Associate Professor of the Department of Software and Administration of Information Systems

e-mail: runaway90@mail.ru

2 2nd year master student of the direction of preparation "Applied Mathematics and Informatics"

e-mail: ovsyannikovxxx@yandex.ru

3 4th year bachelor's student in the field of study "Applied Mathematics and Informatics”

e-mail: katerina. markeeva @ mail. ru

Kursk State University

The paper presents an overview of various platforms for teaching programming languages, and an analysis of existing solutions. The requirements for a recommender system for teaching programming languages are formulated. Taking into account the presented requirements, as well as modern trends in the design and development of recommender systems, the architecture of the recommender system for teaching programming languages has been developed.

Keywords: recommender system; teaching programming languages; recommendation system architecture.

В условиях современного мира, стремительно развивающихся информационных технологий, а также популяризации удаленной работы можно заметить тенденцию увеличения количества вакансий в сфере IT. Профессия программиста становится одной из самых востребованных во всем мире [https://www.profguide.io/article/samye-vostrebovannye-professii-v-mire-v-2023-godu.html]. Большое количество людей, начиная со школьников и заканчивая специалистами из других областей, проявляют повышенный интерес к изучению языков программирования.

Одним из способов получения необходимых компетенций в сфере IT является онлайн-образование, которое обладает таким важным преимуществом как доступность. Вместе с тем онлайн-образование не позволяет реализовывать технологии индвидуаизированного обучения. Одним из подходов для преодоления данного недостатка является разработка и внедрение рекомендательных систем, которые представляют пользователю те объекты, которые могут быть ему более интересны, исходя из его известных предпочтений и предпочтений других пользователей с похожими характеристиками [10, с. 194-201].

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

Целью работы явлется определение функциональных требований,

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

Для обучения программированию существует достаточное количество платформ, обладающих различной функциональностью. Наиболее популярными являются Нетология [2], Яндекс Практикум [3] и SkillBox [14], включающие в себя тематические программы, состоящие из лекций и практических заданий.

Нетология - сервис онлайн-курсов, который предлагает подготовку по различным направлениям как в IT, так и в других областях. Большинство из курсов на платформе платные. Формат проведения курсов предполагает, что они будут проходить в определенные сроки с непосредственным участием преподавателей, дистанционный формат курсов позволит обучающимся из разных регионов получать нужные им знания. Такая структура не отличается ничем от стандартного офлайн-образования. Пример курса по основам разработки на Java приведён на рисунке 1.

:: нетология

Основы разработки на Java

Изучите основы востребованного во всём мире языка программирования и разработайте приложение

Рис. 1. Пример курса «Нетология»

Яндекс Практикум - это образовательная площадка с курсами по различным направлениям. В настоящий момент на их платформе представлено 28 курсов по направлениям IT. Только 4 из них являются бесплатными (рис. 2). У данной образовательной площадки есть существенные недостатки: курсы имеют

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

Рис. 2. Все бесплатные курсы данных по направлению программирование Яндекс практикума

Подготовка к алгоритмическому собеседованию v

Тема 1/1: Начало — Урок 1/2

Вступление

Программа курса

Какие структуры Подготовка и практика

данных нужно знать

Рис. 3. Разделы курса «Подготовка к алгоритмическому собеседованию»

Stepik - это образовательная платформа, а также конструктор бесплатных и платных открытых онлайн-курсов и уроков [15]. Любой зарегистрированный пользователь может создать интерактивные обучающие уроки, используя видео, тексты и различные задания с автоматической проверкой и моментальной обратной связью (рис. 4).

Рис. 4. Платформа Stepik

Для проведения сравнительной оценки представленных выше образовательных платформ и конструкторов онлайн-курсов были выделены следующие критерии:

1) возможность интеграции системы в программные продукты сторонних разработчиков (наличие API);

2) наличие модуля рекомендаций курсов;

3) наличие компонента сбора данных данных для дальнейшего формирования оценок;

4) наличие модуля рекомендаций уроков.

Сравнение существующих решений приведено в таблице. Используется следующая шкала для оценивания решений:

0 - решение не выполняет указанной функции;

1 - решение частично выполняет указанную функцию;

2 - решение полностью выполняет указанную функцию.

Критерии Нетология Яндекс Практикум Stepik Создаваемое решение

Наличие API 0 0 2 2

Наличие компонента сбора данных 2 2 2 2

Наличие модуля рекомендаций курсов 1 1 2 2

Наличие модуля рекомендаций уроков 0 0 0 2

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

Для разрабатываемой системы можно выделить следующие задачи:

1) выдача рекомендаций;

2) формирование оценки объектов;

3) сбор данных.

Для реализации системы планируется использовать клиент-серверный подход, язык разработки Java, а так же сервис, который будет выступать в качестве сервера и базы данных (БД) - Firebase; само приложение будет разрабатывать под операционную систему (ОС) Android (рис. 5).

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

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

Существует множество подходов и архитектурных решений для разработки приложений [1, с. 22-24]. Для проетирования рекомандательной системы предлагается остановиться на паттерне MVP (Model-View-Presenter), позволяющем представителю (презентеру) сразу же обрабатывать данные пользователя [4, с. 19-20].

MVP - это паттерн проектирования, который разделяет приложение на три основных компонента: модель (Model), отображение (View) и презентер (Presenter).

1. Модель (Model) отвечает за работу с данными. В случае использования Firebase это будет слой для работы с Firebase Realtime Database или Cloud Firestore [7]. В модели должна быть реализована логика получения и сохранения данных, а также обработка ошибок и уведомлений.

2. Отображение (View) представляет то, что пользователь видит на экране[8]. Здесь реализуется логика отображения данных и интерфейса, а также обработка событий, связанных с пользовательским вводом. В случае использования Android для создания приложения, отображение может быть реализовано с помощью XML-файлов макета и Java-кода для обработки событий [5].

3. Презентер (Presenter) связывает модель и отображение [6]. Презентер получает данные из модели и передает их в отображение, а также обрабатывает события от пользовательского ввода и передает их в модель для обработки [9]. Это позволяет разделить логику работы с данными и отображения, улучшить тестируемость кода и уменьшить связность между компонентами.

Использование Java и Firebase для реализации мобильного приложения рекомендательной системы обучения языкам программирования может обеспечить высокую производительность и удобство разработки [11]. Кроме того, Firebase предоставляет готовые инструменты и сервисы для управления базами данных,

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

Для реализации приложения будут использованы следующие сервисы Firebase:

1. Firebase Authentication позволяет аутентифицировать пользователей приложения.

2. Firebase Cloud Firestore предназначен для хранения и синхронизации данных в режиме реального времени [12]. Firestore предлагает широкий набор функций, в том числе поддержку структурированных запросов и возможность работы с большими объемами данных [13].

3. Firebase Storage позволяет хранить и управлять файлами, такими как изображения и видео, в облаке Firebase.

4. Firebase Cloud Functions позволяет разрабатывать и запускать серверные функции, которые выполняются в облаке Firebase.

Таким образом, в ходе работы были рассмотрены и проанализированы различные платформы обучения языкам программирования, такие как Нетология [2], Яндекс Практикум [3] и SkillBox [14]. В результате проведенного анализа были сформулированы требования к функциональности рекомендательных систем обучения языкам программирования. С учетом полученных требований, а также тенденций развития рекомендательных систем была разработана архитектура рекомендательной системы обучения языкам программирования. Результат работы будет использован для создания рекомендательной системы обучения языкам программирования.

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

1. Гамма, Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования / Э. Гамма, Р. Хелм, Р. Джонсон и др. - Санкт-Петербург: Питер, 2001.

- 368 с.

2. Нетология [Офиц. сайт]. - URL: https://netology.ru (дата обращения:

27.02.2023) .

3. Яндекс Практикум [Офиц. сайт]. - URL: practicum.yandex.ru (дата обращения:

27.02.2023) .

4. Турушев, Т. К. Архитектурные паттерны проектирования системы - MVC, MVP, MVVP / Т. К. Турушев // Сборник научных статей по материалам VI Международной научно-практической конференции «Инновационный потенциал развития науки в современном мире: достижения и инновации», 2021. - Уфа, 2021. -

C. 16-21.

5. Adomavicius, G., Tuzhilin, A. Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions / G. Adomavicius, A. Tuzhilin // IEEE Transactions on Knowledge and Data Engineering. - 2005. - Vol. 17. - P. 734-749.

6. Aggarwal, C. C. Data mining. The Textbook. - Springer International Publishing, 2015. - 734 p.

7. Celma, O. Music Recommendation and Discovery. - Springer-Verlag Berlin Heidelberg, 2010. - 194 p.

8. Goldberg, D. Using collaborative filtering to weave an information Tapestry /

D. Goldberg, D. Nichols, B. M. Oki, D. Terry // Special issue on information filtering. - 1992.

- Vol. 35. - Issue 12. - P. 61-70.

9. Hasan Kahtan, Hael Al-bashiri A Proposed Course Recommender Model based on Collaborative Filtering for Course Registration.

10. Hill, W. Recommending and Evaluating Choices in a Virtual Community of Use / W. Hill, L. Stead, M. Rosenstein, G. Furnas // Proceeding Conference Human Factors in Computing Systems, 1995. - P. 194-201.

11. Resnick, P., Iakovou N., Sushak M., Bergstrom P., Riedl J. GroupLens: An Open Architecture for Collaborative Filtering of Netnews // Proceeding 1994 Computer Supported Cooperative Work Conference, 1994. P. 175-186.

12. Ricci, F. Recommender Systems Handbook / F. Ricci, L. Rokach, B. Shapira, P.B. Kantor. - Springer US, 2011. - 842 p.

13. Shardanand, U. Social Information Filtering: Algorithms for Automating «Word of Mouth» / U. Shardanand, P. Maes // Proc. Conf. Human Factors in Computing Systems, 1995. - P. 210-217.

14. Skillbox [Офиц. сайт]. - URL: https://skillbox.ru (дата обращения: 27.02.2023).

15. Stepik [Офиц. сайт]. - URL: https://welcome.stepik.org/ru/about (дата обращения: 02.03.2023).

i Надоели баннеры? Вы всегда можете отключить рекламу.