• Nenhum resultado encontrado

Nesta seção será apresentado o módulo para reconhecimento da motivação, que foi implementado baseado nas redes bayesianas. Serão mostradas as interfaces e gráficos exibidos pelo sistema, além da arquitetura do protótipo que foi desenvolvido e usado nos testes e validação do modelo afetivo. A incorporação dos resultados da mineração de dados em um módulo do sistema PROALG atende o objetivo de apoiar o reconhecimento do esforço e confiança qualificando o processo de ensino e aprendizagem de programação.

O módulo para o reconhecimento dos fatores da motivação consiste na junção do método da problematização utilizado nas atividades, nas quais foram coletados os dados e o modelo afetivo, composto pelas redes bayesianas. A disponibilização de uma interface para acompanhamento da motivação está entre os objetivos desta tese, além de ser um dos requisitos funcionais do PROALG, apresentados no capítulo 3. Além disso a interface para consulta à confiança e ao esforço foi fundamental para a análise dos dados e validação do modelo em conjunto com o professor da disciplina.

Inicialmente é necessário ressaltar que os resultados que serão apresentados a seguir descrevem o funcionamento de um protótipo do referido módulo, uma vez que o mesmo não foi completamente integrado ao sistema PROALG. As dificuldades para inserir a interface no sistema se deram em função do tempo que demandam os ajustes necessários para a integração

e devido à problemas relacionados à utilização da biblioteca da ferramenta Netica no servidor do software PROALG.

O software Netica possui APIs ou interfaces de programação para diversas linguagens de programação, entre elas C, Java, C#, entretanto, no momento em que o módulo foi desenvolvido não estavam disponíveis interfaces para linguagens para desenvolvimento web, tais como Java Script e PHP. Tal contexto elevou a dificuldade de inserir o módulo para acompanhamento da motivação diretamente no sistema PROALG, uma vez que o sistema utiliza essencialmente tecnologias voltadas ao desenvolvimento de aplicações para Internet.

Um aspecto importante do protótipo é que mesmo não tendo sido inserido diretamente no PROALG, há uma integração, uma vez que os dados utilizados na validação provém da base do sistema, o que possibilitou uma avaliação com dados reais, coletados durante as atividades. Mesmo com as dificuldades citadas, todos os recursos previstos, a exibição de gráficos para confiança e esforço, o uso das redes bayesianas e a transformação automática dos dados foram implementados na sua totalidade. A figura 65 exibe os principais componentes e classes que compõe o protótipo do módulo implementado.

Figura 65 - Diagrama de componentes que ilustra as principais classes do módulo.

Fonte: Elaborado pelo autor

A linguagem Java Script foi usada para criar as páginas que permitem a seleção de uma atividade ou turma e a exibição dos gráficos correspondentes. A interface index.jsp é responsável por mostrar os resultados por atividade, enquanto student.jsp exibe a confiança e esforço para cada estudante ao longo da disciplina.

A figura 66 mostra a escolha de uma atividade e a exibição dos gráficos por estudante, o que neste caso representa a motivação do aluno na tarefa selecionada. No exemplo foi

escolhida uma atividade cujo código é igual a 68 e o título “Público e renda”, que corresponde a primeira atividade publicada para a turma “2018B – T1”.

Foram utilizados gráficos do tipo Gauge (Figura 66), que se assemelham a velocímetros ou mostradores que indicam o quanto foi atingido de um valor máximo. O uso de cores que simbolizam alto (verde) e baixo (vermelho) permitiu refletir a situação do estudante e a proporção de cada categoria. Estes tipos de gráficos têm sido utilizados com frequência cada vez maior em sistemas de informação, especialmente em dashboards que contribuem para acompanhar indicadores relacionados a metas pré-definidas.

Figura 66 – Interface para visualização da motivação do estudante

Fonte: Elaborado pelo autor

Abaixo dos gráficos exibidos é exibido o número correspondente a probabilidade (em valores inteiros) do esforço ou confiança ser alto (cor verde), neste caso quanto menor este valor, maior a chance do estudante apresentar baixos níveis (cor vermelha). O menu à esquerda permite acessar a tela que mostra as mesmas informações por estudante (opção Aluno). Outro recurso interessante está disponível no botão denominado “Mais informações, que exibe os valores de todos os atributos usados para gerar o gráfico, ou seja, as variáveis que compõe as redes bayesianas que retornam as probabilidades mostradas em cada gráfico.

As classes denominadas ConfidenceServlet e StudentsNet são acessadas pelas interfaces jsp e devem retornar as probabilidades para criação dos gráficos. Estas por sua vez recorrem aos componentes de controle (<<control>>) que efetivamente aplicam as redes bayesinas nos dados de cada atividade ou estudante para obter os percentuais relacionados à classe alto. O código mostrado na figura 67 ilustra o acesso às redes bayesianas realizado pela classe

ClassConfidenceBayesianNet, que tem como objetivo obter as probabilidades relacionadas à

Figura 67 – Exemplo de código que retorna a probabilidade da confiança por atividade

Fonte: Elaborado pelo autor

As classes denominadas Environ, Net e Node estão disponíveis na biblioteca Netica.jar que é fornecida pela desenvolvedora do software Netica, que foi utilizado na construção e treinamento das redes bayesianas que formam o modelo. Observa-se no código a abertura do arquivo “rec_confianca_ativ.dne” que armazena todas as informações da rede bayesiana após o treinamento. O mesmo é gerado na ferramenta Netica, a qual apresenta um recurso para gravar as configurações das redes em um documento (.dne), que pode ser empregado em instruções java ou em outra linguagem dentro de uma aplicação customizada.

As demais classes ClassEffortBayesianNet, StudentConfidenceBayesianNet e

StudentEffortBayesianNet fazem uso de arquivos que guardam informações das redes que

determinam respectivamente, o esforço por atividade, a confiança geral do estudante e o esforço geral do estudante. Percebe-se no exemplo que cada objeto da classe Node representa um atributo da rede e o valor da variável é atribuído pelo método EnterState. Estes valores são obtidos nas tabelas mostradas na figura 68, que armazenam os valores calculados para os atributos usados nas redes bayesianas. A tabela dados_modafet_exercicio guarda os dados por atividade e dados_modafet_estudante as informações resumidas do estudante.

Figura 68 - Tabelas que armazenam os valores dos atributos usados nas redes bayesianas

Fonte: Elaborado pelo autor

A classe EvalutionDataTransaction possui métodos para atualizar e consultar os dados armazenados nestas tabelas. A atualização dos dados obtém os dados das tabelas que registram dados da correção de cada exercício, acesso as dicas e pseudocódigo e sobre estes executa as ações de pré-processamento e transformações descritas nas seções anteriores. A rotina de atualização ou inclusão dos registros nas tabelas ocorre imediatamente após o usuário selecionar uma atividade ou turma e clicar no botão de “Ok”, antes da geração dos gráficos.

Após atualizar os dados de uma tarefa ou estudante, é executada uma consulta que obtém os registros que serão usados na elaboração dos gráficos do tipo Gauge. Tomando como exemplo a confiança e esforço por atividade, cada registro lido na tabela dados_modafet_exercicio gera dois gráficos, como mostrado na figura 66. Os valores dos campos são usados para compor um objeto da classe Student, cujas propriedades são utilizados na sequência para alimentar a rede (Figura 67). O método GetBelief retorna as probabilidades associadas às categorias alto e baixo do nodo denominado nivel_confianca e posteriormente o percentual para a categoria alto é setado no objeto student.

A figura 69 exibe o código SQL que faz a leitura dos dados da tabela e um exemplo dos resultados obtidos para um determinado exercício. Para cada registro retornado é instanciado

um objeto da classe ConfidenceClassStudent, que possui atributos para indicar tanto a confiança, quanto o esforço do estudante.

Figura 69 – Consulta aos dados da tabela dados_modafet_exercicio

Fonte: Elaborado pelo autor

Embora o exemplo descrito tenha focado na confiança por atividade, as rotinas que utilizam as demais redes bayesianas e geram gráficos para esforço por atividade ou para o esforço e confiança por estudante são semelhantes, apresentam a mesma lógica de processamento. As probabilidades são retornadas para as interfaces (index.jsp e student.jsp) que utilizam os valores para gerar os gráficos.

6 RESULTADOS E DISCUSSÃO

Este capítulo descreve os resultados obtidos na validação do modelo para identificação da motivação dos estudantes. As redes bayesianas foram aplicadas aos dados coletados em uma turma de estudantes na disciplina de Algoritmos e Programação que ocorreu no segundo semestre de 2018, da qual participaram 26 estudantes. A validação incluiu um acompanhamento em conjunto com o professor, visando apoiar ações baseadas nos índices e níveis de motivação mostrados no sistema.

Na seção 6.2 serão descritos e analisados os resultados das respostas dos estudantes participantes do estudo piloto e estudo caso para os questionários que foram aplicados com o objetivo de obter um autorrelato por parte dos discentes. Serão apresentados gráficos e estatísticas segmentadas de acordo com o nível de esforço e confiança atribuídos aos estudantes nos dados usados no treinamento das redes bayesianas.

A análise destes resultados buscou verificar a relação entre o autorrelato e a classificação adotada na construção do modelo. A análise dos resultados buscou responder questões como:

 Estudantes definidos com baixo nível de esforço reconheceram que se esforçaram menos ou que poderiam ter se dedicado mais?

 Estudantes com baixa confiança reconhecem as dificuldades e problemas no desenvolvimento das atividades?

 Quais estados afetivos foram mais intensos entre estudantes com baixos níveis de esforço e confiança?