Время науки - The Times of Science
Время науки The Times of Science 16 №4 должна быть построена на интеллектуальных технологиях, технологиях искусственного интеллекта. Рост спроса на мгновенную интеллектуальную обратную связь при проверке кода, созданного студентами, определил актуальность данного исследования. Ручная проверка не только трудоемка для преподавателя, но иногда и субъективна. Цель исследования заключается в оценке возможностей искусственного интеллекта (ИИ) при автоматической проверке написанного обучаемыми кода и генерации качественной обратной связи. Проблеме автоматического анализа исходного кода программ при изучении программирования посвящен ряд исследований, ключевыми направлениями которых являются статический анализ (инструмент Svace, классические линтеры) [3], машинное обучение (LSTM, word2vec для поиска уязвимостей) [5], сравнительный анализ существующих инструментов (FlexeLint, Coverity, SonarQube и др.) [1]. Авторы выделяют общую проблему, заключающуюся в низкой точности и недостаточной полноте автоматического анализа, особенно для сложного или учебного кода. Отмечается ограниченная применимость промышленных инструментов для обучения студентов: они могут выдавать слишком много ложных срабатываний или пропускать ошибки, характерные для новичков [1]. Большинство инструментов не учитывают типичные ошибки студентов, такие как неправильная инициализация переменных, ошибки в циклах и условиях, упрощенные уязвимости (например, SQL-инъекции в учебных проектах). Ицыксон В.М. с соавторами подчеркивают, что классические линтеры (Splint, FlexeLint) плохо работают с «замаскированными» ошибками, которые студенты допускают из-за непонимания [3]. Промышленные инструменты требуют настройки и аннотаций, что непрактично для вузов, сложно интегрируемы в образовательный процесс. Системы плохо интерпретируют смысл ошибок, студентам же нужны объяснения, а не просто пометки об обнаруженной уязвимости. Одним из направлений решения проблемы является использование ИИ- инструментов. Выделим ключевые аспекты применения ИИ при анализе кода. Генерация кода с помощью ИИ обладает следующими преимуществами: ускорение разработки программ, помощь новичкам на начальном этапе создания кода, построение множества вариантов решений для одной задачи, что расширяет кругозор студентов. Однако использование ИИ-инструментов несет и определенные риски. Сгенерированный код может обладать низким качеством; снижается мотивация к самостоятельному написанию кода, а, следовательно, студенты перестают понимать базовые алгоритмы; этические проблемы – код может быть скопирован из открытых источников без соблюдения лицензий и цитирования [2]. Инструменты ИИ способны грамотно выполнять автоматический обзор кода (Code Review). Они выявляют ошибки и уязвимости в реальном времени (например, SQL-инъекции, переполнение буфера), формируют рекомендации по улучшению стиля кода (PEP 8, MISRA C) [4, 6]. Необходимо учитывать сложившиеся ограничения, так, например, при анализе нестандартных задач
Made with FlippingBook
RkJQdWJsaXNoZXIy ODQ5NTQ=