curso de licenciatura em computação
Transcrição
curso de licenciatura em computação
UNIVERSIDADE FEDERAL RURAL DA AMAZÔNIA PROGRAMA NACIONAL DE FORMAÇÃO DE PROFESSORES DO ESTADO DO PARÁ – PARFOR / PA – CURSO DE LICENCIATURA EM COMPUTAÇÃO Disciplina: TÓPICOS ESPECIAIS EM INFORMÁTICA NA EDUCAÇÃO Prof. Luiz Claudio Ferreira de Souza E-mail: [email protected] Santo Antônio do Tauá / PA 2016 O PAPEL DA INFORMÁTICA EDUCATIVA NO DESENVOLVIMENTO DO RACIOCÍNIO LÓGICO Hermínio Borges Netoi (hermí[email protected]) Suzana Maria Capelo Borgesii ([email protected]) 1. INTRODUÇÃO Tentaremos desenvolver o tema baseados em duas teorias: a cognitivista de Piaget, amplamente difundida no mundo todo, gerando seguidores preocupados com a aplicação de suas teorias, como Seymour Papert na computação e Philippe Johannot no Ensino da Matemática e a corrente conhecida como Seqüência Fedathi, criada por nós e desenvolvida por um grupo de educadores da Sala Multimeios da Faculdade de Educação da UFC. A primeira publicação deste grupo remonta a 1993 e encontra-se nos cadernos de Pós-Graduação da Faced / UFC, no 01, vol. 02, para o ensino fundamental I. Não nos ateremos a discutir os prós e os contras de cada corrente (como Yves de La Taille o fez em sua tese de doutorado sobre os trabalhos de Papert), mas tentaremos colocar o que julgamos adequado segundo nossa visão e formação, sobre o que podemos obter de vantagens com o uso do computador, em termos de desenvolvimento do raciocínio lógico. 2. CONSIDERAÇÕES SOBRE AS TEORIAS DE PIAGETT E FEDATHI A teoria de Piaget (ou ) g Como é sabido, a teoria de desenvolvimento cognitivo de Piaget, ou de desenvolvimento lógico, se compõe de quatro estágios e cada um representa as transformações cognitivas por que passa a criança. Nesse modelo o sistema cognitivo interage com o ambiente captando dados, que após serem processados assumem a forma de informações. Através de múltiplas interações, esse sistema passa por mudanças evolutivas que ampliam a capacidade de utilizar essas informações para integrar-se da melhor forma ao mundo. As experiências da criança com o meio propiciam a elaboração de representações mentais da realidade, que não são simples cópias do que é experimentado como real nessas interações. Esses dois momentos são chamados por Piaget de assimilação e acomodação. A assimilação implica em interpretação e construção de dados externos que devem ser incorporados aos conhecimentos pré-existentes. A acomodação por sua vez, modifica o sistema cognitivo para adequar-se ao que é percebido como dado externo. Esse intercâmbio ativo e simultâneo, de assimilação e acomodação a elementos externos ainda nãoassimilados, provoca uma mudança na estrutura interna do sistema e é aí que ocorre o desenvolvimento cognitivo. Portanto, neste modelo, a mudança cognitiva do pensamento da criança pode evoluir gradualmente com a interação, a maturação e a experiência. Dos estágios de desenvolvimento cognitivo, que são o sensório-motor, o préoperatório, o operatório e o formal, só nos interessa aqui os dois últimos, quais sejam o operatório e o formal. O concreto se caracteriza pela necessidade de, ao se apresentar uma situação a ser resolvida, um problema a ser solucionado, temos a situação instanciada, explícita, que pode ser manipulada concretamente. Em Matemática, estamos na lógica proposicional, em que as idéias, os elementos verdadeiramente significativos são integrados e relacionados aos argumentos utilizados para a resolução da situação. À medida que se desenvolve a presente lógica, o pensamento começa a funcionar em função de modelos que representam a situação dada sem haver necessidade de termos uma reprodução real da situação. O pensamento formal é capaz de avaliar os dados do problema, ou de criar uma situação hipotética plausível sobre o problema, verificar ou testar sua teoria através de experimentos para ver o que realmente acontece, e só então aceitar, rejeitar ou reformular sua hipótese, verificando se ela ocorre logicamente ou não na realidade. O pensamento formal, é portanto, de natureza metacognitiva, pois envolve o pensar sobre os próprios processos de pensamento, isto é, pensar sobre hipóteses, proposições, e possibilidades muitas vezes imaginadas, que podem ou não ser fundamentadas em representações do real. O modelo se encarregará disso e a possibilidade de se trabalhar com esta forma de representar uma realidade, permite: · generalizar situações, ou seja, de uma determinada situação partir-se para outra bem diferente; · fazer simulações e ensaios; · levantar hipóteses a priori. Na Lógica Matemática, isso corresponde a termos uma lógica de primeira ordem (como chama Stanat, 1977, pág. 20), ou lógica dos quantificadores. Daremos um exemplo de uma experiência que realizamos na FACED-UFC, em um curso de Didática da Matemática, que esperamos que clarifique as noções sobre estes dois estágios e o que quisemos colocar. Apresentou-se um problema para os alunos em que era colocado: dois trens em velocidade constante, partiam de A e B na mesma direção, com velocidades respectivas de 40 e 60 km/h, sendo a distância entre A e B de 30 km/h. Depois de quanto tempo eles se encontrariam? Para a situação apresentada, apareceram várias soluções dentre elas: alguns alunos desenharam os trens com fumacinha e tudo, as cidades e resolveram o “problema” . Outros alunos partiram para a álgebra, as fórmulas, ou representaram graficamente o problema, sem desenhar. Em resumo, aqueles que desenharam a situação, representando a solução em forma de desenho bem próxima do dado, estariam no estágio concreto, enquanto que os outros no formal. Esses, provavelmente, seriam capazes de generalizar o problema, usar a sua situação em um contexto bem mais geral, enquanto que os outros, talvez não. É claro que apenas por esse exemplo não podemos afirmar em qual estágio de desenvolvimento cognitivo estariam esses alunos. A Seqüência Fedathi A Seqüência Fedathi se baseia na aprendizagem por resolução de problemas explorados por Polya nos anos 70. São categorizados os níveis de desenvolvimento do pensamento lógico que uma pessoa utiliza quando é solicitada a resolver um problema. Inicialmente, quando uma situação é apresentada a um indivíduo, ele faz uma tomada de posição, ou seja ele recorre a uma base de conhecimentos específicos que são mais eficazes para a resolução da referida situação; em seguida passa por um período de maturação, onde a situação é amadurecida, associada, organizada e comparada com outras já conhecidas, em busca de uma solução para o problema. Depois do relaxamento de encontrar uma solução, parte-se em busca da prova, que é uma solução mais otimizada, mais elaborada, sem redundâncias. Esta solução propicia partir-se para generalizações, para elaborações de modelos teóricos (os chamados sistemas formais, do positivismo de Carnapi). Estes quatro estágios, a tomada de posição, a maturação, a solução e a prova constituem a Seqüência Fedathi. No ensino tradicional, e principalmente no de Matemática, os dois estágios intermediários são aprendizagem e esquecidos, são desenvolvimento desprezados, do raciocínio originando matemático, problemas na constituindo-se simplesmente em um mero repassar de fórmulas, um ensino por meio de regras ou de receitas. Afinal, é nos dois níveis intermediários que temos possibilidade de ensaios e erros, de fazer e refazer o problema, de simulação, de levantamento de hipóteses, apresentando–o em uma linguagem mais próxima do nosso conhecimento. 3. ALGUMAS FORMAS DE SE TRABALHAR COM O COMPUTADOR Quando se interage com um computador, há diversas atitudes que se toma. Dentre elas, podemos citar: 1) Trabalhar com programação Há programas de programação para todos os gostos e níveis: o LOGO, software de autoria, planilhas eletrônicas, até a máquina de Post, invento do russo V. Uspensky, que é uma máquina programável, sem chips e memória, criado em tiras de papel, a partir da tese de doutorado do matemático Emile Post. 2) Software de ensaios e simulações Alguns jogos, como o Carmen SanDiego, aplicativos do tipo Modellus (http://phoenix.sce.fct.unl.pt/sce/pessoas/vdt/), Cabri-Géomètre (http://www-cabri.imag.fr), o sítio da Estação Exploratorium (http://www.exploratorium.com), programas tipo CAD. 3) Resolução de problemas A resolução de problemas é colocada no sentido bem amplo, como proposto por Polya (1977), indo de resolução de uma equação diferencial parcial, passando pela tradução de um texto e chegando a manipulação de figuras. 4) Consultar bases de dados Utilizando o material disponível e uso de hipertextos na rede Internet. 5) Máquina de Ensinar Uso de sistemas enciclopédicos ou tutoriais eletrônicos 6) Desenvolvimento de Projetos Educacionais interdisciplinares Essa é a modalidade mais em vigor nos colégios que trabalham com Informática Educativa, na concepção de Borges Neto (1999). A grande questão é saber se o aluno aprende computação ou os temas propostos a serem desenvolvidos, ou ambos. Segundo nossa experiência com as Escolas que visitamos, ou que são visitadas por nossos alunos, a aprendizagem maior é, essencialmente, de computação. A interdisciplinaridade é uma porta para o ensino de computação, até porque o professor especialista não participa, em regra geral, desse processo. 7) Tele-presença Espécie de ensino a distância mediada por um professor, onde há um software sendo trabalhado por alunos, compartilhado e assistido pelo professor. Experiências deste tipo podem ser encontradas na páginas do projeto Tele-Ambiente: desenvolvimento de ferramentas adaptativas e interativas aplicadas no ensino a distância, encontrada em http://www.multimeios.ufc.br. Essa lista engloba apenas algumas das formas; há inúmeras outras. Vamos nos ater a alguns itens e comparar com as teorias de Piaget e Seqüência Fedathi. 4. INFORMÁTICA EDUCATIVA E O DESENVOLVIMENTO DO RACIOCÍNIO LÓGICO Não entraremos em aspectos metodológicos, se a forma de trabalhar é adequada ou não. O que pretendemos fazer é, a partir da listagem de atitudes desenvolvidas em um computador, discutir se há favorecimento do desenvolvimento do pensamento lógico. Essas atividades, possibilitam desenvolver: a) Raciocínio algoritmizado Essa atividade é claramente encontrada nos tópicos em 1), 2) e 4) descritos acima. Baseado nos estágios de Piaget, na medida em que se decompõe um raciocínio em etapas, pode-se passar a trabalhar com situações muito mais gerais e complexas. Ou seja, partir do concreto para o abstrato. b) Previsões Encontra-se fortemente em 2). O ensaio das previsões possibilita inferir o que pode acontecer a uma situação se modificarmos certas hipóteses. Racionar sobre hipóteses-hipotéticas é uma atividade do operatório formal. O raciocínio formal inicia com a possibilidade e subseqüentemente chega à realidade. A situação é examinada detalhadamente para verificação de toda e qualquer possibilidade de solução e só então, sistematicamente, é procurada a solução real da situação-problema. Além de desenvolver a autonomia do aluno, pois ele pode levantar suas hipóteses, fazer suas inferências e tirar conclusões. Atividades assim podem ser trabalhadas no Cabri-géomètre, no software Modellus ou mesmo no GeoMeios, disponível na Web em http://geomeios.multimeios.ufc.br. c) Simulações (visualizações, análises de situações instanciadas) Esta é a aplicação, ao nosso ver, mais nobre da Informática Educativa. Através de simulação, no sentido mais amplo, de representação de um problema no computador, de análises de situações particulares e ligadas ao problema, pode-se criar um novo paradigma para a Educação. Vamos dar um exemplo bem simples, em Matemática. Suponhamos que temos um software que permite desenhar triângulos e medir seus ângulos e somá-los. Ora, os ângulos são objetos de triângulos construídos, de modo que ao se deslocar os seus vértices, a nova soma é automaticamente calculada. Tradicionalmente, só se experimenta algumas vezes, não mais que 03. Já no computador, em poucos segundos, são possíveis milhares de tentativas. Qual a pista que esta experimentação nos dá ? (É o chamado teorema-ação, de Guy Brosseau) Quando não se gosta de Matemática, pode-se dissecar um olho ou um sapo em www.exploratorium.com. Essas atividades desenvolvem a autonomia do aluno e o trabalho em cima de hipóteses. Então, não é essa a característica mais marcante do operatório formal? 5. ALGUNS SENÕES E CUIDADOS As novas tecnologias na Educação, em especial as digitais não serão seguramente a salvação para os problemas da Educação. São apenas algumas ferramentas a mais no ambiente escolar, que se bem utilizadas podem dar frutos maravilhosos, mas caso contrário, podem ser uma nova “matemática moderna”. Com respeito ao desenvolvimento do raciocínio lógico, certos softwares possibilitam o desenvolvimento de habilidades que chamamos: · Ao Acaso: Uma resposta dada ao acaso implica uma escolha intuitiva, pois a pessoa que responde não possui nenhum procedimento lógico a priori, nenhuma pista ou indício. É apenas um “chute”. · Tentativa e Erro: Após testar alguns procedimentos aleatórios, isola os que não levaram às respostas certas e tenta outros até acertar. Não necessariamente levanta hipótese. · Ensaio e Erro: A pessoa tem uma hipótese, que testa para tentar a solução correta. Não é um procedimento aleatório, é algo pensado e submetido a teste, intencionalmente. · Dedução: Procedimento tentado só após uma inferência ou análise a priori de tentativas já adotadas em algumas outras situações ou mesmo nessa. Não havendo por parte do educador uma mediação adequada, a criança corre o risco de ficar limitada apenas nos dois primeiros itens em suas respostas, quando o desejável é que as atividades propiciem estimulações para o desenvolvimento de respostas a situações-problemas nos planos do Ensaio e Erro e da Dedução. Ou seja, como o software sempre dá uma resposta, e isto está mais presente em aplicativos do tipo tutorial ou como os browsers de navegação na Internet, a pessoa se desenvolve ao procurar sempre obter uma resposta e a partir daí decidir qual resposta será a mais adequada. O desenvolvimento exagerado dessas atitudes ocasiona um obstáculo epistemológico ao desenvolvimento do raciocínio por hipóteses, não são binárias, onde o próprio indivíduo deve fazer suas inferências. Esperamos enfim, que essas reflexões possam contribuir para um uso mais adequado e diversificado da informática educativa pela escola ao destacar algumas formas de se trabalhar com as crianças favorecendo o desenvolvimento de seu raciocínio lógico. 6. Referências Bibliográficas BORGES NETO, Hermínio & SANTANA, José Rogério. A teoria de Fedathi e sua relação com o Intuicionismo e a lógica do desenvolvimento matemático no ensino. XV EPENN – Encontro de Pesquisa Educacional do Norte e Nordeste, 2001. São Luis/MA: UFMA, 2001. BORGES NETO, Hermínio et alii. A Seqüência de Fedathi como proposta metodológica no ensino-aprendizagem de Matemática e sua aplicação no ensino de retas paralelas. XV EPENN – Encontro de Pesquisa Educacional do Norte e Nordeste. São Luis/MA: UFMA, 2001. BORGES NETO, Hermínio. Uma classificação sobre a utilização do computador pela escola. Fortaleza, Revista Educação em Debate, ano 21, vol. 1, no 27, pág. 135 a 138, 1999. FLAVELL, John H.; MILLER, Patrícia H.; MILLER, Scott A. Desenvolvimento Cognitivo. Tradução: Cláudia Dornelles. 3a edição. Porto Alegre, Artes Médicas, 1999. JOHANNOT, Louis. Le raisonnement mathématique de l´adolescent. Coleção Actualités Pédagogiques et Psychologiques. Delachaux et Niestlé S. A. 1947. PAPERT, Seymour. Logo: Computadores e Educação. Tradução por José Armando Valente do original americano Mindstorms – children, computers and powerful ideas, Basic Books, 1980. São Paulo, Editora Basiliense, 3a adição, 1988. POLYA, George. A arte de resolver problemas: um novo aspecto do método matemático. Tradução: Lisboa de Araújo. Rio de Janeiro, Interciência, 1978. RICHARD, Jean-François. Les Activités Mentales- comprendre, raisonner, trouver des solutions. Paris, Armand Colin Éditeur, 1990. STANAT, Donald F e MCALLISTER, David F. Discrete mathematics in computer science. New Jersey, EUA, Prentice Hall, 1977. TAILLE, Yves de La. Ensaio sobre o lugar do computador na Educação. São Paulo, Iglu Editora, 1990. USPENSKY, V. A máquina de Post, URSS, Editora MIR, 1985. i ii Bolsista do CNPq e Professor da Faculdade de Educação da UFC Professora da Universidade Estadual do Ceará e doutoranda em Educação pela UFC Nuevas Ideas en Informática Educativa TISE 2014 Utilizando o SCRATCH nas aulas de Lógica de Programação do Proeja: Um relato de experiência Gersica A. Alencar Ana K. Freitas Instituto Federal de Educação, Ciência e Tecnologia do Sertão Pernambucano Instituto Federal de Educação, Ciência e Tecnologia do Sertão Pernambucano [email protected] om anakatarines@gm ail.com ABSTRACT The EJA is a type of education that came to people who had no access to regular education at the appropriate age, being one of the main ways of eradicating Brazilian illiteracy. The Proeja is the merge of three educational methods: the EJA, high school and middle level technical education. In Proeja Informatic of IF Sertão-PE there is a large dropout of students, mainly because of the disciplines of Programming Logic, in order to suggest a proposal to reduce the high failure rate in this discipline we had as main objective the use of Scratch, a software that have as an innovative point the fact of using new programming paradigms and easy to understand. At the end of class intervention was observed that the students developed the proposed game with ease, then concluding that creating games using the tool Scratch for teaching / learning the basics of programming logic and succeeded to show in practice the differences between each structure of condition and repetition that controls the code making the topic more dynamic and a more playful level of understanding. RESUMO A EJA é uma modalidade de ensino que surgiu para pessoas que não tiveram acesso ao ensino regular na idade adequada, sendo uma das principais maneiras de erradicação do analfabetismo brasileiro. O Proeja é junção de três modalidades educativas: a EJA, o ensino médio e o ensino técnico de nível médio. No Proeja Informática do IF Sertão-PE há uma grande evasão de alunos, principalmente por causa das disciplinas de Lógica de Programação, a fim de sugerir uma proposta para redução do alto índice de reprovação nessa disciplina tivemos como objetivo principal a utilização do Scratch, um software que tem como ponto inovador o fato de usar novos paradigmas de programação, sendo de fácil entendimento. Ao final da aula de intervenção foi observado que os alunos desenvolveram o jogo proposto com facilidade, concluindo então que a criação de jogos utilizando a ferramenta Scratch é eficaz para o ensino/aprendizagem de conceitos básicos de lógica de programação conseguindo mostrar na prática as diferenças entre cada estrutura de condição e repetição que controla o código fixando o conteúdo de forma mais dinâmica e em um nível de compreensão mais lúdico. Categories and Subject Descriptors Maérico dos S. Pessoa Danielle J. S. Martins Instituto Federal de Educação, Ciência e Tecnologia do Sertão Pernambucano Instituto Federal de Educação, Ciência e Tecnologia do Sertão Pernambucano [email protected] m danielle.juliana.ma [email protected] Termos Gerais Human Factor Keywords Scratch, education of youth and adults, programming language, logic Palavras Chaves Scratch, educação de programação, lógica. Jovens e Adultos, linguagem de 1. INTRODUÇÃO A educação de jovens e adultos (EJA) é uma modalidade de ensino complexa que envolve dimensões que transcendem a questão educacional [1]. Inicialmente, no período colonial brasileiro, as aulas para a população adulta era apenas de educação para a doutrinação religiosa. Já no Brasil império, surgiram reformas educacionais que preconizavam a necessidade do ensino noturno para adultos analfabetos. No ano de 1971, pela primeira vez a EJA ganha um capítulo na legislação brasileira. Na constituição de 1988 há a garantia de ensino básico e gratuito para jovens e adultos, atualmente o país possui fóruns que proporcionam discussões e aprofundamento no que diz respeito a EJA no Brasil. A EJA é voltada para pessoas que não tiveram acesso ao ensino regular na idade adequada, esta modalidade de ensino ganha destaque como ferramenta de erradicação do analfabetismo. É de responsabilidade do poder público viabilizar e estimular o acesso e a permanência do trabalhador na escola, através de ações integradas e complementares entre si [2]. A educação de jovens e adultos constitui um campo complexo que exige transformações e reinvenções constantemente, já que abrange questões nas esferas política, social, econômica e cultural que estão vinculadas à desigualdade e ao direito à cidadania [3]. A fim de melhorar a formação humana de alunos jovens e adultos surgiu a proposta para a junção de três modalidades educativas: a K.3 [Computers and Education] 542 Nuevas Ideas en Informática Educativa TISE 2014 educação de jovens e adultos, o ensino médio e a educação profissional técnica de nível médio, surge então o PROEJA. O Programa de Integração da Educação Profissional Técnica de Nível Médio ao Ensino Médio na Modalidade Educação de Jovens e Adultos (PROEJA), surgiu em 2005 através do Decreto nº 5478, que mostra a decisão do governo para atender a demanda de jovens e adultos pela oferta de educação profissional técnica de nível médio da qual, em geral, são excluídos em muitas situações do próprio ensino médio [4]. Antes do surgimento do PROEJA havia uma necessidade de universalização da educação básica, unida com a formação para o mundo do trabalho, acolhendo especificamente jovens e adultos com trajetórias escolares descontínuas [4]. Porém, em contrapartida, pesquisadores [3][4][5] apontam limitações do programa relacionadas, principalmente, ao alcance da proposta, denunciando também a projeção de problemas historicamente enfrentados pela EJA. Tais pesquisas sugerem ainda, que há falta de docentes capacitados para atuarem nessa modalidade educacional. Outro problema atribulado a EJA é a dificuldade dos alunos em acompanharem o curso e a evasão escolar. A evasão escolar está relacionada a vários fatores, podendo ser internos ou externos ao ambiente escolar, como: dificuldade de absorver o conteúdo das disciplinas, jornada de trabalho e etc. A acumulação desses problemas acaba acarretando em um alto índice de desistência dos cursos da EJA. A fim de diminuírem a evasão, autores como [6] defendem que é possível articular teoria e prática no processo ensinoaprendizagem como aspecto fundamental para enfrentar os problemas dos discentes. O PROEJA Informática foi implatado no Instituto Federal de Educação, Ciência e Tecnologia do Sertão Pernambucano (IFSertão-PE) no ano de 2007, com o objetivo de “formar profissionais, preparados para desempenhar funções técnicas ou gerenciais, de autonomia e responsabilidade de acordo com a legislação vigente, preparando o profissional para auxiliar analistas em atividades de projeto, planejamento e executando as atividades na área tecnológica” [7]. tecnológica, seja do ensino técnico ou superior, tendo como objetivo permitir que o aluno desenvolva o raciocínio lógico aplicado a solução de problemas em nível computacional [11]. A fim de sugerir uma alternativa para diminuir o alto índice de reprovação da disciplina de lógica de programação do PROEJA Informática no IF Sertão – PE tivemos como principal objetivo de trabalho a proposta de utilização do Scratch nas aulas da disciplina citada, mais informações sobre essa ferramenta estão na próxima sessão. 2. SCRATCH O Scratch é uma linguagem gráfica de programação desenvolvida no MIT (Instituto de Tecnologia de Massachusetts), baseada em outras linguagens como o LOGO e o Squeak, porém tem a proposta de ser mais simples, de fácil manuseio e intuitiva [12]. É um software gratuito lançado em 2007. Por possuir uma IDE (ambiente integrado para desenvolvimento de software) em que não é preciso digitar funções ou endereços, caracteriza-se como uma linguagem de programação visual. O Scratch tem como ponto inovador o fato de usar novos paradigmas de programação [13]. O Scratch utiliza programação baseada em montagem de blocos, como um quebra-cabeça que desenvolve tanto a parte criativa quanto a parte lógica do aluno, é educativo e não exige conhecimento prévio de outras linguagens de programação. A versão Scratch 1.4 tem suporte para as plataformas Debian, Ubuntu (12.4 ou posterior), Windows (XP ou posterior) e MAC OS X (10.4 ou superior), e a versão 2.0 (a mais recente) tem suporte para algumas distribuições Linux (32 bits), Mac OS X, Mac OS 10.5 e Windows, também é possível utilizar o software online pelo site scratch.mit.edu. O software Scratch 1.4 é dividido em quatro áreas como podemos observar na Figura 1, a paleta (grupo de comandos), a área de recursos (local onde será utilizado os comandos) que contém a aba de comando, trajes e sons, a área de visualização (resultado da programação), a área dos objetos (objetos utilizados na animação). O profissional técnico em informática encontra espaço no mundo do trabalho, por ser importante na indústria tecnológica, sendo fundamental para o funcionamento de setores da economia [7]. Como foi exposto anteriormente, a educação de jovens e adultos enfrenta dificuldades com a evasão escolar e a repetência, o número expressivo de desistências fica mais evidente em cursos da área de informática, em sua maioria, por causa das disciplinas de programação ou que envolvam cálculo e lógica matemática. Autores como [8], [9], [10], [11] destacam o alto índice de evasão nos cursos da área de informática, os pesquisadores destacam que a falta de compreensão do raciocínio lógico pode ser um dos motivos pelo alto índice de reprovação nas disciplinas de algoritmos e programação. Como pontuado por [9] a falta de motivação, pois o aluno acredita que a disciplina é um obstáculo difícil de ser superado, o ensino instrucionista, e o fato de não conseguirem relacionar a teoria e a prática são alguns dos motivos citados que prejudicam o ensino de algoritmos e programação. A disciplina de lógica de programação ou algoritmos é uma das mais importantes em qualquer matriz curricular de cursos da área Figura 1. Tela Inicial do Scratch Dentro da área paleta existem oito caixas de comandos principais, o movimento (responsável por controlar todas as interações dos objetos no cenário), a aparência (manipula as transições de 543 Nuevas Ideas en Informática Educativa TISE 2014 aparência dos objetos), o som (implanta sons e músicas para cenário e objetos), a caneta (é utilizado para desenhar e riscar através de comandos), o controle (é o principal comando, pois todo o jogo é controlado por funções especificas do mesmo), os sensores (usado geralmente para comandos que utilizem mouse ou teclado), os operadores (cria operações matemáticas) e as variáveis (cria e administra variáveis). O objetivo principal do Scratch é facilitar a introdução de conceitos de matemática e computação, induzindo o pensamento criativo, o raciocínio sistemático e o trabalho colaborativo [14]. conhecimento prévio do aluno. Na segunda etapa foi proposto a criação de um jogo de boliche e a partir desse ponto os alunos iniciaram a criação de seus primeiros projetos. Todo o jogo foi desenvolvido junto com a equipe do trabalho de acordo com a metodologia explicada anteriormente, passando por toda etapa de criação da movimentação e regras do jogo. Possui uma linguagem simples, orientada a blocos de montar, consequentemente produzem projetos que podem ser compartilhados com a comunidade de desenvolvedores e que podem ser melhorados [15]. Após a aula aplicada foi possível detectar que os alunos realizaram com sucesso a criação de seus próprios jogos de boliche utilizando a ferramenta Scratch, eles também acompanharam com facilidade o passo a passo e as instruções mostradas no decorrer da aula. Através de observação percebemos um grande interesse da turma pelo tema “criação de jogos” e foi surpreendente ver que esse tema é tão atrativo para uma faixa etária mais elevada. Mas o resultado mais importante foi em relação a lógica de programação dos alunos, foi possível verificar que os alunos mesmo sem terem visto o conteúdo de lógica por completo, conseguiram desenvolver o jogo com extrema facilidade. A utilização do Scratch em sala de aula em cursos de informática ou regulares do ensino médio é recente. A ferramenta é utilizada principalmente com crianças e adolescente a fim de estimular o raciocínio lógico. A linguagem de programação Scratch, é também utilizada em conjunto com outras áreas, não só a tecnológica. A pesquisa de [16] relata sobre a utilização do Scratch aliado a literatura de cordel com o intuito de construir animações de computador e da lógica computacional através do software, neste mesmo trabalho os autores verificam a viabilidade do Scratch se tornar instrumento pedagógico no ensino fundamental. Assim, a utilização da ferramenta em cursos da área tecnológica, nos diferentes níveis é totalmente viável, visto que o software colabora para um bom entendimento dos assuntos abordados nas disciplinas de lógica de programação ou similares. 3. METODOLOGIA O trabalho foi aplicado na disciplina de Lógica de Programação em uma turma do PROEJA de Informática do módulo VII do IF Sertão-PE, localizado no município de Petrolina. A ideia principal surgiu a partir de uma proposta da disciplina de Educação de Jovens e Adultos do curso de Licenciatura Plena em Computação com o apoio do subprojeto de Computação do Programa Institucional de Bolsas de Iniciação à Docência. A proposta de trabalho foi pesquisar um software para desenvolvimento de jogos e diagnosticar os benefícios de um software de criação para compreensão dos conceitos lúdicos necessários para programar. Como metodologia de aula optamos por um professor que instruísse os alunos, explicando todos os passos de cada função e de cada ferramenta utilizada enquanto dois monitores sanavam dúvidas individuais mediante chamado e caso a dúvida fosse coletiva parava-se a aula para saná-la da melhor maneira possível para todos. A aula teve duração de 2 horas e 30 minutos, dividida em duas etapas, com introdução teórica e prática. Na primeira etapa foi dado uma introdução que abordou os principais aspectos que observamos na ferramenta e sobre as vantagens do Scratch ter uma interface de programação baseada em blocos de linguagem que podem ser combinados, facilitando assim sua manipulação para principiantes na utilização do software. Por serem alunos de um curso profissionalizante na área de informática e já estarem no módulo VII, os alunos já tinham uma pequena base sobre lógica para programação, assim não foi necessário uma explicação prévia sobre noções de algoritmos, principalmente porque o objetivo principal de utilizar o Scratch era integrar e reforçar o 4. RESULTADOS E CONSIDERAÇÕES FINAIS Ficou evidenciado então que a ferramenta Scratch é muito simples de usar, crianças a partir de 8 anos de idade (casos reais) já conseguem criar seus próprios jogos e disponibilizá-los no site scratch.mit.edu/ para qualquer pessoa jogar, acessar o projeto e seu código de forma detalhada. Direcionando para o ensino de lógica de programação, pudemos observar a contextualização da teoria e prática. Durante as aulas tornou-se possível que os alunos fizessem a ligação do que é ensinado em sala com o que pode ser aplicado no âmbito real e utilizando a temática de jogos. Conclui-se então que a criação de jogos utilizando a ferramenta Scratch é eficaz para o ensino/aprendizagem de conceitos básicos de lógica de programação e também consegue mostrar na prática as diferenças entre cada estrutura de condição e repetição que controla o código fixando o conteúdo de forma mais dinâmica e em um nível de compreensão mais lúdico. Além disso, os alunos agora são capazes de desenvolver jogos para auxiliar outras disciplinas, ou seja, criando jogos educativos como objeto de aprendizagem. 5. REFERÊNCIAS [1] Strelhow, T. (2010) Breve História sobre a Educação de Jovens e Adultos no Brasil. In Revista HISTEDBR On-Line 2010, Campinas, Brasil pp. 49-59.. [2] Oliveira, K., Amaral, M. & Domingos, G. (2011) A Avaliação do uso de Objetos de Aprendizagem na Educação de Jovens e Adultos. In Revista Brasileira de Informática na Educação 2011, Brasil pp. 53-54. [3] Jesus, H & Ferreira, G. (2014) A Programação de Computadores no PROEJA: Experiências e Possibilidades. In XI Encontro de Pesquisa em Educação da Região Sudeste 2014, São João del-Rei, Brasil. [4] Moura, D. (2006) EJA: Formação Técnica Integrada ao Ensino Médio 2006. Brasil, pp 3-23 [5] Moura, D & Henrique A. (2012) PROEJA: entre desafíos e possibilidades. In HOLOS 2012. Brasil, pp 114-129. 544 Nuevas Ideas en Informática Educativa TISE 2014 [6] Macedo, F. (2010) Um proposta de grade curricular para o Curso Técnico em Informática do Programa de Educação de Jovens e Adultos – PROEJA do Instituto Federal de Educação, Ciência e Tecnologia do Maranhão – Campus Codó. Dissertação 2010. Seropédica, Brasil. [7] Projeto Política Pedagógico do Curso Técnico em Informática na Modalidade de Educação de Jovens e Adultos com Entrada em 2010, http://www.ifsertaope.edu.br/reitoria/images/cursos/proeja/ppc%20do%20curso %20tcnico%20de%20informtica%20proeja%20matriz%2020 10%20-%20campus%20petrolina.pdf (Último acesso: julho 2014) [8] Dantas, V. et al (2013) Combinando desafíos e aventura em um jogo para apoiar a aprendizagem de programação em varios níveis cognitivos. In Anais do XXIV Simpósio Brasileiro de Informática na Educação 2013. Rio de Janeiro, Brasil, pp 920-924 [9] Hinterholz, O. (2009) Tepequém: uma nova ferramenta para o ensino de algoritmos nos cursos superiores em Computação. In Anais do XVII WEI 2009. Bento Gonçalves, Brasil, pp 485-488. [10] Prietch, S. & Pazeto, T. (2010) Estudo sobre a evasão em um curso de Licenciatura em Informática e Considerações para Melhorias. In Workshop de Educação em Informática BahiaAlagoas-Sergipe 2010. Maceió, Brasil. [11] Pereira, P., Medeiros, M. & Menezes, J. (2012) Análise do Scratch como ferramenta de auxílio ao ensino de programação de computadores. In XL Congresso Brasileiro de Educação em Engenharia 2012. Belém, Brasil. [12] Mendonça Neto, V. (2013) A utilização da ferramenta Scratch como auxílio na aprendizagem de lógica de programaçaõ. In II Congresso Brasileiro de Informática na Educação 2013. Rio de Janeiro, Brasil, pp 260-269. [13] Oliveira, A. & Lopes, C. (2010) Scratch na infância: estudo de impactos da experienciação lúdica e co-participativa de crianças de 6 anos. In II Congresso Internacional Comunicación 3.0 2010. Salamanca, Espanha, pp 1-14. [14] Mélo, F. et al. (2011) Do Scratch ao arduino: uma proposta para ensino introdutório de programação para cursos superiores de tecnología. In XXXIX Congresso Brasileiro de Educação em Engenharia 2011. Blumenau, Brasil. [15] Scaico, P. et al. (2013) Ensino de Programação no Ensino Médio: uma abordagem orientada ao design com a linguagem Scratch. In Revista Brasileira de Informática na Educação 2013. Brasil, pp 92-103. [16] Silva, A. et al (2012) Intervenção interdisciplinar através do scratch literatura de cordel e a programação de computadores. In Revista Científica Prática Pedagógicas: Registros e Reflexões 2012. Brasil, pp 1-17. 545 Novas Tecnologias na Educação CINTED-UFRGS Aprendizagem utilizando Dispositivos Móveis com Sistemas de Realidade Virtual Edgar Marçal* Rossana Andrade** Riverson Rios** Resumo. A computação móvel emerge como uma tecnologia inovadora para a área educacional. Neste trabalho é apresentado um framework para a construção de aplicações educacionais em dispositivos móveis com recursos de realidade virtual. Este framework tem como objetivo principal fornecer ao desenvolvedor uma arquitetura consistente para implementação de programas em dispositivos móveis, com foco na aprendizagem. Para validação do framework foi desenvolvido um protótipo que demonstra sua interatividade, usabilidade e portabilidade, além de permitir uma experimentação da integração das tecnologias de realidade virtual e computação móvel. Palavras-Chave: Aprendizagem Móvel, Realidade Virtual, Framework Abstract. Mobile computing emerges as an innovative technology for the educational area. In this work framework for the construction of educational applications in mobile devices with resources of virtual reality is presented one. This framework has as objective main to supply to the desenvolvedor a consistent architecture implementation of programs in mobile devices, with focus in the learning. For validation of framework an prototype that demonstrates its interatividade, usability and portabilidade, besides allowing to an experimentation of the integration of the technologies of virtual reality and mobile computation was developed. Keywords: Mobile Learning, Virtual Reality, Framework 1. Introdução As tecnologias de computação móvel encontram-se atualmente em franca evolução e parecem destinadas a transformar-se no novo paradigma dominante da computação (Myers et al., 2003). A utilização de dispositivos móveis na educação criou um novo conceito, o chamado Mobile Learning ou m-Learning. Seu grande potencial encontra-se na utilização da tecnologia móvel como parte de um modelo de aprendizado integrado, caracterizado pelo uso de dispositivos de comunicação sem fio, de forma transparente e com alto grau de mobilidade (Ahonen, 2003; Syvänen, 2003). Essa oferta de serviços de telecomunicações e de artefatos computacionais, capazes de prover mobilidade aos diferentes participantes de projetos educacionais, apresenta a oportunidade para o desenvolvimento de pesquisas no campo da computação móvel aplicadas à educação (Meirelles et al., 2004). ___________________________ * Mestrando em Ciência da Computação – Universidade Federal do Ceará (UFC) [email protected] ** Professor(a) Doutor(a) do Mestrado e Doutorado em Ciência da Computação da UFC {rossana, riverson}@ufc.br Por outro lado, a educação também pode ser vista como um processo de exploração, de descoberta e de construção de conhecimento. Como um ambiente de V.3 Nº 1, Maio, 2005 1 Novas Tecnologias na Educação CINTED-UFRGS apoio à aprendizagem, os mundos tridimensionais virtuais, onde o sujeito possa se movimentar, ouvir, ver e manipular objetos, como no mundo real, representam interessantes oportunidades à disposição dos educadores. A introdução dos chamados Sistemas de Realidade Virtual (SRV) na educação pode modificar significativamente o papel destes educadores (Ferreira et al., 2004). Os recursos de realidade virtual nas aplicações de m-Learning podem propiciar um incremento na aprendizagem ao fornecerem os seguintes benefícios: • Apoiar e motivar o aprendizado em excursões, fornecendo cenários virtuais semelhantes aos reais acrescidos de informações complementares (Bricken, 1993). • Melhorar a compreensão sobre determinada obra ou experimento, através de uma maior aproximação e de uma visualização sob diferentes ângulos (Erickson, 1993). • Permitir a simulação e a análise de experiências recém vivenciadas, seja na própria sala de aula, no laboratório ou em passeios educativos. • Possibilitar a demonstração do funcionamento de equipamentos, através de simulações, para auxiliar na resolução de problemas técnicos no momento do atendimento. Funcionando como um manual tridimensional (3D) portátil. Inúmeros desafios se apresentam quando são projetadas aplicações educacionais para dispositivos móveis com características de realidade virtual: Como produzir um cenário 3D motivador, juntamente com imagens e informações nas reduzidas telas dos telefones celulares? Como possibilitar formas de interação eficientes? Como contornar a limitação de memória e processamento dos dispositivos móveis? Este trabalho apresenta o VirTraM (Virtual Training for Mobile Devices), um framework orientado a objetos voltado para o desenvolvimento de aplicações educacionais inovadoras, que incorporam recursos de realidade virtual em dispositivos móveis. Este framework pretende solucionar os desafios mencionados anteriormente, tornando-se uma solução de arquitetura para a construção de aplicações educacionais em dispositivos móveis. Este artigo apresenta, na Seção 2, aspectos envolvidos na aprendizagem através da utilização de dispositivos móveis e características de SRVs aplicados à educação. A Seção 3 apresenta a arquitetura do framework, destacando os requisitos das aplicações. A Seção 5 descreve o estudo de caso implementado. E a Seção 6 apresenta as conclusões e os trabalhos futuros. 2. Educação: Computação Móvel e Realidade Virtual Este artigo fundamenta-se na utilização de dispositivos móveis para a aprendizagem, caracterizando a área de m-Learning descrita na Seção 1, utilizando Sistemas de Realidade Virtual. 2.1. Mobile Learning O paradigma Mobile Learning ou m-Learning surge aproveitando-se da disponibilidade de dispositivos móveis e considerando-se as necessidades específicas de educação e treinamento (Nyiri, 2002). As pesquisas em m-Learning têm-se voltado para dois grupos de usuários principais: crianças e profissionais que exercem suas atividades em campo, neste artigo 2 _________________________________________________________________________________ V. 3 Nº 1, Maio, 2005 CINTED-UFRGS Novas Tecnologias na Educação definidos como trabalhadores externos. Dispositivos móveis fornecem um novo e motivador paradigma de interação, particularmente para as crianças, e várias iniciativas têm sido desenvolvidas nessa área (Oosterholt, 1996; Danesh, 2001). No caso de trabalhadores externos, cuja rotina é bastante dinâmica, envolvendo viagens a diferentes localidades, a preocupação é fornecer um ambiente de aprendizado que ponha sempre à sua disposição a informação mais atualizada possível. Desta forma, o m-Learning surge como uma importante alternativa de ensino e treinamento à distância, na qual podem ser destacados os seguintes objetivos: • Melhorar os recursos para o aprendizado do aluno, que poderá contar com um dispositivo computacional para execução de tarefas, anotação de idéias, consulta de informações via Internet, registro de fatos através de câmera digital, gravação de sons e outras funcionalidades existentes; • Prover acesso aos conteúdos didáticos em qualquer lugar e a qualquer momento, de acordo com a conectividade do dispositivo; • Aumentar as possibilidades de acesso ao conteúdo, incrementando e incentivando a utilização dos serviços providos pela instituição, educacional ou empresarial; • Expandir o corpo de professores e as estratégias de aprendizado disponíveis, através de novas tecnologias que dão suporte tanto à aprendizagem formal como à informal; • Fornecer meios para o desenvolvimento de métodos inovadores de ensino e de treinamento, utilizando os novos recursos de computação e de mobilidade. O instituto de pesquisa SRI (Stanford Research Institute) realizou uma pesquisa sobre a utilização de dispositivos móveis nas escolas (Crawford et al., 2002). Foram pesquisadas mais de 100 instituições de ensino nos Estados Unidos, do ano de 2000 a 2002. Este estudo concluiu que os dispositivos móveis podem oferecer benefícios únicos aos alunos, conforme descrito a seguir. Os professores participantes demonstraram uma grande aceitação da computação móvel em suas salas de aula. A seguir são apresentados alguns números que demonstram essa aceitação: • 89% dos professores disseram que descobriram nos dispositivos móveis eficientes ferramentas de ensino; • 93% dos professores acreditam que os dispositivos móveis podem ter um impacto positivo na aprendizagem dos alunos; • 90% dos professores pretendem continuar a utilizar os dispositivos móveis em suas aulas; • 75% dos professores que permitiram que os alunos levassem os dispositivos móveis para casa, constataram um aumento na conclusão dos trabalhos de casa; • Entre os alunos, 66% acharam confortável o uso do dispositivo móvel. • Quase a totalidade dos professores afirmou que a utilização de softwares educativos apropriados e acessórios foi de fundamental importância na aprendizagem, ao complementar os recursos básicos dos dispositivos móveis. Por exemplo: alunos podem utilizar sondas acopladas a PDAs para medir e registrar a qualidade da água dos rios. V.3 Nº 1, Maio, 2005 3 CINTED-UFRGS Novas Tecnologias na Educação Em geral, a maioria dos professores afirmou que a introdução da computação móvel na sala de aula aumentou a motivação para aprender, a colaboração e a comunicação entre os estudantes. Em particular, dispositivos de comunicação sem fio oferecem a uma extensão natural da educação a distância via computadores (Lehner et al. , 2002), pois contribuem para a facilidade de acesso ao aprendizado, por exemplo, na obtenção de conteúdo específico para um determinado assunto, sem hora e local pré-estabelecidos. 2.2. A Realidade Virtual no Contexto Educacional Kirner (2004) define realidade virtual (RV) como uma técnica avançada de interface, onde o usuário pode realizar imersão, navegação e interação em um ambiente sintético tridimensional gerado por computador, utilizando canais multi-sensoriais. Através de cenários tridimensionais, é possível representar uma grande variedade de situações voltadas para diversas áreas de aplicação, tais como: excursões virtuais em mundos reais (como museus, terrenos, etc.) ou imaginários e representação de objetos (carros, máquinas, etc) ou personificações de seres reais (homem, animal, etc) ou imaginários (alienígenas). Como um ambiente de apoio à aprendizagem, os SRVs disponibilizam aos educadores, a oportunidade de possibilitar aos alunos o aprendizado por experimentação, pois o aluno poderá movimentar-se, ouvir, ver e manipular objetos, como se estivesse no mundo real. A Tabela 1 apresenta algumas áreas potenciais onde os benefícios dos SRVs educacionais podem ser esperados. Tabela 1: Uso potencial dos SRVs (Ferreira et al., 2004) Uso potencial Benefícios comparados com os métodos tradicionais Simulação de sistemas complexos Habilidade para observar a operação do sistema a partir de um número de perspectivas aliadas a uma alta qualidade de visualização e interação. Visualização macroscópica e microscópica Observação de propriedades de objetos, que são muito grandes ou muito pequenos para serem observados em escala normais. Simulação em tempos mais rápidos ou mais lentos Habilidade para controlar a escala de tempo em um evento dinâmico. Esta facilidade pode operar como no avanço ou retrocesso rápido dos gravadores de vídeo modernos. Altos níveis de interatividade Os SRVs permitem um grau maior de interatividade que outros sistemas baseados em computador. Sensação de imersão Em algumas aplicações, a sensação de escala é extremamente importante. Flexibilidade e adaptabilidade Um mesmo SRV pode ser alocado a diversos usos. 3. VirTraM Um framework orientado a objetos é um modelo reutilizável representado por um conjunto de classes que colaboram entre si e constituem a arquitetura principal de uma aplicação ou sub-sistema (Mattsson, 1996). A idéia principal de um framework é 4 _________________________________________________________________________________ V. 3 Nº 1, Maio, 2005 CINTED-UFRGS Novas Tecnologias na Educação permitir que um conjunto de recursos comuns seja reaproveitado para cada novo software criado. A utilização de frameworks facilita o desenvolvimento de aplicações ao permitir que o programador trabalhe com menos elementos, abstraindo os detalhes de implementação. Outros benefícios são a modularidade e a re-usabilidade (Fayad et al., 1999). O VirTraM tem como objetivo principal provê uma arquitetura para a construção de aplicações voltadas ao treinamento de indivíduos utilizando dispositivos móveis com recursos de realidade virtual. As aplicações desenvolvidas a partir do VirTraM atenderão determinados requisitos em comum, descritos a seguir. Mobilidade. O usuário está em movimento e a aplicação deve poder ser usada em qualquer local e a qualquer momento, sempre que for preciso. Desta forma, não pode haver dependência dos recursos de comunicação. Antes da instalação, é necessário copiar a aplicação, que se encontra em um servidor, para o dispositivo móvel, que funciona como cliente. Após ser instalada, a aplicação deve funcionar localmente no dispositivo e independentemente de uma conexão de dados, com ou sem fio. Assim, garante-se que a aprendizagem não será interrompida em caso de ausência de comunicação. Interatividade. Segundo Rossou (2004) a interatividade é a razão de ser de um mundo virtual. Nesse contexto, a interatividade está associada à habilidade do usuário escolher um caminho dentro do mundo virtual, podendo navegar livremente e manipular os objetos tridimensionais. As formas de manipulação podem ser as operações de rotação e translação e o disparo das animações específicas dos objetos. Portabilidade (Heterogeneidade). A aplicação pode ser executada em diferentes plataformas, característica presente tanto na computação móvel como na realidade virtual (Luchini, 2004; Marson, 2003). A aplicação deve ser compatível tanto com telefones celulares quanto com PDAs, suportando diferentes sistemas operacionais. Facilidade de uso. Segundo Avellis et al. (2003), a aplicação deve ser simples e fácil de usar, pois o usuário não tem como atividade fim a utilização da aplicação móvel, e sim através dela atingir uma determinada finalidade. Isso é importante principalmente quando se é levada em consideração a complexidade de aplicações com recursos de realidade virtual.As seguintes técnicas são empregadas para proporcionar uma maior facilidade de uso da aplicação móvel: • Minimizar a entrada de texto; • Evitar muitos níveis de profundidade nas telas da aplicação, ou seja, uma tela que chama outra tela que por sua vez chama outra tela e assim por diante; • Utilizar imagens para diminuir a quantidade de texto. Informação essencial. As tecnologias de computação móvel devem ser utilizadas em função das tarefas a realizar, mantendo a informação essencial e descartando a informação supérflua. Conteúdo. A aplicação deve possuir um repositório de informações para possibilitar ao usuário um melhor entendimento do ambiente virtual. Através de representação tridimensional, simulação de fenômenos do mundo real, informações descritivas e imagens, o usuário tem uma melhor compreensão do treinamento. V.3 Nº 1, Maio, 2005 5 CINTED-UFRGS Novas Tecnologias na Educação 3.1. Arquitetura O VirTraM é composto por um conjunto de classes que serão adaptadas pelo programador para o desenvolvimento de uma aplicação educacional específica, que atenderá os requisitos mencionados no início da Seção 3. Para a implementação do VirTraM utilizou-se a plataforma Java 2 para dispositivos móveis (J2ME - Java 2 Micro Edition) (Sun, 2004). Adotou-se esse ambiente principalmente pela sua grande portabilidade (suportado pela maioria dos fabricantes de dispositivos móveis). As classes do VirTraM colaboram entre si e devem ser reutilizadas como um todo para a construção da aplicação. O VirTraM encapsula os detalhes de implementação do J2ME e permite ao programador concentrar-se nos aspectos da aplicação de treinamento. A Figura 1 apresenta a arquitetura do VirTraM, cujos detalhes são descritos a seguir. Figura 1. Arquitetura do VirTraM O Pacote de Apresentação consiste de conjunto de classes responsáveis pelas funcionalidades visuais utilizadas nas interfaces da aplicação, tais como: menu com as interações, avisos de alertas e caixas de seleção. O Pacote 3D contém as classes essenciais para a construção dos ambientes tridimensionais das aplicações. Responsáveis pelas funções 3D, tais como: renderização, rotação, translação, mudança do ângulo de visão virtual e detecção de colisão. Um outro recurso importante desse pacote é o apontador, utilizado no ambiente para selecionar os objetos 3D. O Pacote de Interação é responsável por capturar as diferentes interações do usuário, disparar as funcionalidades solicitadas e retornar os resultados para a aplicação. As formas de interação previstas são o teclado ou a tela sensível ao toque do dispositivo móvel. Porém, o framework pode ser estendido para suportar outras formas de interação, como localização via GPS ou Wi-Fi. O Pacote de Persistência fornece as classes responsáveis pelo acesso aos dados da aplicação. Entre as principais funcionalidades desse pacote podemos destacar consulta, armazenamento e alteração das informações do treinamento. O Pacote Nativo fornece as classes responsáveis pelo acesso aos recursos específicos de determinados dispositivos, tais como: recursos de som e função para vibrar o dispositivo móvel. 6 _________________________________________________________________________________ V. 3 Nº 1, Maio, 2005 CINTED-UFRGS Novas Tecnologias na Educação 4. Estudo de Caso O museu virtual foi escolhido como estudo de caso para o VirTraM. Algumas iniciativas têm sido desenvolvidas com o objetivo de representar museus do mundo real em computadores (Wojciechowski, 2004; Corcoran, 2002; Charitos, 2001; Wazlawick, 2001). Porém, é importante salientar que a maioria dos museus encontrados na Internet, ditos virtuais, trata-se apenas de simples páginas Web, sem recursos de realidade virtual. Desta forma, este trabalho utiliza o termo museu virtual para ambientes tridimensionais interativos que possibilitam navegação, simulação e sensação de imersão, total ou parcial. Algumas das vantagens dos museus virtuais são: motivação para uma maior exploração do acervo do museu, através da possibilidade de aproximação e manipulação das obras; visualização e simulação de experimentos nos museus de ciências, para que os alunos possam fixar os conceitos teóricos aprendidos; e, maior poder de ilustração já que a realidade virtual, possibilitando a visão em três dimensões, permite o emprego de múltiplas camadas de referência (profundidade, tamanho, posição, etc.) no aprendizado. O protótipo implementado utiliza recursos de realidade virtual para simular um museu real ou imaginário, propiciando excursões virtuais interativas e aumentando a motivação para a aprendizagem. Dispositivos móveis poderão ser utilizados no interior dos museus, funcionando como guias virtuais e fornecendo informações importantes sobre as obras durante as visitas. O protótipo consiste de um programa para dispositivos móveis, implementado a partir do VirTraM e que possibilita a obtenção de conhecimento sobre os acervos de museus. O desenvolvimento não tomou como base um museu real. O ambiente tridimensional é composto por duas salas, com quadros e uma escultura. O visitante pode navegar pelas salas, olhando para os lados, para cima e para baixo. Toda a interação é feita com a utilização das teclas do telefone celular. O usuário pode, ora movimentar-se, ora movimentar o apontador, ou ainda movimentar um objeto 3D. Ao selecionar um objeto 3D, um menu aparece e o usuário pode escolher entre consultar a descrição daquela obra ou executar uma animação associada, caso exista. É importante ressaltar que o protótipo implementado utiliza o conceito de realidade virtual não imersiva, a qual não necessita de equipamentos sofisticados como luvas 3D ou óculos especiais. A Figura 2 apresenta algumas telas do museu virtual desenvolvido, capturadas a partir do emulador do Wireless Toolkit (WTK) (Sun, 2004). V.3 Nº 1, Maio, 2005 7 CINTED-UFRGS Novas Tecnologias na Educação a) b) c) Figura 2. a) Uma visão ampla de uma das salas do museu virtual. b) Uma visão aproximada da escultura virtual, destacando o menu com suas possibilidades de interação. c) A Interface de Conteúdo, apresentando as informações da obra selecionada. 8 _________________________________________________________________________________ V. 3 Nº 1, Maio, 2005 CINTED-UFRGS Novas Tecnologias na Educação 5. Conclusões e Trabalhos Futuros Este trabalho mostrou o emprego das tecnologias de computação móvel e realidade virtual na educação, e apresentou um framework que reúne funcionalidades de ambas tecnologias, o VirTraM. Este consiste em uma arquitetura reutilizável e expansível para a construção de aplicações educacionais em dispositivos móveis. O protótipo desenvolvido, baseado no VirTraM, demonstrou a integração, de forma segmentada, entre o ambiente tridimensional e o conteúdo educativo, sem complicar a usabilidade da aplicação e considerando as restrições do visor do dispositivo. O protótipo também apresentou formas alternativas de interação, que permitiram ao usuário poder ora navegar ora manipular os objetos, interagindo apenas com as teclas do telefone celular. Por estas razões, o VirTraM pode evoluir e ser aplicado em outras áreas tais como: educação industrial, laboratórios de ciências e manutenção em campo. Como trabalho futuro, planeja-se possibilitar, através da colaboração ou competição entre os visitantes, uma aprendizagem em grupo, utilizando-se tecnologias de comunicação sem fio. Outro plano para o futuro é a utilização de localização automática através de tecnologias como GPS (Global Positioning System) ou Wi-Fi, semelhante ao projeto desenvolvido por Göth et al. (2004), que utiliza essas técnicas para auxiliar um passeio em um campus universitário. Assim, a navegação do usuário dentro do ambiente virtual se daria de forma automatizada, à medida que ele se desloca no ambiente real. Referências Bibliográficas AHONEN, M.; JOYCE, B.; LEINO, M.; TURUNEN, H. Mobile Learning – A Different Viewpoint, In KYNÄSLAHTI, H.; SEPPÄLÄ, P. (Ed). Professional Mobile Learning. Helsinki: IT Press, 2003. AVELLIS, G.; SCARAMUZZI, A.; FINKELSTEIN, A. Evaluating non-functional requirements in mobile learning contents and multimedia educational software. In: EUROPEAN CONFERENCE ON MOBILE LEARNING – MLEARN, 2003. BRICKEN, M. Summer Students in Virtual Reality. WEXELBLAT, A. (Ed).Virtual Reality: Applications and Explorations. New York: Academic Press Professional, 1993. CHARITOS, D.; LEPOURAS, G.; VASSILAKIS, C. Designing a virtual museum within a museum. In: CONFERENCE ON VIRTUAL REALITY, ARCHEOLOGY, AND CULTURAL HERITAGE, 2001. CORCORAN, F.; DEMAINE, J.; DICAIRE, L.; PICARD, M.; TAYLOR J. Inuit 3D: An Interactive Virtual 3D Web Exhibition. In: MUSEUMS AND THE WEB CONFERENCE, 2002. CRAWFORD, V.; VAHEY, P. Palm Education Pioneers Program. March, 2002 Evaluation Report. SRI International, Estados Unidos. DANESH A.; INKPEN K.; LAU F., SHU K.; BOOTH K. Geney: designing a collaborative activity for the Palm handheld computer. In: CONFERENCE ON HUMAN FACTORS IN COMPUTING SYSTEMS, 2001. ERICKSON, T. Artificial Realities as Data Visualization Environments. WEXELBLAT, A. (Ed). Virtual Reality: Applications and Explorations. New York: Academic Press Professional, 1993. V.3 Nº 1, Maio, 2005 9 Novas Tecnologias na Educação CINTED-UFRGS FAYAD, M.; SCHMIDT, C.; JOHNSON, R. Building Application Frameworks: Object Oriented Foundations of Framework Design. 1999. FERREIRA L.; TAROUCO L.; BECKER F. Fazer e compreender na Realidade Virtual: em busca de alternativas para o sujeito da aprendizagem. RENOTE - Revista Novas Tecnologias na Educação, Porto Alegre, 2004. GÖTH, C.; HÄSS,U.-P.; SCHWABE, G. Requirements for mobile learning games shown on a mobile game prototype. In: EUROPEAN CONFERENCE ON MOBILE LEARNING – MLEARN, 2004. KEEGAN, D. The future of learning: From e-learning to m-learning. Disponível em: <http://learning.ericsson.net/mlearning2/project_one/book.html>. Acesso em 15 dez. 2004. KIRNER, C. Sistemas de Realidade Virtual. <http://www.dcc.ufscar.br/~grv>. Acesso em 15 dez. 2004. Disponível em: LEHNER, F.; NÖSEKABEL, H. The Role Of Mobile Devices In E-Learning — First Experiences With A Wireless E-Learning Environment. In: IEEE INTERNATIONAL WORKSHOP ON WIRELESS AND MOBILE TECHNOLOGIES IN EDUCATION - WMTE, 2002. LUCHINI, K.; QUINTANA C.; SOLOWAY E. Design Guidelines For LearnerCentered Handheld Tools. In: PROCEEDINGS OF THE 2004 CONFERENCE ON HUMAN FACTORS IN COMPUTING SYSTEMS, 2004. NYIRI, K. Towards a philosophy of m-Learning. In: IEEE INTERNATIONAL WORKSHOP ON WIRELESS AND MOBILE TECHNOLOGIES IN EDUCATION - WMTE, 2002. MARSON, F.; JUNG, C.; MUSSE, S. Modelagem Procedural de Cidades Virtuais. In: SYMPOSIUM ON VIRTUAL REALITY, 2003 MATTSSON, M. Object-oriented Frameworks: A Survey of Methodological Issues. Licentiate Thesis. Department of Computer Science, Lund University. Sweden. Disponível em: <http://www.ipd.bth.se/michaelm/papers/ >. Acesso em: 15 dez. 2004. MEIRELLES L.; TAROUCO L.; ALVES C. Telemática Aplicada à Aprendizagem com Mobilidade. RENOTE - Revista Novas Tecnologias na Educação, Porto Alegre, 2004. MYERS, B. A.; BEIGL, M. Handheld Computing. IEEE Computer Magazine, 2003. OOSTERHOLT, R.; KUSANO, M.; VRIES G. Interaction Design Personal Communicator For Children. In: CONFERENCE ON HUMAN FACTORS IN COMPUTING SYSTEMS, 1996 ROUSSOU, M. Learning by doing and learning through play: an exploration of interactivity in virtual environments for children. Computers in Entertainment - CIE, 2004. SUN. Java 2 Platform, Micro Edition (J2ME). <http://java.sun.com/j2me/index.jsp>. Acesso em 15 dez. 2004. Disponível em: SYVÄNEN, A.; AHONEN, M.; JÄPPINEN, A.; PEHKONEN, M.; VAINIO, T. Accessibility And Mobile Learning. In: IFIP ETRAIN CONFERENCE IN PORI, Finland, 2003. 10 _________________________________________________________________________________ V. 3 Nº 1, Maio, 2005 CINTED-UFRGS Novas Tecnologias na Educação WAZLAWICK, S. Collaborative Learning In A Virtual Museum Authoring Tool. In: SYMPOSIUM ON VIRTUAL REALITY, 2001. WOJCIECHOWSKI, R.; WALCZAK K.; WHITE M.; CELLARY W. Production: Building Virtual And Augmented Reality Museum Exhibitions. In: THE NINTH INTERNATIONAL CONFERENCE ON 3D WEB TECHNOLOGY, 2004 V.3 Nº 1, Maio, 2005 11 Revista Brasileira de Informática na Educação, Volume 20, Número 2, 2012 Facilitando o aprendizado de programação sob a ótica de metodologias ágeis Title: Facilitating the programming from the perspective of agile methodologies Vilson C. Gärtner Mestrado em Computação Aplicada UNISINOS [email protected] Resumo Sergio Crespo C S Pinto Mestrado em Computação Aplicada UNISINOS [email protected] Arthur Torgo Gómez Mestrado em Computação Aplicada UNISINOS [email protected] Dentro das metodologias ágeis a ideia de programação em pares obedece de forma implícita esta teoria. A ideia deste trabalho é proporcionar que um conjunto maior de pessoas possam compartilhar o desenvolvimento de um código fonte de forma colaborativa e que fique registrado no ambiente o histórico das alterações e todo o processo intelectual que leva a mudanças em determinadas partes de um código fonte. Isto permite que uma relação N-N possa ser estabelecida em um ambiente de desenvolvimento de software distribuído, potencializando a teoria do par mais capaz. O artigo apresenta uma ferramenta desenvolvida como um plug-in do NetBeans que incorpora várias funcionalidades de ambientes colaborativos para suporte a programação distribuída em tempo real. Palavras-Chave: Programação em pares, Programação, Programação Distribuída Abstract The agile idea of pair programming implicitly obeys this theory. The idea of this paper is to provide that a larger set of people can share the development of a source code in a collaborative manner and that the history and the whole intellectual process that leads to changes in certain parts of a source code will be record in the environment. This allows a N-N relationship can be established in a development environment for distributed software, leveraging the theory of the more capable peer. The article presents a tool developed as a NetBeans’ plug-in, functionality that incorporates several of collaborative environments to support distributed programming in real time. Keywords: Pair Programming, Programming, Distributed Programming Recebido: 10 de Junho de 2012 / Aceito: 15 Julho de 2012 / Publicado: 20 de Agosto de 2012 DOI: 10.5753/RBIE.2012.20.02.54 54 Gärtner et al. 1 Introdução O aumento dos ambientes colaborativos em empresas produtoras de software desencadeia um novo perfil do aluno que entra nos cursos de computação: “o perfil de trabalhar em grupo”. Para isto, é necessário aliar o uso de ferramentas colaborativas e teorias pedagógicas que reforcem a colaboração entre pares e acentuem a colaboração em atividade de desenvolvimento de software. Por outro lado, desenvolver software é uma atividade altamente intelectual e que exige troca de conhecimento constante entre as pessoas envolvidas. Tal necessidade por interação é evidenciada por algumas práticas de desenvolvimento, como a “programação em pares”. É necessário, ainda, que os pares sejam permutados a cada nova atividade, de forma a disseminar o conhecimento adquirido entre os aprendizes. Para [24], “o olho humano tem uma grande capacidade de não enxergar aquilo que não quer ver”. Da mesma forma, um aluno iniciante pode ignorar completamente um erro gritante que seria rapidamente percebido por um observador mais experiente. Pesquisas realizadas pelos autores revelam que dois programadores juntos chegam a uma solução mais rápida e com maior qualidade do que dois programadores trabalhando separadamente na resolução de problemas. [13] identifica que as iniciativas para viabilizar programação por pares distribuídos utilizam aplicações não orientadas para este fim. São utilizados: compartilhamento de desktop, e-mail, troca instantânea de mensagens, voz sobre IP, repositórios de arquivos compartilhados e videoconferência. Tais aplicações possuem objetivos específicos e não são orientadas à programação. Neste contexto, torna-se importante a existência de um ambiente integrado que viabilize diferentes formas de comunicação orientadas ao ensino de programação, por pares, de forma distribuída e colaborativa[13]. Neste sentido, este trabalho apresenta a ferramenta IdDE. Esta consiste em um ambiente colaborativo para auxílio à programação distribuída em pares. A sua principal contribuição está na possibilidade de utilização de ferramentas interativas que tornam mais eficiente o processo de colaboração. Além disso, do ponto de vista pedagógico, trabalhar em pares, valendo-se de um instrumento mediador, segundo o princípio sociocultural da teoria Vygotskyana, influi nas interações, pois, em geral, o indivíduo costuma explicitar suas estratégias durante a resolução de tarefas compartilhadas Facilitando o aprendizado de programação sob a ótica de metodologias ágeis 2. Groupware e sua fundamentação pedagógica Segundo [10], CSCW ou Groupware é definido como o estudo dos sistemas que integram o processamento de informações com atividades de comunicação, de forma a identificar como os grupos trabalham e como a tecnologia pode ajudá-los a resolver tarefas em comum, reforçando a importância da comunicação, colaboração e coordenação [10]. Conforme [12], a comunicação oportuniza a negociação e o estabelecimento de compromissos entre os participantes do grupo. Para utilizar o computador como ferramenta de comunicação, é necessário que o sistema ofereça suporte à interação entre as pessoas. Deve haver controle entre os estados, eventos e diálogos de cada participante. De acordo com o modelo, o emissor define a sua intenção (no nível mais abstrato de ideias) e a fórmula através de símbolos. Utiliza o computador para expressá-la numa mensagem e transmiti-la via canal de dados. Chegando ao destino, a mensagem é percebida e interpretada, de forma a modificar seus argumentos. As ferramentas de comunicação podem ser classificadas em dois tipos, podendo ser analisadas quanto ao tipo de resposta e quanto ao nível de aplicação [12]. • Quanto ao tempo de resposta: podem ser síncronas e assíncronas. • Quanto ao nível de aplicação: o Sistemas de mensagens – suportam a troca de mensagens de texto entre usuários; o Editores multiusuários – onde códigos podem ser alterados por vários usuários; o Decisão em grupo – oferecem mecanismos para tomada de decisão em grupo; o Conferências – São em geral módulos com apoio de áudio e vídeo; o Agentes Inteligentes – Sistemas de software autônomos; o Sistemas de coordenação – permitem o controle e gerência das atividades do grupo. Os autores estabelecem, ainda, um conjunto de funcionalidades importantes a sistemas de colaboração em tempo real (síncronas), conforme apresenta a Tabela I: Funcionalidade Ações 55 Definição O conjunto de objetos e ações, realizadas e percebidas por to- Gärtner et al. Funcionalidade RBIE V.20 N.1 – 2012 Definição dos. Janelas Áreas que estão compartilhadas e sincronizadas por todos os participantes on-line. Cursos Movimento do cursor é percebido e disponibilizado a todos. Visão Uma representação visual ou multimídia de parte do conteúdo compartilhado. Interação Ações percebidas de forma síncrona e assíncrona. Seção Período de interação síncrona. Papéis Conjunto de privilégios, atribuições ou responsabilidades de participante do grupo. indivíduo. De acordo com Piaget o conhecimento não está no sujeito nem no objeto, mas ele se constrói na interação do sujeito com o objeto. É na medida em que o sujeito interage (e, portanto age sobre e sofre ação do objeto) que ele vai produzindo sua capacidade de conhecer e vai produzindo também o próprio conhecimento [11]. Já Vygotsky aborda este processo do ponto de vista de interatividade entre o indivíduo e o meio social. O princípio sociocultural da teoria Vygotskyana nos traz um forte embasamento pedagógico para o trabalho em equipe, onde a importância da comunicação, colaboração e coordenação a fim de viabilizar o trabalho em grupo e obter melhores resultados, quando comparados ao trabalho realizado individualmente, é o elemento de sucesso. • Redução da necessidade de viagens; Para Vygotsky, os processos mentais só podem ser entendidos se forem entendidos os instrumentos e os signos que mediam esses processos. Além disso, o desenvolvimento cognitivo do ser humano não pode ser entendido fora do contexto social e cultural em que este se produz. E para entender o desenvolvimento cognitivo do ser humano, bem como os instrumentos e signos que mediam esses processos, Vygotsky se apoia no método genético experimental. Compreende-se então que, para Vygotsky, o modelo histórico-social é esboçado nas estruturas de mediação instrumental e social, que por sua vez internalizam, no ser humano, estruturas que possibilitam a interpretação do movimento, quer pela passagem de ações realizadas no plano social, portanto interpsicológicas, quer pela passagem de ações internalizadas (intra-psicológicas). No caso de ferramentas de Groupware essas ações interpsicológicas e intra-psicológicas possuem uma dimensão não linear o que possibilita ao indivíduo uma postura exploratória maior. Desse modo as interações entre o grupo potencializam construções de conhecimento mais autônomos e criativos [18]. Trabalhar em pares, valendo-se de um instrumento mediador, influi nas interações, pois, em geral, o indivíduo costuma explicitar suas estratégias durante a resolução de tarefas compartilhadas. • Os pares são forçados a manter registros eletrônicos de seus trabalhos e ideias; 3. Trabalhos Relacionados • Os membros tendem a diminuir as conversas offtopic. Nesta seção serão apresentados alguns trabalhos pertinentes ao estudo. Tabela 1: Funcionalidades de Sistemas de Colaboração Síncronas 2.1 Desenvolvimento de Software Distribuído A tendência pelo desenvolvimento de software através de grupos geograficamente distribuídos é justificada, segundo [15], pela redução de custos e busca por mão de obra qualificada. Os autores citam fatores como necessidades competitivas e a globalização das operações corporativas como atenuantes dessas tendências. Evidências indicam que o desenvolvimento distribuído costuma consumir tempo maior, quando comparado ao realizado por equipes geograficamente centralizadas, identificando a comunicação e coordenação como principais causas para esse aumento de tempo [15]. 2.2 Programação em Pares Distribuída Vários estudos têm sido realizados com o objetivo de avaliar as diferenças apresentadas, quanto à produtividade e qualidade, entre a programação em pares distribuída e a realizada “lado a lado”. Em [22] são citados como vantagens: Schummer percebeu que os programadores devem estar aptos a se comunicar, ambos devem acompanhar o mesmo trecho de código, mas apenas um deve alterá-lo. A comunicação pode ocorrer por voz. Para os autores e coautores, o contato visual não é necessário [20][25]. 2.3 Teorias pedagógicas que fundamentam o modelo Groupware A interatividade está presente como elemento fundamental no processo de construção do conhecimento do 3.1 VIMEE É um ambiente para auxiliar a comunicação e a tomada de decisão em equipe. Possibilita uma comunicação síncrona, explícita e formal em ambientes DSDE (Distributed Software Development Environment) [23]. A comunicação entre os participantes ocorre de maneira clara e explícita, e é baseada em procedimentos formais que guiam o andamento das atividades, indicando quem está habilitado a executar algo. Algumas de suas características são: 56 Gärtner et al. • Agendamento de reuniões, com aviso aos participantes; • Permite a troca síncrona de mensagens de texto; • Não possui limites quanto ao número de participantes; • Permite a visualização de artefatos do projeto; • Permite o compartilhamento de documentos e imagens; • Possibilita o armazenamento de documentos gerados numa reunião; • Possibilita a realização de votações, para tomada de decisão. Para organizar o fluxo dos procedimentos, o VIMEE permite a coordenação das reuniões através do papel de um mediador. A interface do mediador difere da interface dos demais usuários, e tem por objetivo possibilitar: o início e término de uma reunião, bloquear ou liberar algum participante, controlar as votações e enviar mensagens. Nessa interface, também é controlado qual usuário, previamente inscrito, pode se manifestar. Aliado a isso, possibilita a liberação do acesso aos artefatos do projeto, além de poder tornar visível a existência de documentos e imagens para os demais participantes. 3.2 RemotePP O RemotePP é um ambiente cooperativo de desenvolvimento com o objetivo de dar suporte à programação em pares distribuídos [2]. Como o seu objetivo é voltado para a programação em pares, a sessão somente pode ser estabelecida entre dois programadores, um local e outro remoto, desde que esteja dentro da mesma rede. O ambiente possui uma série de ferramentas, a seguir descritas: • Edição de código-fonte: este módulo permite a edição de programas de forma colaborativa, porém, não simultâneo, ou seja, somente um programador pode alterar o código por vez. Caso a sessão não tenha sido estabelecida com o outro usuário, a edição acontece somente de forma local; • Quadro branco: funcionalmente similar ao módulo de edição de código-fonte, este módulo permite que ambos os programadores, colaborativamente, editem desenhos e diagramas. Neste caso, a edição pode ser feita simultaneamente por ambos programadores; • Chat: permite a troca de mensagens instantâneas entre os dois usuários; • Vídeo: este módulo permite que os programadores realizem videoconferência. Para isso, é necessário que exista uma webcam instalada e configurada 57 Facilitando o aprendizado de programação sob a ótica de metodologias ágeis nos computador; • Voz: possibilita que os programadores se comuniquem por áudio, utilizando o microfone acoplado ao computador; • Ferramenta externa: permite que um programa externo seja executado, a exemplo de um compilador. As mensagens de saída, oriundas da execução do programa externo, serão exibidas para ambos os programadores. 3.3 CollabEd Trata-se de um editor desenvolvido sobre uma plataforma de colaboração, segundo [17]. O design da plataforma compreende três categorias essenciais: conexão, manutenção e replay das interações. A arquitetura do aplicativo é baseada no modelo cliente/servidor. Tanto o servidor quanto o cliente são desenvolvidos na linguagem Java e, assim, são multiplataformas. Além de ser executado como uma aplicação independente, o CollabEd pode ser acoplado a editores de texto já existentes, através plugins. Já existem plugins disponibilizados para os editores Netbeans, Eclipse e JEdit. Neste aplicativo, o servidor é o encarregado de manter o histórico das alterações efetuadas nos clientes. Graças a este histórico, mesmo que os clientes mantenham as alterações em um buffer, as mesmas serão aplicadas corretamente pelo servidor, que se encarregará de atualizar a posição onde as alterações devem acontecer no documento remoto. 3.4 Sangam O Sangam foi desenvolvido por [16] na forma de um plug-in para o ambiente de desenvolvimento Eclipse. A ferramenta oferece sincronização de código-fonte entre mais de dois programadores. O Sangam não bloqueia o texto durante uma sessão. A arquitetura do aplicativo utiliza três componentes principais: • Interceptador de eventos – Monitora o ambiente a fim de capturar todas as ações que o usuário (driver) realiza no editor de código Java da aplicação; • Servidor de mensagens – É responsável pelo envio das mensagens ao navigator; • Reprodutor de eventos – Realiza as ações recebidas pelo servidor de mensagem de modo a reproduzi-las no computador do navigator. 3.5 Flecse O Flecse atua como um conjunto de ferramentas colaborativas e aplicáveis a todo o ciclo de vida de desenvolvimento de software [8]. A interface de todas as aplicações é baseada em linha de comando e console texto, com as seguintes características: Gärtner et al. • O controle de versão: permite controlar a versão do programa; • MShell: é um interpretador de comandos colaborativo; • Teleconf: permite gravação, transmissão e execução de uma conversação por áudio; • MDebug: possibilita a depuração de programas de forma compartilhada; • CSI: é um mecanismo de inspeção de código assíncrono e síncrono; 4. Um Ambiente de Suporte ao Desenvolvimento Colaborativo de Software Esta seção apresenta o IdDE, um ambiente que oferece apoio ao processo colaborativo de programação de N:N usuários, mostrando de forma detalhada, o ambiente, suas ferramentas, sua arquitetura e tecnologias utilizadas. O IdDE esta em http://idde.vgdata.net/ para ftp. 4.1 Introdução A colaboração possui um papel fundamental no desenvolvimento de software e uma organização terá mais benefícios das tecnologias colaborativas se utilizar um conjunto delas: mensagem instantânea, videoconferência, serviços de áudio de qualidade, repositórios integrados e ambientes de compartilhados [6]. Sob a perspectiva de um programador, um Ambiente Integrado de Desenvolvimento (IDE) possibilita a escrita de código e fornece uma série de funcionalidades importantes para o processo de aprendizagem de programação com enfoque colaborativo. O IdDE permite que a comunicação via áudio ocorra entre usuários do ambiente e dispositivos de telefonia convencional, telefonia móvel, telefones IP, ATAs e smartphones. Já a edição compartilhada poderá ocorrer entre aplicativos que implementam o protocolo de comunicação e negociação do IdDE. O chat, por sua vez, poderá ser utilizado em dispositivos que possuam softwares que utilizem o mesmo protocolo de comunicação adotado pelo ambiente. 4.1 Tecnologias utilizadas As seguintes tecnologias foram utilizadas no desenvolvimento do IdDE: Java como linguagem de programação, NetBeans como IDE de desenvolvimento, protocolo XMPP1 (eXtensible Messaging and Presence Protocol) e protocolo SIP2 (Session Initiation Protocol). A seguir são 1 2 http://xmpp.org ://www.ietf.org/rfc/rfc3261.txt RBIE V.20 N.1 – 2012 descritas as tecnologias. • Linguagem de Programação Java: A escolha da linguagem de programação Java tem como objetivo possibilitar que o ambiente seja executado nas mais variadas plataformas operacionais, além de ser multiplataforma, é uma linguagem largamente utilizada e difundida; • Ambiente Netbeans: Este ambiente oferece todas as funcionalidades necessárias para a edição de código fonte, além de disponibilizar inúmeras outras ferramentas, a exemplo de: formatação de código, dicas e sugestões de códigos automáticos, compilação, depuração, criador visual de formulários, suporte à internacionalização e suporte a diversas linguagens de programação; • Protocolo XMPP: Este protocolo foi escolhido por ser um protocolo aberto e largamente utilizado para a comunicação. A tecnologia XMPP utiliza uma arquitetura cliente/servidor descentralizada, similar às arquiteturas utilizadas nas redes WWW e de e-mail [19]. Exemplos bastante conhecidos de seu uso são o Google Talk e Facebook; • Protocolo SIP: O protocolo SIP é utilizado em comunicações do tipo VoIP. Segundo [9], SIP é um protocolo que controla a negociação, modificação e encerramento de uma sessão multimídia interativa. As sessões multimídia podem ser de áudio, vídeo, chat ou mesmo sessões de jogos [21]. 4.2 Arquitetura do Ambiente IdDE O Ambiente foi projetado para garantir uma arquitetura modular e foi desenvolvido utilizando a estrutura do Netbeans. Desta forma, o IdDE comporta-se como um módulo (ou plugin) do NetBeans. A Figura 1 mostra de forma detalhada a arquitetura do ambiente. A interface e funções de interação com o usuário foram criadas independentes do IDE NetBeans, entretanto, são integradas ao mesmo através de sua arquitetura de plugins. Isso possibilita que o IdDE também possa ser integrado a outros IDEs, bastando para isso criar a camada de plugin (na figura, representado por "Interface”). Essa camada é a única parte que possui alguma dependência do Netbeans. Dessa forma, a interação do usuário com o ambiente acontece através das opções disponibilizadas pelo IdDE, e a interação deste com os editores será através da arquitetura de plugins dos mesmos. Analisando a arquitetura do IdDE, é possível observar que as únicas funcionalidades do IdDE que estão diretamente vinculadas à camada de plugins do Netbeans são a edição compartilhada e a camada de interface, que estão relacionadas às janelas Principal e Controle de Sessões de 58 Gärtner et al. Facilitando o aprendizado de programação sob a ótica de metodologias ágeis edição. Essas janelas são criadas quando o módulo é carregado no Netbeans, o que ocorre durante a inicializainicializ ção deste aplicativo. Figura 1: Arquitetura do ambiente Pode-se se verificar também que as funções acionadas pelo usuário fazem uso do Protocolo IdDE. Isso se deve ao fato de que o ambiente envia mensagens de negocianegoci ção para o ambiente remoto, solicitando ou informando a ação executada pelo usuário local e que deve ser replic replicada para o usuário remoto. emoto. Desta forma, para que um apl aplicativo possa se comunicar com o IdDE, deve implemenimpleme tar, obrigatoriamente, esse mesmo protocolo. Por fim, a figura mostra que as funcionalidades de presença e chat interagem diretamente através de XMPP, não havendo a trocaa de mensagens ou utilização do protocolo IdDE. Isso permite que o IdDE se comunique com qualquer aplicatiaplicat vo que suporte o protocolo XMPP. A Figura 2 representa a visão lógica da organização do sistema e suas ferramentas. No diagrama pode-se pode observar que oss pacotes de classes foram organizados de forma a refletir a arquitetura modular apresentada na Figura 1. O nome de cada pacote faz referência à funciofunci nalidade que implementa, e o detalhamento dessas funfu cionalidades é apresentado na Tabela II. Para implementar a comunicação no IdDE, foram utilizadas as bibliot bibliotecas: Smack1 para a comunicação XMPP, Peers2 para comunicação SIP, além de partes de código do projeto Shortalk3. A estruturação do código, conforme discutido anteriormente, foi feita de acordo com os o módulos do aplicativo. Figura 2: Estrutura de pacotes de classes do IdDE Pacote editor task agenda fileManager sip common common::view common::transport 1 http://www.igniterealtime.org/projects/smack http://peers.sourceforge.net 3 http://code.google.com/p/shortalk 2 59 common::model Funcionalidade Possui as classes responsáveis pela implementação da edição compartilhada e simultânea. Neste pacote estão as classes responsáveis pelo geren gerenciamento de tarefas. Agrega as classes relacionadas à agenda de compromissos. Classes responsáveis pela transferência de arquivos entre os usuários. Possui as classes que implementam a comunicação via áudio. Este pacote agrega ag funcionalidades comuns, necessárias aos demais pacotes. Este pacote possui os subpacotes view, transport e model. Neste pacote estão localizadas as classes responsáveis pela implementação da tela principal e de configuração do IdDE (MainPanel), ( e da tela com informações das sessões de edição colaborativa ativas (SessionFrame SessionFrame). Agrega as classes de definição de mensagens do protocolo IdDE, além de criação e interpretação das mensagens desse protocolo. Poss Possui as classes que implementam as funcionalidades relacionadas Gärtner et al. Pacote moduleIdDE RBIE V.20 N.1 – 2012 Funcionalidade ao XMPP, como conexão, envio de mensagens e presença. Neste pacote ficam localizadas as classes responsáveis pela integração do IdDE ao Netbeans e pela interação com o documento de edição de código fonte. As principais classes são: Installer, , responsável pela “instalação” e ativação do módulo no Netbeans; IddeTopComponent IddeTopComponent, responsável pela apresentação da tela principal do IdDE no Netbeans; e SessionTopComponent SessionTopComponent, responsável por apresentar apre a tela com informações das sessões de edição compartilhada existentes. Tabela2: Pacotes e suas funcionalidades do [5], deve-se se possibilitar a análise e revisão síncrona online do código. Aliado iado a isso, a ferramenta também contribuirá na aprendizagem de desenvolvedores inicianinicia tes, possibilitando que estes acompanhem a programação de usuários mais experientes. A arquitetura da ferramenta de colaboração cola pode ser vista na Figura 3. O pacote moduleIdDE modu é o responsável pelo integração ção do ambiente ao Netbeans e possui as classes encarregadas gadas pelo monitoramento dos eventos no documento. A classe DocumentChangesListener monitora as alterações (inclusão e exclusão de caracteres) que ocorrem no documento o e a classe DocumentCaretListener é a responsável vel por fazer o monitoramento das alterações na posição do cursor. Também neste pacote estão as clascla ses: EditAnnotation,, responsável pela criação das caractecaract rísticas cas visuais no ambiente (marcações de alterações alteraçõe feitas e seus respectivos autores), e a classe CaretPosAnnotation responsável pelas marcações visuais relativas à posição do cursor dos usuários remotos. Figura 3: Arquitetura da ferramenta de edição colaborativa A ferramenta de edição colaborativa do ambiente IdI DE permite que vários usuários acessem e modifiquem o mesmo código fonte, simultaneamente. nte. A edição em tempo real tem papel fundamental no desenvolvimento distribuído, auxiliando para que se tenha um código pap dronizado, otimizado e de melhor qualidade final. Segu Segun- A classe SessionControl do pacote editor::controller é responsável por controlar as sessões de edição ediçã de documentos, estabelecidas entre dois (ou mais) usuários. Entre os métodos importantes dessa classe estão: getEditSession,, responsável por iniciar uma nova sessão de edição colaborativa; addSharedEditing, addSharedEditing responsável por incluir 60 Gärtner et al. getSharedFiles método um novo usuário a uma sessão; getSharedFiles, utilizado para retornar os arquivos que estão numa sessão de edição; getSharedUsers,, utilizado para retornar os usuários que participam de uma sessão; pingAlive, utilizado para verificar se os usuários continuam na sessão; exitSharedEditing,, executado quando um usuário sai de uma sessão compartilhada; e addMessageToBuffer, addMessageToBuffer método utilizado para enviar uma mensagem do protocolo para os demais usuários da sessão. As informações das sessões existentes são mantidas no atributo editSessions. 4.3 O Ambiente IdDE As interfaces desenvolvidas no IdDE foram encapsuencaps ladas no sistema de janelas do Netbeans, através da util utilização de suas APIs. Na Figura 4 essas interfaces são identificadas pelas classes MainPanel e SessionFrame do pacote common::view.. Essas janelas são criadas automaautom ticamente quando o plugin do IdDE é carregado, o que ocorre durante a inicialização do Netbeans. Na Figura 4 estão destacadas ambas as janelas do IdI DE: a janela principal (A) na qual é feita a configuração do aplicativo cativo e mostrados os usuários conectados; e a janela de sessões (B) que exibe as sessões de edição sis multânea estabelecidas. Como está integrado ao NetbeNetb ans, o IdDE dispõe de todos os mecanismos deste amb ambiente, como por exemplo, a possibilidade de minimizar minimiz ou ocultar as janelas, o que amplia o espaço de edição. Facilitando o aprendizado de programação sob a ótica de metodologias ágeis este documento está em uma sessão de edição colaboraticolaborat va. Caso não esteja, o processo é concluído e nenhuma ação é tomada. Entretanto, se ele estiver sendo compart compartilhado, o, é necessário avaliar o tipo de alteração ocorrida e compor a instrução apropriada para os demais usuários participantes. As modificações no estado podem ser alteração de texto, como a inclusão ou exclusão de caracteres, ou a mudança na posição do cursor. r. Quando ocorrer uma mudança na posição do cursor, o ambiente verifica o novo posicionaposicion mento e envia uma mensagem aos ambientes remotos, para que estes atualizem essa informação. Quando ocoroco rer a alteração de texto, o IdDE verifica se houve inclusão ou exclusão clusão de texto. Em caso de exclusão de um trecho de código, o único procedimento a ser executado é a criação e o envio da respectiva mensagem para os ambiamb entes remotos informando onde ocorreu a remoção. No caso de inclusão, são informados, além da posição, posiçã os caracteres que devem ser adicionados. Quando recebe instruções de outros usuários, além de efetuar a alteração no código, o IdDE adiciona marcações visuais ao ambiente, como pode ser observado na Figura 5, que permitem localizar e identificar tanto as a alterações quanto seus autores. Essas informações são importantes, pois auxiliam o usuário na análise e revisão síncrona online do código alterado, o que é essencial, segundo [5]. Estes recursos visuais utilizam-se utilizam das APIs nativas do Netbeans. Dessa forma, em uma adaptação do plugin para outro IDE, tais funcionalidades deverão ser reescritas utilizando as funcionalidades disponibilizadas por aqueaqu les ambientes. A Figura 5 mostra detalhadamente esses elementos. Figura 4: Integração do IdDE no Netbeans 4.3.1 Edição Colaborativa no Ambiente gr gráfico A ferramenta de edição colaborativa é a que mais utiliza a troca de mensagens entre os ambientes. Após esta estabelecer a comunicação entre os ambientes e adicionar os listeners necessários aos documentos, todas as modificações feitas por um usuário serão enviadas aos demais usuários partipart cipantes da sessão e serão replicadas naqueles ambientes. Quando o ambiente detecta tecta que um usuário fez uma m modificação num documento, o primeiro passo é verificar se 61 Figura 5: Alteração de código As marcações visuais adicionadas pelo IdDE ao Netbeans são ão a marcação do texto alterado e a indicação da posição do cursor do usuário remoto. oto. Gärtner et al. RBIE V.20 N.1 – 2012 nessas marcações, fazendo com que o editor traga para pa a área visível o trecho de código com a respectiva ocorrê ocorrência. Considerando que, teoricamente, é possível estabelecer um número ilimitado de sessões, é importante proporcioproporci nar ao usuário a informação de quais arquivos estão se sendo compartilhados e quais usuários estão participando dessas sessões. Caso o usuário participe de muitas sesse sões de edição colaborativa, essas informações passam a ser ainda mais importantes. Figura 6: Marcação de código e posicionamento de cursor As marcações visuais adicionadas pelo IdDE ao Netbeans são a marcação ão do texto alterado e a indicação da posição do cursor do usuário remoto. A Figura 6 mostra detalhadamente essas marcações. Quando o ambiente recebe uma mensagem de alteração de código de um usuário remoto, essas modificações são imediatamente aplicadas no código local e marcadas através da utilização de uma sublinha ondulada em verde. Além disso, as linhas que sofreram alterações são marc marcadas com um ícone com a forma de um círculo verde (Fi(F gura 6-A). A). Quando o usuário desloca o ponteiro do mouse sobre estee ícone, são exibidas informações detalhadas como dados inseridos, coluna e autor, como mostra a imagem. Outra marcação importante adicionada ao documento é a indicação da linha na qual está posicionado o cursor do usuário remoto. Essa marcação é represen representada por um ícone azul com uma seta (Figura 6-B). B). Como é possível que vários usuários editem o documento ao mesmo te tempo, para saber qual a posição de um determinado usuário, basta que se desloque o ponteiro do mouse sobre o ícone e o ambiente apresentará o nome do usuário, conforme pode ser observado na imagem. Quando o usuário remoto deslocar o cursor em seu ambiente, essa informação é igualmente atualizada no ambiente local. Nos estudos de caso realizados, pode-se se perceber que essa característica contribuii para o aumento da interatividade e experiência do usuário. Em casos nos quais o código fonte é muito extenso, são criadas barras de rolagem no documento, da mesma fo forma como ocorre em outros editores. Nestas situações, pode acontecer de o usuário remoto fazer alterações na parte do texto que não está visível para o usuário local. Assim, para que este tenha ciência das alterações que estão sendo feitas no código, são criadas também as ma marcações indicadas pela Figura 6 (C). Nestas marcações, as cores identificam ificam o tipo de ocorrência e, deslocando o mouse sobre as mesmas, são exibidas informações det detalhadas, a exemplo do que ocorre quando se desloca o mouse sobre os ícones. Adicionalmente, é possível clicar Para auxiliar o usuário nesse aspecto, foi criada uma janela específica para manter as informações in das sessões de edição colaborativa existentes, exibida Figura 42. Essa janela é composta por uma tabela, contendo o nome do arquivo compartilhado e os usuários participantes da sessão. Toda vez que uma nova sessão de edição colab colaborativa é estabelecida, ecida, uma nova linha é adicionada à tabetab la. Da mesma forma, quando um novo usuário passa a fazer parte da sessão, seu nome é adicionado àquela iinformação. A figura 7 apresenta a interface para gerencigerenc amento de informações, Figura 7: Janela de controle dee seção e menu de contexto Além de exibir as informações sobre os arquivos e usuáusu rios das sessões, essa janela também dá acesso a outras funcionalidades relacionadas à sessão. Clicando com o botão direito sobre uma linha da tabela, é apresentado um menu de contexto, com as funções a seguir descritas: • “Send chat message to all users”: através desta opo ção pode-se se enviar uma mensagem de texto para todos os usuários uários participantes da sessão; • “Leave this editing session”: esta opção deve ser utilizada quando se deseja sair de uma sessão de edição colaborativa. Outras formas de sair de sesse sões são: finalizar a conexão com o servidor XMPP, fechar o documento ou ainda fechar o Netbeans. Em todos estes casos o ambiente envia uma mensagem alertando os ambientes remotos remoto que o usuário está deixando a sessão. • “Show all changes made on this file”: acessando esta opção é apresentada ao usuário uma janela com todas as alterações feitas na sessão de edição 62 Gärtner et al. selecionada. Os dados constantes nessa tabela são: código do protocolo indicando o tipo de alteração ocorrida (inclusão ou exclusão), posição onde a modificação aconteceu, a informação incluída, o autor e momento da alteração. Quando se trata da exclusão de informações, o campo de informação incluída fica em branco. As informações rmações da tabela podem ser ordenadas pressiopressi nando-se se o título da coluna. Dessa forma, as informações podem ser agrupadas permitindo, por exemplo, uma an análise para verificar as alterações feitas por um mesmo autor, tipo de alteração ou seguindo a ordem que as alterações ocorreram. Além de fornecer o histórico das alterações efetuadas, essa funcionalidade permite que se efetuem outras anál análises posteriores como, por exemplo, avaliar a lógica de programação utilizada por um usuário na resolução de um problema ou implementação de uma nova funcionalidade a um programa. Além disso, com base nessas inform informações é possível implementar uma ferramenta que permita a execução passo-a-passo passo de todas as alterações que ocoroco reram num arquivo, podendo-se se simular todo o proce processo desde o princípio. • “Send my version to remote (All)”: esta opção é utilizada para enviar o código do ambiente local para os demais participantes da sessão. Esta opção era especialmente útil quando o ambiente ainda não implementava o controle da ordem das mensagens; • “Verify if users are still connected”: através desta opção é possível verificar se todos os usuários pa participantes da sessão continuam conectados. Caso um usuário remoto tenha sido desconectado de forma abrupta, ele permanecerá na lista de usuários da sessão e o ambiente continuará a enviar as mensagens de alterações. Assim, esta opção auxiaux lia a eliminar usuários que não estiverem mais coc nectados. Facilitando o aprendizado de programação sob a ótica de metodologias ágeis 4.3.3 Gerenciamento de Tarefas Através da ferramenta de controle de tarefas do IdDE, será possível atribuir tarefas aos programadores, acompaacomp nhar sua execução e progresso, permitindo que os propr gramadores adicionem observações às mesmas. No modelo proposto pelo ambiente, as tarefas não ficam armazenadas num banco de dados centralizado, mas sim, distribuídas de forma descentralizada no banco de dados de cada usuário. Dessa forma, quando um usuário quiser saber o detalhamento das tarefas de outro, basta acessar a opção apropriada no ambiente. Em trabalhos futuros, pretende pretende-se estudar a viabilidade da integração desse módulo a ferramentas online como, por exemplo, o Google Calendar. Essa integração possibilitapossibilit ria que outros stakeholders que não possuam acesso ao ambiente de desenvolvimento possam acessar as inforinfo mações relativas às tarefas. As funcionalidades de gerenciamento também são acesace sadas através do menu de contexto na lista de contatos, conforme mostra a Figura 8. No menu, existem três tr opções disponíveis, descritas a seguir: • Add task for this user: esta opção deve ser utilizautiliz da para adicionar uma nova tarefa para o usuário. usuá • View user’s tasks: Esta opção deve ser utilizada para ver as tarefas existentes para o usuário remorem to. Nessas solicitações, olicitações, o ambiente remoto responrespo de com uma mensagem de chat, listando as tarefas ta do usuário; • Open task manager: Essa opção apresenta uma tet la com as tarefas do usuário local. Através dessa tela é possível alterar informações. 4.3.2 Controle de versões durante a edição colaborativa no ambiente IdDE No contexto do IdDE, as sessões de edição colabor colaborativa permitem o acompanhamento das alterações em tempo real, enquanto que o uso da ferramenta de controle de versões mantêm uma visão macro das alterações efeef tuadas ao longo do tempo. O controle de versões está integrada diretamente amente no Netbeans e, dessa forma, todas as alterações feitas num arquivo automaticamente ficam registradas num repositório local, controlado pelo NetbeNetb ans. Além disso, esse IDE também possui suporte e inteint gração com outros repositórios como: Subversion, MerM curial e CVS. 63 Figura 8: Menu de contexto texto e opções relacionadas a tarefas 5. Estudo de Casos No total foram realizados quatro estudos de casos em grupos heterogêneos, abrangendo profissionais que trabatrab lham no desenvolvimento de software, e professores e acadêmicos de cursos de graduação da área de tecnologia Gärtner et al. RBIE V.20 N.1 – 2012 da informação. Neste trabalho são apresentados unicamente os três experimentos executados no ambiente acadêmico. feitas comparações com a versão existente na máquina do professor, para verificar a ocorrência de alguma discrepância entre as duas versões. 5.1 Cenário 1: Estudantes Universitários 5.1.2 Análise dos resultados O primeiro estudo de caso foi realizado com alunos de uma turma de graduação do Centro Universitário UNIVATES, na cidade de Lajeado/RS. A turma era composta por alunos dos cursos de Sistemas de Informação, Engenharia da Computação e Análise de Sistemas, todos cursando a disciplina de Programação Orientada a Objetos. Na avaliação dos participantes, a ferramenta de chat se mostrou útil para todos eles. Alguns consideraram importante a possibilidade de poder efetuar a tradução das mensagens. Igualmente, para todos os respondentes a ferramenta auxiliou no processo de edição compartilhada e colaborativa. Em relação à comunicação via áudio, apesar de não ter ocorrido nenhum teste neste cenário, 93% dos respondentes consideram importante essa forma de comunicação quando os programadores estão separados geograficamente. Os testes foram realizados num total de duas aulas, no mês de Dezembro de 2010. Alguns alunos participantes já atuavam na área de desenvolvimento de sistemas, enquanto que outros somente estudavam ou eram profissionais de outras áreas. As ferramentas testadas foram edição colaborativa e comunicação via chat. 5.1.1 O processo utilizado Os testes deste cenário foram realizados num dos laboratórios da instituição, com um total de 23 participantes. Antes do início dos testes, foi feita uma apresentação da ferramenta, descrevendo suas características e seus objetivos. Em seguida, os próprios alunos executaram a instalação do plugin no Netbeans, que já é utilizado normalmente nas disciplinas de programação. O sistema operacional utilizado para estes testes foi o Windows XP. Para a realização dos testes, foi utilizado um servidor XMPP interno (OpenFire1), visto que as políticas de segurança da instituição não permitiam a utilização de servidores externos. As ferramentas testadas neste cenário foram edição simultânea e comunicação através de mensagens instantâneas. A comunicação via áudio não foi possível em virtude do bloqueio das portas na rede da instituição. Para a realização dos testes e análise do comportamento da ferramenta, os alunos foram instruídos a compartilharem arquivos com o professor, o qual acompanhava, a partir de sua mesa, as modificações feitas nos documentos. Além disso, o professor também colaborava com os alunos através da escrita de código diretamente no arquivo compartilhado. A comunicação entre os alunos e professor, sempre que possível, ocorreu através da ferramenta de chat do ambiente. Todavia, foi possível perceber que, apesar da praticidade, os alunos com menos conhecimento de programação se sentiam mais confortáveis com a presença do professor ao seu lado. Durante os testes realizados neste cenário, a ferramenta não apresentou nenhum tipo de problema. À medida que os alunos alteravam os códigos dos programas, eram 1 Em relação ao processo de ensino/aprendizagem presencial 79% dos respondentes concordam que a ferramenta contribui nesse sentido. Entre os que concordam, as justificativas mencionam o fato de que o professor não precisa se deslocar até o computador do aluno, outras alegam que as ferramentas do ambiente fornecem maior interatividade entre os usuários e o consideram como um facilitador. 5.2 Cenário 2: Profissionais de Instituições de Ensino Neste estudo de caso, foram realizados experimentos com profissionais de desenvolvimento de software de três instituições de ensino superior do país: UFJF (Universidade Federal de Juiz de Fora/MG), UCS (Universidade de Caxias do Sul/RS) e FAI (Centro de Ensino Superior em Gestão, Tecnologia e Educação, de Santa Rita do Sapucaí/MG). Além da edição colaborativa e a comunicação utilizando mensagens de texto, neste estudo de caso foram feitos testes utilizando a comunicação através de áudio. 5.2.1 O processo utilizado Neste cenário, cujo nível de dispersão é do tipo “Distância Nacional”, conforme a classificação de [1], não houve nenhum contato pessoal para apresentação ou explicações detalhada das ferramentas do IdDE. Todos os contatos e instruções sobre a instalação e funcionamento do plugin foram mantidos através de e-mail e chat. Os testes ocorreram no mês de Fevereiro de 2011 e nenhum dos participantes utilizava o Netbeans em seu dia-a-dia. Com a UCS, os testes foram realizados com a Coordenadora do Setor de Sistemas e as ferramentas testadas foram: edição colaborativa e chat. Já no caso da FAI, os testes ocorreram com a Coordenadora de TI e as ferramentas utilizadas foram: edição colaborativa, chat e comunicação via áudio. Na UFJF, os testes aconteceram com um Analista de Sistemas e as funcionalidades testa- http://w ww.igniterealtime.org/projects/openfire/ 64 Gärtner et al. das foram edição colaborativa, chat, áudio, ferramenta de tradução, gerenciamento de tarefas e agenda. Além disso, ocorreram testes internos entre dois analistas da UFJF. Para a realização desses testes, o servidor XMPP utilizado foi o GMail e, para a comunicação através de áudio foi utilizado um servidor Asterisk1. Além da execução dos testes individuais com os representantes de cada instituição, ocorreu um teste conjunto com o analista de sistemas da UFJF e a Coordenadora de TI da FAI, momento no qual foram testadas as ferramentas de edição colaborativa, chat e áudio. Para a realização destes testes, foi efetuada a instalação do servidor XMPP OpenFire ao invés do uso do servidor do GMail. Os testes realizados nestes cenários seguiram a mesma metodologia: primeiro eram feitas modificações nos códigos fontes e, posteriormente, eram confrontadas as versões finais dos documentos em cada ambiente para a verificação da consistência e integridade dos códigos. 5.2.2 Análise dos resultados A avaliação dos testes neste cenário foi realizada por um total de quatro pessoas: uma da UCS, duas da UFJF e uma da FAI. Todos os participantes consideraram que a ferramenta auxiliou no processo de comunicação através de chat. Da mesma forma todos os participantes avaliaram que o ambiente auxilia no processo de edição colaborativa de software. Entre as justificativas apresentadas está a simplicidade e a funcionalidade do ambiente e o fato de se poder acompanhar o local onde o usuário remoto está efetuando as modificações. Além disso, também foi citada a rapidez da atualização do arquivo remoto, muito superior se comparada ao uso os tradicionais aplicativos de acesso remoto como o compartilhamento de desktop. Por fim, foi mencionado que a edição compartilhada permite a prática de programação em pares do Extreme Programming de uma forma muito mais efetiva. A ferramenta de áudio se mostrou útil e funcional para ambos os participantes que realizaram este teste. Igualmente, todos os participantes dos testes deste cenário consideram a comunicação via áudio importante num cenário onde os programadores estão separados geograficamente. Entre os motivos alegados, está o fato de que, se um programador precisar explicar as modificações feitas num código, é muito mais rápido e fácil que o chat textual Em relação à contribuição da ferramenta para o processo de ensino/aprendizagem presencial, apenas um participante considerou que não tinha condições de avaliar a ferramenta sob este ponto de vista, por não ter utilizado ela para esse fim. Os demais consideraram que ela seja 1 http://www.asterisk.org 65 Facilitando o aprendizado de programação sob a ótica de metodologias ágeis útil por auxiliar em diversas situações como, por exemplo, permitir que um professore corrija os programas dos alunos num laboratório, sem a necessidade de ficar se deslocando de computador em computador. Em relação ao desenvolvimento distribuído de software, todos os participantes consideraram que a ferramenta quebra a barreira das distâncias, possibilitando que os usuários consigam trabalhar da mesma forma como se estivessem utilizando a ferramenta estando num mesmo ambiente. Na opinião de todos os participantes, o fato do ambiente ter sido desenvolvido como módulo do Netbeans contribuiu para enriquecer sua a qualidade e praticidade funcional. 5.3 Cenário 3: Professores Universitários Este estudo de caso foi realizado com quatro professores de cursos de graduação da área de tecnologia da informação, do Centro Universitário UNIVATES, na cidade de Lajeado/RS. Entre os professores, estavam os coordenadores dos cursos de Sistemas de Informação e Engenharia de Computação, além do Diretor do Centro de Ciências Exatas e Tecnológicas. As ferramentas testadas neste cenário foram: edição colaborativa e comunicação via chat. 5.3.1 O processo utilizado A realização de testes junto a um grupo de professores teve por objetivo validar o potencial da ferramenta em ambientes de ensino presencial e à distância, sob o ponto de vista desses profissionais. Os professores envolvidos nos testes realizam atividades de EAD nas disciplinas que ministram. Os testes deste estudo de caso ocorreram no mês de Dezembro de 2010, no mesmo laboratório de informática utilizado anteriormente para os testes com os estudantes de graduação, descrito no Cenário 1. Após breve apresentação do ambiente e suas funcionalidades, os professores instalaram o plugin no Netbeans e foram instruídos a se comunicarem utilizando o chat do IdDE e efetuassem a edição colaborativa de códigos fonte de programas. Inicialmente a edição ocorreu aos pares, mas posteriormente todos os participantes passaram a editar o mesmo arquivo. Percebeu-se que não houve nenhuma perda de desempenho nesta circunstância e as modificações feitas por um professor eram enviadas aos demais quase que instantaneamente. Acredita-se que o fato de o servidor XMPP utilizado estar na rede própria instituição tenha contribuído para esse resultado. 5.3.2 Análise de Resultados Neste grupo, todos os participantes concordam que o ambiente auxilia no processo de comunicação através de Gärtner et al. mensagens instantâneas. Da mesma forma, todos os participantes concordaram que a ferramenta é útil na edição colaborativa, afirmando que o sistema funcionou de forma satisfatória para alterações em um mesmo trecho de código, arbitrando na intervenção de diversos colaboradores. Igualmente, consideraram que a ferramenta é extremamente útil em qualquer situação que demande desenvolvimento compartilhado: entre desenvolvedores de software, entre professor e aluno, na sala de aula ou auxílio à distância. Em relação ao processo de ensino aprendizagem presencial, apenas um dos participantes considera que o ambiente até possa auxiliar, mas bem menos que no processo de aprendizagem à distância. Em contrapartida, os demais participantes consideram que o software seja interessante também nesse modelo, pois o professor pode acompanhar de forma mais efetiva o que os alunos estão fazendo. Avaliam que a ferramenta permitiria que o docente auxiliasse mais de um aluno simultaneamente, sem a necessidade de se deslocar na sala de aula, multiplicando o número de alunos atendidos no período de aula. Os participantes foram unânimes ao afirmar que a ferramenta possui uma grande contribuição para a aprendizagem à distância. Entre as justificativas, está a contribuição para o auto aprendizado, capacidade inerente aos profissionais da informática. Aliado a isso, consideram que um recurso como esse seja extremamente útil para apoiar o ensino de programação à distância, afirmando que outros meios tradicionais como e-mail e chat são bem menos adequados, além de serem mais trabalhosos tanto para o professor quanto para o aluno. Com o uso do ambiente, o professor poderia explicar o funcionamento de determinado código para o aluno de forma online. Segundo os participantes, a principal vantagem apontada foi a edição colaborativa de código. Afirmam que a ferramenta apresenta o resultado imediato das modificações, permitindo o acompanhamento e intervenção remota em tempo real e dentro do próprio ambiente de desenvolvimento. Além disso, consideram que o IdDE agiliza a atividade de desenvolvimento e o ensino e treinamento em programação, principalmente quando os participantes estão separados geograficamente, permitindo o auxílio e suporte a alunos e programadores menos experientes. 6. Conclusões e Trabalhos Futuros O desenvolvimento de software geograficamente distribuído tem aumentado significativamente nos últimos anos e tornou-se uma necessidade de negócio para muitas corporações. Por outro lado, segundo Piaget, na medida em que o sujeito interage com, e sofre ação do objeto, ele vai produzindo sua capacidade de conhecer e RBIE V.20 N.1 – 2012 vai produzindo também o próprio conhecimento. Nesse sentido, este trabalho propõe um ambiente computacional que vai de encontro à teoria de Vygotsky, disponibilizando mecanismos onde o par mais capaz está presente, usando mecanismos de interação, coordenação e comunicação para a programação em pares distribuídos, potencializando o aprendizado. Os resultados das avaliações dos estudos de caso comprovam que os objetivos traçados no planejamento deste trabalho foram plenamente atingidos. Na opinião de todos os participantes, as ferramentas de chat e edição colaborativa contribuem decisivamente para o desenvolvimento de software. Da mesma forma, os participantes dos estudos de caso consideraram que as ferramentas do ambiente tornam possível sua utilização no processo de ensino/aprendizagem, tanto presencial quando à distância, bem como validam seu uso no desenvolvimento de software tanto por equipes locais, quando distribuídas. Em relação à produtividade, 100% dos usuários consideraram que as ferramentas do ambiente contribuem para o seu aumento. No que se refere à utilização do Netbeans como base para a criação do aplicativo, todos os participantes avaliaram que tenha sido uma escolha apropriada, salientando que aplicativo desenvolvido agrega funcionalidades importantes para este IDE, tornando-o ainda mais completo. Os resultados demonstram ainda que as escolhas dos protocolos XMPP e SIP se mostraram acertadas. Além de possibilitarem a interoperabilidade do ambiente com outros aplicativos e dispositivos, diversas avaliações fizeram referência à velocidade e rapidez das ferramentas do ambiente, principalmente se comparadas a ferramentas normalmente utilizadas no desenvolvimento de software, como compartilhamento de área de trabalho e acesso remoto aos computadores. Durante o desenvolvimento do aplicativo percebeu-se que outros recursos interessantes poderiam ser incorporados ao ambiente. Da mesma forma, com a realização dos estudos de caso foram sugeridas várias funcionalidades a serem desenvolvidas em trabalhos futuros. Entre as funcionalidades, pode-se destacar: • Implementar um algoritmo de controle e ordenação das mensagens, que garanta a unicidade de código para todos os participantes de uma sessão de edição colaborativa; • Melhorar a apresentação das mensagens exibidas ao passar com o mouse sobre o ícone verde, que informam as alterações efetuadas num documento, agrupando as modificações por autor e possibilitando um acesso direto à janela do histórico das alterações; 66 Gärtner et al. • Facilitando o aprendizado de programação sob a ótica de metodologias ágeis supported concurrent software engineering. Computer, vol.26, no.1pp.17-27, 1993. Adicionar suporte a comunicação através de vídeo; • Desenvolver uma ferramenta de quadro branco, que permita que os usuários compartilhem imagens e desenhos, à exemplo do que ocorre com a edição colaborativa; [9] J. Davidson, J. Peters, M. Bhatia, S. Kalidindi and S. Mukherjee, Voice Over IP Fundamentals. 2. ed. Indianapolis, IN: Cisco Press, 2006. [10] C. A. Ellis, S. J. Gibbs, and G. Rein, Groupware: some issues and experiences. ACM Communications Vol.34, No. 1 , 39-58, 1991. [11] S. R. K. Franco, O construtivismo e a educação. Porto Alegre: Mediação, 1996. [12] H. Fuks, A. Raposo, M. Gerosa, “Do Modelo de Colaboração 3C à Engenharia de Groupware”. Simpósio Brasileiro de Sistemas Multimídia e Web – WEBMIDIA, 2003. [13] B. Hanks, “Student performance in CS1 with distributed pair programming”. In Proceedings of the 10th Annual SIGCSE Conference on innovation and Technology in Computer Science Education. ITiCSE '05. ACM Press, New York, NY, 316-320, 2005. [14] J. D. Herbsleb and R. E. Grinter, Splitting the Organization and Integrating the Code: Con-way’s Law Revisited. In: ICSE’99, Los Angeles, CA. Proceeding,1999. [15] J. D. Herbsleb and D. Moitra, Global software development, IEEE Software, vol.18, no.2pp.1620, Mar/Apr 2001, 2001. [16] C. Ho, S. Raha, E. Gehringer and L. Williams, “Sangam: a distributed pair programming plug-in for Eclipse”. In Proceedings of the 2004 OOPSLA Workshop on Eclipse Technology Exchange. eclipse '04. ACM Press, New York, NY, 73-77, 2004. [17] E. Lawrence, CollabEd: A Platform for Collaboratizing Existing Editors. International Confer-ence on Mobile, Hybrid, and On-line Learning, 2009. [18] A. F. T. Primo and M. B. F. Cassol, Explorando o conceito de Intera-tividade: definições e taxionomias. In: Informática na Educação: teoria e prática. Porto Alegre: Revista PGIE/UFRGS, v.2, n.2, out, 1999. • Possibilitar a criptografia das mensagens que são enviadas de um ambiente para outro; • Agrupar e integrar as janelas de chat ao ambiente do Netbeans; • Portar o plugin para outros IDEs; • Possibilitar a seleção do Codec de áudio a ser utilizado nas comunicações; • Implementar uma ferramenta que possibilite a execução passo a passo todo o histórico de alterações de uma sessão de edição colaborativa, simulando todo o processo ocorrido anteriormente. 7. Referencias Bibliográficas [1] J. Audy and R. Prikladnicki, Desenvolvimento Distribuído de Software. 1. ed. Rio de Janeiro: Elsevier, 2008. [2] R. M. Borges, S. C. C. S. Pinto, J. L. V. Barbosa and D. N. F. Barbosa, Usando o modelo 3C de colaboração e Vygotsky no ensino de programação distribuída em pares. XVIII Simpósio Brasileiro de Informática na Educação (SBIE), 2007. [3] E. Carmel, Global Software Teams – Collaborating Across Borders and Time Zones. Upper Saddle River, NJ: Prentice Hall, 1999. ISBN 0-13924218-X. [4] E. Carmel, “Thirteen assertions for globally dispersed software development research”, Proceedings of the Thirtieth Hawaii International Conference on System Sciences, vol.3, no.pp.445452 vol.3, 7-10, 1997. [5] E. Carmel and R. Agarwal, “Tactical Approaches for Alleviating Distance in Global Software Development,” IEEE Software, pp. 22-29, March/April, 2001. [6] E. Carmel and P. Tjia, Offshoring Information Technology – Sourcing and Outsourcing to a Global Workforce. Cambridge, UK: Cambridge University Press, 2005. [19] D. Damian and D. Moitra, “Global Software Development: How Far Have We Come?” IEEE Software, Vol. 23, No. 5, 2006. P. Saint-Andre, K. Smith and R. Tronçon, XMPP: The Definitive Guide – Building Real-Time Applications with Jabber Technologies. 1. ed. Sebastopol, CA: O’Reilly Media, 2009. [20] T. Schummer and J. Schummer, Support for Distributed Teams in Extreme Programming. Extreme Programming Examined, Succi, G., Mar- [7] [8] 67 P. Dewan and J. Riedl, Toward computer- Gärtner et al. RBIE V.20 N.1 – 2012 chesi, M. eds., p. 355–377, Boston, MA: Addison Wesley, 2001. [21] H. Sinnreich and A. B. Johnston, Internet Communications Using SIP: Delivering VoIP and Multimedia Services with Session Initiation Protocol. 2. ed. Indianapolis, IN: Wiley Publish-ing, 2006. [22] D. Stotts, L. Williams, N. Nagappan, P. Beheti, D. Jen and A. Jackson, Virtual Teaming: Experiments and Experiences with Distributed Pair Programming, Proceedings of the Third XP Agile Universe Conference, 2003. [23] D. F. G. Trindade, T. F. C. Tait and E. H. M. Huzita, A tool for supporting the communication in distributed software development environ-ment. Journal of Computer Science & Technology, 8 (2), pp: 118-124, 2008. [24] L. A.Williams and R. R. Kessler, All I really need to know about pair programming I learned in kindergarten. ACM Communications. Vol. 43, No. 5, 108-114, 2000. [25] Juan Manuel Adán-Coello, Wiris Serafim de Menezes, Eustáquio São José de Faria, Carlos Miguel Tobar, Conflito Sócio-Cognitivo e Estilos de Aprendizagem na Formação de Grupos para o Aprendizado Colaborativo de Programação de Computadores, Revista Brasileira de Informática na Educação, RBIE, V.16. N. 03, 2008. 68