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

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

CC BY
137
21
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МОДЕЛЬ / ГЕНЕРАЦИЯ КОДА / ПРОГРАММИРОВАНИЕ / ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ / ИНСТРУМЕНТЫ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Цепляев А.Ф.

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

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

USING ARTIFICIAL INTELLIGENCE LANGUAGE MODELS TO LEARN THE BASICS OF PROGRAMMING

The study of programming at the Institute includes the process of writing code when solving various types of tasks. At the same time, students have to spend a lot of time studying the basics and syntactic features of the programming language used, when during this time it would be possible to focus on thinking through an algorithm to solve the problem.

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

УДК 004.896

Цепляев А.Ф.

магистрант 1 курса энергетического факультета Научный руководитель: Каплина С.Е.

д-р пед. наук, зав.каф. иностранных языков

ЗабГУ, г. Чита, РФ

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

Аннотация

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

Ключевые слова

Модель, генерация кода, программирование, искусственный интеллект, инструменты.

USING ARTIFICIAL INTELLIGENCE LANGUAGE MODELS TO LEARN THE BASICS OF PROGRAMMING

Annotation

The study of programming at the Institute includes the process of writing code when solving various types of tasks. At the same time, students have to spend a lot of time studying the basics and syntactic features of the programming language used, when during this time it would be possible to focus on thinking through an algorithm to solve the problem.

Keywords

Model, code generation, programming, artificial intelligence, tools.

Вступление

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

Существующие модели генерации кода

За последние годы всё большую популярность набирают открытия в области искусственного интеллекта. Появляется множество новостей о создании моделей искусственного интеллекта, решающих совершенно разный круг задач. Крупномасштабными инструментами для генерации кода считаются OpenAI Codex, DeepMind AlphaCode и Amazon CodeWhisperer, «делающие программирование более

продуктивным и доступным» [1].

Codex от компании OpenAI является потомком другой языковой модели GPT-3 (Generative Pre-trained Transformer третьего поколения), которая является одной из самых продвинутых моделей естественного языка. Codex обучается на более чем 50 миллионах репозиториев с кодовой базой сервиса GitHub, включая подавляющее большинство кода на языке программирования Python общим объемом 159 ГБ [1]. Данная модель может принимать англоязычные запросы и в последствии генерировать код на нескольких языках, включая JavaScript, Go и др.

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

В отличие от Codex, инструмент Copilot, являющийся проектом компании GitHub, может предлагать альтернативные решения в момент написания кода программистом нажатием одной лишь клавиши. GitHub называет Copilot «твоим парным программистом с ИИ», хотя взаимодействие гораздо более ограничено, чем с человеком [4].

Задачи, решаемые инструментами генерации кода

Задачи, поставляемые студентам в качестве практической базы для написания кода, обычно редко имеют готовые решения, поскольку у преподавателей не всегда есть время на их разработку. В исследовании Беккера и др. описывается, что решения, генерируемые искусственным интеллектом, предоставляют студентам возможность проверять свои работы, сверяя их с решениями от модели искусственного интеллекта [1]. При этом этих решений может быть множество, поскольку подходы в написании задач бывают абсолютно разные, что, как утверждает Томпсон и др., помогает учащимся оценить эффективность и различия в подходах к написанию кода [2]. Правда, тут может сыграть роль другая сторона, при которой студенты вовсе не будут пытаться создавать собственные решения.

Также инструменты генерации кода помимо самого кода могут создавать необходимые пояснения, помогая учащимся лучше понимать концепцию программирования. Для большинства нетривиальных задач инструменты генерации кода выдают множество правильных решений, которые предлагаются программисту на выбор. Это было проиллюстрировано Финни-Анслеем, который наблюдал большие различия в решениях, сгенерированных Codex при решении классической задачи осадков [1].

Преимущества инструментов генерации кода

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

Как ни странно, студенты иногда сталкиваются с писательской блокировкой программиста - то есть они не знают, с чего начать. Вайтилингам и др. обнаружили, что Copilot помог студентам приступить к выполнению заданий по программированию, создав некоторый начальный код, тем самым предоставив возможность расширять код, а не бороться с проблемой чистого листа [3]. Это дает возможность студентам поддерживать поступательный темп в аутентичной среде, где необходимость оценки, переписывания и расширения кода, возможно, важнее, чем написание каждой строки кода с нуля [1].

Недостатки инструментов генерации кода

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

этим, как утверждает Беккер и др., перед преподавателями ставится задача в том, чтобы информировать студентов об их профессиональных обязанностях при повторном использовании кода [1].

Также является проблемой то, что код, генерируемый моделями на базе искусственного интеллекта, может быть не всегда безопасным и требует тщательного сканирования для выявления уязвимостей [1].

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

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

Список использованной литературы:

1. Programming Is Hard - Or at Least It Used to Be: Educational Opportunities and Challenges of AI Code Generation / Becker B. A. [et al.] // SIGCSE 2023: Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 1. 2023, pp. 500-506.

2. Code Classification as a Learning and Assessment Exercise for Novice Programmers / Thompson E. [et al.] // In 19th Annual Conference of the National Advisory Committee on Computing Qualifications (NACCQ 2006). National Advisory Committee on Computing Qualifications, Wellington, New Zealand, 2006, pp. 291-298.

3. Vaithilingam P., Zhang T., Glassman E. L. Expectation vs. Experience: Evaluating the Usability of Code Generation Tools Powered by Large Language Models. // In CHI Conference on Human Factors in Computing Systems Extended Abstracts. ACM, NY, USA, 2022, pp. 1-7.

4. Wermelinger M. Using GitHub Copilot to Solve Simple Programming Problems // SIGCSE 2023: Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 1. 2023, pp. 172-178.

© Цепляев А.Ф., 2023

УДК 004.032.26

Яранцева Е.А.

магистрант 1 курса ПГТУ, г. Йошкар-Ола, РФ Научный руководитель: Иванов К.О.

Кандидат технических наук, доцент, ПГТУ

г. Йошкар-Ола, РФ

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

Аннотация

Показана актуальность задачи сегментации тканей сердца и легких. Рассмотрена архитектура и

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