Mostrar registro simples

dc.creatorKummer Neto, Alberto Francisco
dc.date.accessioned2021-07-13T17:58:37Z
dc.date.available2021-07-13T17:58:37Z
dc.date.issued2017-05-19
dc.identifier.urihttp://repositorio.ufsm.br/handle/1/21411
dc.description.abstractProgramming 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.eng
dc.languageporpor
dc.publisherUniversidade Federal de Santa Mariapor
dc.rightsAttribution-NonCommercial-NoDerivatives 4.0 International*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/4.0/*
dc.subjectAutomatização de processospor
dc.subjectAnálise estática de códigopor
dc.subjectVisualização integrada de resultadospor
dc.subjectProcess automationeng
dc.subjectStatic code analysiseng
dc.subjectIntegrated view of resultseng
dc.titleExploração de análises automatizadas de repositórios de códigos para feedback frequente a alunos de programaçãopor
dc.title.alternativeProviding continuous feedback to programming students through automated analysis of source code repositorieseng
dc.typeDissertaçãopor
dc.description.resumoProgramaçã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.por
dc.contributor.advisor1Charao, Andrea Schwertner
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/8251676116103188por
dc.contributor.referee1Guerra, Eduardo Martins
dc.contributor.referee2Augustin, Iara
dc.creator.Latteshttp://lattes.cnpq.br/7971691202189808por
dc.publisher.countryBrasilpor
dc.publisher.departmentCiência da Computaçãopor
dc.publisher.initialsUFSMpor
dc.publisher.programPrograma de Pós-Graduação em Ciência da Computaçãopor
dc.subject.cnpqCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOpor
dc.publisher.unidadeCentro de Tecnologiapor


Arquivos deste item

Thumbnail
Thumbnail

Este item aparece na(s) seguinte(s) coleção(s)

Mostrar registro simples

Attribution-NonCommercial-NoDerivatives 4.0 International
Exceto quando indicado o contrário, a licença deste item é descrito como Attribution-NonCommercial-NoDerivatives 4.0 International