Для студентов СПбГУ по предмету ДругиеРазработка алгоритмов по оценке качества кода для онлайн-платформ Stepik и HyperskillРазработка алгоритмов по оценке качества кода для онлайн-платформ Stepik и Hyperskill
2024-08-032024-08-03СтудИзба
Курсовая работа: Разработка алгоритмов по оценке качества кода для онлайн-платформ Stepik и Hyperskill
Описание
Оглавление
2
Введение
Образование является неотъемлемой частью общества [3]. При этом в настоящий момент наблюдается процесс активной цифровизации обра-зования [5,11]. Из-за этого все больше людей получают доступ к обра-зовательным онлайн-курсам, в частности, по программированию.
Однако некоторые работы [7, 8] указывают на то, что студенты во время обучения программированию очень редко обращают внимание на качество кода, фокусируясь на прохождении тестов. С другой сто-роны, умение писать качественный код является важным качеством профессионального программиста, так как это напрямую влияет на чи-таемость, сложность и поддержку такого кода.
Существует два основных способа оценки качества кода:
за кода. Данный подход не так эффективен как ручная оценка кода, но такие инструменты работают достаточно быстро, что поз-воляет использовать их в образовательных платформах. Однако, анализаторы кода позволяют находить лишь ограниченное мно-жество ошибок, что не подходит для полноценной проверки ко-
да [10,12].
Как указано в работе Sakerman [10], помочь исправить минусы авто-матических анализаторов смог бы инструмент, объединяющий резуль-таты работы нескольких из них.
На образовательных онлайн-платформах Stepik [22] и Hyperskill [21] был создан подобный инструмент Hyperstyle [16], предназначенный для
Введение | 3 | ||
1. | Цель и задачи | 5 | |
1.1. | Цель............................... | 5 | |
1.2. | Задачи ............................. | 5 | |
2. | Обзор | 6 | |
2.1. | Системы для оценки качества кода . . . . . . . . . . . . . | 6 | |
2.2. | Оценка качества кода в обучении . . . . . . . . . . . . . . | 7 | |
2.3. | Система Hyperstyle . . . . . . . . . . . . . . . . . . . . . . | 8 | |
3. | Реализация | 11 | |
3.1. | Улучшение процесса непрерывной интеграции . . . . . . | 11 | |
3.2. | Анализаторы кода для языка Python . . . . . . . . . . . . | 11 | |
3.3. | Алгоритмштрафов...................... | 16 | |
4. | Тестирование | 24 | |
4.1. | Тестовыеданные........................ | 24 | |
4.2. | Тестирование новых анализаторов . . . . . . . . . . . . . | 24 | |
4.3. | Тестирование алгоритма штрафов . . . . . . . . . . . . . | 29 | |
Заключение | 32 | ||
Список литературы | 34 |
2
Введение
Образование является неотъемлемой частью общества [3]. При этом в настоящий момент наблюдается процесс активной цифровизации обра-зования [5,11]. Из-за этого все больше людей получают доступ к обра-зовательным онлайн-курсам, в частности, по программированию.
Однако некоторые работы [7, 8] указывают на то, что студенты во время обучения программированию очень редко обращают внимание на качество кода, фокусируясь на прохождении тестов. С другой сто-роны, умение писать качественный код является важным качеством профессионального программиста, так как это напрямую влияет на чи-таемость, сложность и поддержку такого кода.
Существует два основных способа оценки качества кода:
- Ручная оценка. Такой вариант даст самые точные результаты, так как человек способен учитывать контекст, что не способны делать автоматические инструменты [8]. Однако, в рамках обра-зовательных платформ, где необходимо проверять тысячи реше-ний в минуту, такой вариант не подходит из-за высокой стоимости человеко-часов [10].
- Использование инструментов для автоматического анали-
за кода. Данный подход не так эффективен как ручная оценка кода, но такие инструменты работают достаточно быстро, что поз-воляет использовать их в образовательных платформах. Однако, анализаторы кода позволяют находить лишь ограниченное мно-жество ошибок, что не подходит для полноценной проверки ко-
да [10,12].
Как указано в работе Sakerman [10], помочь исправить минусы авто-матических анализаторов смог бы инструмент, объединяющий резуль-таты работы нескольких из них.
На образовательных онлайн-платформах Stepik [22] и Hyperskill [21] был создан подобный инструмент Hyperstyle [16], предназначенный для
Характеристики курсовой работы
Список файлов
Разработка алгоритмов по оценке качества кода для онлайн-платформ Stepik и Hyperskill.doc