Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Um Estudo Experimental do 40 60 80 Ambiente 100 ProgTest no Ensino de Programação mm 40 Draylson Micael de Souza Nemésio Duarte Freitas Filho Sofia Larissa Costa Ellen Francine Barbosa 60 Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo 120 10 de Abril de 2013 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 1 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Roteiro mm 40 60 80 1 Introdução 2 O Ambiente ProgTest 3 Planejamento e Execução do Experimento 4 Análise dos Resultados 5 Conclusões e Trabalhos Futuros 100 120 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 2 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Introdução Roteiro mm 40 60 80 1 Introdução 2 O Ambiente ProgTest 3 Planejamento e Execução do Experimento 4 Análise dos Resultados 5 Conclusões e Trabalhos Futuros 100 120 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 3 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Introdução Contexto e Motivação mm 40 60 80 100 120 Fundamentos de programação não é um assunto fácil de ser 40 ensinado. Os alunos têm dificuldades em entender os conceitos abstratos de programação. 60 Os alunos têm visões erradas sobre a atividade de programação. 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 4 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Introdução Contexto e Motivação mm 40 60 80 100 120 Experiências têm sugerido a introdução de conceitos de teste 40 conjunto com fundamentos de programação em cursos em introdutórios de ciências de computação. 60 O teste de software requer que os alunos conheçam o comportamento do seus programas. O ensino de teste mais cedo pode ajudar os alunos a se tornarem melhores desenvolvedores e testadores. 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 5 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Introdução Contexto e Motivação mm 40 60 80 100 120 Teste de software também não é um assunto fácil de ser 40 ensinado. Dificuldade em motivar os alunos a realizar uma atividade de teste adequada. 60 Carência de ferramentas de apoio que apoiam o ensino de teste em um nı́vel introdutório. 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 6 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Introdução Contexto e Motivação mm 40 60 80 100 120 ProgTest 40 Submissão e avaliação automática de trabalhos de programação dos alunos. 60 Apoio ao ensino integrado de fundamentos de programação e conceitos básicos de teste de software. 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 7 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Introdução Contexto e Motivação mm 40 60 80 100 120 40 Validações preliminares mostraram que o ambiente é capaz de avaliar adequadamente o trabalho dos alunos Nenhuma validação foi realizada visando avaliar se o apoio da ProgTest realmente contribui para a aprendizagem. 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 8 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Introdução Objetivo mm 40 60 80 100 120 Experimento envolvendo a utilização da ProgTest. 40 Avaliar a influência da ProgTest na aprendizagem. Identificar os principais benefı́cios e dificuldades dos alunos em 60 relação ao uso da ProgTest. 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 9 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação O Ambiente ProgTest Roteiro mm 40 60 80 1 Introdução 2 O Ambiente ProgTest 3 Planejamento e Execução do Experimento 4 Análise dos Resultados 5 Conclusões e Trabalhos Futuros 100 120 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 10 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação O Ambiente ProgTest Visão Geral mm 40 60 80 100 120 40ProgTest é uma ferramenta baseada na web para a A submissão e avaliação automática de trabalhos práticos de programação, baseada em atividades de teste. 60 Provê um feedback apropriado para avaliar o desempenho dos alunos em relação tanto à programação como ao teste. 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 11 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação O Ambiente ProgTest Visão Geral mm 40 60 80 100 120 O professor deve fornecer uma implementação de referência com seu respectivo conjunto de teste. 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 12 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação O Ambiente ProgTest Visão Geral mm 40 60 80 100 120 Da mesma forma, o aluno deve submeter seu programa e seu conjunto de teste. 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 13 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação O Ambiente ProgTest Visão Geral mm 40 60 80 100 120 A ProgTest executa o conjunto de teste do professor contra o programa do professor. 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 14 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação O Ambiente ProgTest Visão Geral mm 40 60 80 100 120 A ProgTest executa o conjunto de teste do aluno contra o programa do aluno. 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 15 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação O Ambiente ProgTest Visão Geral mm 40 60 80 100 120 A ProgTest executa o conjunto de teste do professor contra o programa do aluno. 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 16 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação O Ambiente ProgTest Visão Geral mm 40 60 80 100 120 A ProgTest executa o conjunto de teste do aluno contra o programa do professor. 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 17 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação O Ambiente ProgTest Visão Geral mm 40 60 80 100 120 Através destas execuções, a ProgTest sugere uma nota para o trabalho submetido pelo aluno. 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 18 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação O Ambiente ProgTest Visão Geral mm 40 60 80 100 120 Além de outros relatórios que ajudam os alunos a corrigir os problemas identificados em seus trabalhos. 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 19 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Planejamento e Execução do Experimento Roteiro mm 40 60 80 1 Introdução 2 O Ambiente ProgTest 3 Planejamento e Execução do Experimento 4 Análise dos Resultados 5 Conclusões e Trabalhos Futuros 100 120 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 20 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Planejamento e Execução do Experimento Definição do Estudo Experimental mm 40 60 80 100 120 Objetivo Global: Avaliar se a aprendizagem dos alunos melhora com o apoio do ambiente ProgTest Meta especı́fica: 40 Objeto de estudo: a aprendizagem dos alunos com o apoio da ProgTest. 60 Propósito: validação do ambiente ProgTest Foco: completude e qualidade dos trabalhos desenvolvidos pelos alunos Perspectiva: acadêmica 80 Contexto: alunos de graduação 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 21 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Planejamento e Execução do Experimento Definição do Estudo Experimental mm 40 60 80 100 120 Foco de Qualidade: Qualidade dos trabalhos de programação desenvolvidos pelos alunos Questões: 40 1 Os alunos que utilizam a ProgTest produzem programas com mais qualidade do que aqueles que não utilizam tal ambiente? 602 Os alunos que utilizam a ProgTest produzem casos de teste com mais qualidade do que aqueles que não utilizam tal ambiente? 3 80 10 de Abril de 2013 Os alunos que utilizam a ProgTest realizam atividades de teste e depuração mais completa do que aqueles que não utilizam tal ambiente? 10th Experimental Software Engineering Latin America Workshop 22 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Planejamento e Execução do Experimento Formulação das Hipóteses mm 40 60 80 100 120 400 = O apoio fornecido pela ProgTest não melhora a H aprendizagem dos alunos. H1 = O apoio fornecido pela ProgTest melhora a aprendizagem dos alunos. 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 23 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Planejamento e Execução do Experimento Seleção das Variáveis mm 40 60 80 100 120 Variáveis Independentes 40 Linguagem de programação Linguagem C 60 Ambiente de trabalho Live DVDs pré-configurados 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 24 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Planejamento e Execução do Experimento Seleção das Variáveis mm 40 60 80 100 120 Variáveis Independentes 40 Experiência dos alunos Alunos de Graduação (ICMC/USP) Feedback sobre os trabalhos 60 Aprendizagem Tradicional (sem feedback imediato) Aprendizagem com ProgTest (com feedback imediato) 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 25 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Planejamento e Execução do Experimento Seleção das Variáveis mm 40 60 80 100 120 40 Variáveis Dependentes Qualidade dos programas 60 Qualidade dos conjuntos de teste 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 26 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Planejamento e Execução do Experimento Definição do Estudo Experimental mm 40 60 80 100 120 Métricas 1 40 Completude da Atividade de Depuração 2 Completude da Atividade de Teste 3 Correção do Programa 4 Correção dos Casos de Teste 60 5 Adequação do Programa 6 Adequação do Conjunto de Teste 7 Nota Sugerida pela ProgTest 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 27 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Planejamento e Execução do Experimento Procedimentos mm 40 60 80 100 120 Treinamento Aula de Introdução ao Teste de Software 40 Demonstração do ambiente ProgTest Exercı́cio de programação e teste. 60 Execução Exercı́cio de programação e teste. 80 10 de Abril de 2013 Preenchimento do questionário 10th Experimental Software Engineering Latin America Workshop 28 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Análise dos Resultados Roteiro mm 40 60 80 1 Introdução 2 O Ambiente ProgTest 3 Planejamento e Execução do Experimento 4 Análise dos Resultados 5 Conclusões e Trabalhos Futuros 100 120 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 29 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Análise dos Resultados Dados da Análise mm 40 60 80 100 120 40 Satisfação com a ProgTest Resuldados – Métricas Experiência dos Participantes 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 30 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Análise dos Resultados Satisfação com a ProgTest mm 40 60 80 100 120 Pontos Positivos 40 Facilidade de submissão Apoio na aprendizagem de programação e teste 60 Exibição das linhas de código não executadas Apoio as tarefas de compilação e execução 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 31 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Análise dos Resultados Satisfação com a ProgTest mm 40 60 80 100 120 Pontos Negativos 40 Disposição e forma em que as informações são exibidas Interface apenas em inglês Sugestões 60 Explicações textuais sobre métricas e desempenho do aluno Exibição das saı́das esperadas e obtidas pelos casos de teste 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 32 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Análise dos Resultados Dados da Análise mm 40 60 80 100 120 40 Satisfação com a ProgTest Resuldados – Métricas Experiência dos Participantes 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 33 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Análise dos Resultados Coberturas e Notas da Execução mm 40 60 80 100 120 Tabela: Resultados – Aprendizagem com ProgTest Aluno 40 1 2 3 60 Completude Depuração Completude Teste Correção Programa Adequação Programa Correção Testes Adequação Testes 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% Tabela: Resultados – Aprendizagem Tradicional Aluno Completude Depuração Completude Teste Correção Programa Adequação Programa Correção Testes Adequação Testes 1 2 3 100% 100% 25% 95% 100% 50% 100% 100% 25% 95% 100% 50% 100% 100% 100% 100% 100% 100% 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 34 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Análise dos Resultados Coberturas e Notas da Execução mm 40 60 80 100 120 40 60 80 10 de Abril de 2013 Figura: Coberturas e Notas – Médias 10th Experimental Software Engineering Latin America Workshop 35 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Análise dos Resultados Coberturas e Notas da Execução mm 40 60 80 100 120 40 60 80 10 de Abril de 2013 Figura: Coberturas e Notas – Medianas 10th Experimental Software Engineering Latin America Workshop 36 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Análise dos Resultados Dados da Análise mm 40 60 80 100 120 40 Satisfação com a ProgTest Resuldados – Métricas Experiência dos Participantes 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 37 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Análise dos Resultados Experiência dos Participantes mm 40 60 80 100 120 Tabela: Participantes - Aprendizagem Tradicional Aluno Experiência com Programação Experiência com Teste Dificuldade em Programar Dificuldade em Testar 1 2 3 Especialista Intermediário Especialista Especialista Novato Intermediário Muito Fácil Muito Fácil Fácil Fácil Muito Fácil Médio 40 60 80 10 de Abril de 2013 Tabela: Participantes – Aprendizagem com ProgTest Aluno Experiência com Programação Experiência com Teste Dificuldade em Programar Dificuldade em Testar 1 2 3 Especialista Intermediário Intermediário Intermediário Novato Intermediário Muito Fácil Fácil Muito Fácil Fácil Fácil Muito Fácil 10th Experimental Software Engineering Latin America Workshop 38 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Análise dos Resultados Experiência vs. Nota mm 40 60 80 100 120 Correlação de Spearman 40 60 Aluno Experiência (X ) 1 2 3 4 5 6 3 2 3 3 2 2 Rank de Xi 2 5 2 2 5 5 Nota (Y ) 9.85% 10.00% 5.83% 10.00% 10.00% 10.00% Rank de Yi 5 2.5 6 2.5 2.5 2.5 di di2 -3 2.5 -4 -0.5 2.5 2.5 9 6.25 16 0.25 6.25 6.25 Total 44 Coeficiênte de Correlação (rs ): P 6 d2 6 × 44 rs = 1 − 3 i = 1 − 3 = −0.257142857 n −n 6 −6 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 39 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Análise dos Resultados Experiência vs. Nota mm 40 60 80 100 120 Classificação de |rs | segundo Teste de Rugg Tabela: Teste de Hugg 40 60 Intervalo Significância 0.0 – 0.20 0.21 – 0.40 0.41 – 0.70 0.71 – 0.90 0.91 – 1.0 Correlações nulas Correlações fracas Correlações substanciais Correlações fortes Correlações extremamente fortes |rs | = 0.257142857 80 10 de Abril de 2013 Correlação fraca 10th Experimental Software Engineering Latin America Workshop 40 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Análise dos Resultados Hipótese Aceita mm 40 60 80 100 120 Experiência dos participantes teve pouca influência 40 Feedback fornecido pela ProgTest foi determinante Foi aceita a hipótese: 60 H1 = O feedback fornecido pela ProgTest ajuda na aprendizagem dos alunos. 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 41 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Conclusões e Trabalhos Futuros Roteiro mm 40 60 80 1 Introdução 2 O Ambiente ProgTest 3 Planejamento e Execução do Experimento 4 Análise dos Resultados 5 Conclusões e Trabalhos Futuros 100 120 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 42 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Conclusões e Trabalhos Futuros Conclusões mm 40 60 80 100 120 A análise mostrou que os resultados com a ProgTest foram melhores do que com a aprendizagem tradicional 40 Coberturas e notas foram melhores com a ProgTest do que com a aprendizagem tradicional A experiência dos participantes com programação pode ter influenciado o resultado positivo 60 Porém, com base na correlação entre experiência e notas, concluiu-se que a experiência teve pouca influência nos resultados Há indı́cios de que a aprendizagem com a ProgTest 80 proporciona benefı́cios em relação à aprendizagem tradicional 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 43 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação Conclusões e Trabalhos Futuros Trabalhos Futuros mm 40 60 80 100 120 Repetir o experimento 40 Maior número de participantes Participantes com menor experiência em programação 60 Exercı́cios mais desafiadores Métodos estatı́sticos adicionais para análise dos dados 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 44 Um Estudo Experimental do Ambiente ProgTest no Ensino de Programação mm 40 60 80 100 120 40 60 80 10 de Abril de 2013 10th Experimental Software Engineering Latin America Workshop 45