Detectando diferenças significativas entre programas como auxílio ao aprendizado colaborativo de programação
Resumo
A idéia de analisar programas de computador construídos por alunos para encontrar diferenças significativas surge como apoio ao aprendizado colaborativo de programação, seguindo as idéias neopiagetianas da teoria do conflito sócio-cognitivo. Para tanto, faz-se necessária uma análise dos programas para computar métricas que possam indicar o nível de experiência e habilidade do programador em resolver problemas em uma linguagem pré-definida. Sugerimos uma comparação entre os programas analisados a fim de detectar diferenças significativas entre eles. Os autores de programas que apresentam diferenças significativas podem então trocar os seus programas para que sejam apreciados e sirvam de exemplo e contra-exemplo de boas e más práticas de programação. Neste artigo vamos apresentar algumas métricas de qualidade de programas e propor a construção de um avaliador para programas escritos em linguagem C, chamado VDSP – Verificador de Diferenças Significativas em Programas.
Referências
CONSTANTINO-GONZÁLEZ, M.A. and SUTHERS, D.D. (2000) “A Coached Collaborative Learning Environment for Entity-Relationship Modeling”, In: Intelligent Tutoring Systems, proceedings of the 5th International Conference (ITS 2000), G. Gauthier, C. Frasson and K. Van Lehn (Eds.), Springer-Verlag, p. 325-333.
HUNG, S., KWORK, L., and CHAN, R. (1993) "Automatic Program Assessment", Computers and Education, volume 20, issue 2, p. 183-190.
JACKSON, David. (1996) “A Software System for Grading Student Computer Programs”, Computers and Education, vol. 27, issue 314, p. 171–180.
JACKSON, David. (2000) “A Semi-Automated Approach to Online Assessment”, iTiCSE 2000, Helsinki, Finland, july, p. 164-167.
LÉVY, Pierre. A Inteligência Coletiva, 2ª ed, Loyola, 1999.
MENGEL, Susan A. and YERRAMILLI, Vinay. (1999) “A Case Study Of The Static Analysis Of The Quality Of Novice Student Programs”, SIGCSE’99, New Orleans, LA, USA, march, p. 78-82.
OMAN, Paul W. and COOK, Curtis R. (1990) “A Taxonomy For Programming Style”, ACM, may, p. 244-250.
PROULX, V.K. (2000) “Programming Patterns and Design Patterns in the Introductory Computer Science Course”, proc. of the 31st SIGCSE, Austin, TX, USA, march, p. 7-12.
PURAO, Sandeep and VAISHNAVI, Vijay. (2003) “Product Metrics for Object-Oriented Systems”, ACM Computing Surveys, vol. 35, number 2, june, p. 191-221.
SANTAROSA, Lucila Costi. (1999) “Criação de Ambientes de Aprendizagem Colaborativa”, SBIE – X, Curitiba/PR, novembro.
SCHORSCH, Tom. (1995) “Cap: An Automated Self-Assessment Tool To Check Pascal Programs For Syntax, Logic And Style Errors”, SIGCSE’95, Nashville, TN, USA, march, p. 168-172.
SOMMERVILLE, Ian. “Engenharia de Software”. 6ª ed., Addison Wesley, 2003.
TOBAR, Carlos Miguel, GARCIA ROSA, João Luís, ADÁN COELLO, Juan Manuel and PANNAIN, Ricardo. (2001) “Uma Arquitetura de Ambiente Colaborativo para o Aprendizado de Programação”, SBIE – XII, Vitória/ES, novembro.
TOSCANI, Laira Vieira and VELOSO, Paulo A. S. (2001) “Complexidade de Algoritmos – Análise, Projeto e Métodos”, número 13, Sagra Luzzatto, 2001.
XENOS, M., STAVRINOUDIS, D., ZIKOULI, K. & CHRISTODOULAKIS, D. (2000) “Object-oriented metrics – a survey”, proc. of the FESMA - Federation of European Software Measurement Associations, Madrid, Spain, p. 1-10.
