Você está na página 1de 29

1

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS


UNIDADE ACADÊMICA DE GRADUAÇÃO
CURSO DE CIÊNCIA DA COMPUTAÇÃO

SANDRO JUNIOR FERRI

Um Modelo de Ensino aos Fundamentos da


Programação Baseado no ChatGPT.

São Leopoldo
2023
2

SANDRO JUNIOR FERRI

Um Modelo de Ensino aos Fundamentos da


Programação Baseado no ChatGPT.

Trabalho de Conclusão de Curso


apresentado como requisito parcial
para obtenção do título de Bacharel
em Ciência da Computação, pelo
Curso de Ciência da Computação da
Universidade do Vale do Rio dos
Sinos - UNISINOS

Orientador: Prof. Dr. Leandro Teodoro Costa

São Leopoldo
2023
3

RESUMO

Tendo em vista que a computação se tornou algo de extrema importância


social e que a programação é parte fundamental dessa ciência propomos neste
à análise das dificuldades enfrentadas por estudantes no processo de
aprendizagem de programação. O estudo contempla uma investigação de
conceitos, aplicações e limitações da inteligência artificial (IA) e do ChatGPT.
Devido a expansão e relevância da IA e do ChatGPT no panorama educacional
atual, o trabalho aborda também o papel e a implementação dessas ferramentas
tecnológicas no contexto do ensino. A principal contribuição desta pesquisa é a
proposta de um modelo inovador que emprega o ChatGPT como um tutor
interativo, cujo objetivo é facilitar e enriquecer o processo de ensino e
aprendizagem de programação. O estudo espera contribuir sobre novas
estratégias pedagógicas na área de programação e demonstrar como a IA e o
ChatGPT podem ser efetivamente utilizados para superar os obstáculos do
ensino tradicional.

Palavras-chave: Inteligência artificial. ChatGPT. Ensino de programação.


ChatGPT como modelo de ensino.
4

ABSTRACT

Considering that computing has become of extreme social importance,


and that programming is a fundamental part of this science, this paper proposes
an analysis of the difficulties faced by students in the process of learning
programming. The study includes an investigation of the concepts, applications,
and limitations of artificial intelligence (AI) and ChatGPT. Given the expansion
and relevance of AI and ChatGPT in today's educational landscape, the work also
addresses the role and implementation of these technological tools in the context
of education. The main contribution of this research is the proposal of an
innovative model that employs ChatGPT as an interactive tutor, whose aim is to
facilitate and enrich the teaching and learning process of programming. The study
hopes to contribute to new pedagogical strategies in the field of programming and
demonstrate how AI and ChatGPT can be effectively used to overcome the
hurdles of traditional teaching.

Keywords: Artificial intelligence. ChatGPT. Programming teaching. ChatGPT as


a teaching model.
5

LISTA DE SIGLAS

IA Inteligência Artificial
AI Artificial Intelligence
TI Tecnologia da Informação
GPT Generative Pre-training Transformer
DALL-E Variação do modelo GPT para treinar imagens
ML Machine Learning
RLHF Reinforcement Learning from Human Feedback
SFT Supervised Fine Tuning
6

SUMÁRIO

1 INTRODUÇÃO.......................................................................................... 8

1.1 Tema ........................................................................................................ 8

1.2 Limitação do tema .................................................................................. 8

1.3 Problema.................................................................................................. 9

1.4 Objetivos.................................................................................................. 9

1.4.1 Objetivo geral .......................................................................................... 9

1.4.2 Objetivos específicos ............................................................................. 9

1.5 Justificativa ............................................................................................ 10

2 FUNDAMENTAÇÃO TEÓRICA .............................................................. 11

2.1 Obstáculos para aprender programação ............................................. 11

2.1.1 Metodologia de ensino.......................................................................... 11

2.1.2 Raciocínio lógico e conhecimentos matemáticos .............................. 12

2.1.3 Conhecimento técnico .......................................................................... 13

2.1.4 Questões comportamentais ................................................................. 14

2.2 Obstáculos para ensinar programação ............................................... 15

2.2.1 Interesse e motivação do aluno........................................................... 15

2.2.2 Tutores para atender as turmas .......................................................... 16

2.2.3 Escolha da linguagem de programação ............................................. 17

2.3 Conceitualização sobre IA e ChatGPT ................................................. 18

2.3.1 Introdução a IA e ChatGPT................................................................... 18

2.3.2 Treinamento do ChatGPT ..................................................................... 19

2.3.3 Aplicações e limitações ....................................................................... 20

2.4 Inteligência artificial em ambiente acadêmico .................................... 21

2.4.1 Geração de vídeo aulas sintéticas ....................................................... 21


7

2.4.2 Ensino de teste de softwares .............................................................. 22

2.4.3 Resolução de prova de computação .................................................. 23

2.4.4 Assistente de estudantes de programação ....................................... 23

3 METODOLOGIA DE PESQUISA ........................................................... 24

REFERÊNCIAS................................................................................................ 25
8

1 INTRODUÇÃO

No campo acadêmico, em particular, o ensino de programação tornou-se


um componente essencial de currículos em cursos de Tecnologia da Informação.
No entanto, o processo de aprendizado dessa disciplina é frequentemente
caracterizado por desafios significativos, alta taxa de desistência e reprovação,
visto que muitos estudantes encontram dificuldades para compreender e
dominar os complexos conceitos e práticas envolvidos, perdendo assim a
motivação para aprender (Luxton-Reilly, 2016).
Diversos esforços têm sido feitos no sentido de melhorar a eficiência do
ensino de programação, explorando desde a revisão da metodologia de ensino
tradicional até a incorporação de soluções pedagógicas inovadoras (Cheah,
2020). Dentro desse espectro de estratégias, a Inteligência Artificial tem
emergido como um potencial recurso de auxílio ao ensino, com a capacidade de
proporcionar aprendizado personalizado, feedback instantâneo e apoio contínuo
aos estudantes.
Neste contexto, este trabalho propõe a utilização do ChatGPT, uma
inovação no campo da IA, como um tutor virtual no ensino de programação. O
ChatGPT é um modelo de linguagem treinado pela OpenAI que utiliza a
arquitetura transformer para gerar respostas de texto coerentes e contextuais.
Sua aplicação no ambiente educacional representa uma abordagem promissora
para enfrentar as dificuldades comuns enfrentadas pelos estudantes na
aprendizagem de programação.

1.1 TEMA

Uso do ChatGPT no âmbito de ensino da programação.

1.2 LIMITAÇÃO DO TEMA

Este estudo se concentra no uso do ChatGPT para auxiliar o ensino de


programação no ambiente acadêmico e nas dificuldades comuns dos estudantes
nesse campo. No entanto, é importante destacar as limitações. O trabalho não
abrange com profundidade outros usos da ferramenta ou problemas específicos.
9

Além disso, qualquer evolução tecnológica subsequente do modelo que ocorra


após a realização deste estudo não será abordada. As avaliações da eficácia do
ChatGPT são baseadas em métodos disponíveis atualmente.

1.3 PROBLEMA

Como inserir o uso do ChatGPT em um método de ensino no âmbito de


programação?

1.4 OBJETIVOS

1.4.1 Objetivo geral

Proposta de um modelo de tutoria virtual baseado no ChatGPT para


auxiliar estudantes iniciantes em computação na resolução de exercícios de
linguagens de programação. O modelo atuará como um tutor personalizado,
oferecendo sugestões e orientações adaptadas às necessidades dos alunos,
seguindo uma sequência pré-definida de atividades. O objetivo é promover uma
aprendizagem interativa e efetiva em programação, por meio do uso de
tecnologias de inteligência artificial, aprimorando a compreensão dos conceitos
e habilidades necessárias para o desenvolvimento de softwares.

1.4.2 Objetivos específicos

Para alcançar o objetivo geral deste trabalho, serão executadas as


seguintes etapas:
a) Realizar um levantamento bibliográfico sobre dificuldades de
aprendizado e ensino da programação, conceitos de inteligência
artificial, uso deste tipo de ferramenta na educação e trabalhos que
possuem relação com o aqui proposto.
b) Definir a sequência de exercícios e suas respostas para o modelo de
tutoria virtual, levando em consideração o nível de conhecimento do
aluno em programação.
c) Desenvolver uma estratégia eficiente de input de texto que leve em
consideração as características específicas de cada exercício,
10

garantindo que o ChatGPT compreenda de forma clara e precisa as


dúvidas e necessidades de cada estudante, a fim de oferecer
sugestões e orientações personalizadas para a resolução dos
exercícios.
d) Desenvolver o modelo da ferramenta de acordo com o que foi proposto
nesse trabalho.
e) Conduzir um estudo de avaliação de usabilidade com estudantes
iniciantes em programação.
f) Avaliar a eficácia do modelo proposto no auxílio à resolução de
exercícios de linguagens de programação.

1.5 JUSTIFICATIVA

A área de ensino da programação é de suma importância na atualidade,


devido à crescente demanda por profissionais qualificados no mercado de
tecnologia. No entanto, é amplamente reconhecido que muitos estudantes
enfrentam desafios significativos ao aprender programação. Pesquisas com
estudantes iniciantes, tanto em cursos presenciais como a distância, indicam que
uma das maiores dificuldades enfrentadas é a falta de oportunidade de praticar
a programação simultaneamente com o professor, o que torna difícil esclarecer
dúvidas quando testam os programas por conta própria (Dekson, Suresh e
Ponnusamy, 2009).
Nesse contexto, a utilização de tecnologias de inteligência artificial, como
o ChatGPT, pode oferecer uma alternativa promissora para aprimorar o processo
de ensino e aprendizagem da programação. A ferramenta pode atuar como um
tutor virtual, oferecendo sugestões personalizadas e orientações adaptadas às
necessidades individuais de cada aluno, além de fornecer feedback imediato e
contínuo.
Assim, este trabalho tem como objetivo propor um modelo de tutoria virtual
baseado em ChatGPT para auxiliar estudantes iniciantes em computação na
resolução de exercícios de linguagens de programação. Espera-se que este
estudo possa contribuir para o desenvolvimento de novas estratégias de ensino,
aprimorando o desempenho e a eficiência do processo de aprendizagem e
formando profissionais mais capacitados para o mercado de tecnologia.
11

2 FUNDAMENTAÇÃO TEÓRICA

Neste capítulo, serão abordados os temas relacionados à área de


pesquisa deste trabalho, sendo eles: dificuldades para aprender e ensinar
programação, conceitos de inteligência artificial e ChatGPT, e uso de IA em
ferramentas de ensino. O objetivo é fornecer uma base teórica sólida para esses
conceitos, elucidando seus significados e importância para a pesquisa em
questão estabelecendo uma compreensão mais clara e fundamentada dos
temas abordados ao longo deste trabalho.

2.1 OBSTÁCULOS PARA APRENDER PROGRAMAÇÃO

A programação, habilidade crucial e componente predominante nos


currículos de Tecnologia da Informação, é igualmente vital para cursos voltados
à gestão de sistemas de informação, segurança cibernética e análise de dados.
Mesmo quando não é o foco principal, o aprendizado de programação ainda é
relevante, dada a sua aplicabilidade diversificada na área de TI. Por ser um
alicerce para diversas disciplinas, a programação é geralmente introduzida nos
primeiros estágios dos cursos de TI. No entanto, essa centralidade pode criar
barreiras para a graduação. Conforme Giraffa et al. (2014) apontam, a disciplina
de programação frequentemente intimida e evoca sentimentos negativos nos
estudantes que têm dificuldades com o assunto, especialmente entre os
iniciantes. Compreender seus conceitos pode se tornar um desafio significativo,
complicando o domínio da disciplina.

2.1.1 Metodologia de ensino

A metodologia de ensino convencional pode ser um fator contribuinte para


as dificuldades enfrentadas ao aprender programação. Segundo Gomes e
Mendes (2014), as estratégias pedagógicas tradicionais apresentam uma
eficácia limitada neste contexto. Embora permitam a explicação de conceitos e
a demonstração de exemplos, essas abordagens muitas vezes falham em
promover o desenvolvimento de habilidades de resolução de problemas. Além
12

disso, elas podem não ser eficientes para lidar com a diversidade de
necessidades cognitivas, estilos de aprendizagem, dificuldades e motivações
encontradas em um grupo de estudantes, onde, frequentemente, a base de
conhecimento é heterogênea. Os autores ainda citam que a própria
programação é uma causa das dificuldades, devido a sua natureza abstrata e as
características e sintaxes das linguagens que não facilitam o aprendizado dos
estudantes e acabam desmotivando-os. Para Teague (2008) um estudante
desmotivado dificilmente terá sucesso. Isso é agravado pelo fato de que os
disciplinas de programação geralmente ganham uma reputação, que passa de
aluno para aluno, de serem difíceis, de modo que muitos deles já começam se
sentindo derrotados.

2.1.2 Raciocínio lógico e conhecimentos matemáticos

A habilidade de solução de problemas, conforme definida por Lehoczky e


Rusczyk (2006, apud Medeiros, Ramalho e Falcão 2019) como a capacidade de
compreender o contexto de um problema, identificar informações-chave e
formular um plano de resolução, foi destacada como uma das principais
dificuldades no aprendizado de programação. Tavares, Menezes e Nevado
(2012) afirmam que o domínio de uma metodologia específica para resolução de
problemas, focada na construção de artefatos que cumpram um conjunto
definido de requisitos, juntamente com a habilidade de resolver problemas de
maneira cooperativa, são elementos fundamentais na programação de
computadores. Segundo Thota (2014), o curso introdutório de programação tem
como objetivos de longo prazo, que os estudantes aprimorem suas habilidades
de resolução de problemas e desenvolvam competência em design de software.
A falta de habilidades matemáticas, que pode levar a dificuldades na
resolução de problemas, é destacada por Medeiros, Ramalho e Falcão (2019)
como outro principal obstáculo no aprendizado. Em um estudo realizado com
calouros no Instituto Politécnico de Coimbra, Portugal, Gomes e Mendes (2010)
reportam a percepção dos professores que as dificuldades dos estudantes em
programar decorrem, em parte, de suas limitações em matemática e falta de
habilidades logicas. Eles apontam ainda que muitos desses estudantes não
exibem as habilidades matemáticas básicas esperadas ao ingressar no ensino
13

superior. A principal dificuldade não reside em compreender a sintaxe das


linguagens de programação, mas sim na capacidade de elaborar um algoritmo
para resolver um determinado problema. Em uma pesquisa similar, Ambrosio et
al. (2011) reforçam que, embora a habilidade matemática seja considerada
relevante para a disciplina, a correlação positiva entre elas decorre,
provavelmente, de funções cognitivas básicas compartilhadas. Segundo os
autores, o desenvolvimento da lógica matemática possibilita a aquisição de
estruturas ou habilidades cognitivas que facilitam o aprendizado.

2.1.3 Conhecimento técnico

Giraffa, Moraes e Uden (2014) destacam um desafio significativo neste


tipo de aprendizado: a dificuldade de cumprir os requisitos de sintaxe da
linguagem. Mesmo aqueles estudantes que exibem competências sólidas de
resolução de problemas e são capazes de elaborar soluções em pseudocódigo,
muitas vezes enfrentam dificuldades para traduzir esse pseudocódigo em um
programa de computador sintaticamente correto. A pesquisa indica ainda
obstáculos no entendimento de abstrações que não são equivalentes diretos na
realidade, tais como variáveis, tipos de dados ou endereços de memória.
Segundo Koulouri, Lauria e Macredie (2015), a correção de erros de sintaxe se
revela um processo trabalhoso e frequentemente dá origem a métodos de
depuração aleatórios. Isso ocorre em grande parte devido à dificuldade
enfrentada pelos iniciantes em compreender as mensagens de erros geradas
pelo compilador.
Um estudo conduzido por Eltegani e Butgereit (2015) aponta para um
conjunto de desafios primordiais que os estudantes enfrentam. Estes obstáculos
abrangem a compreensão e a aplicação correta da sintaxe, a assimilação dos
princípios fundamentais associados à linguagem de programação em questão,
a memorização de funções específicas e seus respectivos parâmetros, a
definição adequada de variáveis e a seleção apropriada de estruturas de decisão
e loops para a implementação do programa. A pesquisa revela que quase todos
os alunos enfrentaram entraves relacionados ao conhecimento técnico, o que
consequentemente gerou problemas na manipulação da sintaxe, semântica e na
depuração do código.
14

2.1.4 Questões comportamentais

Fatores emocionais e sociais, tais como motivação, autoconfiança e


interação com colegas e professores, exercem um papel significativo no
processo de aprendizagem dos estudantes. Conforme citado por Teague (2008)
os alunos já chegam desencorajados a estudar programação devido à má
reputação da disciplina.
Brito e Sá-Soares (2014) enfatizam a importância da motivação para o
sucesso acadêmico. De acordo com eles, um aluno motivado é capaz de superar
adversidades, independentemente da magnitude dos desafios. Em
contrapartida, um estudante desmotivado, mesmo diante de circunstâncias
favoráveis e com o apoio dedicado de professores, pode não alcançar bons
resultados.
No contexto da prevenção da evasão da disciplina, a motivação é
fundamental, mas deve ser aliada à autoconfiança do aluno. Gomes e Mendes
(2014) sugerem que estudantes com baixa autoconfiança precisam de mais
orientação e suporte dos professores para desenvolver autoestima e autonomia
no aprendizado.
No estudo conduzido por Wood et al. (2013), é discutida a ideia de que
alunos com autoconfiança tendem a encarar desafios de programação com
audácia, estão dispostos a experimentar técnicas novas e não se desencorajam
facilmente diante de erros de compilação. Por outro lado, estudantes com baixa
autoconfiança podem ter dificuldades para progredir de forma autônoma,
recorrendo frequentemente à assistência do professor ao invés de tentarem
resolver problemas por conta própria. Isso pode impactar o ritmo de trabalho em
sala de aula. Entretanto, a confiança, adquirida com a experiência na disciplina,
pode transformar essa situação, como evidenciado por diversos casos de
estudantes que ganharam autoconfiança e desenvolveram habilidades
consideráveis de programação.
15

2.2 OBSTÁCULOS PARA ENSINAR PROGRAMAÇÃO

Os professores, assim como os alunos, também encontram desafios ao


transmitir seus conhecimentos da disciplina. Nesta seção, iremos explorar
algumas dessas dificuldades enfrentadas pelos educadores no processo de
ensino.

2.2.1 Interesse e motivação do aluno

Gomes e Mendes (2014) conduziram uma pesquisa na Universidade de


Coimbra, entrevistando professores do Departamento de Engenharia
Informática. Os resultados sugerem que, segundo a percepção dos educadores,
um aluno pode superar quaisquer desafios de aprendizagem se o professor for
bem-sucedido em engajá-lo e motivá-lo, independente das dificuldades que o
estudante possa enfrentar.
Contudo, sustentar o engajamento dos alunos torna-se um desafio
complexo, especialmente em turmas com diversos níveis de conhecimento
prévio. O professor necessita equilibrar o progresso dos conteúdos e atividades
propostas, oferecendo suporte para os alunos que apresentam maior dificuldade,
enquanto desafia aqueles com maior facilidade, a fim de manter o interesse de
todos na disciplina.
A pesquisa destaca várias estratégias adotadas pelos professores para
atingir esse equilíbrio durante o ensino da matéria. Entre as abordagens
relatadas estão a gamificação do aprendizado, a resolução de exercícios em
duplas equilibradas em termos de conhecimento e a priorização do suporte ao
aluno com maior dificuldade. Ao mesmo tempo, os professores incentivam os
alunos que se destacam a prosseguirem por conta própria, desenvolvendo sua
capacidade de resolver problemas de maneira autônoma. O estudo ainda
ressalta que manter uma interação frequente e significativa com os alunos é uma
estratégia eficaz para mantê-los engajados e motivados a aprender.
Para Hartanto (2015), um dos principais fatores que resulta no
desinteresse do aluno é a percepção de desconexão entre os conceitos
ensinados e suas aplicações práticas. Frequentemente, os exercícios propostos
podem parecer irreais ou irrelevantes para a carreira futura do aluno, levando à
16

diminuição da motivação para o estudo. Além disso, a hesitação em interagir


com o professor e colegas, geralmente causada pela timidez, pode contribuir
para a desmotivação do aluno. O aluno pode se sentir desconfortável para
questionar ou discutir em sala de aula, temendo a possibilidade de se
envergonhar.
Com o objetivo de melhorar a atmosfera de aprendizado, Hartanto (2015)
sugere várias soluções. Uma delas é encorajar o trabalho em grupo, o que pode
auxiliar na superação da timidez dos estudantes, além de fomentar o
desenvolvimento de habilidades de colaboração. Outra estratégia é a aplicação
de exercícios que apresentem conexões diretas e aplicáveis com situações do
mundo real, tornando o conteúdo mais relevante para a carreira dos alunos. Por
fim, o autor destaca a importância da construção de uma relação mais próxima
entre professores e alunos, promovendo um ambiente de aprendizado em que
os estudantes se sintam confortáveis, encorajados e motivados.

2.2.2 Tutores para atender as turmas

Santos, Gomes e Mendes (2013) ressaltaram em sua pesquisa as


dificuldades enfrentadas pelos professores ao ensinar programação em turmas
grandes e heterogêneas de conhecimento, sendo complexo satisfazer as
necessidades individuais de cada aluno em tal ambiente. Eles defendem a
possibilidade de incorporar tutores para fornecer um suporte mais personalizado
tanto para os estudantes quanto para o docente.
Um estudo de caso realizado por Apiola, Moisseinen e Tedre (2012) em
uma universidade da Tanzânia para verificar a eficácia de um modelo
pedagógico que estimula a colaboração ativa entre alunos e professores, possui
feedback constante e orientação de tutores para a realização das tarefas. O
estudo evidenciou resultados positivos, como um aumento notável na motivação
dos alunos para continuar aprendendo mesmo quando enfrentavam dificuldades.
Muitos estudantes expressaram, inclusive, que esta foi a primeira vez que
conseguiram compreender de fato a programação. Os pesquisadores sugerem,
adicionalmente, que a função de tutoria poderia ser atribuída aos alunos mais
experientes, o que aliviaria a carga sobre o professor, que muitas vezes se vê
sobrecarregado com a responsabilidade exclusiva de orientação.
17

2.2.3 Escolha da linguagem de programação

Rubiano, Lopez-Cruz e Soto (2015) em sua pesquisa na Universidade de


Bogotá, apontam a escolha da linguagem como um componente fundamental no
ensino, embora também seja uma tarefa complexa. Esse desafio surge quando
o curso acaba focando muito na ferramenta fazendo com que os iniciantes
direcionem toda a sua atenção para questões de sintaxe, negligenciando a
importância do poder semântico computacional dela. Esta atitude pode obstruir
a compreensão dos alunos sobre o papel principal de uma linguagem: servir
como um meio para expressar soluções computacionais. Além disso, a
preferência por linguagens amplamente utilizadas na indústria de software é um
aspecto relevante, uma vez que pode proporcionar aos alunos uma vantagem
competitiva no mercado de trabalho. No entanto, essa preferência também pode
limitar o interesse do aluno em aprender outras ferramentas, comprometendo a
sua capacidade de aprender de forma contínua e de entender uma variedade de
recursos, ambos aspectos essenciais no desenvolvimento de habilidades em
programação.
Na pesquisa conduzida por Ateeq et al. (2014), os autores defendem que
este tipo de escolha no ensino inicial pode deixar uma impressão duradoura e
significativa nos alunos, incentivando-os a continuar seus estudos e,
eventualmente, a adotar a programação como carreira. Para maximizar esse
impacto positivo, mantendo o foco das aulas na resolução de problemas, os
autores consideram diversos aspectos da linguagem: facilidade de aprendizado,
simplicidade sintática, capacidade de detecção e suporte à depuração de erros,
verbosidade, apoio da comunidade, manipulação simples de entrada/saída e um
escopo de aplicação não restrito a uma área específica. Eles ainda destacam
que a verbosidade e a complexidade notacional são fatores negativos, já que
podem criar obstáculos ao aprendizado, desviando a atenção dos alunos da
solução de problemas e fazendo-os gastar tempo excessivo na compreensão
das questões sintáticas da linguagem.
18

2.3 CONCEITUALIZAÇÃO SOBRE IA E CHATGPT

Nesta seção, serão apresentados os conceitos básicos de Inteligência


Artificial e do modelo GPT, além de uma breve discussão sobre o processo de
treinamento e funcionamento dessa ferramenta e suas principais aplicações e
limitações.

2.3.1 Introdução a IA e ChatGPT

Segundo Jordan (2019), o conceito de "inteligência artificial" foi originado


no final da década de 1950, remetendo à ambiciosa proposta de conceber, por
meio de hardware e software, uma entidade capaz de imitar a inteligência
humana, senão em aspectos físicos, certamente em aspectos mentais. Hoje,
grande parte do que se classifica como IA é, na verdade, aprendizado de
máquina (ML), uma metodologia que há muito tempo permeia o universo da
computação. ML é um campo que combina elementos da estatística, ciência da
computação e outras áreas, com o objetivo de criar algoritmos que possam
processar dados, gerar previsões e auxiliar na tomada de decisões. Inicialmente,
tais algoritmos foram implementados em sistemas de detecção de fraude e
recomendação. O avanço dessa área conduziu ao surgimento do termo "ciência
de dados", que denotava a necessidade de profissionais especializados em ML
colaborarem com especialistas em bancos de dados e sistemas distribuídos para
aprimorar a eficácia do ML em sistemas expansíveis e robustos. Essa
convergência de ideias e tendências tecnológicas acabou sendo rebatizada
como IA nos anos recentes.
Desenvolvido pela OpenAI, um laboratório de pesquisa renomado no
campo da Inteligência Artificial, o ChatGPT representa uma contribuição valiosa
para a comunidade de linguagem natural. Utilizando a tecnologia GPT, esta
ferramenta de domínio público distingue-se pela sua versatilidade e capacidade
de complexidade (Kirmani, 2022).
Este chatbot demonstra notável competência na execução de uma gama
de pedidos baseados em texto, desde a resposta a perguntas rotineiras até
tarefas mais sofisticadas, incluindo a elaboração de documentos e a assistência
19

aos usuários em diálogos sobre questões diversas, demonstrando uma utilidade


extensa e uma aplicação realista de IA (Liu et al., 2021).
Fundada em 2015, a OpenAI tem feito avanços significativos e acelerados
no desenvolvimento de tecnologias de IA. Este progresso é evidenciado pela
ampla gama de produtos de aprendizado de máquina que a organização tem
disponibilizado ao público, incluindo não apenas o ChatGPT, mas também a
DALL-E (Brockman et al., 2016; Devlin et al., 2018). O ChatGPT,
especificamente, tem experimentado uma aceitação extraordinária,
conquistando 100 milhões de usuários em dois meses de lançamento (Marques,
2023).

2.3.2 Treinamento do ChatGPT

O ChatGPT é um modelo derivado do GPT-3, que utiliza a arquitetura


transformer e mecanismos de auto atenção para processar e gerar texto.
Durante seu desenvolvimento, técnicas avançadas, como o Reinforcement
Learning from Human Feedback (RLHF), foram aplicadas para melhorar sua
capacidade de seguir instruções, produzir respostas úteis e evitar conteúdo
prejudicial (Molly, 2023).
O processo de treinamento do ChatGPT envolveu o ajuste fino
supervisionado (Supervised Fine Tuning - SFT), no qual o modelo foi treinado
com um conjunto de dados em que as entradas tinham saídas conhecidas,
fornecidas por avaliadores humanos. Além disso, um modelo de recompensa foi
treinado usando RLHF, onde avaliadores classificaram diferentes saídas do
modelo em termos de qualidade, permitindo reforçar a geração de respostas
melhores (Ouyang, 2022).
O aprendizado por reforço foi aplicado para otimizar o modelo com base
nas recompensas obtidas, onde o modelo gera respostas e é recompensado com
base em sua qualidade, conforme avaliado pelos avaliadores humanos. A
avaliação do ChatGPT mostrou melhorias em relação ao GPT-3 em termos de
seguir instruções, evitar conteúdo tóxico e produzir respostas mais verdadeiras
(OpenAI, 2022; Molly 2023).
20

2.3.3 Aplicações e limitações

Bahrini et al. (2023) e Abdullah et al. (2022) ressaltam a versatilidade do


ChatGPT, evidenciada por sua aplicação em diversos domínios, como:
• Negócios e Indústria: Tem o potencial de prever demandas com base
em histórico e tendências de mercado, otimizar níveis de estoque para
maximizar a eficiência e minimizar custos, auxiliar na escolha e
avaliação de fornecedores e contribuir para a gestão de riscos ao
identificar possíveis vulnerabilidades na cadeia de suprimentos e
sugerir estratégias de mitigação (Bahrini et al., 2023).
• Educação: Na esfera educacional, a ferramenta pode gerar conteúdo
instrucional, facilitar discussões, elaborar testes, auxiliar na avaliação
de tarefas e proporcionar um melhor entendimento de conceitos
complexos. Pode também contribuir para a pesquisa ao sugerir ideias,
metodologias, conduzir análises estatísticas e apontar possibilidades
para futuros estudos. No que tange à escrita, oferece feedback sobre
estrutura de frases, gramática, vocabulário, citações e sugere formas
de organização de ideias e aprimoramento de estilo (Bahrini et al.,
2023).
• Desenvolvimento de Software: No âmbito da programação, o ChatGPT
pode gerar e analisar códigos, auxiliar na depuração, identificação de
erros, esclarecer conceitos e padrões arquiteturais e gerar casos de
testes, sempre sob a orientação do programador (Abdullah et al.,
2022).
• Saúde e Medicina: O modelo de linguagem pode auxiliar na triagem e
verificação de sintomas, oferecer recomendações de saúde
personalizadas e aprimorar os resultados do paciente. Abdullah et al.
(2022) também citam a aplicação da ferramenta para simplificar
relatórios de radiologia possibilitando assim melhorias no cuidado
centrado do paciente.
Entretanto, é importante destacar algumas limitações do ChatGPT,
conforme apontadas por Zhou et al. (2021, 2023):
21

• Raciocínio Lógico: O sistema, por vezes, apresenta dificuldades ao


lidar com problemas lógicos precisos, podendo fornecer respostas
incorretas para questões matemáticas ou lógicas.
• Confiabilidade: Há casos em que o ChatGPT gera respostas
factualmente errôneas ou tendenciosas, e pode fazer referências a
fontes inexistentes.
• Aprendizado de Conhecimento: Uma limitação importante do modelo
é sua incapacidade de buscar informações atualizadas em tempo real,
o que o restringe ao conhecimento prévio.
• Robustez: O sistema pode ser suscetível a ataques de instrução e
injeção de prompt, levando a ações inadequadas, ilegais ou antiéticas.
• Custo Computacional: Os modelos GPT são onerosos para treinar,
necessitando de grandes quantidades de dados e recursos
computacionais, o que pode representar um obstáculo para a
implementação por algumas organizações e indivíduos.
• Consumo de Energia: A operação desses algoritmos e bancos de
dados em escala, como a realizada pela OpenAI, requer uma
quantidade significativa de energia.

2.4 INTELIGÊNCIA ARTIFICIAL EM AMBIENTE ACADÊMICO

Este capítulo está destinado a explorar os tópicos relacionados que


contribuem para a esfera de investigação desta pesquisa, especificamente a
aplicação da inteligência artificial e a implementação do ChatGPT no contexto
educacional.

2.4.1 Geração de vídeo aulas sintéticas

No estudo conduzido por Leiker et al. (2023), os autores exploraram o uso


de vídeos sintéticos gerados por Inteligência Artificial para a criação de conteúdo
educacional em plataformas de aprendizado online. A pesquisa revelou que tais
vídeos sintéticos gerados por IA possuem um potencial significativo para se
tornarem substitutos eficazes aos vídeos produzidos através de métodos
tradicionais em ambientes de ensino online.
22

Neste estudo, os pesquisadores categorizaram aleatoriamente


estudantes adultos em duas condições distintas de micro aprendizado. Uma
delas se baseava em um vídeo de instrução produzido tradicionalmente,
enquanto a outra utilizava um vídeo sintético apresentando um personagem
realista gerado por IA. Para a avaliação dos resultados, foram coletados dados
antes e depois da experiência de aprendizado, além de terem sido realizadas
entrevistas com os participantes para entender suas percepções sobre o
processo de aprendizado.
As conclusões da pesquisa demonstraram que, em ambas as condições,
houve uma melhora significativa no aprendizado dos estudantes do pré ao pós-
experimento, sem diferenças notáveis entre os dois grupos. Tais descobertas
apontam para a possibilidade de que vídeos de aprendizagem sintéticos gerados
por IA podem facilitar o acesso a conteúdo educacional de alta qualidade em
escala global em ambientes de ensino online.

2.4.2 Ensino de teste de softwares

Em uma pesquisa recente, Sajed et al. (2023) examinaram a eficácia do


modelo de linguagem ChatGPT na resolução de perguntas práticas relacionadas
a testes de software. A estratégia de pesquisa envolveu aferir a capacidade do
modelo de oferecer respostas e explicações precisas.
Os resultados da pesquisa indicaram que a IA conseguiu responder a
77,5% das perguntas formuladas, fornecendo respostas corretas ou
parcialmente corretas em 55,6% das instâncias. Além disso, ele também foi
capaz de oferecer explicações corretas ou parcialmente corretas em 53,0% dos
casos. Curiosamente, o estudo também revelou que o uso da ferramenta em um
ambiente de perguntas compartilhadas resultou em uma taxa ligeiramente
superior de respostas e explicações corretas.
Esses resultados sublinham o potencial do ChatGPT como uma
ferramenta útil na área de testes de software, demonstrando sua capacidade de
responder e explicar adequadamente conceitos e práticas dentro desse domínio.
23

2.4.3 Resolução de prova de computação

No estudo conduzido por Bordt e Von Luxburg (2023), o desempenho do


ChatGPT foi testado em um exame de graduação focado em "Algoritmos e
Estruturas de Dados". O procedimento envolveu submeter o modelo ao exame,
com suas respostas sendo manualmente transcritas em uma folha e avaliadas
juntamente com respostas de 200 estudantes.
A avaliação revelou que a IA obteve 20,5 de 40 pontos, alcançando uma
aprovação marginal. Além disso, comparando a performance do GPT-4 e GPT-
3.5, o estudo constatou que o GPT-4 teria rendido cerca de 17% mais pontos,
equiparando-se ao desempenho médio do aluno.
Contudo, os autores alertam que as questões do exame são semelhantes
às encontradas em outros materiais didáticos online, que podem ter sido parte
dos dados de treinamento do ChatGPT. Eles concluem que é prematuro afirmar
que a ferramenta tem uma compreensão verdadeira de ciência da computação,
e que mais pesquisas são necessárias para elucidar suas habilidades e
limitações.

2.4.4 Assistente de estudantes de programação

Em seu estudo, Carreira et al. (2022) propõem um chatbot construído com


o propósito específico de auxiliar os alunos em aprendizado inicial de
programação. Esta ferramenta foi concebida para prover um suporte
personalizado e contínuo, disponível 24 horas por dia, aos estudantes. O público-
alvo contempla os alunos que enfrentam dificuldades em solucionar exercícios e
compreender conceitos fundamentais, aqueles mais reservados que se sentem
desconfortáveis para se dirigir aos professores com perguntas, e aqueles que
adotam o modelo de ensino à distância. Além disso, a ferramenta se mostra
particularmente útil em contextos de grandes turmas.
Denominado Pyo, este chatbot foi especialmente treinado para assistir
estudantes aprendendo Python, oferecendo três modalidades de ajuda:
assistência em exercícios, que visa elucidar os conceitos implicados no exercício
sem explicitar a sintaxe exata para sua implementação; orientação de erros,
focada em auxiliar os alunos a identificar e corrigir erros de sintaxe em seus
24

códigos sem fornecer a solução exata, além de auxiliar na resolução de erros


gerados pelo compilador; e, finalmente, definições de conceitos, onde Pyo está
disponível para esclarecer dúvidas conceituais do aluno.
Para concluir seu estudo, os autores apresentam os resultados de uma
avaliação de eficácia do chatbot. Os alunos avaliaram Pyo como realista,
amigável, com uma personalidade cativante, perceptivo em relação às suas
funcionalidades, capaz de lidar com mal-entendidos e útil. Isso permitiu que a
ferramenta alcançasse seu objetivo principal: auxiliar alunos iniciantes na
programação.

3 METODOLOGIA DE PESQUISA

A pesquisa exploratória é uma abordagem ampla e flexível utilizada para


explorar um tema ou problema pouco conhecido, a fim de se familiarizar com ele,
identificar as variáveis relevantes e estabelecer hipóteses iniciais (GIL, 2010).
Ela é uma etapa importante na pesquisa científica, permitindo a definição mais
clara de um tema e ajudando a identificar possíveis fontes de informação e a
formulação de hipóteses e soluções (MARCONI e LAKATOS, 2010).
Neste trabalho, a escolha da pesquisa exploratória se mostra adequada
para o estudo do ChatGPT, que ainda é pouco conhecido na sociedade. Optar
por esse tipo de pesquisa pode fornecer uma base sólida para a investigação e
permitir uma compreensão mais ampla do tema e de suas possibilidades. Além
disso, a pesquisa exploratória pode ajudar a identificar novas abordagens ou
soluções para um determinado problema, contribuindo para o avanço da área de
estudo. Como apontam Creswell (2014) e Prodanov e Freitas (2013), a pesquisa
exploratória é uma etapa importante para definir questões mais precisas e
objetivos de pesquisa mais claros, o que pode levar a resultados mais
significativos e fundamentados.
O presente trabalho buscará compreender a tecnologia, suas limitações e
possibilidades, por meio de uma pesquisa bibliográfica. Além disso, será
realizado um levantamento bibliográfico com o intuito de identificar as principais
dificuldades enfrentadas pelos alunos ao iniciar no aprendizado de programação.
A pesquisa também contará com uma seção de trabalhos relacionados com o
intuito de explorar pesquisas e modelo de soluções já elaboradas.
25

Com base nessas informações, será proposto um modelo de tutor virtual


baseado na tecnologia estudada, que visa auxiliar os estudantes em suas
dificuldades. Por fim, será conduzido um estudo de avaliação de usabilidade para
determinar a eficácia do modelo proposto em colaborar com o aprendizado dos
alunos.
O uso de um estudo de avaliação de usabilidade é importante para
garantir a eficácia e a qualidade de um modelo proposto, além de identificar
possíveis problemas e melhorias necessárias. Conforme destacado por Nielsen
e Molich (1990), a avaliação de usabilidade é uma técnica fundamental para
avaliar a facilidade de uso de um sistema ou produto por usuários reais,
identificando problemas e sugerindo melhorias. Além disso, a avaliação de
usabilidade pode ser utilizada para medir a satisfação dos usuários com o
modelo proposto e, assim, identificar oportunidades de aprimoramento. Segundo
Creswell (2014), o estudo de validação é uma etapa importante para avaliar a
eficácia do modelo proposto, verificar se ele atende aos objetivos definidos e
identificar possíveis limitações e desafios para sua implementação em escala
maior. Portanto, o uso de um estudo de avaliação de usabilidade é crucial para
garantir a qualidade e a relevância do modelo proposto.

REFERÊNCIAS

ABDULLAH, M.; MADAIN, A.; JARARWEH, Y. ChatGPT: Fundamentals,


applications and social impacts. In: International Conference on Social
Networks Analysis, Management and Security (SNAMS), 9., 2022, Milan. Anais
[...]. Milan: SNAMS, p.1-8.

AMBRÓSIO, A. P.; COSTA, F. M.; ALMEIDA, L.; FRANCO, A.; MACEDO, J.


Identifying cognitive abilities to improve CS1 outcome. In: IEEE Frontiers in
Education Conference (FIE), Rapid City, SD, USA, 2011.

APIOLA, M.; MOISSEINEN, N.; TEDRE, M. Results from an action research


approach for designing CS1 learning environments in Tanzania. In:
Frontiers in Education Conference, Seattle. Proceedings... Seattle: IEEE, 2012.
p. 1-6.

ATEEQ, M.; HABIB, H.; UMER, A.; REHMAN, M. U. C++ or Python? Which
One to Begin with: A Learner's Perspective. In: International Conference on
Teaching and Learning in Computing and Engineering, 2014, Kuching. Anais
[...]. Kuching, Malaysia: [s.n.], 2014. p. 64-69.
26

BAHRINI, A. et al. ChatGPT: Applications, Opportunities, and Threats. In:


Systems And Information Engineering Design Symposium (SIEDS), 2023,
Charlottesville. Anais [...]. Charlottesville: SIEDS, 2023. p.274-279.

BORDT, S.; VON LUXBURG, U. ChatGPT Participates in a Computer


Science Exam, Tübingenm, Germany, 2023.

BRITO, A. MIGUEL.; de SÁ-SOARES, Filipe. Assessment frequency in


introductory computer programming disciplines. Computers in Human
Behavior, Guimarães, Portugal, 2014.

BROCKMAN, G., CHEUNG, V., PETTERSSON, L., SCHNEIDER, J.,


SCHULMAN, J., TANG, J., & ZAREMBA, W. Openai gym. 2016.

CARREIRA, G.; SILVA, L.; MENDES, A. J.; OLIVEIRA, H. G. Pyo, a Chatbot


Assistant for Introductory Programming Students. In: International
Symposium on Computers in Education, Coimbra. Anais... Coimbra: [s.n.],
2022. p. 1-6.

CHEAH, C. S. Factors contributing to the difficulties in teaching and


learning of computer programming: A literature review. School of
Educational Studies, Universiti Sains Malaysia. 2020.

CRESWELL, John W. Research design: qualitative, quantitative, and mixed


methods approaches. 4th ed. Thousand Oaks, CA: Sage, 2014.

DEKSON, D. E.; SURESH, E. S. M.; PONNUSAMY, R. Intelligent system to


teach programming languages. International Conference on Intelligent Agent
& Multi-Agent Systems, Chennai, India, 2009.

DEVLIN, J., CHANG, M. W., Lee, K., & TOUTANOVA, K. Bert: Pre-training of
deep bidirectional transformers for language understanding. 2018.

ELTEGANI, N.; BUTGEREIT, L. Attributes of students engagement in


fundamental programming learning. In: International Conference On
Computing, Control, Networking, Electronics And Embedded Systems
Engineering (ICCNEEE), Khartoum. Anais [...]. Khartoum: [s.n.], 2015. p. 101-
106.

GIL, A. C. Como elaborar projetos de pesquisa. 5ª ed. São Paulo: Atlas,


2010.

GIRAFFA, L. M. M.; MORAES, M. C.; Uden, L. Teaching Object-Oriented


Programming in First-Year Undergraduate Courses Supported By Virtual
Classrooms. In: Uden, L.; Tao, Y. H.; Yang, H. C.; Ting, I. H. (eds.). The 2nd
International Workshop on Learning Technology for Education in Cloud.
Dordrecht: Springer, 2014.

GOMES, A.; MENDES, A. A teacher's view about introductory


programming teaching and learning: Difficulties, strategies and
motivations. In: IEEE Frontiers in Education Conference (FIE) Proceedings,
Madrid, 2014. p.1-8.
27

GOMES, A.; MENDES, A. J. A study on student performance in first year


CS courses. In: Proceedings Of The Fifteenth Annual Conference On
Innovation And Technology In Computer Science Education (ITiCSE '10). New
York: Association for Computing Machinery, 2010. p. 113–117.

GOMES, A.; MENDES, A. J. Studies and proposals about initial


programming learning. In: IEEE Frontiers in Education Conference (FIE),
Arlington, VA, USA, 2010.

HARTANTO, B. Enhancing the Student Engagement in an Introductory


Programming: A Holistic Approach in Improving the Student Grade in the
Informatics Department of the University of Surabaya. In: Intelligence in the
Era of Big Data. [S.l.]: Springer, 2015. p. 493-504.

JORDAN, M. Artificial Intelligence - The Revolution Hasn’t Happened Yet.


Harvard Data Science Review, [s.l.], 2019.

KIRMANI, A. R. Artificial intelligence-enabled science poetry. ACS Energy


Letters. 2022. 8, 574-576.

Koulouri, Theodora; LAURIA, Stanislao; Macredie, Robert D. Teaching


Introductory Programming: A Quantitative Evaluation of Different
Approaches. ACM Transactions on Computing Education, v. 14, n. 4, p. 26-53,
2015.

LEIKER, Daniel; GYLLEN, ASHLEY Ricker; ELDESOUKY, Ismail; CUKUROVA,


Mutlu. Generative AI for learning: Investigating the potential of synthetic
learning vídeos, 2023.

LIU, X., ZHENG, Y., DU, Z., DING, M., QIAN, Y., YANG, Z., & TANG, J. GPT
understands, too. 2021.

LUXTON-REILLY, A. Learning to program is easy. In Proceedings of the


ACM Conference on Innovation and Technology in Computer Science
Education – ITiCSE, Arequipa, Peru, 2016. (pp. 284-289).

MARCONI, Marina de Andrade; LAKATOS, Eva Maria. Fundamentos de


metodologia científica. 7. ed. São Paulo: Atlas, 2010.

MARQUES, V. Chat GPT: 100 milhões de usuários em dois meses. Istoé


Dinheiro, 2023. Disponível em: <https://www.istoedinheiro.com.br/chat-gpt-100-
milhoes-de-usuarios-em-dois-meses>. Acesso em 13 jun. de 2023.

MEDEIROS, Ricardo P.; RAMALHO, Gabriel L.; FALCÃO, Tiago P. A


Systematic Literature Review on Teaching and Learning Introductory
Programming in Higher Education. IEEE Transactions on Education, vol. 62,
no. 2. 2019. pp. 77-90.

MOLLY Ruby. How ChatGPT Works: The Model Behind The Bot. Towards
Data Science, 2023. Disponível em <https://towardsdatascience.com/how-
chatgpt-works-the-models-behind-the-bot-1ce5fca96286>. Acesso em 22 jun.
2023.
28

NIELSEN, Jakob; MOLICH, Rolf. Heuristic evaluation of user interfaces. In:


CHI'90 Conference Proceedings. New York: ACM Press, 1990. p. 249-256.

OPENAI. Introducing ChatGPT. Blog ChatGPT, 2022. Disponível em


<https://openai.com/blog/chatgpt>. Acesso em 22 jun. 23. 2023.

OUYANG, L.; Wu, J.; JIANG, X.; ALMEIDA, D.; WAINWRIGHT, C. L.;
MISHKIN, P.; ZHANG, C.; AGARWAL, S.; SLAMA, K.; RAY, A.; SCHULMAN,
J.; HILTON, J.; KELTON, F.; MILLER, L.; SIMENS, M.; ASKELL, A.;
WELINDER, P.; CHRISTIANO, P.; LEIKE, J.; LOWE, R. Training language
models to follow instructions with human feedback. OpenAI, 2022.

PRODANOV, Cleber Cristiano; FREITAS, Ernani Cesar de. Metodologia do


trabalho científico: métodos e técnicas da pesquisa e do trabalho
acadêmico. 2. ed. Novo Hamburgo: Feevale, 2013.

RUBIANO, S. M. M.; LOPEZ-CRUZ, O.; SOTO, E. G. Teaching computer


programming: Practices, difficulties and opportunities. In IEEE Frontiers in
Education Conference (FIE) (pp. 1-9). Camino Real El Paso, El Paso, TX, USA,
2015.

SAJED, Jalil; RAFI, Suzzana; LATOZA, Thomas D.; MORAN, KEVIN; Lam,
Wing. ChatGPT and Software Testing Education: Promises & Perils.
Fairfax, USA, 2023.

SANTOS, Á.; GOMES, A.; MENDES, A. A taxonomy of exercises to support


individual learning paths in initial programming learning. In: IEEE Frontiers
in Education Conference (FIE), Oklahoma City, OK, USA, 2013. p. 87-93.

TAVARES, O. de Lira; MENEZES, C. S. de; NEVADO, R. A. de. Pedagogical


architectures to support the process of teaching and learning of computer
programming. In: Frontiers in Education Conference Proceedings, 2012,
Seattle. Anais [...]. Seattle: [s.n.], 2012. p. 1-6.

TEAGUE, Deborah; ROE, Paul. Collaborative learning - towards a solution


for novice programmers. In: Hamilton, Margaret; Hamilton, Stephen (Eds.).
Proceedings of the Tenth Australasian Computing Education Conference.
Sydney, Australia: Australian Computer Society, 2008. p. 147-153.

THOTA, N. Programming Course Design: Phenomenographic Approach to


Learning and Teaching. In: International Conference On Teaching And
Learning In Computing And Engineering, Kuching. Anais [...]. Kuching: [s.n.],
2014. p. 125-132.

WOOD, K.; PARSONS, D.; GASSON, J.; HADEN, P. It's never too early: pair
programming in CS1. In: Australasian Computing Education Conference, 15.
Australia. Proceedings... Australia: Australian Computer Society, 2013. p. 13-
21.

ZHOU, J.; KE, P.; QIU, X.; et al. ChatGPT: potential, prospects, and
limitations. Frontiers in Information Technology & Electronic Engineering,
2023.
29

ZHOU, X., CHEN, Z., JIN, X., & WANG, W. Y. HULK: An energy efficiency
benchmark platform for responsible natural language processing.
Proceedings of the Conference of the European Chapter of the Association for
Computational Linguistics: System Demonstrations. 2021. 16, 329-336.

Você também pode gostar