IA em Projetos de ProgramaçãoÚltima atualização: 16/04/2024

Este texto explora o emprego da IA na geração de código e na programação utilizando blocos. Serão abordadas as aplicações mais comuns da IA nesses contextos, como a criação de trechos de código e a resolução de erros, além dos desafios e das possibilidades que surgem da integração da IA na programação em blocos.

IA e a geração de código

O uso mais comum da IA em atividades de programação consiste em usar o LLM para gerar trechos de código ou mesmo pedir ajuda em um trecho de código que está apresentando erro. Exemplos de prompt abaixo:

Por favor, crie uma função em JavaScript que receba uma string e retorne true se todas as letras forem maiúsculas ou false se forem minúsculas.
Analise o código Python abaixo, pois ele não está produzindo a saída que eu esperava. 
x = 5
if x > 1 and x < 4:
   print("x está entre 1 e 4")
y = 10
if y > 1 or y < 4:
   print("y não está entre 1 e 4")
Estou recebendo a seguinte mensagem de erro para o código python abaixo: TypeError: range expected at least 1 argument, got 0
for i in range():
   print(i)

IA e a programação usando blocos

É possível usar o ChatGPT para gerar programas baseados em blocos, como Microsoft MakeCode, Code.org App Lab e Scratch. No entanto, isso pode ser desafiador devido à natureza textual do ChatGPT. É necessário traduzir a lógica textual do ChatGPT para a representação de blocos usada pela ferramenta, exigindo trabalho adicional de formatação e interpretação para garantir a correta conversão da lógica.

Ao utilizar uma ferramenta de programação em blocos com seus alunos, um LLM pode não ser tão útil. No entanto, ainda é possível aproveitar os recursos da IA nesse tipo de programação. Escrevi um tópico a respeito disso, que você pode conferir aqui

Integrando IA na Programação em Blocos

Scratch, Microsoft MakeCode e Code.org App Lab são ferramentas populares no ensino de programação, robótica e atividades maker escolares, devido à sua estrutura de programação visual e baseada em blocos.

Enquanto escrevo este texto, tanto o Scratch quanto o MakeCode não oferecem recursos de IA integrados, mas você pode experimentar o App Lab, que possui essas funcionalidades em uma trilha de aprendizagem específica do Code.org. Para utilizar IA no Scratch e no MakeCode, é necessário criar extensões usando JavaScript. No caso do Scratch, é preciso gerar uma versão personalizada, já que a versão online oficial não permite o uso de extensões personalizadas. No entanto, existe uma versão alternativa do Scratch chamada The RAISE Playground, desenvolvida em parceria entre o Personal Robots Group do MIT Media Lab e a iniciativa MIT RAISE, que inclui extensões relacionadas à IA em seu ambiente online.

Uma boa notícia para quem já utiliza o Teachable Machine com os alunos é que esta versão customizada do Scratch possui uma extensão específica para ele. Isso significa que você pode treinar um modelo no Teachable Machine e utilizá-lo em seus projetos no Scratch.

Este é o link para acessar o Scratch com extensões de IA (The RAISE Playground).

Quanto ao App Lab, você pode aprender como ele funciona com IA nesta trilha do Code.org. Se você deseja apenas criar um modelo para uso, pode ir direto para a lição 21 para carregar seus dados e realizar o treinamento. Depois, dentro do App Lab, você pode acessar o modelo treinado na opção "Gerenciar modelos de IA".

Jupyter Notebook

O Jupyter Notebook é uma alternativa que oferece uma experiência mais abrangente no uso da IA. Ele permite criar e compartilhar documentos interativos contendo código, visualizações e texto explicativo. Amplamente utilizado na análise de dados e visualização, é também usado no ensino de programação por integrar código, texto e gráficos em um único ambiente interativo.

Em termos de facilidade de uso, o Jupyter Notebook é moderadamente simples, especialmente para atividades básicas. No entanto, para alunos iniciantes em programação, pode haver uma curva de aprendizado inicial ao se familiarizar com a sintaxe do Python e a estrutura do Notebook. Embora seja ótimo para desenvolver projetos com alunos do ensino fundamental ao médio, uma introdução à programação pode ser mais adequada usando ferramentas de programação visual em blocos como o Scratch ou as ferramentas disponíveis no Code.org.

Aqui estão algumas ideias inspiradas na estratégia de utilizar a IA como exemplos relacionados à unidade temática de Probabilidade e Estatística, como o EF06MA33 e o EF07MA34:

  • Exemplo dos sorvetes usados na palestra Desmistificando a IA.
  • Exemplo previsão da próxima palavra.
  • Exemplo de IA fazendo a classificação.