=Paper= {{Paper |id=Vol-1877/CtrlE2017_AR_13_113 |storemode=property |title=Proposta de um Sistema Multiagente para o Ensino de Programação com Mastery Learning (Proposal of a Multiagent System for Teaching Programming with Mastery Learning) |pdfUrl=https://ceur-ws.org/Vol-1877/CtrlE2017_AR_13_113.pdf |volume=Vol-1877 |authors=Ceres Germanna Braga Morais,Thiago Jobson Barbalho }} ==Proposta de um Sistema Multiagente para o Ensino de Programação com Mastery Learning (Proposal of a Multiagent System for Teaching Programming with Mastery Learning)== https://ceur-ws.org/Vol-1877/CtrlE2017_AR_13_113.pdf
                                            II Congresso sobre Tecnologias na Educação (Ctrl+E 2017)
                                                         Universidade Federal da Paraíba - Campus IV
                                                                      Mamanguape - Paraíba – Brasil
                                                                        18, 19 e 20 de maio de 2017




        Proposta de um sistema multiagente para o ensino de
              Programação com Mastery Learning
                Ceres Germanna Braga Morais, Thiago Jobson Barbalho

     ¹Departamento de Informática – Universidade do Estado do Rio Grande do Norte.
      Avenida Antônio Campos, Bairro Costa e Silva, Mossoró/RN, CEP 59610-090.
                     {ceresgbmorais, thiagojobson}@gmail.com

    Abstract. This paper presents a proposal for a multiagent system that uses an
    online judge and Mastery Learning concepts to help in the process of learning
    Programming. Composed of a layer between student and judge, this system
    could be able to validate knowledge acquired by the student and identify
    students presenting learning difficulties in order to help them in the process of
    master the knowledge via feedbacks like tips, tutorials, videos etc.

    Resumo. Este trabalho apresenta uma proposta de sistema multiagente para
    auxiliar o ensino de Programação utilizando um juiz online e técnicas de
    Mastery Learning. Composto de uma camada entre o estudante e o juiz, tal
    sistema seria capaz de validar o conhecimento adquirido pelo aluno e
    identificar alunos com dificuldades de aprendizado e auxilia-lo no processo de
    domínio do conhecimento utilizando-se de feedbacks como dicas, tutoriais,
    vídeos e outros tipos de conteúdo extraclasse.

1. Introdução
O ensino de Programação é fundamental nos cursos da área tecnológica por ser o passo
inicial para o desenvolvimento do raciocínio lógico, e, por consequência, para a
introdução dos conceitos e prática da programação. A disciplina destaca-se ainda por
exigir do docente, e seus auxiliares, uma forte demanda de interação a fim de atender,
acompanhar, mediar e avaliar individualmente os alunos [Raabe et al 2015]. No geral, as
disciplinas que necessitam da prática de uma grande quantidade de exercícios para a
aprendizagem dos conteúdos - onde a resolução de um exercício necessita da execução
de um conjunto de passos - apresentam as maiores dificuldades para parte dos alunos.
Assim, muitos alunos não conseguem acompanhar o ritmo das sequências de exercícios
com nível de complexidade e recursos computacionais crescentes passadas pelo
professor [Iepsen, 2013].
        Diante disto, surge a necessidade de se desenvolver ferramentas que apoiem
tanto professores quanto estudantes no tocante do ensino e aprendizado. No entanto, em
relação ao ensino de Programação propriamente dito, o contexto de sala de aula
geralmente é bastante heterogêneo: alguns alunos nunca viram algoritmos, e outros já
trabalham com programação. Logo, cabe ao professor verificar os diferentes níveis de
conhecimento entre os alunos em uma turma muitas vezes numerosas. Nesse sentido,
este artigo apresenta a proposta de um ambiente de aprendizagem que fundamenta-se na
                                                                                                602
                                           II Congresso sobre Tecnologias na Educação (Ctrl+E 2017)
                                                        Universidade Federal da Paraíba - Campus IV
                                                                     Mamanguape - Paraíba – Brasil
                                                                       18, 19 e 20 de maio de 2017


teoria Mastery Learning para proporcionar o nivelamento e equilíbrio entre os alunos,
ao passo que cada aluno volta-se a tarefas e conteúdos de acordo com seu nível de
conhecimento.
       Vale salientar que a ferramenta ainda se encontra em fase de desenvolvimento e
o que será apresentado neste artigo é um protótipo ainda não validado. Para melhor
entendimento e para justificar a necessidade de desenvolvê-la, este trabalho está assim
organizado: a Seção 2 apresenta a contextualização; a Seção 3 traz a proposta em si; e
por fim as Considerações Finais são apresentadas.

2. Contextualização
As seguintes subseções apresentam um breve conceito sobre conhecimentos aplicados
nesta pesquisa.

2.1 Mastery Learning
Mastery Learning (Aprendizagem por Maestria) é uma estratégia educacional na qual as
habilidades e conhecimentos dos alunos são rigorosamente confrontados com padrões
predeterminados de aprendizagem. Assim, estudantes não podem avançar para um
próximo módulo, estágio, nível de conhecimento até que alcancem um designado nível
de maestria [Eppich et al 2015]. É baseado na filosofia de que qualquer estudante pode
aprender qualquer conteúdo se este for dado de forma sistemática; se este estudante
receber instruções quando demonstrar dificuldades de aprendizado e se for dado tempo e
oportunidades suficientes para que este alcance o domínio do conteúdo [Sahare 2010].
       No Mastery Learning, as métricas que determinam se um estudante conquistou
ou não um nível de domínio são extremamente importantes para o aprendizado, uma vez
que o seu objetivo é garantir que ninguém seja deixado para trás e que todos estejam
bem preparados para ter sucesso em fases subsequentes da formação. Se estes padrões
são muito baixos, os alunos não estarão bem preparados; se os padrões são muito altos,
os alunos irão despender um esforço desnecessário que poderia ser melhor gasto em
outros objetivos educacionais [Yudkowsky et al 2015].
       Este tipo de estratégia pode ser utilizada para dominar quase todos os tipos de
conhecimento, mas se encaixa perfeitamente com o ensino de Matemática. O
conhecimento matemático é construído sobre ele mesmo, então, para que um aluno
possa ter sucesso, é preciso que este possua um nível de domino em todas as suas
unidades [Sahare 2010][School of Education 2010]. Esta característica também pode ser
encontrada em ensino de Programação: conjunto de passos que levam à solução de um
problema em um número finito de etapas. Estes passos são uma junção de elementos
(variáveis, condicionais, entrada e saída, estruturas de repetição, funções, etc.) que
precisam ser perfeitamente utilizados em um conjunto lógico para que se possa chegar à
solução.
      O trabalho de Morais et al (2014) buscou quantificar a satisfação de estudantes
que cursaram uma disciplina de introdução à Programação em uma modalidade de
Mastery Learning com ensino personalizado e utilização de testes automatizados para

                                                                                               603
                                             II Congresso sobre Tecnologias na Educação (Ctrl+E 2017)
                                                          Universidade Federal da Paraíba - Campus IV
                                                                       Mamanguape - Paraíba – Brasil
                                                                         18, 19 e 20 de maio de 2017


auxiliar na aprendizagem de exercícios. Como resultado, o estudo concluiu que os
alunos ficaram satisfeitos com a metodologia utilizada – principalmente com o feedback
automático realizado pelos testes – e são favoráveis a uma expansão para outras
disciplinas. Também, elementos do Mastery Learning podem ser encontrados no
trabalho de Iepsen et al (2010) em que propuseram uma abordagem para evitar a evasão
dos alunos de cursos da área de Computação com o desenvolvimento de um sistema
web que realiza a personalização dos exercícios de algoritmos. O sistema recomenda
exercícios de acordo com o nível de conhecimento e habilidades adquiridas pelo aluno.
       Posteriormente, Iepsen (2013) realizou uma pesquisa para detectar os alunos que
evidenciam sinais de frustração em atividades de ensino e de aprendizagem na área de
Algoritmos, para então, auxiliá-los com ações proativas de apoio. Tal apoio consiste na
exibição de um tutorial com a resolução passo a passo do exercício no qual o aluno
apresenta dificuldades e na recomendação de um novo exercício com níveis de
complexidade mais lineares aos conceitos trabalhados até aquele ponto de vista.
        Os resultados dos experimentos destes trabalhos mostraram que evidências
como, o alto número de tentativas de compilação de um programa sem sucesso, o
grande número de erros em um mesmo programa ou a quantidade de tempo gasto na
tentativa de resolver, podem estar relacionados ao estado de frustração do aluno.
Também Raabe et al (2015) apresentaram uma abordagem para a construção de um
gerador de dicas sobre os erros cometidos pelos estudantes, usando como base uma
combinação de casos de testes aplicados ao programa a ser avaliado e uma análise
estrutural do código, detectando padrões de erros comuns realizados por estudantes.
        O objetivo deste experimento foi avaliar a influência das dicas emitidas pelo
corretor nas ações tomadas pelos estudantes para corrigir o erro diagnosticado, bem
como avaliar se este feedback ajuda o estudante a resolver exercícios propostos. A
avaliação obtida pelos autores do trabalho foi de que “o mecanismo de correções e
geração de dicas proposto teve um impacto positivo e auxiliou os estudantes na
resolução dos exercícios” e a “melhorar a legibilidade do código”, o que certamente leva
a crer que utilizar este método para o ensino de Programação pode ser de grande
relevância.

2.2 Informática na Educação
Informática na Educação significa a inserção de recursos digitais no processo de
aprendizagem dos conteúdos curriculares de todos os níveis e modalidades de educação,
enfatizando que o professor da disciplina curricular deva ter conhecimento sobre os
potenciais educacionais do computador e ser capaz de alternar adequadamente
atividades tradicionais de ensino/aprendizagem e atividades que o utilizem.
        Segundo Martins (2012), é muito comum as escolas apresentarem seus projetos
de inserção a tecnologia com a justificativa de que esse trabalho é importante por ser a
realidade dos estudantes de hoje em dia. A geração atual, da qual estes estudantes fazem
parte, possui facilidade em utilizar ferramentas digitais e em interagir em ambientes
virtuais como smartphones, redes sociais, blogs, sites, etc. Porém, isso não significa que
eles possuem facilidade em utilizar essas ferramentas no ambiente escolar.

                                                                                                 604
                                                      II Congresso sobre Tecnologias na Educação (Ctrl+E 2017)
                                                                   Universidade Federal da Paraíba - Campus IV
                                                                                Mamanguape - Paraíba – Brasil
                                                                                  18, 19 e 20 de maio de 2017


2.3 Sistemas Multiagente
Segundo Juchem e Bastos (2001), um agente é uma entidade de software com
capacidade de resolução de problemas, que exibe um comportamento autônomo e
proativo, que está situado em algum ambiente, e a partir do qual percebe alterações
sendo capaz de realizar ações para alcançar os objetivos de projeto. Inserido nesta visão,
definem o agente como tendo as seguintes propriedades:
          Autonomia – executam a maior parte de suas ações sem interferência direta de
           agentes humanos ou de outros agentes computacionais, possuindo controle total
           sobre suas ações e estado interno;
          Habilidade social – por impossibilidade de resolução de certos problemas ou por
           outro tipo de conveniência, interagem com outros agentes (humanos ou
           computacionais), para complementarem a resolução de seus problemas, ou ainda
           auxiliarem outros agentes. Disto surge a necessidade de que os agentes tenham
           capacidade para comunicar seus requisitos aos outros e um mecanismo decisório
           interno que defina quando e quais interações são apropriadas;
          Capacidade de reação – percebem e reagem às alterações no ambiente em que
           estiverem inseridos;
          Capacidade proativa – agentes, do tipo deliberativo, além de atuar em resposta às
           alterações ocorridas em seu ambiente, apresentam um comportamento orientado
           a objetivos, tomando inciativas quando julgarem apropriado.

3. Proposta
O URI Online Judge é um projeto que vem sendo desenvolvido na URI – Universidade
Regional Integrada - Campus de Erechim, desde 2011. É um portal que contém
problemas no estilo do ICPC (International Collegiate Programming Contest) da ACM
(Association for Computing Machinery) e que fornece ao usuário um juiz online1 para
testar suas soluções a estes problemas. O objetivo inicial da criação do portal foi
desenvolver funcionalidades que oferecessem uma alternativa ao método tradicional de
ensino de Algoritmos e Programação, conforme proposto pelos autores em [Tonin et al.
2015].
        A proposta deste trabalho é desenvolver um sistema que implemente o conceito
de Mastery Learning em disciplinas de Programação utilizando questões do URI Online
Judge como forma de validar o domínio de conhecimento dos alunos, utilizando uma
arquitetura multiagente. Composto de uma camada entre o estudante e o juiz online
URI, tal sistema seria capaz de identificar alunos com dificuldades de aprendizado e
auxilia-lo no processo de domínio do conhecimento utilizando-se de feedbacks como
nos trabalhos de Iepsen et al (2010) e Iepsen (2013) e Raabe (2015): dicas, tutoriais,
vídeos e outros tipos de conteúdo extraclasse.



1
    Juiz online verifica automaticamente se um algoritmo é capaz de resolver um problema proposto.
                                                                                                          605
                                            II Congresso sobre Tecnologias na Educação (Ctrl+E 2017)
                                                         Universidade Federal da Paraíba - Campus IV
                                                                      Mamanguape - Paraíba – Brasil
                                                                        18, 19 e 20 de maio de 2017


        Na Figura 1 é possível ter uma visão abstrata da arquitetura do sistema que é
composta de um servidor que intermedia a ligação entre a interface, utilizada pelo aluno,
e o URI Online Judge, que é o repositório de questões. Tendo quatro agentes
(explicados a seguir) ativos no servidor que monitoram o estado do ambiente, podendo,
assim, executar ações visando atingir o seu respectivo objetivo.




                            Figura 1: Arquitetura do sistema.

                              Fonte: Próprio autor (2017)
        O sistema multiagente proposto para essa pesquisa, a priori, possui os agentes:
Agente Facilitador (AgF), que terá o intuito de acompanhar o estudante, motivando-o, e
percebendo suas atitudes, tais como permanência no ambiente de aprendizagem,
participação; Agente Pedagógico (AgP) que irá atribuir tarefas ao discente, de acordo
com o nível de domínio no qual este está inserido; Agente Avaliador (AgA), que a partir
de métricas pré-definidas, irá avaliar o nível de maestria do estudante, de forma a
permitir ou não, dependendo dos resultados obtidos, que este avance de nível de
aprofundamento dos conteúdos vistos em sala de aula; e Agente de Retorno (AgR), que
terá a função de dar feedback ao aluno e professor, quanto ao grau de excelência que o
aluno está percebendo ao longo da disciplina, além de verificar se existe discrepância
entre os vários estudantes envolvidos no processo de aprendizagem.
        Como interface para utilização do sistema, o aplicativo de mensagens Telegram
foi escolhido por ser um software popular entre usuário de smartphone, possuir clientes
para os principais sistemas móveis, web e desktop e possuir uma API (Application
Programming Interface) pública. Fazendo uso desta API, podemos usar toda a robustez
da arquitetura do aplicativo a nosso favor para troca de mensagens texto, imagens,
vídeos, etc. Dessa forma, delegando ao Telegram toda a troca de mensagens entre os
alunos e o sistema, permite que nós foquemos no desenvolvimento dos outros
componentes desta pesquisa.

4. Considerações Finais
Este trabalho apresentou uma proposta de um sistema multiagente que implementa a
técnica de Mastery Learning para auxiliar no ensino/aprendizagem em disciplinas de
Programação. Embora esta pesquisa ainda esteja em fase de desenvolvimento, trabalhos
anteriores já demonstraram que sistemas que fazem um acompanhamento individual e
são capazes de apresentar feedbacks para auxilia-los em sua dificuldade de aprendizado

                                                                                                606
                                            II Congresso sobre Tecnologias na Educação (Ctrl+E 2017)
                                                         Universidade Federal da Paraíba - Campus IV
                                                                      Mamanguape - Paraíba – Brasil
                                                                        18, 19 e 20 de maio de 2017


em Programação apresentaram um impacto positivo. Os próximos passos dessa pesquisa
são: desenvolver a arquitetura multiagente; desenvolver o sistema proposto; validar o
sistema em turmas de Programação, realizando, através de estudo de caso, experimentos
pequenos e contínuos; estabelecer métricas para o nivelamento dos alunos; apresentar
resultados obtidos à comunidade acadêmica.

Referências
Dicheva, D., Dichev, C., Agre, G., Angelova, G. “Gamification in Education: A
  Systematic Mapping Study”, Educational Technology & Society, 18 (3), 2015. p. 75-
  88.
Eppich, W. J., Hunt, E. A., Duval-Arnould, J. M., Siddall, V. J., Cheng, A. (2015)
  “Structuring Feedback and Debriefing to Achieve Mastery Learning Goals”,
  Academic Medicine, Vol. 90, No. 11, Nov 2015.
Fardo, M. L. (2013) “Conjectura: Filos. Educ.”, v. 18, n. 1, p. 201-206, Jan/Abr.
Iepsen, E. F M., Bercht, E., Reategui, E. (2010) “Persona-Algo: Personalização dos
   Exercícios de Algoritmos auxiliados por um Agente Afetivo”, In: Simpósio
   Brasileiro de Informática da Educação (SBIE).
Iepsen, E. F. (2013) “Ensino de Algoritmos: Detecção do Estado Afetivo de Frustração
   para Apoio ao Processo de Aprendizagem”, Tese (Doutorado em Informática na
   Educação) – Universidade Federal do Rio Grande do Sul. 157 p.
Juchem, M., Bastos, R. M. (2001) “Engenharia de Sistemas Multiagentes: Uma
   Investigação sobre o Estado da Arte”, Tecninal Report Series, No. 14, 2001.
Martins, R. dos S. (2012) “O Uso das Tecnologias de Informação e Comunicação na
  Educação”,           http://escolabakhita.com.br/educacao/o-uso-das-tecnologias-de-
  informacao-e-comunicacao-na-educacao, Mar 2017.
Morais, L. A. de M., Figueiredo, J. C. A, Guerrero, D. D. S. (2014) “Students
  Satisfaction with Mastery Learning in an Introdutory Programming Course”, In:
  Simpósio Brasileiro de Informática na Educação (SBIE).
Raabe, A. L. A., Jesus, E. A., Hodecker, A., Pelz, F. (2015) “Avaliação do Feedback
  Gerado Por um Corretor Automático de Algoritmos”, In. Simpósio Brasileiro de
  Informática na Educação (SBIE), p. 358-366.
Sahare,          Namita           S.        (2010)          “Mastery         Learning”,
  https://pt.slideshare.net/techcreation/mastery-learning-4798261, Mar 2017.
School      of      Education,    (2010)    “Behaviour       Modification   Model”,
  https://pt.slideshare.net/competents2011/mastery-learning-7354062, Mar 2017.
Tonin, N. A., Selivon, M., Bez, J. L. (2015) “URI Online Judge Academic: Integração e
  Consolidação da Ferramenta no Processo de Ensino/Aprendizagem”.
Youdkowsky, R., Park, Y. S., Lineberry, M., Knox, A., Ritter, E. Matthew (2015)
  “Setting Mastery Learning Standards”, Academic Medicine, Vol. 90, No. 11, Nov
  2015.


                                                                                                607