Detectando diferenças significativas entre programas como auxílio ao aprendizado colaborativo de programação

  • Eustáquio São José de Faria PUC-Minas
  • Juan Manuel Adán Coello PUC-Campinas

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.

Palavras-chave: Diferenças significativas de programas, aprendizado colaborativo de programação, qualidade de programa de computador, métricas de software

Referências

BERRY, R.E. and MEEKINGS, B.A.E. (1985) "A Style Analysis of C Programs", communications of the ACM, volume 28, issue 1, january, p. 80-88.

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.
Publicado
31/07/2004
FARIA, Eustáquio São José de; COELLO, Juan Manuel Adán. Detectando diferenças significativas entre programas como auxílio ao aprendizado colaborativo de programação. In: WORKSHOP SOBRE EDUCAÇÃO EM COMPUTAÇÃO (WEI), 12. , 2004, Salvador/BA. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2004 . p. 106-116. ISSN 2595-6175.