Análise de aprendizagem a partir de códigos-fontes e uma proposta de seleção automática de métricas de avaliação / Analysis of learning from source-codes and a proposal for automatic selection of evaluation metrics

Márcia Gonçalves de Oliveira, Ádler Oliveira Silva Neves, Ádler Oliveira Silva Neves, Mônica Ferreira Silva Lopes, Mônica Ferreira Silva Lopes, Andreângelo da Paixão Patuzzo, Andreângelo da Paixão Patuzzo


Este trabalho apresenta uma revisão de soluções automatizadas de análise da aprendizagem de programação a partir de códigos-fontes. Estendendo as propostas apresentadas nesse estudo, propomos uma estratégia tecnológica de análise quantitativa da aprendizagem de programação a partir de informações de códigos-fontes mapeadas em um cluster de métricas de software correlacionadas acima de um índice. A contribuição desta proposta para a aprendizagem de programação é auxiliar o trabalho de avaliação de professores de programação para que melhor compreendam as dificuldades de aprendizagem de seus alunos e reconheçam, a partir de um conjunto representativo de variáveis, as dificuldades de aprendizagem e habilidades de programação.




Códigos de Programação, seleção de métricas, análise de aprendizagem


Benford, S. D., Burke, E. K., Foxley, E., and Higgins, C. A. (1995). The Ceilidh system for the automatic grading of students on programming courses. In Proceedings of the 33rd annual on Southeast regional conference, ACM-SE 33, pages 176–182, New York, NY, USA. ACM.

Berry, R. E. and Meekings, B. A. (1985). A style analysis of c programs. Communications of the ACM, 28(1):80–88.

Binkley, D. (2007). Source code analysis: A road map. In Future of Software Engineering, 2007. FOSE’07, pages 104–119. IEEE.

Blikstein, P., Worsley, M., Piech, C., Sahami, M., Cooper, S., and Koller, D. (2014). Programming pluralism: Using learning analytics to detect patterns in the learning of computer programming. Journal of the Learning Sciences, 23(4):561–599.

Curtis, B., Sheppard, S. B., and Milliman, P. (1979a). Third time charm: Stronger predic- tion of programmer performance by software complexity metrics. In Proceedings of the 4th International Conference on Software Engineering, ICSE ’79, pages 356–360, Piscataway, NJ, USA. IEEE Press.

Curtis, B., Sheppard, S. B., Milliman, P., Borst, M., and Love, T. (1979b). Measuring the psychological complexity of software maintenance tasks with the halstead and mccabe metrics. IEEE Transactions on software engineering, (2):96–104.

Gerdes, A., Jeuring, J. T., and Heeren, B. J. (2010). Using strategies for assessment of programming exercises. In Proceedings of the 41st ACM technical symposium on Com- puter science education, SIGCSE ’10, pages 441–445, New York, NY, USA. ACM.

Halstead, M. H. (1977). Elements of Software Science (Operating and programming systems series). Elsevier Science Inc., New York, NY, USA.

Hung, S.-l., Kwok, L.-f., and Chung, A. (1993). New metrics for automated programming assessment. In Proceedings of the IFIP WG3.4/SEARCC (SRIG on Education and Training) Working Conference on Software Engineering Education, pages 233–243, Amsterdam, The Netherlands, The Netherlands. North-Holland Publishing Co.

Kumar, V., Boulanger, D., Seanosky, J., Panneerselvam, K., Somasundaram, T. S., et al. (2014). Competence analytics. Journal of Computers in Education, 1(4):251–270.

Mengel, S. A. and Ulans, J. (1998). Using verilog logiscope to analyze student programs. In Frontiers in Education Conference, 1998. FIE’98. 28th Annual, volume 3, pages 1213–1218. IEEE.

Naude, K. A., Greyling, J. H., and Vogts, D. (2010). Marking student programs using graph similarity. Computers & Education, 54(2):545 – 561.

Neves, A., Oliveira, M., França, H., Lopes, M., Reblin, L., and Oliveira, E. (2017a). Pcodigo II: O sistema de diagnóstico da aprendizagem de programação por métricas de software. In Anais dos Workshops do Congresso Brasileiro de Informática na Educa- ção, volume 6, page 339.

Neves, A., Reblin, L., França, H., Lopes, M., Oliveira, M., and Oliveira, E. (2017b). Mapeamento automático de perfis de estudantes em métricas de software para análise de aprendizagem de programação. In Brazilian Symposium on Computers in Education (Simpósio Brasileiro de Informática na Educação-SBIE), volume 28, page 1337.

Novais, D., Pereira, M. J., and Henriques, P. R. (2016). Profile detection through source code static analysis. In 5th Symposium on Languages, Applications and Technologies (SLATE’16), volume 51, pages 1–13. OASICS.

Oliveira, M. (2016). As tecnologias de análise de aprendizagem e os desafios de prever desempenhos de estudantes de programação. In XIo DesafIE – Workshop de Desafios da Computação Aplicada à Educação, Porto Alegre - RS. CSBC 2016.

Oliveira, M., França, H., Neves, A., Lopes, M., and Silva, A. C. (2017a). Instrumentos de visualização da informação para avaliação diagnóstica em curso de programação a distância. In Anais do Workshop de Informática na Escola, volume 23, page 452.

Oliveira, M., Neves, A., Lopes, M. F. S., Medeiros, H., Andrade, M. B., and Reblin, L. (2017b). Um curso de programação a distância com metodologias ativas e análise de aprendizagem por métricas de software. RENOTE, 15(1).

Oliveira, M., Nogueira, Araújo, M., and Oliveira, E. (2015). Sistema de apoio à prática assistida de programação por execução em massa e análise de programas. In CSBC 2015-Workshop de Educação em Informática (WEI), Recife-PE.

Oliveira, M., Souza, M., Reblin, L., and Oliveira, E. (2018). Reconhecimento automático de representações de rubricas em agrupamentos de soluções de exercícios de programação. Revista Brasileira de Informática na Educação, 26(2).

Oliveira, M. G., Ciarelli, P. M., and Oliveira, E. (2013). Recommendation of program- ming activities by multi-label classification for a formative assessment of students. Expert Systems with Applications, 40(16):6641–6651.

Oliveira, M. G. and Oliveira, E. (2015). Abordagens, práticas e desafios da avaliação automática de exerc’icios de programação. In 4o DesafIE – Workshop de Desafios da Computação Aplicada à Educação, Recife. CSBC 2015.

Rahman, K. A., Ahmad, S., Nordin, M. J., and Maklumat, F. T. D. S. (2008). The design of an automated c programming assessment using pseudo-code comparison technique.

Raphael, H. and Carrara, K. (2002). Avaliação sob exame. Autores Associados, Campinas.

Rees, M. J. (1982). Automatic assessment aids for pascal programs. SIGPLAN Not., 17:33–42.

Schaeffer, S. E. (2007). Graph clustering. Computer science review, 1(1):27–64. Truong, N., Roe, P., and Bancroft, P. (2004). Static analysis of students’ java programs.

In Proceedings of the Sixth Australasian Conference on Computing Education-Volume

, pages 317–325. Australian Computer Society, Inc.

Wu, W., Li, G., Sun, Y., Wang, J., and Lai, T. (2007). AnalyseC: A Framework for Assessing Students’ Programs at Structural and Semantic Level. In Control and Automation, 2007. ICCA 2007. IEEE International Conference on, pages 742 –747.

Xu, S. and Chee, Y. S. (2003). Transformation-based diagnosis of student programs for programming tutoring systems. IEEE Transactions on Software Engineering, 29:360– 384.


  • There are currently no refbacks.