APAP: Arquitetura Pedagógica para Aprendizagem de
Programação baseada no Pensamento Computacional
OMITIDO PARA AVALIAÇÃO
Abstract.
Resumo. Este artigo apresenta a concepção de uma Arquitetura Pedagógica baseada
no Pensamento Computacional para apoio à Aprendizagem de Programação (APAP). A
APAP visa ajudar os estudantes a aprender a programar, compreendendo problemas e
construindo soluções de forma cooperativa, utilizando o Pensamento Computacional. A
estrutura é ancorada nos pressupostos teóricos da epistemologia genética de Piaget e é
mediada pela revisão por pares, promovendo o desenvolvimento cognitivo e a
cooperação entre estudantes. Resultados experimentais indicam que, ao usarem uma
Arquitetura Pedagógica para a resolução de problemas integrada com o Pensamento
Computacional, os estudantes demonstraram internalizar os conceitos aprendidos e
desenvolver habilidades críticas para a programação.
1. Introdução
A disciplina de Introdução à Programação está presente em vários cursos técnicos de
computação e, normalmente, é oferecida no primeiro ano, com o objetivo de desenvolver
a lógica de programação do estudante, tornando-o capaz de construir algoritmos corretos
e eficientes. Porém, aprender programação é muito mais do que escrever um conjunto de
linhas de código em uma dada linguagem. Requer uma grande diversidade de
pensamentos e compreensões. Em outras palavras, é também uma arte, pois existem
muitas maneiras de entender, combinar, reconhecer padrões e codificar a solução dos
problemas com criatividade.
Essa disciplina, na maioria das vezes, não considera os conhecimentos prévios dos
estudantes, o que frequentemente os deixam frustrados. Dentre os motivos para essa
frustração, destacam-se: dificuldade em compreender o problema; inadequação dos
métodos pedagógicos aos estilos de aprendizagem dos estudantes; preocupação excessiva
com detalhes de sintaxe da linguagem utilizada; e punição ao erro, inviabilizando o
pensamento crítico e criativo. Essas dificuldades culminam em baixa motivação, baixa
autoestima e um elevado índice de reprovação e desistência [Prolux, 2000].
Na busca por contribuir para a resolução desses problemas, diferentes abordagens
pedagógicas têm sido estudadas e propostas na literatura, tais como: salas de fuga
educacionais [López-Pernas et al., 2019]; uso de linguagens especiais, como Scratch
[Morales-Urrutia et al., 2021]; sala de aula invertida e programação no contexto de
histórias digitais [Zha et al., 2020]; aprendizagem cooperativa [Garcia, 2021]; e
aprendizagem baseada em jogos [Giannakoulas and Xinogalos, 2018].
Dessa forma, nossa contribuição é baseada em uma Arquitetura Pedagógica (AP)
[Carvalho et al., 2005], ancorada nos pressupostos teóricos da epistemologia genética
[Piaget, 2016] e baseada no pensamento computacional [Wing, 2006], mediada pela
revisão por pares [Mazur, 1999].
Este artigo está organizado da seguinte forma: a Seção 2 contém a fundamentação
teórica; a Seção 3 descreve uma Arquitetura Pedagógica Baseada no Pensamento
Computacional para Apoio à Aprendizagem de Programação (APAP); a Seção 4
Experimento de Ensino; E, na Seção 5, são expostas as considerações finais.
2. Fundamentação teórica
Nesta seção, serão abordados conceitos essenciais que constituem a fundamentação
teórica da proposta, destacando-se interações na aprendizagem do ponto de vista
piagetiano, pensamento computacional e a arquitetura pedagógica.
2.1. Tríade da aprendizagem de Piaget
Segundo [Piaget, 2013], o conhecimento prévio do estudante é fundamental nas
interações com seus pares, nas trocas de informações e na forma de revisar as atividades,
construindo, assim, situações de desequilíbrios momentâneos e reequilíbrios. Essa teoria
da equilibração de [Piaget, 2013] e as etapas de construção de conhecimento propostas
em [Piaget e García, 1982] buscam identificar leis gerais que permitam compreender o
porquê dessa sucessão nas formas de conhecimento e dos mecanismos que as engendram.
Os autores identificam na psicogênese e na história das ciências, mecanismos comuns na
construção desses conhecimentos.
Para esses autores, o elemento de maior importância nesse estudo comparativo
consiste na tríade dialética constituída pelas etapas INTRA, INTER e TRANS. Tais
etapas ajudam no desenvolvimento de novos esquemas, dinâmicos e mutáveis, que
crescem de acordo com certos mecanismos, desenvolvendo todos os domínios do
pensamento humano.
Ainda segundo esses autores, O primeiro elemento da tríade (INTRA), é
característico das primeiras abordagens de um novo domínio, facilmente observável nas
representações infantis do estágio pré-operatório. Nesse estágio, os elementos essenciais
são os observáveis diretos. À medida que o desenvolvimento avança para o nível INTER,
surgem relações e transformações a partir da multiplicação dos esquemas identificados
no nível anterior, gerando contradições que o sujeito precisa superar. Nesse esforço, o
indivíduo começa a trabalhar com relações entre variáveis, em vez de analisar cada uma
isoladamente, promovendo um entendimento mais complexo da realidade. Finalmente,
no nível TRANS, há uma maior generalidade e uma compreensão mais articulada,
permitindo que o modelo teórico não só constate regularidades, mas também preveja e
demonstre fenômenos, refletindo um avanço significativo na compreensão e aplicação do
conhecimento.
Os processos de assimilação e equilibração descritos por [Piaget e García, 1982]
descrevem o desenvolvimento do pensamento humano. Com base nessa tríade, o
Pensamento Computacional se destaca como uma abordagem que utiliza princípios
lógicos e algorítmicos para promover a criação de novos esquemas cognitivos e a
adaptação constante do pensamento humano às novas informações e desafios.
2.2. Pensamento Computacional
O artigo seminal de [Wing, 2006], definiu o Pensamento Computacional (PC) como: uma
habilidade fundamental para todos, não apenas para cientistas da computação, sendo
constituído por um processo mental que generaliza um problema do mundo real a um
problema computacional, o pensamento de solução do problema que envolve habilidades
como abstração, decomposição, algoritmos, iteração, avaliação, a resolução de problemas
e a concepção de sistemas. Trata-se de um processo de pensamento envolvido na
formulação e reformulação de um problema e na expressão de sua(s) solução(ões) de
forma que um computador — humano ou máquina — possa efetivamente executar.
Ainda segundo a autora, alguns problemas podem ser simples, enquanto outros são
de natureza mais complexa. No entanto, independentemente dos elementos envolvidos
nos problemas, podemos sempre questionar: “O quão difícil é resolver?” e “Qual a
melhor forma de resolvê-lo?”. Consequentemente, podemos pensar no problema,
supostamente difícil, de forma diferente, transformando-o em um problema possível de
resolver através da redução, incorporação, transformação ou simulação.
Adicionalmente, o trabalho desenvolvido por [Roman-Gonzales et al., 2017]
apresenta uma correlação significativa entre as habilidades de pensamento computacional
e a sintaxe de programação. Os autores afirmam que a resolução de problemas é mais
fortemente influenciada do que outras habilidades no uso adequado da sintaxe na
programação.
De acordo com [Motil e Epstein, 2000], a maioria das linguagens de programação
utilizadas nas disciplinas introdutórias apresenta uma sintaxe extensa e complexa. Os
autores destacam que, para muitos estudantes, a complexidade e o tamanho dessas
linguagens podem levar à frustração e até mesmo à desistência do curso de programação.
Além disso, o PC tem se mostrado uma abordagem altamente eficaz tanto em
contextos acadêmicos quanto em situações da vida real, conforme evidenciado por
[Bati et al., 2018]. É importante ressaltar que existem diversas definições de PC,
provenientes de estudos como [Curzon et al., 2009]. Entretanto, entre todas essas
definições, o PC é comumente reconhecido como um componente fundamental para a
comparação e análise de diferentes algoritmos, bem como para a resolução de problemas
por meio do pensamento crítico [Siegel, 1989].
De forma semelhante, [Korkmaz et al., 2017] identificaram cinco habilidades
distintas que podem ser compreendidas como um guarda-chuva que abrange pensamento
algorítmico, cooperatividade, criatividade, pensamento crítico e resolução de problemas.
Essas perspectivas destacam a diversidade de habilidades envolvidas no PC e a sua
capacidade de promover uma abordagem holística para lidar com desafios complexos do
dia a dia.
2.3. Arquiteturas Pedagógicas
Segundo [Carvalho et al., 2005], as Arquiteturas Pedagógicas (APs) são definidas como
suportes estruturantes, maleáveis e adaptáveis a diferentes enfoques temáticos, como
pedagogias relacionais, métodos ativos, abordagens cooperativas, tecnologias digitais,
inteligência artificial e reconfigurações dos tempos e espaços de aprendizagem, entre
outros.
Os elementos essenciais na descrição e concepção de uma Arquitetura Pedagógica
(AP) são: o domínio de conhecimento; os objetivos educacionais; o conhecimento prévio;
as dinâmicas interacionista-problematizadoras; suporte computacional (tecnológico);
mediações pedagógicas distribuídas (aprendizagens cooperativas) e avaliação processual
e cooperativa das aprendizagens [Menezes et al., 2021].
Neste ponto, analisando as afirmações de [Carvalho et al., 2005], um dos
mecanismos pedagógicos que orientam a Arquitetura Pedagógica é a aprendizagem
cooperativa.
O conceito de cooperação adotado nas Arquiteturas Pedagógicas (AP) está apoiado
na Epistemologia Genética. Para Piaget [1973, p.105], “cooperar na ação é operar em
comum, isto é, ajustar por meio de novas operações (qualitativas ou métricas) de
correspondência, reciprocidade ou complementariedade, as operações executadas por
cada um dos parceiros. (...)”. Na teoria de Piaget cooperar significa co-operar, ou seja,
operar em conjunto sobre um dado objeto de conhecimento. Para que haja cooperação
deve existir uma escala comum de valores e a existência de uma reciprocidade na
interação.
Para [Pereira et al., 2021], um dos mecanismos de mediação distribuída de uma AP
é a revisão por pares, que favorece os estudantes a construção de novos conhecimentos.
Apoiado por uma participação ativa no processo, os estudantes se incumbem de ler e
revisar os argumentos de outros estudantes, analisando a partir de seus conhecimentos e
oferecendo provocações que possibilitem caminhos para reflexão e reconstrução,
tornando-os mediadores, papel geralmente exercido pelo professor. Além disso, os
estudantes oferecem aos seus pares um feedback em uma linguagem que, em geral, está
mais próxima da que utilizam entre si do que da linguagem dos professores.
3. Uma Arquitetura Pedagógica Baseada no Pensamento Computacional
para Apoio à Aprendizagem de Programação
A metodologia utilizada para criação do artefato, A Arquitetura Pedagógica baseada no
Pensamento Computacional para Apoio à Aprendizagem de Programação, tem como base
o Pensamento Computacional (PC) e suas contribuições no processo de resolução de
problemas. O conjunto de habilidades do PC permite que os estudantes se envolvam com
a APAP, contribuindo em suas criações, soluções cooperativas e melhorias para lidar com
problemas, oportunidades ou necessidades específicas.
Os autores [Selby e Woollard, 2013; Barr e Stephenson, 2011; Dagienė, Futschek e
Stupuriené, 2019] forneceram contribuições essenciais que ajudaram na construção do
agrupamento de 11 habilidades de Pensamento Computacional (PC) que integram a
APAP. Suas obras descrevem habilidades diversas do PC, as quais foram integradas para
formar esses agrupamentos. Isso evidencia a importância de uma abordagem holística e
integrada no desenvolvimento do Pensamento Computacional para a programação:
a) Decomposição - Dividir os problemas em partes menores e mais fáceis de manejar; b)
Reconhecimento de Padrões - Usar padrões em informações para resolver problemas;
c) Abstração - Encontrar informações úteis e isolá-las de qualquer informação
desnecessária; d) Modelagem e Simulação - Experimentar diferentes soluções ou traçar
o caminho da informação para resolver problemas; e) Algoritmos - Criar um conjunto de
instruções para resolver um problema; f) Implementação - Automatizar um algoritmo,
normalmente escrevendo um programa de computador (codificação); g) Sistemas
Digitais - Um sistema que processa dados em binário, composto por hardware,
controlado por software e conectado para formar redes; h) Especificação - Definir um
problema com precisão e clareza, identificando os requisitos e decompô-lo em partes
gerenciáveis; i) Interpretação de Dados - O processo de extrair significado dos dados,
utilizando métodos como modelagem, análise estatística e visualização; j)
Representação de Dados - Como os dados são representados e estruturados
simbolicamente para armazenamento e comunicação, por pessoas e em sistemas digitais;
k) Avaliação - Avaliar uma solução para um problema e usar essa informação novamente
em novos problemas.
A APAP busca ajudar os estudantes a assimilar, criar e construir habilidades para
resolver problemas. Suas assimilações, criações intelectuais e construções cognitivas
possuem um extraordinário potencial pedagógico na compreensão do problema. Ao
programar, o estudante constrói o conhecimento quando compreende o problema,
desenvolve um modelo de solução mental e, por fim, implementa e trata o erro (parte
executável).
A APAP se constitui em uma AP complexa e é composta de três microarquiteturas
que fluem umas para as outras na operação real do desenvolvimento da aprendizagem de
programação. As microarquiteturas AP1, AP2 e AP3 possibilitam a reflexão sobre
escolhas feitas e interação entre as APs, levando-os a refletir, interagir e cooperar.
Podemos definir a APAP como uma a composição interativa das microarquiteturas
AP1, AP2 e AP3.
𝐴𝑃𝐴𝑃(𝑓) = 𝐴𝑃𝑖 (𝑓)
𝐴𝑃𝐴𝑃 = 𝐴𝑃3 (𝐴𝑃2 (𝐴𝑃1 (𝑓 )))
Cada 𝐴𝑃𝑖 (onde 𝑖 ∈ {1, 2, 3}) é uma função que permite retorno para reflexão,
interação e cooperação.
Essa equação representa a APAP como uma função composta permeável, onde os
estudantes são levados a refletir, interagir e cooperar, podendo retornar a APs anteriores
sempre que necessário. Descreveremos melhor cada uma das APs simples que compõem
a APAP.
AP1 - O professor apresenta problemas (𝑃𝑎 (𝑓)) que levam em conta as habilidades
do PC e que contenham situações da vida cotidiana. Os estudantes utilizam estratégias
pessoais para escolher (𝑃𝑒 (𝑓)), no mínimo, um dos problemas apresentados e, em seguida,
individualmente, propor outros problemas (𝑃𝑛 (𝑓)), que serão compartilhados com o
grupo para que façam escolha coletiva (𝑃𝑐 (𝑓)) de no mínimo um dos problemas,
conforme descrito na função a seguir.
𝐴𝑃1 (𝑓) = 𝑃𝑐 (𝑃𝑛 (𝑃𝑒 (𝑃𝑎 (𝑓))))
AP2 - Os estudantes constroem soluções individuais (𝑆𝑐 (𝑓)) , no formato de textos
e screencasts, para os problemas escolhidos na AP1. Eles realizam revisões por pares
dessas soluções de forma cooperativa (𝑅𝑝 (𝑓)) e, por fim, apresentam suas soluções para
o grupo (𝐴𝑔 (𝑓)) , descrito a seguir.
𝐴𝑃2 (𝑓) = 𝐴𝑔 (𝑅𝑝 (𝑆𝑐 (𝑓 )))
AP3 - Consiste em um sistema de codificação da resolução do problema realizada
pelos pares para favorecer a interação e a construção de possíveis soluções para erros
sintáticos (de sintaxe) e semânticos. Para favorecer a reflexão, cada estudante registra
suas sugestões construindo um screencast e um documento compartilhado (𝑅𝑠 (𝑓)) .
Por fim, ao receber feedback sobre seu código, o estudante construirá uma nova
codificação (𝐹𝑐 (𝑓)) e a apresentará à turma para que todos possam conhecer sua solução
e, se necessário, oferecer novas alterações (𝐴𝑠 (𝑓)) , conforme a função.
𝐴𝑃3 (𝑓) = 𝐴𝑠 (𝐹𝑐 (𝑅𝑠 (𝑓)))
As equações apresentadas ilustram a APAP como uma AP complexa e dinâmica, na
qual os estudantes são incentivados a refletir, interagir e cooperar. Isso possibilita o
retorno às microarquiteturas anteriores, permitindo a interação entre elas e a transição
entre atividades conforme necessário.
4. Experimento de Ensino
Foi realizado um experimento de ensino para validação da APAP. Inicialmente, foi feito
um convite verbal a algumas turmas do 2.º semestre do curso técnico integrado em
Desenvolvimento de Sistemas da instituição OMITIDO PARA AVALIAÇÃO, para que
os estudantes participassem como voluntários um curso de complementação curricular
online "Programação: Aprendendo a Resolver Problemas. Nove estudantes se
escreveram, sendo oito meninos e uma menina.
Este experimento foi mediado integralmente pelas tecnologias. Para iniciarmos, foi
disponibilizado um link do Google Meet por e-mail aos estudantes para o primeiro
encontro síncrono, e todos os estudantes inscritos no curso compareceram, demonstrando
um grande interesse. Durante esse encontro, apresentamos a estrutura e o funcionamento
do curso.
Estabelecemos que teríamos dois encontros síncronos por semana, cada um com
duração máxima de duas horas, e atividades assíncronas. Também expomos as principais
ferramentas que utilizaríamos ao longo do curso, como o Moodle para a plataforma de
aprendizado, o Meet para videoconferências, o Google Docs para compartilhamento de
documentos, o WhatsApp para comunicação e o Loom para recursos visuais.
4.1 Desenvolvimento do Experimento
Durante seis encontros síncronos e atividades assíncronas, os estudantes participaram da
microarquitetura pedagógica denominada “Compreensão do Problema e Repositório de
Problemas Cooperativo (AP1)”. Essa abordagem incluiu a utilização de fóruns de
discussão, repositórios cooperativos e vídeos de apoio que exploraram os conceitos de
“Pensamento Computacional” e “Pensamento Crítico”, além da apresentação e
elaboração de problemas.
Iniciamos a AP1 com os vídeos de apoio sobre “O que é Pensamento Computacional?” e
“O que é Pensamento Crítico?”, seguido de um fórum sobre o que os estudantes
entenderam de “Como resolver problemas usando o Pensamento Computacional?”. Em
seguida, foram apresentados problemas escolhidos pelo mediador do teste Bebras
Australia Computational Thinking Challenge, traduzidos para a língua portuguesa, dos
anos de 2018, 2020 e 2022.
A escolha dos problemas do Desafio Bebras se constitui em uma importante
ferramenta, tendo em vista que os problemas foram selecionados de um evento
internacional, utilizando habilidades do PC.
Imediatamente, foi solicitado aos estudantes que, individualmente, escolhessem por
ordem de prioridade um dos seis problemas do teste Bebras Austrália Computational
Thinking Challenge propostos pelo mediador/professor, conforme o link:
[Link]
Cada estudante revisou, no mínimo, os problemas de dois colegas e, por sua vez, teve
seus próprios problemas revisados por outros dois estudantes. Após essa etapa inicial de
revisão, cada estudante refletiu individualmente sobre as revisões que fez e recebeu,
considerando o feedback e analisando como poderia melhorar suas próprias soluções.
Em seguida, os estudantes foram agrupados em pequenos grupos para revisar, no mínimo,
os problemas de outros dois colegas e, por sua vez, teve seus próprios problemas
revisados por outros dois colegas.
Por fim, cada membro do grupo explicou a escolha dos seus problemas. Esse
processo de discussão permitiu que todos os estudantes explorassem diferentes
perspectivas e abordagens para os problemas consolidando um problema para todos, e
seguindo para a próxima AP, conforme Figura 1.
Figura 1 - Ciclo de aprendizagem cooperativa AP1
A partir do sétimo encontro até o decimo quarto encontro síncrono, os estudantes
participaram da Arquitetura Pedagógica AP2. Essa abordagem incluiu a construção de
soluções em formatos de textos e screencasts, a revisão cooperativa por pares das soluções
e a apresentação das soluções para o grupo. Utilizando fóruns de discussão, revendo os
repositórios cooperativos e vídeos de apoio que exploraram os conceitos de "Pensamento
Computacional" e “Pensamento Crítico”.
Iniciou a AP2 com a atividade de construção da solução em linguagem natural, de
modo individual, para o problema escolhido, juntamente com a explicação dessa solução
no formato de vídeo, demonstrando como ela foi desenvolvida.
Em seguida, o mediador realizou a distribuição de revisões entre os pares, levando
em conta os diferentes estágios de desenvolvimento cognitivo dos participantes, para
favorecer a interação entre revisores e revisados, com o intuito de ajudar no
desenvolvimento cognitivo, conforme Figura 2.
Figura 2 - Distribuição de revisores, para 9 participantes e 2 revisões da AP2
Depois de refletir e discutir em pares, os estudantes foram agrupados em pequenos grupos
para discutir suas soluções, e considerar o feedback recebido. Cada membro do grupo
explicou suas soluções, defendeu suas escolhas e debateu as críticas e sugestões feitas
pelos revisores. Esse processo de discussão permitiu que todos pudessem experimentar
diferentes perspectivas e abordagens para os problemas. Finalmente, trabalhando juntos
consolidaram uma solução única e abrangente para o problema, combinando as melhores
ideias e abordagens de todos.
Nos últimos sete encontros síncrono, os estudantes participaram da Arquitetura
Pedagógica AP3, que é constituída por um ambiente de codificação, com o objetivo de
ajudar os estudantes a entender como codificar. O Google Colab foi a ferramenta utilizada
na codificação, o Python foi a linguagem escolhida, por ser uma ferramenta gratuita e
acessível. Após a seleção da ferramenta, os estudantes, de forma individual, codificaram
a solução do problema realizada em linguagem natural, registrando nos fóruns, em
comentários no próprio código e por screencasts suas dúvidas, erros, dificuldades e
acertos durante a implementação.
Posteriormente, os screencasts e os códigos com comentários foram distribuídos
entre os pares, seguindo a mesma distribuição da AP2, incentivando uma maior interação
na construção de possíveis soluções para erros sintáticos (de sintaxe) e semânticos, que
são difíceis de detectar e corrigir individualmente. Cada estudante, ao refletir sobre os
screencasts e os códigos com comentários recebidos, registrou suas sugestões no próprio
código revisado.
Ao se deparar com os erros cometidos por outros, os estudantes são expostos a novas
estruturas de conhecimento que podem contradizer suas estruturas prévias. Assim, tanto
a resposta correta quanto o erro se tornam benéficos para a aprendizagem. Após codificar
e receber feedback e refletir sobre eles, construíram um screencast com sugestões de
alterações, em seguida, assistiram aos vídeos dos colegas e receberam feedback sobre seu
próprio código, os estudantes realizaram uma nova codificação. Por fim, a solução final
é apresentada à turma para que todos possam conhecer a solução e, se necessário, oferecer
novas sugestões de melhoria.
4.2 Resultados e discussões do experimento de ensino
Este estudo envolveu uma análise de 40 horas de encontros síncronos, divididos em vinte
seis encontros de aproximadamente duas horas cada, duas vezes na semana, durante dois
meses e meio. E um repositório de problemas cooperativo construído pelos estudantes,
além de três fóruns de discussão, dezoito screencasts, dois documentos registros de
atividades compartilhados e as nove soluções dos estudantes apresentadas inicialmente
de forma individual em linguagem natural, seguido pela seis solução em grupo na
resolução dos problemas propostos, por fim nove códigos individuais e suas revisões.
Dentre as discussões, podemos inferir que a tríade de Piaget, desempenhou um papel
importante neste trabalho. Percebemos que ao desenvolverem suas próprias soluções
individuais para os problemas propostos, aplicando seu conhecimento prévio e
habilidades de pensamento computacional os estudantes apresentaram indícios da etapa
intra. E durante os encontros síncronos e nos fóruns de discussão da etapa inter, quando
os estudantes compartilharam suas soluções e recebem feedbacks e sugestões dos colegas.
Essa interação cooperativa permitiu que ampliassem suas compreensões, integrando
diferentes perspectivas para aprimorar suas soluções. Por fim, demonstrando elementos
da etapa trans, os estudantes transcendem suas compreensões individuais ao refletir sobre
as soluções dos colegas, participar das revisões por pares e contribuir para a construção
coletiva do conhecimento.
Durante os encontros síncronos, os estudantes foram incentivados a discutir e
elaborar suas soluções de maneira cooperativa, utilizando o repositório de problemas
cooperativo construído por eles. Esta etapa não apenas facilitou a troca de ideias e a
exploração de diferentes abordagens para os problemas, mas também ofereceu um
ambiente de aprendizagem cooperativa onde os estudantes puderam construir
coletivamente suas compreensões e soluções.
Além disso, as revisões por pares desempenharam um papel crucial no processo,
permitindo que os estudantes não apenas avaliassem as soluções dos colegas, mas
também oferecessem feedback construtivo. Esse feedback foi documentado através de
fóruns, screencasts e documentos compartilhados, onde os estudantes registraram suas
sugestões e análises detalhadas das soluções revisadas. Esta abordagem não apenas
fortaleceu a compreensão dos estudantes sobre os conceitos abordados, mas também
incentivou a reflexão metacognitiva sobre os próprios processos de aprendizagem e
resolução de problemas.
Além das discussões síncronas e das revisões por pares, os estudantes construíram
os códigos em um primeiro momento individualmente, em seguida em pares realizando
revisões das soluções dos problemas em linguagem natural. Esta fase permitiu que cada
estudante explorasse e articulasse suas compreensões pessoais dos problemas propostos,
evidenciando suas estratégias e abordagens na programação.
Posteriormente, utilizando uma ferramenta de codificação os estudantes
compartilharam seus códigos com colegas para revisão cooperativa. Durante essas
revisões, os pares ofereceram feedback construtivo, identificando áreas de melhoria,
sugerindo otimizações e apontando possíveis erros ou lacunas nas implementações.
Alguns estudantes tiveram dificuldades com a sintaxe do programa, conforme
mostrado na figura 3.
Figura 3 – Captura do código do estudante “L” antes das interações entre os pares.
Para facilitar a superação dessa dificuldade, os estudantes compartilhavam seus
códigos durante os encontros síncronos, onde recebiam sugestões e feedbacks de seus
colegas, como ilustrado na Figura 4. Posteriormente, os códigos eram distribuídos entre
os pares para revisão, mediada pelo professor. Esse processo permitia que os estudantes
não apenas recebessem sugestões para melhorar suas soluções, mas também
colaborassem ativamente na melhoria dos trabalhos dos colegas, promovendo um
ambiente de aprendizado interativo e colaborativo.
Figura 4 – Captura de encontro síncrono para ajuda nos erros de sintaxe do
estudante “L”
Após as revisões por pares, o estudante "L" apresentou sua solução, com os
comentários dos seus pares no código, incorporando as reflexões adquiridas ao revisar
outros códigos e os feedbacks recebidos, como ilustrado na Figura 5.
Figura 5 – Captura do código do estudante “L” após as revisões por pares.
Com base nesses achados, podemos inferir pontos importantes sobre as atividades
práticas AP1, AP2 e AP3, especialmente no contexto do desenvolvimento de habilidades
de pensamento computacional e programação. Ao identificar erros ou lacunas nas
codificações dos colegas, os estudantes incentivam a reflexão, sobre as etapas do
problema e os diferentes tipos de erros. Esse processo de ajuda mútua entre pares resulta
em efeitos positivos nos processos de aprendizagem de cada estudante. Enfrentar
dificuldades e obstáculos cognitivos leva a reflexões e considerações que resultam em
episódios adicionais de aprendizagem e ampliação do conhecimento.
5 Considerações Finais
Este trabalho apresentou a Arquitetura Pedagógica baseada no Pensamento
Computacional para apoio à Aprendizagem de Programação (APAP). Através da
aplicação das APs (AP1, AP2 e AP3), foi possível observar o impacto positivo das
práticas cooperativas e do PC no desenvolvimento das habilidades de programação dos
estudantes.
A AP1, com seu enfoque na construção e análise de problemas, mostrou-se eficiente
na introdução dos conceitos fundamentais de PC. A criação de um repositório de
problemas cooperativo permitiu que os estudantes desenvolvessem suas habilidades de
forma cooperativa, refletindo sobre seus problemas e os apresentados por seus colegas.
Na AP2, a utilização de screencasts e discussões em pares ajudou na melhoria da
compreensão dos estudantes na resolução de problemas e no domínio da construção de
solução em linguagem natural. A revisão por pares e o feedback contínuo promoveram
um ambiente de aprendizagem cooperativo, onde os estudantes puderam refletir sobre
suas práticas e melhorar continuamente suas soluções.
A AP3 destacou a importância da codificação prática e da revisão cooperativa de
código. Ao identificar e corrigir erros nas codificações dos colegas, os estudantes foram
incentivados a refletir sobre as etapas do problema e os diferentes tipos de erros. Este
processo de reflexão e ajuda mútua levou a uma aprendizagem significativa.
Os achados deste estudo estão em consonância com os trabalhos de [Carvalho et al.,
2005] e [Menezes et al., 2020], reforçando que a estruturação de atividades práticas
focadas em PC e cooperação entre pares pode superar as dificuldades inerentes à sintaxe
de programação e promover um aprendizado efetivo.
Referências
Barr, V., & Stephenson, C. (2011). Bringing computational thinking to K-12: What is
involved and what is the role of the computer science education community?. Acm
Inroads, 2(1), 48-54.
Bati, K., Yetişir, M. I., Çalişkan, I., Güneş, G., & Gül Saçan, E. (2018). Teaching the
concept of time: A steam-based program on computational thinking in science
education. Cogent Education, 5(1), 1507306.
Carvalho, M. J. S., de Nevado, R. A., & de Menezes, C. S. (2005, November).
Arquiteturas pedagógicas para educação à distância: concepções e suporte telemático.
In Brazilian Symposium on Computers in Education (Simpósio Brasileiro de
Informática na Educação-SBIE) (Vol. 1, No. 1, pp. 351-360).
Curzon, P., Black, J., Meagher, L. R., & McOwan, P. W. (2009). cs4fn. org: Enthusing
students about Computer Science. Proceedings of Informatics Education Europe IV,
73-80.
Dagienė, V., Futschek, G., & Stupurienė, G. (2019). Creativity in solving short tasks for
learning computational thinking. Constructivist Foundations, 14(3), 382-396.
Garcia, M. B. (2021). Cooperative learning in computer programming: A quasi-
experimental evaluation of Jigsaw teaching strategy with novice
programmers. Education and Information Technologies, 26(4), 4839-4856.
Giannakoulas, A., & Xinogalos, S. (2018). A pilot study on the effectiveness and
acceptance of an educational game for teaching programming concepts to primary
school students. Education and Information Technologies, 23, 2029-2052.
Korkmaz, Ö., Çakir, R., & Özden, M. Y. (2017). A validity and reliability study of the
computational thinking scales (CTS). Computers in human behavior, 72, 558-569.
López-Pernas, S., Gordillo, A., Barra, E., & Quemada, J. (2019). Examining the use of
an educational escape room for teaching programming in a higher education
setting. IEEE Access, 7, 31723-31737.
Mazur, E., & Somers, M. D. (1999). Peer instruction: A user’s manual.
Menezes, C. D., Castro Junior, A. D., & Aragón, R. (2021). Arquiteturas pedagógicas
para aprendizagem em rede. Série de livros texto da CEIE-SBC. Disponível em:
[Link] ceie-br. org/arquiteturas-pedagogicas/. Acessado: em, 7, 21-08.
Morales-Urrutia, E. K., Ocaña, J. M., Pérez-Marín, D., & Pizarro, C. (2021). Can
mindfulness help primary education students to learn how to program with an
emotional learning companion?. IEEE Access, 9, 6642-6660.
Motil, J., & Epstein, D. (2000). JJ: a language designed for beginners (less is
more). Retrieved July, 16, 2008.
Pereira, A., da Silva, F. X., Müller, M. G., Lima, R. D. A. S., Jacaúna, R. D. P., & de
Menezes, C. S. (2021). Arquitetura pedagógica debate de teses: critérios para seleção
de teses. Revista Novas Tecnologias na Educação, 19(2), 516-525.
Piaget, J. (1973) Estudos Sociológicos. Forense.
Piaget, J. (2013). A psicologia da inteligência. Editora Vozes Limitada.
Piaget, J. (2016). L'epistemologia genetica. Edizioni Studium Srl.
Piaget, J., & García, R. (1982). Psicogénesis e historia de la ciencia. Siglo xxi.
Piaget, J., & Gréco, P. (1974). Aprendizagem e conhecimento. Freitas Bastos.
Proulx, V. K. (2000). Programming patterns and design patterns in the introductory
computer science course. ACM Sigcse Bulletin, 32(1), 80-84.
Román-González, M., Pérez-González, J. C., & Jiménez-Fernández, C. (2017). Which
cognitive abilities underlie computational thinking? Criterion validity of the
Computational Thinking Test. Computers in human behavior, 72, 678-691.
Selby, C., & Woollard, J. (2013). Computational thinking: the developing definition.
Siegel, H. (1989). Epistemology, critical thinking, and critical thinking pedagogy.
Argumentation, 3 (2), 127-140. Obtido de: [Link]
com/article/10.1007%2FBF00128144.
Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33-
35.
Zha, S., Jin, Y., Moore, P., & Gaston, J. (2020). Hopscotch into coding: introducing pre-
service teachers computational thinking. TechTrends, 64, 17-28.