Exploração de análises automatizadas de repositórios de códigos para feedback frequente a alunos de programação

Detalhes bibliográficos
Ano de defesa: 2017
Autor(a) principal: Kummer Neto, Alberto Francisco
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
dARK ID: ark:/26339/0013000017h7m
Idioma: por
Instituição de defesa: Universidade Federal de Santa Maria
Brasil
Ciência da Computação
UFSM
Programa de Pós-Graduação em Ciência da Computação
Centro de Tecnologia
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://repositorio.ufsm.br/handle/1/21411
Resumo: Programming is a difficult subject, both to teach and learn. Thus, learning difficulties are common between CS students, commonly by the abstract nature of this subject. This concern is reinforced by its lenghty literature, and several studies show its close relation with failure and evasion rates in related undergraduate courses. The first papers of this subject date from 80’s, and several authors emphasize its importance due to its great affect to students formation process. Within the literature, it is possible to identify that “reactive” approaches gained more attention. This kind of discussions addresses very specific issues in programming of teaching-learning process, offering regular-shaped solutions (known as pedagogical patterns) to some problems. A pedadogical pattern suggests the capture and report of good teaching and learning practices, and emphasizes aspects such as context, forces, weakenesses, resources e consequences. Some pedadogical patterns discuss methodologies about how to keep track of student advances. The tracking activity could be overwhelming to teachers, as its complexity and time requirements grows with the classroom size. In general, teachers keep track of students progress through practice activities, which require that students to write some code to solve a problem specified by the teacher. Thus, a thorough analysis of students source code could indicate the learning defficiencies of some programmimg subjects. Practice activities also allow the use of tools to perform automatic code analysis, which could free some teacher time to more significant activities that might help in classes. This work introduces a tool to automate the analysis of source code repositories of programming students employing static code analysis tools. The proposed method suggest that all didactic activities be developed inside git repositories, and the publishing of solutions might be done using hosting servers like Github and Bitbucket, allowing the simultaneous analysis of several source code repositories of students of a programming class. It also aggregates the result of such analysis into a single report that can be viewed through a integrated user interface. As it is about the automation of a process, the tool allows the optimization of instructor time to evaluate students progress during the development of practical activities. This optimization reflects on a quick feedback to students as well, allowing a anticipated feedback to student about their work-in-progress solutions. Such feedback enables the improvement of their implementations before activities due date. The proposed approach has a additional gain of reinforce the usage of version control systems, a generally overlooked topic of CS courses. The conducted experiments showed that such approach is valid, as it gives evidences about students training. The teachers who participaded of study cases reported a strenghten engagement of students in classroom activities, as verified by the frequent requests of access to to detection reports compiled with the method.
id UFSM_d3ffcc20cf3965360afe2555bde4d038
oai_identifier_str oai:repositorio.ufsm.br:1/21411
network_acronym_str UFSM
network_name_str Manancial - Repositório Digital da UFSM
repository_id_str
spelling Exploração de análises automatizadas de repositórios de códigos para feedback frequente a alunos de programaçãoProviding continuous feedback to programming students through automated analysis of source code repositoriesAutomatização de processosAnálise estática de códigoVisualização integrada de resultadosProcess automationStatic code analysisIntegrated view of resultsCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOProgramming is a difficult subject, both to teach and learn. Thus, learning difficulties are common between CS students, commonly by the abstract nature of this subject. This concern is reinforced by its lenghty literature, and several studies show its close relation with failure and evasion rates in related undergraduate courses. The first papers of this subject date from 80’s, and several authors emphasize its importance due to its great affect to students formation process. Within the literature, it is possible to identify that “reactive” approaches gained more attention. This kind of discussions addresses very specific issues in programming of teaching-learning process, offering regular-shaped solutions (known as pedagogical patterns) to some problems. A pedadogical pattern suggests the capture and report of good teaching and learning practices, and emphasizes aspects such as context, forces, weakenesses, resources e consequences. Some pedadogical patterns discuss methodologies about how to keep track of student advances. The tracking activity could be overwhelming to teachers, as its complexity and time requirements grows with the classroom size. In general, teachers keep track of students progress through practice activities, which require that students to write some code to solve a problem specified by the teacher. Thus, a thorough analysis of students source code could indicate the learning defficiencies of some programmimg subjects. Practice activities also allow the use of tools to perform automatic code analysis, which could free some teacher time to more significant activities that might help in classes. This work introduces a tool to automate the analysis of source code repositories of programming students employing static code analysis tools. The proposed method suggest that all didactic activities be developed inside git repositories, and the publishing of solutions might be done using hosting servers like Github and Bitbucket, allowing the simultaneous analysis of several source code repositories of students of a programming class. It also aggregates the result of such analysis into a single report that can be viewed through a integrated user interface. As it is about the automation of a process, the tool allows the optimization of instructor time to evaluate students progress during the development of practical activities. This optimization reflects on a quick feedback to students as well, allowing a anticipated feedback to student about their work-in-progress solutions. Such feedback enables the improvement of their implementations before activities due date. The proposed approach has a additional gain of reinforce the usage of version control systems, a generally overlooked topic of CS courses. The conducted experiments showed that such approach is valid, as it gives evidences about students training. The teachers who participaded of study cases reported a strenghten engagement of students in classroom activities, as verified by the frequent requests of access to to detection reports compiled with the method.Programação é uma habilidade difícil de ensinar e aprender, e as dificuldades de aprendizado são recorrentes entre alunos de Computação. Tal dificuldade decorre de sua natureza abstrata, fato que é corroborado pela extensa literatura sobre o assunto, e está diretamente relacionado aos índices de reprovação e evasão dos cursos da área. As primeiras discussões sobre o assunto datam da década de 80, e diversas trabalhos ressaltam a importância do tópico dado o seu efeito abrangente em todo o período de formação de um aluno. É possível identificar uma linha de discussões sobre metodologias para o ensino-aprendizagem de programação que seguem uma abordagens reativa, que sugerem soluções para problemas específicos identificados em turmas de programação. Tal abordagem é conhecida como padrão pedagógico, e tem como objetivo a caracterização de um problema pontual e sua respectiva solução, e cobre aspectos como contexto, forças, fraquezas, recursos e consequências. Na linha de discussão de padrões pedagógicos, há trabalhos afirmando que acompanhar o progresso dos alunos, individualmente, é um dos maiores desafios enfrentados pelos professores de programação, visto que é uma atividade trabalhosa e que demanda muito tempo do educador, e que por vezes mostra-se inviável frente a turmas grandes. Em linhas gerais, o progresso dos alunos costuma ser verificado por meio de atividades práticas de programação, que consistem na elaboração de soluções computacionais para uma série de problemas sugeridos pelo educador. Posteriormente, a análise minuciosa dos códigos dos alunos é capaz de indicar deficiências de aprendizado. A acompanhamento dos alunos por meio de atividades práticas também possibilita o emprego de ferramentas de análise automatizada de código, que potencialmente resulta em uma redução da carga de trabalho do educador, que poderia ser melhor gasto na avaliação de novas estratégias e metodologias de atividades didáticas. Este trabalho propõe uma solução para análise automatizada de repositórios de código de alunos de programação empregando-se ferramentas de análise estática de código. O método proposto sugere que as atividades práticas de programação sejam desenvolvidas dentro de um repositório git fazendo uso de serviços de hospedagem online como Github e Bitbucket, e prevê a análise simultânea de vários repositórios de código de uma turma de programação, agregando os resultados em uma interface de visualização integrada. Por tratar-se da automatização de um processo, o método possibilita um feedback rápido para instrutor e alunos da disciplina, promovendo de um parecer antecipado sobre as soluções das atividades práticas durante o seu desenvolvimento, habilitando a correção das implementações antes do prazo de entrega final das atividades. Adicionalmente, a abordagem estimula a frequente interação com sistemas de controle de versão, exercitando as habilidades dos alunos com esse tipo de ferramenta. Os experimentos conduzidos mostraram que a abordagem é válida, fornecendo indícios ao educador sobre a formação de seus alunos. Os educadores que cederam acesso aos repositórios de código de suas disciplinas relataram o interesse dos alunos que participaram do experimento, que foi verificado pela solicitação de acesso as detecções apontadas pela ferramenta.Universidade Federal de Santa MariaBrasilCiência da ComputaçãoUFSMPrograma de Pós-Graduação em Ciência da ComputaçãoCentro de TecnologiaCharao, Andrea Schwertnerhttp://lattes.cnpq.br/8251676116103188Guerra, Eduardo MartinsAugustin, IaraKummer Neto, Alberto Francisco2021-07-13T17:58:37Z2021-07-13T17:58:37Z2017-05-19info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://repositorio.ufsm.br/handle/1/21411ark:/26339/0013000017h7mporAttribution-NonCommercial-NoDerivatives 4.0 Internationalinfo:eu-repo/semantics/openAccessreponame:Manancial - Repositório Digital da UFSMinstname:Universidade Federal de Santa Maria (UFSM)instacron:UFSM2021-07-14T06:00:37Zoai:repositorio.ufsm.br:1/21411Biblioteca Digital de Teses e Dissertaçõeshttps://repositorio.ufsm.br/PUBhttps://repositorio.ufsm.br/oai/requestatendimento.sib@ufsm.br||tedebc@gmail.com||manancial@ufsm.bropendoar:2021-07-14T06:00:37Manancial - Repositório Digital da UFSM - Universidade Federal de Santa Maria (UFSM)false
dc.title.none.fl_str_mv Exploração de análises automatizadas de repositórios de códigos para feedback frequente a alunos de programação
Providing continuous feedback to programming students through automated analysis of source code repositories
title Exploração de análises automatizadas de repositórios de códigos para feedback frequente a alunos de programação
spellingShingle Exploração de análises automatizadas de repositórios de códigos para feedback frequente a alunos de programação
Kummer Neto, Alberto Francisco
Automatização de processos
Análise estática de código
Visualização integrada de resultados
Process automation
Static code analysis
Integrated view of results
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short Exploração de análises automatizadas de repositórios de códigos para feedback frequente a alunos de programação
title_full Exploração de análises automatizadas de repositórios de códigos para feedback frequente a alunos de programação
title_fullStr Exploração de análises automatizadas de repositórios de códigos para feedback frequente a alunos de programação
title_full_unstemmed Exploração de análises automatizadas de repositórios de códigos para feedback frequente a alunos de programação
title_sort Exploração de análises automatizadas de repositórios de códigos para feedback frequente a alunos de programação
author Kummer Neto, Alberto Francisco
author_facet Kummer Neto, Alberto Francisco
author_role author
dc.contributor.none.fl_str_mv Charao, Andrea Schwertner
http://lattes.cnpq.br/8251676116103188
Guerra, Eduardo Martins
Augustin, Iara
dc.contributor.author.fl_str_mv Kummer Neto, Alberto Francisco
dc.subject.por.fl_str_mv Automatização de processos
Análise estática de código
Visualização integrada de resultados
Process automation
Static code analysis
Integrated view of results
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic Automatização de processos
Análise estática de código
Visualização integrada de resultados
Process automation
Static code analysis
Integrated view of results
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description Programming is a difficult subject, both to teach and learn. Thus, learning difficulties are common between CS students, commonly by the abstract nature of this subject. This concern is reinforced by its lenghty literature, and several studies show its close relation with failure and evasion rates in related undergraduate courses. The first papers of this subject date from 80’s, and several authors emphasize its importance due to its great affect to students formation process. Within the literature, it is possible to identify that “reactive” approaches gained more attention. This kind of discussions addresses very specific issues in programming of teaching-learning process, offering regular-shaped solutions (known as pedagogical patterns) to some problems. A pedadogical pattern suggests the capture and report of good teaching and learning practices, and emphasizes aspects such as context, forces, weakenesses, resources e consequences. Some pedadogical patterns discuss methodologies about how to keep track of student advances. The tracking activity could be overwhelming to teachers, as its complexity and time requirements grows with the classroom size. In general, teachers keep track of students progress through practice activities, which require that students to write some code to solve a problem specified by the teacher. Thus, a thorough analysis of students source code could indicate the learning defficiencies of some programmimg subjects. Practice activities also allow the use of tools to perform automatic code analysis, which could free some teacher time to more significant activities that might help in classes. This work introduces a tool to automate the analysis of source code repositories of programming students employing static code analysis tools. The proposed method suggest that all didactic activities be developed inside git repositories, and the publishing of solutions might be done using hosting servers like Github and Bitbucket, allowing the simultaneous analysis of several source code repositories of students of a programming class. It also aggregates the result of such analysis into a single report that can be viewed through a integrated user interface. As it is about the automation of a process, the tool allows the optimization of instructor time to evaluate students progress during the development of practical activities. This optimization reflects on a quick feedback to students as well, allowing a anticipated feedback to student about their work-in-progress solutions. Such feedback enables the improvement of their implementations before activities due date. The proposed approach has a additional gain of reinforce the usage of version control systems, a generally overlooked topic of CS courses. The conducted experiments showed that such approach is valid, as it gives evidences about students training. The teachers who participaded of study cases reported a strenghten engagement of students in classroom activities, as verified by the frequent requests of access to to detection reports compiled with the method.
publishDate 2017
dc.date.none.fl_str_mv 2017-05-19
2021-07-13T17:58:37Z
2021-07-13T17:58:37Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://repositorio.ufsm.br/handle/1/21411
dc.identifier.dark.fl_str_mv ark:/26339/0013000017h7m
url http://repositorio.ufsm.br/handle/1/21411
identifier_str_mv ark:/26339/0013000017h7m
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivatives 4.0 International
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivatives 4.0 International
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Santa Maria
Brasil
Ciência da Computação
UFSM
Programa de Pós-Graduação em Ciência da Computação
Centro de Tecnologia
publisher.none.fl_str_mv Universidade Federal de Santa Maria
Brasil
Ciência da Computação
UFSM
Programa de Pós-Graduação em Ciência da Computação
Centro de Tecnologia
dc.source.none.fl_str_mv reponame:Manancial - Repositório Digital da UFSM
instname:Universidade Federal de Santa Maria (UFSM)
instacron:UFSM
instname_str Universidade Federal de Santa Maria (UFSM)
instacron_str UFSM
institution UFSM
reponame_str Manancial - Repositório Digital da UFSM
collection Manancial - Repositório Digital da UFSM
repository.name.fl_str_mv Manancial - Repositório Digital da UFSM - Universidade Federal de Santa Maria (UFSM)
repository.mail.fl_str_mv atendimento.sib@ufsm.br||tedebc@gmail.com||manancial@ufsm.br
_version_ 1847153507592830976