Uma abordagem para pontuação de exercícios de programação baseada em análise estática de código
Autor(a) principal: | |
---|---|
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 |