Рост больших языковых моделей (LLM) и генеративного ИИ в корне меняет способ создания программного обеспечения. Современные разработчики все чаще полагаются на помощников ИИ (например, ChatGPT, GitHub Copilot) для написания кода, документирования программ и создания тестов. Рутинные задачи, которые когда-то выполнялись вручную — создание шаблонного кода, документирование API или рефакторинг — теперь можно частично передать на аутсорсинг ИИ под руководством человека. Эта тенденция побудила преподавателей заметить, что существующие методы оценки (например, домашние задания по кодированию) становятся неэффективными в эпоху помощников ИИ. Поэтому университетам по всему миру необходимо пересмотреть учебные программы: сохранить строгие основы и при этом научить студентов работать с инструментами ИИ.

Переосмысление основных компонентов учебной программы

Фундаментальные знания прежде всего: как подчеркивают эксперты, решение проблем остается первостепенным в программировании. Преподаватели подчеркивают, что студенты должны изучить четкие требования, алгоритмы и структуры данных, прежде чем опираться на ИИ. Например, преподаватели Вандербильта рекомендуют не вводить LLM в значительной степени во вводный курс по информатике: «необходимо, чтобы студенты широко использовали LLM в нашем курсе CS101, прежде чем они освоят базовое программирование и навыки решения проблем». На практике учебная программа первого года должна по-прежнему охватывать базовое кодирование, математику и алгоритмы, не пропуская этап обучения методом проб и ошибок.

Новые курсы, ориентированные на ИИ: в то же время программы должны добавлять курсы или модули по генеративному ИИ. Многие университеты уже делают это. Например, Вандербильт предлагает курс «Введение в генеративный ИИ» для специальностей в области науки о данных, который охватывает инженерию подсказок, чат-ботов и архитектуры трансформаторов. Аналогично, направления науки о данных и программной инженерии должны включать материал по крупномасштабному машинному обучению, обучению с подкреплением и пониманию естественного языка. Курсовая работа может научить студентов тому, как создаются LLM (тонкая настройка, встраивание, генерация с дополненной поисковой обработкой), чтобы выпускники понимали технологию под капотом. Инженерия подсказок — создание эффективных запросов и обработка недетерминизма ИИ — становится основным навыком. Многие учреждения теперь интегрируют практические лабораторные работы или проекты по подсказкам (например, оптимизация подсказок для генерации правильного кода) для обучения этой компетенции.

Интегрированные темы ИИ: Генеративный ИИ не должен ограничиваться одним факультативом. Эксперты утверждают, что его следует рассматривать как кибербезопасность или тестирование программного обеспечения — сейчас они представлены в специальных курсах, но в конечном итоге вплетены в учебную программу. Например, курс по программной инженерии, который охватывает анализ требований, может включать такие задачи, как использование LLM для анализа требований естественного языка или создания диаграмм UML. Системный курс может обсуждать, как проверять код от помощников ИИ, чтобы избежать ловушек безопасности. Подобно тому, как обучают безопасному кодированию на всех курсах C/C++, преподаватели должны подчеркивать подводные камни, связанные с ИИ (например, подсказки для кода, защищенного авторским правом) в каждом соответствующем курсе. Со временем шаблоны подсказок и грамотность в области ИИ должны быть усилены в алгоритмах, базах данных, HCI (человеко-машинное взаимодействие) и курсах дипломных работ.

Современные цепочки инструментов: учебные программы должны подчеркивать цепочку инструментов профессиональной разработки с первого дня. Подход «сначала цепочка инструментов», когда IDE, контроль версий, линтеры и CI/CD преподаются вместе с кодированием, готовит студентов к инструментам ИИ. Например, обучение Visual Studio Code (или другой современной IDE) с расширениями на первом курсе программирования помогает студентам научиться использовать автодополнение кода, отладку и статический анализ на ранних этапах. В одном исследовании отмечается, что благодаря внедрению отраслевых инструментов во вводные курсы «программы студентов более точно следуют рекомендациям по стилю, содержат меньше ошибок и их легче читать». Важно то, что это также закладывает основу для будущих компаньонов по ИИ. Как заметил один преподаватель, приоритет инструментов «готовит студентов к более сложным инструментам, таким как компаньоны на основе ИИ на основе LLM, которые будут использоваться для создания программного обеспечения». Аналогичным образом, интеграция контроля версий и автоматизированного тестирования на начальных курсах знакомит студентов с рабочими процессами, которые вскоре будут включать автоматизацию на основе ИИ.

Отказ от устаревшего контента: некоторые устаревшие элементы учебной программы могут быть ослаблены. Например, может быть уменьшен сильный акцент на запоминании синтаксиса языка или реализации структур данных вручную (когда библиотеки или помощники ИИ могут их генерировать). Вместо этого преподаватели могут переключить внимание на концепции более высокого уровня: алгоритмическое мышление, проектирование архитектуры и моделирование данных. Аналогичным образом, повторяющиеся лабораторные работы (например, «написать сортировку пузырьком с нуля») можно заменить проектами, которые используют инструменты ИИ для эффективности, но проверяют понимание алгоритма. Учебные программы следует проверять, чтобы гарантировать, что обязательные курсы предлагают четкую ценность в мире, дополненном ИИ, — отсекая любые темы, которые мало что добавляют, когда ИИ может легко с ними справиться.

Новые навыки и роли в разработке с использованием ИИ

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

Инженерия подсказок и взаимодействие с ИИ: поскольку LLM становятся повседневными помощниками по кодированию, студенты должны научиться эффективно общаться с ними. Это означает четкое структурирование подсказок, предоставление контекста и итерации для улучшения вывода ИИ. На практике студенты могут изучить шаблоны подсказок (например, «Вы являетесь экспертом-программистом в X. Напишите функцию, которая…») и то, как разбить задачи на более мелкие вызовы ИИ. Что важно, они также должны управлять неопределенностью — ответы LLM могут меняться при каждом запуске, поэтому выпускники должны тщательно проверять результаты.

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

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

Навыки DevOps/MLOps: современная разработка все больше автоматизирует интеграцию и развертывание, особенно для ИИ. Выпускники должны быть знакомы с конвейерами непрерывной интеграции/непрерывного развертывания и контейнерной разработкой (Docker, Kubernetes), чтобы они могли включать модули ИИ в производственные рабочие процессы. Это включает в себя версионирование наборов данных и моделей, а также мониторинг развернутого ИИ на предмет дрейфа или сбоев. Хотя конкретные инструменты быстро развиваются, учебная программа должна знакомить студентов с автоматизированными системами сборки/тестирования и облачными службами ИИ.

Грамотность в отношении данных и этика: данные лежат в основе ИИ. Студенты должны понимать сбор данных, очистку и смягчение предвзятости при обучении моделей ИИ. В то же время этика ИИ становится основной профессиональной темой. Педагогика должна явно охватывать общественные воздействия ИИ: вопросы справедливости, конфиденциальности и прозрачности. Как отмечается в одном исследовании, LLM имеют «восприимчивость к предвзятому принятию решений, этическим проблемам и [a] характеру «черного ящика», что делает образование в области этики необходимым. Учебные программы должны включать обсуждения принципов ИИ (прозрачность, подотчетность, конфиденциальность) в существующие этические модули и использовать тематические исследования (например, предвзятые данные обучения, авторские права на результаты ИИ) для стимулирования критического мышления.

Сотрудничество человека и ИИ: наконец, гибкие навыки обретают новые измерения. Разработчики должны эффективно общаться с нетехническими экспертами в предметной области и объяснять результаты, полученные с помощью ИИ. Они должны практиковать документирование того, как они использовали ИИ (журналы подсказок, выбор API), чтобы другие могли проверять или воспроизводить их работу. Адаптивность и непрерывное обучение имеют первостепенное значение, поскольку инструменты ИИ будут продолжать развиваться.

Интеграция инструментов ИИ в обучение

Ведущие учреждения уже испытывают ИИ в классах. Некоторые преподаватели используют LLM для создания учебных материалов: например, Дуглас Шмидт из Университета Вандербильта сообщает об использовании ChatGPT для создания заданий по программированию, лекционных слайдов и даже вопросов для тестов. Эти инструменты помогают преподавателям справляться с большими классами, автоматизируя рутинную подготовку и обратную связь. Преподаватели также поощряют использование ИИ студентами. На практике многие разрешают ChatGPT или Copilot для домашних заданий (со ссылкой), полагая, что «безответственно преподавать на занятиях по программной инженерии… и делать вид, что генеративный ИИ не существует в реальном мире».

В педагогическом плане курсы адаптируются творчески. Например, один курс по программированию в области инженерии создал модули для обучения GitHub Copilot: преподаватель провел семинар по настройке и продемонстрировал функции Copilot, а затем дал студентам практические лабораторные упражнения (включая парное программирование с ИИ). Задания были помечены как «Copilot разрешен» или «Copilot запрещён», чтобы гарантировать, что студенты по-прежнему практиковались в решении основных задач. Преподаватели подготовили подробные правила: четкие рекомендации по приемлемому использованию ИИ, требования к документированию любого сгенерированного ИИ кода и критерии оценки, ориентированные на понимание студентом, а не просто на рабочее решение.

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

Оценка и академическая честность

Генеративный ИИ создает серьезные проблемы для оценки. Руководящие принципы учебной программы по информатике 2023 года предупреждают, что «инструменты генеративного ИИ делают существующие методы оценки неэффективными». Традиционные домашние экзамены и тесты по кодированию теперь могут проводиться с помощью ИИ, что стирает грань между работой студента и результатом ИИ. В ответ преподаватели должны пересмотреть оценки, чтобы ориентироваться на навыки более высокого уровня: открытые проекты, устные защиты и рефлексивные сочинения, которые проверяют рассуждения студента. Например, преподаватели могут потребовать от студентов объяснить, как они подсказали ИИ, или критиковать и отлаживать сгенерированный ИИ код.

В то же время ИИ может улучшить оценку и обратную связь. Недавние исследования показывают, что LLM могут автоматизировать оценку программирования и письма, обеспечивая мгновенную обратную связь. Автоматизированная генерация и оценка тестовых случаев с помощью ИИ может быстро отмечать ошибки в студенческих работах. При ответственном использовании инструменты на базе ИИ могут освободить преподавателей, чтобы сосредоточиться на наставничестве, а не на рутинной оценке. Однако политика должна требовать от студентов ссылаться на любую помощь ИИ. Некоторые школы теперь рассматривают нераскрытое использование ИИ как нарушение академической честности, во многом похожее на плагиат. Преподаватели должны обновить кодексы чести, чтобы прояснить приемлемое использование ИИ (например, требуя указания источника контента, созданного ИИ) и учитывать грамотность ИИ при выставлении оценок: поощрять понимание ограничений ИИ, а также правильные ответы.

Этика, профессионализм и социальные последствия

Интеграция ИИ в образование в области программного обеспечения также требует более сильного этического акцента. Выпускники факультетов программного обеспечения и науки о данных будут помогать создавать инструменты ИИ, поэтому их необходимо научить ценностям, которые должны регулировать эти инструменты. Такие темы, как алгоритмическая предвзятость, конфиденциальность данных и пределы надежности ИИ, должны быть вплетены в технические курсы. Обсуждения случаев (например, громких ошибок ИИ) могут проиллюстрировать последствия игнорирования этики. Учебные программы должны ссылаться на профессиональные руководящие принципы (такие как Кодекс этики ACM и новые рамки этики ИИ) и предлагать студентам обсуждать сценарии, такие как дезинформация, генерируемая ИИ, или проблемы интеллектуальной собственности. Как отмечает один исследователь ИИ, понимание таких принципов, как «прозрачность, конфиденциальность, подотчетность, справедливость и автономия», «имеет решающее значение» не только на занятиях по ИИ, но и во всем образовании по программной инженерии.

Подготовка к карьере и соответствие требованиям отрасли

Наконец, выпускникам нужен опыт работы с инструментами ИИ, готовый к карьере. Университеты могут сотрудничать с бизнесом для предоставления реальных проектов и стажировок в области ИИ. Службы карьерного роста должны выделять такие роли, как инженер LLM или DevOps с дополненной реальностью. Например, «инженер LLM» может сосредоточиться на тонкой настройке моделей и их интеграции в продукты, в то время как инженер DevOps обеспечивает бесперебойное развертывание компонентов ИИ. Само по себе оперативное проектирование даже стало начальной должностью в некоторых технологических компаниях. Дипломные проекты должны поощрять создание или использование систем с дополненной реальностью ИИ (например, чат-ботов или приложений для генерации кода). Консультации преподавателей также должны подчеркивать адаптивность: новые выпускники, скорее всего, будут менять свои навыки по мере развития возможностей ИИ.

В целом, глобальные программы CS/SE/Data Science должны быстро развиваться. Рекомендации включают: обновление существующих курсов для включения тем ИИ; добавление специальных курсов по генеративному ИИ и оперативному проектированию; преподавание профессиональных инструментов и API ИИ; акцент на основах и критическом мышлении; и внедрять этику повсюду. Такие школы, как Вандербильт и другие, уже пилотируют такие изменения. Как выразился один педагог, преподавание программной инженерии без признания ИИ «безответственно» в современном мире. Активно пересматривая учебные программы, университеты могут гарантировать, что студенты будут не просто пассивными потребителями инструментов ИИ, а опытными этичными соавторами в следующем поколении разработки программного обеспечения.

Благодарности

PS. Спасибо мои друзьям и коллегам подтолкнувшим меня к компиляции в цикл статей наших разговоров на "перекурах". И конечно же ChatGPT "помогший" оформить тезисы в текст, насытив примерами и скорректировавший форматирование.
PPS. Оригинальный текст был размещён на линкед-ин

Waterfall 2.0 серия статей включает:

  1. Возвращение эпохи одиночек, усиленных LLM

  2. Одиночная разработка с поддержкой LLM: эффективность, инструменты и риски

  3. Рабочие процессы, основанные на LLM, в разработке программного обеспечения

  4. Программные артефакты и ИИ для современных команд разработчиков

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

Комментарии (0)