Simple Science

Ciência de ponta explicada de forma simples

# Informática# Engenharia de software# Inteligência Artificial

Avaliando o Papel dos LLMs na Educação em Engenharia de Software

Um estudo sobre o impacto dos LLMs em cursos de engenharia de software na universidade.

― 9 min ler


LLMs na Educação emLLMs na Educação emSoftwareuniversidade.projetos de programação naAvaliação de ferramentas de IA em
Índice

Modelos de Linguagem de Grande Escala (LLMs) são um novo tipo de tecnologia em inteligência artificial que manda muito bem em tarefas que envolvem linguagem humana. Embora esses modelos não sejam especificamente feitos para escrever código, eles também mostraram habilidades impressionantes nessa área. Porém, a gente ainda não entende totalmente quão úteis os LLMs podem ser para os alunos que estão trabalhando em projetos de engenharia de software. Esse estudo analisa como os alunos podem usar LLMs em um ambiente universitário, onde eles são incentivados a incorporar essas ferramentas em seu trabalho.

Visão Geral do Estudo

O estudo foi feito com 214 alunos que trabalhavam em equipes de até seis membros. Ao contrário da maioria dos cursos acadêmicos que proíbem o uso de LLMs, esse curso deixou os alunos usá-los à vontade. O objetivo desse estudo era avaliar como esses modelos poderiam ajudar os alunos durante seu trabalho de desenvolvimento.

Analisamos o código gerado pelos LLMs, os prompts (ou instruções) que os alunos usaram para fazer esses modelos gerarem código e a quantidade de edição humana necessária para tornar o código gerado pela IA utilizável. Também fizemos pesquisas para coletar as opiniões dos alunos sobre a utilidade dos LLMs e como eles veem essas ferramentas se encaixando em suas futuras carreiras.

Descobertas sobre Código Gerado por IA

Nossa análise mostrou que os LLMs podem ser bem úteis, especialmente nas fases iniciais de um projeto de software. Os alunos relataram que os modelos ajudaram a criar estruturas básicas de código, corrigir erros de sintaxe e oferecer assistência geral durante o desenvolvimento de suas aplicações. Eles curtiram usar LLMs como um parceiro enquanto codificavam, especialmente para entender mensagens de erro e melhorar a qualidade do seu código.

O estudo mostrou que muitos alunos acharam os LLMs úteis para tarefas repetitivas e que o uso deles aumentou a produtividade. Porém, alguns alunos expressaram preocupações de que depender dessas ferramentas poderia levar a uma queda nas suas habilidades de codificação e afetar negativamente o mercado de trabalho para engenheiros de software.

Descrição do Projeto

Os alunos do curso de engenharia de software foram designados a um projeto que durou um semestre, onde tinham que desenvolver um Analisador de Programa Estático (SPA) para uma linguagem de programação simplificada chamada SIMPLE. Essa linguagem não é para uso real, mas serve para ensinar aos alunos conceitos essenciais de programação. O projeto exigia que as equipes analisassem e executassem consultas em programas SIMPLE, imitando processos reais de desenvolvimento de software.

Os alunos seguiram um cronograma estruturado onde participaram de reuniões regulares de planejamento e revisão, usando ferramentas padrão da indústria para acompanhar seu progresso. A carga de trabalho foi planejada para ser gerenciável, com os alunos devendo dedicar cerca de 20 horas por semana ao projeto.

Geração de Código por IA na Prática

Os alunos foram incentivados a usar LLMs como GitHub Copilot e ChatGPT para ajudar na geração de código. Eles precisavam anotar suas submissões, indicando onde usaram código gerado por IA e quanto de intervenção humana foi necessário para integrar esse código no produto final. A intervenção humana foi classificada em três níveis:

  • Nível 0: Nenhuma mudança feita no código gerado pela IA.
  • Nível 1: Mudanças pequenas feitas no código gerado pela IA.
  • Nível 2: Mudanças significativas feitas no código gerado pela IA.

Analisando essas anotações, conseguimos avaliar os esforços necessários para incorporar o código gerado por IA de maneira eficaz.

Estudo de Usuário e Insights da Pesquisa

Para coletar mais informações sobre as experiências dos alunos com LLMs, fizemos uma pesquisa no final do semestre. Essa pesquisa perguntava aos alunos sobre suas percepções e experiências ao usar IA para suas tarefas de codificação. A gente queria descobrir como essas ferramentas influenciaram suas habilidades e atitudes em relação à engenharia de software.

A pesquisa incluiu perguntas sobre a familiaridade dos alunos com programação, suas habilidades de codificação autoavaliadas e suas experiências com geradores de código por IA. Os resultados mostraram um grande interesse em usar LLMs, com muitos respondentes sentindo que essas ferramentas ajudaram a completar as tarefas de forma mais eficiente. Porém, alguns alunos estavam cautelosos e preocupados em se tornar muito dependentes da assistência da IA.

Estatísticas de Uso de Código por IA

Das 37 equipes do curso, 15 equipes (cerca de 40%) relataram ter usado código gerado por IA em seus projetos. Um pequeno número dessas equipes gerou uma grande porcentagem do total de código gerado pela IA. A maior parte do código gerado veio da versão ChatGPT-3.5, com algumas equipes também usando GitHub Copilot e ChatGPT-4.

Durante o projeto, os dados foram coletados em três marcos principais: Marco 1, Marco 2 e Marco 3. A análise revelou que os LLMs foram particularmente úteis na fase inicial, onde os alunos precisavam de ajuda para começar com seus projetos. À medida que o projeto continuava e os alunos se familiarizavam mais com a linguagem e os requisitos, o uso de LLMs diminuía.

Engenharia de Prompt

Durante o curso, os alunos forneceram uma variedade de prompts para guiar os LLMs na geração de código. Dos 61 prompts registrados, a contagem média de palavras foi em torno de 18 palavras. Os prompts se enquadraram em cinco categorias: melhorar o código escrito pelos alunos, resolver tarefas simples, gerar estruturas de dados específicas, criar soluções para problemas comuns e gerar casos de teste.

Analisando os prompts, observamos que os alunos muitas vezes recorriam aos LLMs para assistência em tarefas mais simples, especialmente aquelas relacionadas a sintaxe e algoritmos básicos.

Impacto nas Habilidades de Codificação

Uma descoberta importante deste estudo foi que as habilidades de codificação dos alunos impactaram significativamente sua disposição de usar LLMs. Alunos que se consideravam menos habilidosos eram mais relutantes em confiar no código gerado pela IA. Essa descoberta sugere que ter boas habilidades de codificação é necessário para usar eficazmente ferramentas de IA.

Alunos com mais experiência no uso de geradores de código por IA também estavam mais confiantes em sua capacidade de trabalhar com essas ferramentas. Isso destaca a importância de praticar e desenvolver habilidades para obter o máximo benefício do uso de LLMs.

Análise de Sentimentos

Para entender como os alunos se sentiam em relação ao uso de LLMs, incluímos perguntas abertas na pesquisa. Muitos alunos expressaram sentimentos positivos, afirmando que os LLMs os ajudaram a entender melhor os conceitos de programação e tornaram a codificação mais divertida. Porém, os sentimentos negativos giraram principalmente em torno de preocupações de que depender da IA poderia diminuir sua paixão pela codificação e suas habilidades de pensamento crítico.

Ao considerar suas futuras carreiras, os alunos tinham opiniões mistas sobre como os LLMs os impactariam como engenheiros de software. Alguns acreditavam que a IA os tornaria mais eficientes, enquanto outros estavam preocupados com possíveis perdas de emprego no campo do desenvolvimento de software.

Qualidade e Correção do Código

Em um ambiente acadêmico, a qualidade do código produzido por cada equipe foi avaliada usando casos de teste e benchmarks. Nossa análise revelou que não havia diferenças significativas na qualidade do código entre as equipes que usaram LLMs e aquelas que não usaram. Isso indica que, mesmo que alguns alunos confiassem muito no código gerado pela IA, eles ainda mantinham a qualidade por meio de edição e verificação cuidadosas.

Curiosamente, enquanto os marcos iniciais mostraram uma forte dependência dos LLMs para tarefas mais simples, os alunos se tornaram mais proficientes e começaram a enfrentar tarefas mais complexas à medida que o projeto avançava.

Conclusão

Este estudo ilumina os potenciais benefícios e desafios do uso de LLMs na educação em engenharia de software. Os LLMs podem ajudar significativamente os alunos nas fases iniciais do desenvolvimento de projetos, especialmente para tarefas rotineiras como depuração e geração de estruturas básicas de código. No entanto, os alunos precisam ter boas habilidades de codificação para aproveitar essas ferramentas de forma eficaz e devem ser alertados contra a dependência excessiva.

À medida que o cenário da engenharia de software continua a evoluir com novas tecnologias, é crucial que as instituições educacionais preparem os alunos com as habilidades necessárias para uma colaboração efetiva com ferramentas de IA. Isso inclui ensinar os alunos a criar prompts eficazes, avaliar a qualidade do código gerado pela IA e tomar decisões informadas ao integrar ferramentas de IA em seu trabalho.

Implicações Futuras

As descobertas deste estudo têm implicações importantes sobre como a engenharia de software é ensinada em ambientes acadêmicos. Os educadores devem incentivar o uso de LLMs, enfatizando também a importância do pensamento crítico e das habilidades de codificação. Construir um currículo que incorpore ferramentas de IA junto com práticas tradicionais de codificação vai preparar os alunos para um futuro onde a colaboração entre humanos e IA se tornará comum na indústria de software.

Ao equipar os alunos com as habilidades certas, podemos garantir que eles não só consigam utilizar ferramentas poderosas de IA, mas também mantenham um alto nível de proficiência e criatividade em suas codificações. Esse equilíbrio será fundamental para carreiras de sucesso em um mundo cada vez mais automatizado.

Em resumo, nossa pesquisa destaca a necessidade de entender tanto as vantagens quanto as limitações dos LLMs no contexto educacional, abrindo caminho para uma integração cuidadosa da tecnologia de ponta nos currículos de engenharia de software.

Fonte original

Título: An Empirical Study on Usage and Perceptions of LLMs in a Software Engineering Project

Resumo: Large Language Models (LLMs) represent a leap in artificial intelligence, excelling in tasks using human language(s). Although the main focus of general-purpose LLMs is not code generation, they have shown promising results in the domain. However, the usefulness of LLMs in an academic software engineering project has not been fully explored yet. In this study, we explore the usefulness of LLMs for 214 students working in teams consisting of up to six members. Notably, in the academic course through which this study is conducted, students were encouraged to integrate LLMs into their development tool-chain, in contrast to most other academic courses that explicitly prohibit the use of LLMs. In this paper, we analyze the AI-generated code, prompts used for code generation, and the human intervention levels to integrate the code into the code base. We also conduct a perception study to gain insights into the perceived usefulness, influencing factors, and future outlook of LLM from a computer science student's perspective. Our findings suggest that LLMs can play a crucial role in the early stages of software development, especially in generating foundational code structures, and helping with syntax and error debugging. These insights provide us with a framework on how to effectively utilize LLMs as a tool to enhance the productivity of software engineering students, and highlight the necessity of shifting the educational focus toward preparing students for successful human-AI collaboration.

Autores: Sanka Rasnayaka, Guanlin Wang, Ridwan Shariffdeen, Ganesh Neelakanta Iyer

Última atualização: 2024-01-29 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2401.16186

Fonte PDF: https://arxiv.org/pdf/2401.16186

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Artigos semelhantes