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

Documentos relacionados