Evaluating LLMs in the Context of a Functional Programming Course: A Comprehensive Study

Este estudo avalia a eficácia de nove modelos de linguagem de última geração em um curso de programação funcional utilizando OCaml, apresentando três novos benchmarks (λ\lambdaCodeGen, λ\lambdaRepair e λ\lambdaExplain) que revelam que, embora os modelos se destaquem na correção de erros e na explicação de conceitos, sua capacidade de resolver problemas de programação é significativamente menor nesse ambiente de baixa recursos em comparação com linguagens de alto recurso como Python e Java.

Yihan Zhang (McGill University, Canada), Brigitte Pientka (McGill University, Canada), Xujie Si (University of Toronto, USA)

Publicado Mon, 09 Ma
📖 5 min de leitura🧠 Leitura aprofundada

Each language version is independently generated for its own context, not a direct translation.

Imagine que você está aprendendo a cozinhar em uma cozinha muito específica e difícil, onde as regras são estritas e os ingredientes são raros. Neste caso, o "ingrediente raro" é a linguagem de programação OCaml, usada em um curso avançado de programação funcional. E os "ajudantes de cozinha" são as Inteligências Artificiais (LLMs), como o ChatGPT, que prometem fazer tudo por você.

Este artigo é como um teste de culinária rigoroso para ver se esses robôs realmente sabem cozinhar nessa cozinha difícil ou se apenas fazem um bolo bonito por fora, mas que desmorona por dentro.

Aqui está o resumo da história, dividido em partes simples:

1. O Cenário: A Cozinha Difícil (OCaml)

A maioria dos estudos anteriores testou essas IAs em cozinhas comuns e fáceis, como Python ou Java (que são como cozinhas americanas ou italianas, com muitos ingredientes e receitas na internet). Mas os autores deste estudo foram para uma cozinha mais exótica e difícil: a OCaml.

Eles queriam saber: Se um aluno pedir ajuda a uma IA para fazer a lição de casa, a IA vai entregar um prato delicioso ou vai queimar a cozinha?

2. Os Três Testes de Culinária (Os Benchmarks)

Para testar as IAs, os pesquisadores criaram três desafios diferentes, como se fossem três tipos de exames para um chef:

  • O Desafio "Criar do Zero" (λCodeGen):

    • A tarefa: A IA recebe uma receita escrita em linguagem natural (ex: "Faça um programa que organize uma lista de livros") e tem que escrever o código do zero.
    • O resultado: As IAs mais inteligentes (como o GPT-4o e o o3-mini) conseguiram cozinhar cerca de 70% dos pratos perfeitamente. Isso é bom, mas não é perfeito. Elas erraram em receitas mais complexas, como as que exigem "continuações" (um conceito de programação muito abstrato, como tentar fazer um soufflé sem saber a química exata).
    • Comparação: Elas foram muito melhores do que ferramentas antigas feitas especificamente para OCaml, mas ainda não são infalíveis.
  • O Desafio "Consertar o Prato Queimado" (λRepair):

    • A tarefa: Os alunos entregaram pratos queimados (códigos com erros) e a IA tinha que consertá-los.
    • O resultado: Aqui a IA brilhou!
      • Erros de Sintaxe (esqueceu um ponto e vírgula): As IAs consertaram quase 80% dos pratos. É como se elas soubessem exatamente onde o sal foi colocado errado.
      • Erros de Tipo (misturou açúcar com sal): Consertaram cerca de 75%.
      • Erros Lógicos (o prato tem gosto estranho, mas os ingredientes estão certos): Aqui foi mais difícil. Elas acertaram cerca de 60-70%. É mais difícil explicar por que o sabor está ruim do que apenas apontar que o sal está fora do lugar.
  • O Desafio "Explicar a Teoria" (λExplain):

    • A tarefa: Perguntar à IA conceitos teóricos (ex: "Qual a diferença entre avaliação por valor e por nome?").
    • O resultado: As IAs foram ótimas em dar respostas longas e bem escritas, mas muitas vezes erravam a teoria. Foi como um chef que fala muito bem sobre gastronomia, mas às vezes inventa fatos que não existem. Os alunos podem achar a resposta linda, mas ela pode estar errada.

3. As Lições Aprendidas (O Veredito)

  • Elas são ótimas assistentes, mas não mestres: As IAs top de linha (o "Top 3") conseguem fazer a maior parte do trabalho, mas ainda cometem erros. Se você confiar cegamente nelas, pode passar uma lição de casa errada.
  • O problema da "Alucinação": Às vezes, a IA inventa regras que não existem ou usa funções proibidas pela lição, porque ela está "alucinando" com base em dados de outras linguagens (como Python).
  • O perigo da confiança: Os alunos tendem a gostar das respostas das IAs porque elas são bem escritas e detalhadas, mesmo quando estão erradas. É como receber um prato que cheira bem, mas que tem veneno dentro.
  • Ferramentas Específicas vs. IAs Gerais: Existe uma ferramenta antiga feita só para OCaml que é muito precisa em tarefas pequenas, mas falha em tarefas grandes. A IA é como um "canivete suíço": ela faz tudo um pouco menos perfeitamente, mas faz tudo de uma vez só. Para um iniciante, o canivete suíço é mais útil.

4. O Conselho Final para Professores e Alunos

  • Para os Alunos: Não use a IA como uma "muleta" para fazer a lição. Use-a como um tutor para entender onde você errou, mas sempre verifique se a resposta faz sentido. Aprenda a criticar o que a IA diz.
  • Para os Professores: Em vez de pedir apenas "faça o código", peça aos alunos para achar os erros na IA, explicar por que a IA errou ou melhorar o código que a IA gerou. Isso força o aluno a pensar, e não apenas copiar.
  • Para os Pesquisadores: Precisamos ensinar as IAs a pensar mais como um cientista da computação e menos como um imitador de padrões.

Em resumo: As IAs são como aprendizes de chef muito talentosos que leram todos os livros de culinária do mundo, mas nunca cozinhou em uma cozinha tão específica quanto a OCaml. Elas são incrivelmente úteis, mas ainda precisam de um "Chef Chefe" (o aluno ou professor) para supervisionar e garantir que o prato final esteja seguro e saboroso.