Uma abordagem para pontuação de exercícios de programação baseada em análise estática de código

Detalhes bibliográficos
Autor(a) principal: Vieira, Victor Souza
Data de Publicação: 2022
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional da UFS
Texto Completo: https://ri.ufs.br/jspui/handle/riufs/18453
Resumo: With the massive increase of students in introductory computing courses taking place in recent decades, the work of teachers to correct their exercises has increased significantly. With the creation of automatic source code analyzers, it became possible to evaluate and analyze source code in a static, dynamic and hybrid way (it uses both static analysis and as dynamic). Online judges assess whether, during source code execution, all test cases pass or fail. If approved, the exercise is rated as a maximum grade and, if not, a minimum grade. In this way, they can be classified as dynamic code analyzers. This approach often ends up frustrating beginner students, as only the final result of the program is evaluated, that is, without considering the quality of the solution. In addition, teachers need to manually evaluate the source code to identify situations where they should alert the student of poor quality of their source code. As a solution, so that there is a better evaluation of these students, a tool based on static code analysis is proposed for the Python programming language, which scores, based on rules that can be defined by the teacher, the code written by the students, thus giving better feedback for the evaluation result.
id UFS-2_8ac263a3828fcfb700f6594245760544
oai_identifier_str oai:ufs.br:riufs/18453
network_acronym_str UFS-2
network_name_str Repositório Institucional da UFS
repository_id_str
spelling Vieira, Victor SouzaCosta Neto, Alberto2023-10-04T12:05:46Z2023-10-04T12:05:46Z2022-09-12VIEIRA, Victor Souza. Uma abordagem para pontuação de exercícios de programação baseada em análise estática de código. São Cristóvão, 2022. Monografia (graduação em Ciência da Computação) – Departamento de Computação, Centro de Ciências Exatas e Tecnologia, Universidade Federal de Sergipe, São Cristóvão, SE, 2022https://ri.ufs.br/jspui/handle/riufs/18453With the massive increase of students in introductory computing courses taking place in recent decades, the work of teachers to correct their exercises has increased significantly. With the creation of automatic source code analyzers, it became possible to evaluate and analyze source code in a static, dynamic and hybrid way (it uses both static analysis and as dynamic). Online judges assess whether, during source code execution, all test cases pass or fail. If approved, the exercise is rated as a maximum grade and, if not, a minimum grade. In this way, they can be classified as dynamic code analyzers. This approach often ends up frustrating beginner students, as only the final result of the program is evaluated, that is, without considering the quality of the solution. In addition, teachers need to manually evaluate the source code to identify situations where they should alert the student of poor quality of their source code. As a solution, so that there is a better evaluation of these students, a tool based on static code analysis is proposed for the Python programming language, which scores, based on rules that can be defined by the teacher, the code written by the students, thus giving better feedback for the evaluation result.Com o aumento massivo de estudantes em cursos introdutórios de computação ocorrendo nas últimas décadas, o trabalho dos professores para corrigir seus execícios aumentou significativamente. Com a criação dos analisadores automáticos de código-fonte tornou-se possível avaliar e analisar códigos-fonte de forma estática, dinâmica e híbrida (utiliza tanto análise estática quanto dinâmica). Juízes Online avaliam se, durante a execução do código-fonte, todos os casos de teste foram ou não aprovados. Caso aprovados, o exercício recebe nota máxima e, caso contrário, nota mínima. Desta forma, podem ser enquadrados como analisadores dinâmicos de código. Esta abordagem muitas das vezes acaba frustrando os alunos iniciantes, pois apenas é avaliado o resultado final do programa, isto é, sem considerar a qualidade da solução. Além disso, os professores precisam avaliar manualmente o código-fonte para identificar situações em que deveria alertar o aluno de má qualidade do seu código-fonte. Como solução, para que haja uma melhor avaliação destes estudantes, é proposta uma ferramenta baseada em análise estática de código, para a linguagem de programação Python, que pontua, com base em regras que podem ser definidas pelo professor, o código escrito pelos alunos, dando assim um melhor feedback para o resultado da avaliação.São Cristóvão, SEporCiência da computaçãoEnsino superior (UFS)Análise estáticaLinguagem de programação PythonCódigo-fonteStatic analysisPython programming languageSource codeCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::LINGUAGENS DE PROGRAMACAOUma abordagem para pontuação de exercícios de programação baseada em análise estática de códigoinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal de Sergipe (UFS)DCOMP - Departamento de Computação – Ciência da Computação – São Cristóvão - Presencialreponame:Repositório Institucional da UFSinstname:Universidade Federal de Sergipe (UFS)instacron:UFSinfo:eu-repo/semantics/openAccessLICENSElicense.txtlicense.txttext/plain; charset=utf-81475https://ri.ufs.br/jspui/bitstream/riufs/18453/1/license.txt098cbbf65c2c15e1fb2e49c5d306a44cMD51ORIGINALVictor_Souza_Vieira.pdfVictor_Souza_Vieira.pdfapplication/pdf1265497https://ri.ufs.br/jspui/bitstream/riufs/18453/2/Victor_Souza_Vieira.pdf6ab4e6a6a5d24c6f53392af4f04cab86MD52riufs/184532023-10-04 09:05:51.572oai:ufs.br:riufs/18453TElDRU7Dh0EgREUgRElTVFJJQlVJw4fDg08gTsODTy1FWENMVVNJVkEKCkNvbSBhIGFwcmVzZW50YcOnw6NvIGRlc3RhIGxpY2Vuw6dhLCB2b2PDqiAobyBhdXRvcihlcykgb3UgbyB0aXR1bGFyIGRvcyBkaXJlaXRvcyBkZSBhdXRvcikgY29uY2VkZSDDoCBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBTZXJnaXBlIG8gZGlyZWl0byBuw6NvLWV4Y2x1c2l2byBkZSByZXByb2R1emlyIHNldSB0cmFiYWxobyBubyBmb3JtYXRvIGVsZXRyw7RuaWNvLCBpbmNsdWluZG8gb3MgZm9ybWF0b3Mgw6F1ZGlvIG91IHbDrWRlby4KClZvY8OqIGNvbmNvcmRhIHF1ZSBhIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIFNlcmdpcGUgcG9kZSwgc2VtIGFsdGVyYXIgbyBjb250ZcO6ZG8sIHRyYW5zcG9yIHNldSB0cmFiYWxobyBwYXJhIHF1YWxxdWVyIG1laW8gb3UgZm9ybWF0byBwYXJhIGZpbnMgZGUgcHJlc2VydmHDp8Ojby4KClZvY8OqIHRhbWLDqW0gY29uY29yZGEgcXVlIGEgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgU2VyZ2lwZSBwb2RlIG1hbnRlciBtYWlzIGRlIHVtYSBjw7NwaWEgZGUgc2V1IHRyYWJhbGhvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIGUgcHJlc2VydmHDp8Ojby4KClZvY8OqIGRlY2xhcmEgcXVlIHNldSB0cmFiYWxobyDDqSBvcmlnaW5hbCBlIHF1ZSB2b2PDqiB0ZW0gbyBwb2RlciBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gVm9jw6ogdGFtYsOpbSBkZWNsYXJhIHF1ZSBvIGRlcMOzc2l0bywgcXVlIHNlamEgZGUgc2V1IGNvbmhlY2ltZW50bywgbsOjbyBpbmZyaW5nZSBkaXJlaXRvcyBhdXRvcmFpcyBkZSBuaW5ndcOpbS4KCkNhc28gbyB0cmFiYWxobyBjb250ZW5oYSBtYXRlcmlhbCBxdWUgdm9jw6ogbsOjbyBwb3NzdWkgYSB0aXR1bGFyaWRhZGUgZG9zIGRpcmVpdG9zIGF1dG9yYWlzLCB2b2PDqiBkZWNsYXJhIHF1ZSBvYnRldmUgYSBwZXJtaXNzw6NvIGlycmVzdHJpdGEgZG8gZGV0ZW50b3IgZG9zIGRpcmVpdG9zIGF1dG9yYWlzIHBhcmEgY29uY2VkZXIgw6AgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgU2VyZ2lwZSBvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgbmVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgZGUgcHJvcHJpZWRhZGUgZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3Ugbm8gY29udGXDumRvLgoKQSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBTZXJnaXBlIHNlIGNvbXByb21ldGUgYSBpZGVudGlmaWNhciBjbGFyYW1lbnRlIG8gc2V1IG5vbWUocykgb3UgbyhzKSBub21lKHMpIGRvKHMpIApkZXRlbnRvcihlcykgZG9zIGRpcmVpdG9zIGF1dG9yYWlzIGRvIHRyYWJhbGhvLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIGFsw6ltIGRhcXVlbGFzIGNvbmNlZGlkYXMgcG9yIGVzdGEgbGljZW7Dp2EuIAo=Repositório InstitucionalPUBhttps://ri.ufs.br/oai/requestrepositorio@academico.ufs.bropendoar:2023-10-04T12:05:51Repositório Institucional da UFS - Universidade Federal de Sergipe (UFS)false
dc.title.pt_BR.fl_str_mv Uma abordagem para pontuação de exercícios de programação baseada em análise estática de código
title Uma abordagem para pontuação de exercícios de programação baseada em análise estática de código
spellingShingle Uma abordagem para pontuação de exercícios de programação baseada em análise estática de código
Vieira, Victor Souza
Ciência da computação
Ensino superior (UFS)
Análise estática
Linguagem de programação Python
Código-fonte
Static analysis
Python programming language
Source code
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::LINGUAGENS DE PROGRAMACAO
title_short Uma abordagem para pontuação de exercícios de programação baseada em análise estática de código
title_full Uma abordagem para pontuação de exercícios de programação baseada em análise estática de código
title_fullStr Uma abordagem para pontuação de exercícios de programação baseada em análise estática de código
title_full_unstemmed Uma abordagem para pontuação de exercícios de programação baseada em análise estática de código
title_sort Uma abordagem para pontuação de exercícios de programação baseada em análise estática de código
author Vieira, Victor Souza
author_facet Vieira, Victor Souza
author_role author
dc.contributor.author.fl_str_mv Vieira, Victor Souza
dc.contributor.advisor1.fl_str_mv Costa Neto, Alberto
contributor_str_mv Costa Neto, Alberto
dc.subject.por.fl_str_mv Ciência da computação
Ensino superior (UFS)
Análise estática
Linguagem de programação Python
Código-fonte
topic Ciência da computação
Ensino superior (UFS)
Análise estática
Linguagem de programação Python
Código-fonte
Static analysis
Python programming language
Source code
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::LINGUAGENS DE PROGRAMACAO
dc.subject.eng.fl_str_mv Static analysis
Python programming language
Source code
dc.subject.cnpq.fl_str_mv CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::LINGUAGENS DE PROGRAMACAO
description With the massive increase of students in introductory computing courses taking place in recent decades, the work of teachers to correct their exercises has increased significantly. With the creation of automatic source code analyzers, it became possible to evaluate and analyze source code in a static, dynamic and hybrid way (it uses both static analysis and as dynamic). Online judges assess whether, during source code execution, all test cases pass or fail. If approved, the exercise is rated as a maximum grade and, if not, a minimum grade. In this way, they can be classified as dynamic code analyzers. This approach often ends up frustrating beginner students, as only the final result of the program is evaluated, that is, without considering the quality of the solution. In addition, teachers need to manually evaluate the source code to identify situations where they should alert the student of poor quality of their source code. As a solution, so that there is a better evaluation of these students, a tool based on static code analysis is proposed for the Python programming language, which scores, based on rules that can be defined by the teacher, the code written by the students, thus giving better feedback for the evaluation result.
publishDate 2022
dc.date.issued.fl_str_mv 2022-09-12
dc.date.accessioned.fl_str_mv 2023-10-04T12:05:46Z
dc.date.available.fl_str_mv 2023-10-04T12:05:46Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv VIEIRA, Victor Souza. Uma abordagem para pontuação de exercícios de programação baseada em análise estática de código. São Cristóvão, 2022. Monografia (graduação em Ciência da Computação) – Departamento de Computação, Centro de Ciências Exatas e Tecnologia, Universidade Federal de Sergipe, São Cristóvão, SE, 2022
dc.identifier.uri.fl_str_mv https://ri.ufs.br/jspui/handle/riufs/18453
identifier_str_mv VIEIRA, Victor Souza. Uma abordagem para pontuação de exercícios de programação baseada em análise estática de código. São Cristóvão, 2022. Monografia (graduação em Ciência da Computação) – Departamento de Computação, Centro de Ciências Exatas e Tecnologia, Universidade Federal de Sergipe, São Cristóvão, SE, 2022
url https://ri.ufs.br/jspui/handle/riufs/18453
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.initials.fl_str_mv Universidade Federal de Sergipe (UFS)
dc.publisher.department.fl_str_mv DCOMP - Departamento de Computação – Ciência da Computação – São Cristóvão - Presencial
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFS
instname:Universidade Federal de Sergipe (UFS)
instacron:UFS
instname_str Universidade Federal de Sergipe (UFS)
instacron_str UFS
institution UFS
reponame_str Repositório Institucional da UFS
collection Repositório Institucional da UFS
bitstream.url.fl_str_mv https://ri.ufs.br/jspui/bitstream/riufs/18453/1/license.txt
https://ri.ufs.br/jspui/bitstream/riufs/18453/2/Victor_Souza_Vieira.pdf
bitstream.checksum.fl_str_mv 098cbbf65c2c15e1fb2e49c5d306a44c
6ab4e6a6a5d24c6f53392af4f04cab86
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFS - Universidade Federal de Sergipe (UFS)
repository.mail.fl_str_mv repositorio@academico.ufs.br
_version_ 1802110701019332608