Você está na página 1de 10

UNIVERSIDADE FEDERAL DO AMAZONAS

INSCRIÇÃO DE PROJETOS PARA O PIBIC/PAIC 2018-2019

FORMULÁRIO DE DETALHAMENTO VÁLIDO SOMENTE PARA INSCRIÇÃO DE INICIAÇÃO


CIENTÍFICA

1. Identificação do Projeto
Título do Projeto de Iniciação Científica
Predição automática de dificuldade de questões em ambientes de programação
Orientador
Leandro Silva Galvão de Carvalho

Bolsista
Pedro Henrique Cerávolo dos Santos

Aluno cursando Graduação no Interior do Estado


Sim Não X

Renovação de Projeto
Sim Não X

Projeto no Interior do Estado


Sim Não X
UNIVERSIDADE FEDERAL DO AMAZONAS
INSCRIÇÃO DE PROJETOS PARA O PIBIC/PAIC 2018-2019

2. Introdução

Juízes online, ou ambientes de correção automática de código (ACAC), são sistemas online
que testam códigos de programação submetidos por estudantes e os avaliam quanto à sua corretude.
Dessa forma, eles proveem feedback rápido e automático ao estudante a respeito de problemas de
programação cadastrados por professores. Por conta disso, eles têm sido cada vez mais adotados por
universidades do Brasil [URI Online Judge][CodeBench][The Huxley][Run Codes][Feeper] e do
mundo.

Os ACACs foram criados inicialmente com o propósito de dar suporte a eventos de


programação competitiva, tanto na fase de treinamento quanto durante o desenrolar da competição.
Mais tarde, passaram a ser empregados como ferramentas de ensino e aprendizagem em disciplinas
de programação. Por exemplo, o Instituto de Computação (IComp) da Universidade Federal do
Amazonas (UFAM) adota, desde 2015, o juiz online ​CodeBench para esse intuito em diversas
disciplinas, entre elas a de Introdução à Programação de Computadores (IPC). Esta é ofertada para
17 cursos de graduação, com matrícula de cerca de 600 estudantes por ano.

A organização de um banco de questões classificado por dificuldade é essencial para a


elaboração de exames capazes de testar a capacidade intelectual de alunos no nível em que o
instrutor de uma disciplina necessita [Yasmine et al. 2016]. As questões que cada aluno recebe em
uma avaliação no ​CodeBench ​são escolhidas a partir de um sorteio, realizado com base em um
agrupamento de questões escolhidas por um professor.

Atualmente, o professor classifica a dificuldade dos problemas apresentados aos estudantes


no ​CodeBench com base no seu julgamento e experiência pessoais. Como resultado, nem sempre as
listas de exercícios e as avaliações são adequadamente balanceadas em termos de dificuldade.
Consequentemente, algumas atividades se tornam difíceis demais ou fáceis demais de serem
resolvidas, desmotivando os estudantes.

Dessa forma, este projeto visa reunir maneiras de graduar questões de programação em
dificuldade automaticamente. Isso irá permitir que os professores elaborem avaliações balanceadas,
evitando assim o problema de deixar a escolha das questões inteiramente como responsabilidade dos
instrutores. Serão aproveitados os dados coletados pelo ​CodeBench em relação aos exercícios
resolvidos desde 2015. Informações como o tempo que cada aluno toma para a resolução de cada
exercício, o número de tentativas de submissão para cada aluno, a média de linhas apagadas e
reescritas, entre outras, serão utilizadas a fim de aperfeiçoar a classificação das questões de
programação.

Porém, para utilizar os juízes online de maneira eficiente, é importante que os instrutores
possam aplicar exames e questões de maneira que o nível dessas seja levado em consideração. Isso
UNIVERSIDADE FEDERAL DO AMAZONAS
INSCRIÇÃO DE PROJETOS PARA O PIBIC/PAIC 2018-2019

evita que o padrão dos desafios apresentados difira muito da capacidade dos estudantes que usam os
juízes online.

Assim, com a crescente adoção de juízes online por instituições de ensino, essa necessidade
de categorizar os exercícios e suas dificuldades se tornou ainda maior, já que, a fim de promover um
aprendizado eficiente, os alunos devem receber um feedback ágil [CARVALHO et al. 2016] e
preciso para evitar atrasos desnecessários no ensino ou exames incorretos.

Existem esforços para a classificação de questões de programação, porém as técnicas


utilizadas diferem muito entre os pesquisadores. É comum, porém, a segmentação de exercícios em
classes, de maneira similar à divisão realizada por [LE e PINKWART, 2014]. Nesse caso, os
pesquisadores optaram por dividir as questões de programação em 3 classes, permitindo que os
professores saibam precisamente que tipo de desafio estão repassando aos seus alunos. Além disso,
essa pesquisa buscou relacionar o desempenho da classificação PISA, que possui um uso já
estabelecido na matemática, com as classes em questão.

Além disso, outra linha de raciocínio que possui uma aderência abrangente na área de
pesquisa é o uso de métricas baseadas em atributos de software, que podem ser por exemplo, o
tamanho do código-fonte, o número de comentários, entre outros. Essa abordagem é eficiente pois
retira informações das respostas dos alunos, permitindo uma análise da complexidade dessas. A
pesquisa de [WHALLEY e KASTO, 2014] propõe o uso de métricas de software para uma
classificação automática dos desafios apresentados, além de discutir a validade do uso dessas
técnicas.

Assim, métodos já estabelecidos serão comparados e unidos neste projeto com o objetivo de
calcular o grau de dificuldade de questões de programação aplicadas aos estudantes no juiz online
CodeBench​. Serão utilizadas técnicas para predizer o grau de dificuldade, sem nenhuma interação
com os estudantes e, após isso, técnicas para classificar e refinar a predição, já com informações dos
alunos. Diferentemente das pesquisas mencionadas anteriormente, este projeto visa realizar esse
processo de maneira automática.

2. ​Justificativa

Na Figura 1, temos a evolução da taxa de aprovação na disciplina de IPC entre os anos de


2010 e 2017, que tem oscilado entre 40% a 50%. Isso representa um desperdício de recursos
públicos na formação de profissionais de nível superior. Parte da solução desse problema
multifacetado pode estar no aumento da motivação do estudante em usar o ACAC para ter sucesso
na disciplina.
UNIVERSIDADE FEDERAL DO AMAZONAS
INSCRIÇÃO DE PROJETOS PARA O PIBIC/PAIC 2018-2019

Figura 1: Evolução da taxa de aprovação da disciplina de introdução à programação de


computadores (IPC) na UFAM.
Fonte : SIE/UFAM (2017)

A importância da utilização de métodos de predição automática de dificuldade de questões


se revela com pesquisas que testam a confiabilidade da classificação de instrutores. Como mostra a
pesquisa de Judy Sheard el al. [2011, pag. 35], a concordância entre os instrutores testados sobre o
grau de dificuldade das questões avaliadas é baixa. Esse problema é resultado da subjetividade
inerente do ato de classificar algo como dificuldade.

De maneira complementar, não é viável classificar as questões apenas com base nas técnicas
das taxonomias empregadas pela pedagogia, como a de BLOOM e a de SOLO [ELNAFFAR, 2016],
já que a interpretação da dificuldade de uma questão pode variar entre instrutores. Então é preciso
reunir métodos analíticos de categorizar as questões em dificuldade.

Além disso, este projeto está em linha com a pesquisa de [PEREIRA, 2017], porém com o
objetivo de estimar o grau de dificuldade da questão, em paralelo com os esforços da pesquisa
mencionada em predizer a probabilidade de um certo estudante obter aprovação em uma disciplina
de programação. Nessa pesquisa, foram propostas técnicas que previam com um grau de precisão
aceitável a chance de um aluno de ser aprovado em disciplinas de programação. Porém, métodos de
classificar as questões que seriam aplicadas a esse discentes ainda não são aplicados.

No que compete ao aprimoramento da metodologia de ensino-aprendizagem, docentes do


Instituto de Computação têm realizado estudos relacionados a técnicas que podem ser utilizadas
para motivar os estudantes a melhorarem seu desempenho em IPC e para auxiliar os docentes a
identificar previamente estudantes em zona de dificuldade. Esse conjunto de trabalhos motivou a
institucionalização desse esforço de pesquisa por meio do projeto "Motivando e engajando
UNIVERSIDADE FEDERAL DO AMAZONAS
INSCRIÇÃO DE PROJETOS PARA O PIBIC/PAIC 2018-2019

estudantes para a aprendizagem de programação introdutória no ensino superior", aprovado pelo


Conselho Diretor do IComp e submetido à Pró-Reitoria de Pesquisa e Pós-graduação via portal Lira.

3. Objetivos

4.1 ​Gerais

O projeto visa criar e aplicar um conjunto de técnicas para a predição precisa do grau de
dificuldade de questões de programação em ambientes de correção automática de código.

4.2 ​Específicos

Os objetivos específicos do projeto são os seguintes:

● Extrair e analisar dados brutos do ambiente de correção automática a fim de quantificar o


grau de dificuldade de questões de programação;

● Comparar diferentes métricas baseadas em atributos de software e chegar a um conjunto de


métricas úteis;

● Aprimorar a classificação do grau de dificuldade a partir do comportamento do estudante no


uso do ambiente

● Comparar as técnicas preditivas com as técnicas de classificação utilizadas.

4. Metodologia

O processo de categorização da dificuldade de um banco de questões de codificação será dividido


em três etapas: classificação, predição, e confirmação.

Durante a etapa de classificação, serão utilizados os dados extraídos dos estudantes que
realizaram as questões analisadas na primeira etapa para a classificação da dificuldade das questões
aplicadas. Esses dados serão, de maneira a enfocar a análise, o percentual de acerto e o tempo médio
de resolução de cada questão dos alunos. Essas informações irão permitir uma classificação geral de
cada questão.

Além disso, essa categorização será reforçada por dados de entrada mais brutos, como tamanho de
resposta, número de tentativas de submissão, tamanho do enunciado da questão, além dos atributos
selecionados por [PEREIRA, 2017], que se mostraram relevantes na categorização de estudantes.
Assim, com uma organização eficiente desses dados, é possível extrair diversas informações sobre a
dificuldade que os estudantes possuíram durante a atividade, como mostra de maneira similar o
trabalho de [PEREIRA, 2017].

O objetivo de classificar um banco de questões automaticamente será alcançado a partir da


UNIVERSIDADE FEDERAL DO AMAZONAS
INSCRIÇÃO DE PROJETOS PARA O PIBIC/PAIC 2018-2019

visão de mineração de dados educacionais (MDE) , que permite o uso eficiente de bases de dados
provenientes de ambientes educacionais [PAZ e CAZELLA, 2017]. Essa abordagem,
primeiramente, foca-se na interação entre o estudante e o computador [BAKER e YACEF, 2009],
analisando os dados que os estudantes geram nessa atividade e os utilizando a fim de extrair
informações úteis.

Neste projeto será aplicada, a partir da mineração de dados educacionais, a Descoberta de


Conhecimento em Base de Dados (DCBD), que constrói em cima dos conceitos da MDE [PAZ e
CAZELLA, 2017] e permite a extração e o processamento de um grande volume de dados de um
meio acadêmico. Assim, serão extraídos dados do ambiente de programação e juiz online
CodeBench, gerados pelos estudantes do Instituto de Computação da Universidade Federal do
Amazonas, de maneira anônima e com o consentimento desses.

A partir dessa base de informações, as respostas dos alunos às questões e outros dados
estatisticamente significantes, como dados brutos de entrada do teclado, serão comparados a fim de
se estabelecer uma classificação das questões. Em especial, as respostas dos estudantes serão
comparadas com uma solução pronta, de autoria do instrutor da disciplina dos alunos. Essa
abordagem permite uma avaliação prévia de um problema e a comparação dessa solução com a dos
estudantes [WHALLEY e KASTO, 2014].

Já a predição é baseada na análise dos enunciados e de uma “solução pronta”, criada pelo
instrutor da disciplina. Assim, essa primeira etapa não possui nenhum dado de origem dos
estudantes. A abordagem da solução pronta, apesar das desvantagens, é útil para a aplicação de
métricas de software, capazes de quantificar a complexidade de um código fonte [ELNAFFAR,
2016]. Assim, diversas métricas de software, como complexidade ciclomática [McCABE, 1976],
número de operadores, “average nested block depth” e outras serão utilizadas para a criação de uma
nota prévia das questões.

A partir da posse de soluções prontas provindas de instrutores e soluções de autoria dos


estudantes, é possível utilizar técnicas com base nas métricas de atributos de software, que são
dados estatísticos retirados dos códigos-fonte que permitem uma avaliação da qualidade desses.
Neste projeto busca-se utilizá-las a fim de estimar a dificuldade das questões analisadas, a partir da
classificação das questões aplicadas.

Após as duas fases citadas, virá a etapa de confirmação, em que o resultado das técnicas de
predição e de classificação serão comparados. Essa comparação será feita a fim de estabelecer se
houve divergência entre os resultados de cada etapa. Caso isso ocorra, é possível que umas das
técnicas utilizadas não gera respostas precisas. Caso contrário, é provável que os métodos usados
são efetivos devido a diferença entre a classificação e a predição.
UNIVERSIDADE FEDERAL DO AMAZONAS
INSCRIÇÃO DE PROJETOS PARA O PIBIC/PAIC 2018-2019

Desse modo, as seguintes etapas serão adotadas para a realização deste projeto:
A. Revisão da literatura sobre o uso de métricas de software e da aplicação da MDE;
B. Seleção e teste das métricas de software em um ambiente controlado a fim de garantir a
precisão dessas;
C. Implementação das técnicas selecionadas no ​CodeBench ​a fim da aplicação rápida das
métricas de software;
D. Início da fase de classificação a partir da MDE;
E. Análise estatística da precisão apresentada pela abordagem das métricas de software e da
classificação;
F. Aplicação das técnicas estabelecidas nas turmas novas;
G. Análise final da precisão apresentada pelas técnicas entre os anos;

Conforme a Resolução CNS 510/2016, não é necessário submeter esta proposta de pesquisa
ao Comitê de Ética em Pesquisa (CEP) pois envolve “pesquisa com bancos de dados, cujas
informações são agregadas, sem possibilidade de identificação individual”.

5. Referências

BAKER, R. and YACEF K. (2009), “The State of Educational Data Mining in 2009: A Review
and Future Visions.” JEDM -Journal of Educational Data Mining, 2009

CARVALHO, Leandro S. G.; OLIVEIRA, David. ; GADELHA, Bruno. Juiz online como
ferramenta de apoio a uma metodologia de ensino híbrido em programação. In: Simpósio
Brasileiro de Informática na Educação (SBIE), 2016, Uberlândia. Congresso Brasileiro de
Informática na Educação (CBIE). 2016.

CARVALHO, Leandro S.; OLIVEIRA, David B. F.; GADELHA, Bruno F. Juiz online como
ferramenta de apoio a uma metodologia de ensino híbrido em programação. In: Simpósio
Brasileiro de informática na educação. 2016.

CodeBench. Disponível em <codebench.icomp.ufam.edu.br>. Último acesso em 18 abr. 2018.

ELNAFFAR, Said. Using Software Metrics to Predict the Difficulty of Code Writing Questions.
In: IEEE Global Engineering Education Conference (EDUCON). 2016

Feeper <feeper.unisinos.br>. Último acesso em 18 abr. 2018.


UNIVERSIDADE FEDERAL DO AMAZONAS
INSCRIÇÃO DE PROJETOS PARA O PIBIC/PAIC 2018-2019

LE, Nguyen Thinh; PINKWART, Niels. Towards a Classification for Programming Exercises.
In: 2nd Workshop on AI-supported Education for Computer Science at the 12th International
Conference on Intelligent Tutoring, Systems (ITS). 2014.

MASRI, Yasmine H. El. et al. Predicting item difculty of science national curriculum tests: the
case of key stage 2 assessments. In: The Curriculum Journal. 2016.

McCABE, Thomas J. A Complexity Measure. In: IEEE Transactions on Software Engineering.


1976.

PAZ, Josende Fábio; CAZELLA, Silvio César. Identificando o perfil de evasão de alunos de
graduação através da Mineração de dados Educacionais: um estudo de caso de uma
Universidade Comunitária. In: Anais dos Workshops do VI Congresso Brasileiro de Informática
na Educação. 2017.

PEREIRA, Filipe D.; OLIVEIRA, Elaine H. T.; OLIVEIRA, David F. Predição de Zona de
Aprendizagem de Alunos de Introdução à Programação em Ambientes de Correção Automática
de Código. In: Anais do XXVIII Simpósio Brasileiro de Informática na Educação. 2017.

Run Codes. <we.run.codes> . Último acesso em 18 abr. 2018.

SHEARD, Judy el al. Exploring Programming Assessment Instruments: A Classification


Scheme for Examination Questions. In: ICER ‘11, Proceedings of the seventh international
workshop on Computing education research, pages 33-38. 2011.

The Huxley. ​<​www.thehuxley.com>. Último acesso em 18 abr. 2018.

URI Online Judge. Disponível em <urionlinejudge.com.br.>. Último acesso em 18 abr. 2018.

WHALLEY, Jacqueline; KASTO, Nadia. How difficult are novice code writing tasks? A
software metrics approach. In: Proceedings of the Sixteenth Australasian Computing Education
Conference (ACE2014), Auckland, New Zealand. 2014.

WHALLEY, Jacqueline; KASTO, Nadia. Measuring the difficulty of code comprehension tasks
using software metrics. In: Fifteenth Australasian Computing Education Conference
(ACE2013). 2013.
UNIVERSIDADE FEDERAL DO AMAZONAS
INSCRIÇÃO DE PROJETOS PARA O PIBIC/PAIC 2018-2019

6. Cronograma de Atividades

Nº Descrição A​go Set Out Nov Dez Jan Fev Mar Abr Mai Jun Jul
2018 2019
1 Revisão da literatura X
2 Seleção e teste das métricas
X X
de software
3 Implementação das métricas
X X
de software no ACAC
4 Relatório intermediário X
5 Uso da MDE para a
X X X X X X X X
classificação
6 Análise estatística da
X X X X X X X
predição e da classificação
7 Aplicação das técnicas em
X X X X
turmas novas
8 Análise da precisão do grau
X
de dificuldade calculado
9 Relatório final X X

8. MATERIAIS (VÁLIDO UNICAMENTE PARA ITENS NÃO LISTADOS NA PÁGINA DE


INSCRIÇÃO ​ON LINE​)

SOMENTE VÁLIDO no caso de haver inserido “Outros itens - ...” em Materiais NA


INSCRIÇÃO ​ON LINE. E​specificar itens de materiais aqui.
UNIVERSIDADE FEDERAL DO AMAZONAS
INSCRIÇÃO DE PROJETOS PARA O PIBIC/PAIC 2018-2019

Você também pode gostar