550 likes | 681 Views
Uma Abordagem Sistematizada para Aprendizagem de Programação em Grupo. Autora: Thais Castro Orientador: Prof. Hugo Fuks. Contexto. As aulas de Introdução à Computação na UFAM se baseiam no modelo tradicional. Seguidas de práticas de laboratório. Os professores queriam que fossem como abaixo.
E N D
Uma Abordagem Sistematizada para Aprendizagem de Programação em Grupo Autora: Thais CastroOrientador: Prof. Hugo Fuks
Contexto As aulas de Introdução à Computação na UFAM se baseiam no modelo tradicional... Seguidas de práticas de laboratório... Os professores queriam que fossem como abaixo em algum outro lugar...
O Problema • A dificuldade em saber quando intervir.
A Hipótese As oportunidades de intervenção na aprendizagem de programação em grupo são ampliadas com o uso de uma abordagem sistematizada de acompanhamento.
Pressuposto Pedagógico Animação de códigos Pair programming Programação em Grupo Ensino de Programação Solução de problemas Times de desenvolvimento Jogos Epistemologia Genética (Piaget): estudo dos mecanismos do aumento dos conhecimentos.
Programação em Grupo Métodos Ágeis (pair programming) Times de desenvolvimento
Ensino de Programação Animação de Códigos / Algoritmos
Ensino de Programação Solução de problemas John Mason, baseado em Polya
Ensino de Programação Jogos
A Tese – Elaboração do 1º. Eixo Fases do desenvolvimento da cognição Epistemologia genética Necessidade de interagir com os pares A abstração precisa ser mais desenvolvida Apoio de ferramentas computacionais Ênfase nos processos de solução de problemas Ensino de programação O processo de solução de problemas precisa ser explícito Pressupõe-se que cada passo para a solução tem relação com um estágio do raciocínio As atividades precisam ser prazerosas Programação em grupo Times de desenvolvimento para o contexto de aprendizagem Algo como pair programming para direcionar os alunos
Evolução dos Códigos na Aprendizagem de Programação • Uso do AAEP e entrevistas seguindo o método clínico piagetiano • Elaboração de trabalhos práticos com registros parciais da solução • Análise de correlações estatísticas para identificar os alunos que estavam acima ou abaixo do corte • Na tese • As modificações foram agrupadas de acordo com nível de reflexão envolvido • Desenvolvimento do AcKnow
Evolução dos Códigos na Aprendizagem de Programação • Tipos de Modificação • Sintáticas: visam tornar o código interpretável, processo que sugere correções em intervalos menores • Semânticas: afetam diretamente a avaliação da função, resultando em uma saída diferente da esperada • Refactoring: refinamentos nas soluções visando melhor legibilidade no código
Evolução dos Códigos na Aprendizagem de Programação O funcionamento do AcKnow
Evolução dos Códigos na Aprendizagem de Programação Histórico da Aluna Jane Doe
Ferramentas, LMS, etc. Ambientes CSCL Tecnologias de Apoio Métodos de Avaliação de Ambientes Linguagens de representação Sistemas multiagente
Ambientes CSCL O que é necessário para o contexto da programação? Configuração e adaptação Estrutura adicional de acompanhamento das interações Uso de ferramentas de coordenação para facilitar a intervenção
Ferramentas para Apoiar a Programação em Grupo Apóiam as atividades relacionadas à aprendizagem de programação em grupo: RAPTOR Construção de algoritmos
Ferramentas para Apoiar a Programação em Grupo Apóiam as atividades relacionadas à aprendizagem de programação em grupo: Scratch Entendimento de construção de algortimos
Ferramentas para Apoiar a Programação em Grupo Apóiam as atividades relacionadas à aprendizagem de programação em grupo: Scratch JeCo Visualização de programas Percepção dos times
Ferramentas para Apoiar a Programação em Grupo Apóiam as atividades relacionadas à programação em grupo: Jazz – foi incorporado ao Rational Team Concert RECIPE – compartilhamento de códigos
Métodos para Avaliação de Ambientes CSCL Uso do Método de Inspeção Semiótica (MIS) Sugestões de Melhoramentos na Interface Contexto de Aprendizagem de Programação
MIS no ColabWeb O ColabWeb possui várias camadas de interface, de acordo com o perfil. Características • Os grupos utilizam seus próprios recursos, como chat e fórum • Visualização da turma e dos grupos em espaços diferentes • Programas são desenvolvidos externamente • Os grupos seguem um esquema para resolução de exercícios
Sugestões Não há dicas de como configurar o curso
Linguagens de Representação de Interações (Sistemas Multiagente) Acompanhamento das interações é difícil: os logs tornam-se muito extensos quanto mais participativo é o grupo
Linguagens de Representação de Interações (Sistemas Multiagente) Acompanhamento das interações é difícil: os logs tornam-se muito extensos quanto mais participativo é o grupo
A Tese – Elaboração do 2º. Eixo Podem ser utilizados ambientes de propósito geral, desde que sejam configurados para o contexto Algumas ferramentas específicas para visualização de código e ambientes de desenvolvimento devem ser incorporadas Ambientes CSCL Recursos como chat e fórum podem ser configurados para atender a especificidades dos exercícios Ambientes multiagente podem ser integrados aos ambientes CSCL para auxiliarem na identificação de características de interação Tecnologias de Apoio Métodos de inspeção ou avaliação de elementos de interface devem ser aplicados periodicamente Apesar de alguns problemas de navegabilidade, um curso de programação se configurado no ColabWeb conforme IC-Ccomputacao tem uma estrutura e interface aceitáveis para o propósito
Método de Colaboração • Precisa usar algum método? • Como os alunos colaboram em programação? • Estudo de Caso Exploratório • Um exercício no final da disciplina. Como requisito necessário, as soluções foram acompanhadas pelos registros das interações nos grupos • Questionário de avaliação
Estudo de Caso Exploratório (2007.1) Achados: • É necessário se trabalhar em grupo e há uma demanda por compromisso, esforço e acordo dos participantes. • Os grupos apresentaram dificuldades relativas à codificação em linguagem Haskell possivelmente em decorrência da falta de critérios para a interação nos grupos • Os grupos acharam a atividade prazerosa, embora difícil de coordenar o grupo
Um Esquema Progressivo para Aprendizagem de Programação em Grupo
Estudo de Caso Descritivo (2008.1) • Investigar como os grupos utilizam o esquema progressivo de aprendizagem de programação em grupo • Reutilização de códigos • Qualidade das interações • Estilos individuais de programação • Intervenção do professor • Como identificar oportunidades de intervenção nos grupos?
Padrões de Interação Cada turno de conversa tem uma intenção que pode gerar uma continuidade Atos de fala estendidos Padrões de interação em ambientes CSCL
Uso dos Padrões de Interação na Caracterização das Interações Alternância de “explicar”, “esclarecer”, “sugerir”, “disponibilizar” Interação produtiva
Uso dos Padrões de Interação na Caracterização das Interações Sequências de “disponibilizar” com pouca alternância de outros padrões de interação Interação não produtiva
Representação Formal dos Padrões de Interação 1 a(clarifier,C) ::= 2 a(broadcaster(X,L,Er),B) <-- new_clarification(X,L). 3 a(broadcaster(X,L,Er),B) ::= 4 (information(X) => a(reader,R) <-- L=[R|Rs] then 5 Er=[E|Es] <-- evaluation(X,E) <= a(reader,R) then 6 a(broadcaster(X,Rs,Es),B)) or 7 null <-- L=[] and E=[]. 8 a(reader,R) ::= 9 information(X) <= a(broadcaster(X,_,_),B) then 10 (evaluation(X,E) => a(broadcaster(X,_,_),B) <-- agree(X,E) or 11 evaluation(X,E) => a(broadcaster(X,_,_),B) <-- do_query(X,E)).
Identificação de Estereótipos Estereótipos = pistas para intervenção Interações produtivas Estereótipos positivos Interações não produtivas Estereótipos negativos
Identificação de Estereótipos Estereótipos emergem sempre que: Um padrão de interação aparece repetitivamente Somente um ou dois membros do grupo se mantêm trabalhando, mesmo que usem diferentes padrões de interação A combinação de padrões de interação reforçam estereótipos negativos
Estudo de Caso Explanatório (2009.1) • Replicação das configurações do estudo de caso anterior para avaliar a relevância dos padrões de interação e estereótipos a uma nova turma de programação introdutória • Identificação de um novo estereótipo: ausência de interações • Confirmação dos estereótipos e representação dos padrões de interação
Conclusão • Três estudos de caso e uma inspeção semiótica no ambiente CSCL utilizado nesta tese comprovam a hipótese • Oportunidades de intervenção na aprendizagem de programação em grupo são ampliadas com o uso de uma abordagem sistematizada de acompanhamento • Os padrões de interação encontrados provaram-se aplicáveis na aprendizagem de programação devido à ação na resolução de problemas, o que também evidencia potencial aplicação em outras áreas • Estereótipos são importantes para orientar as ações e estratégias dos professores devendo também incorporar novas instâncias quando adequadamente identificados