Utilizando o Software ALICE no Projeto de Capacitao de
Programadores Java no mbito da UFPI
Isadora Bastos1, Raimundo Moura1
1Departamento de Informtica e Estatstica Universidade Federal do
Piau (UFPI)64.049-550 Teresina PI
[email protected]. This paper describes the use
of the ALICE Software Project Training in Java Programmers Using
Games as well as the design, applied to a class of students
entering the course Computer Science UFPI. The main objective of
this project is to avoid avoidance and minimize the number of
failures in the discipline program structured using a different
tool, innovative and seeks more student interaction in learning.
Preliminary results are motivators regarding teaching
methodology.Resumo. Este artigo descreve a utilizao do Software
ALICE no projeto Capacitao de Programadores Java usando Jogos, bem
como o projeto, aplicado a uma turma de alunos ingressantes do
curso de Cincia da Computao da UFPI. O objetivo principal deste
projeto evitar a evaso e minimizar o nmero de reprovaes na
disciplina programao estruturada utilizando-se de uma ferramenta
diferente, inovadora e que busca mais interao do aluno no
aprendizado. Os resultados preliminares so motivadores com relao a
metodologia de ensino utilizada.
1. Introduo
De acordo as estatsticas apresentadas no documento Educao
Superior em Computao [Nunes, 2012], o nmero de alunos matriculados
tem aumentado ano a ano, passando de 117.351 (2001) para 209.680
(2005) e 314.436 (2010). No entanto, o nmero de alunos concluintes
gira entre 20% a 25% dos alunos matriculados 4 ou 5 anos antes,
sendo, portanto, 27.907 (2005) e 42.476 (2010).No curso de Cincia
da Computao da UFPI, os dados so os seguintes para alunos
matriculados: 176 (2001), 247 (2005) e 272 (2010), enquanto o nmero
de formandos gira em torno de 10% dos alunos matriculados 4 ou 5
anos antes, sendo: 17 (2005) e 27 (2010). Note que o nmero de
formandos em 2005 obtido observando o nmero de matriculados em 2001
e o nmero de formandos em 2010 obtido observando os alunos
matriculados em 2005.A UFPI atravs da Coordenadoria de Estatstica e
Documentos de Ensino da Pr-Reitoria de Ensino de Graduao elaborou
um relatrio contendo os principais indicadores de cada curso de
graduao da UFPI.Fez-se, ento, uma anlise minuciosa do rendimento
dos alunos matriculados na disciplina Programao Estruturada. A
maior preocupao era descobrir se o nmero de reprovaes e de evases
no curso tinha aumentado. Levantou-se os dados das turmas desta
disciplina referente aos perodos de 2010.1 a 2011.2, sendo que no
ano de 2011 houve duas turmas em cada perodo letivo: 2011.1 e
2011.2. Nestas turmas, a grande parte das reprovaes dos alunos por
nota (ver Figura 1a).A Figura 1a mostra o grfico com o nmero de
alunos reprovados (por nota e por falta), referentes aos anos de
2010 e 2011. A Figura 1b mostra a porcentagem de alunos reprovados
no mesmo perodo. Note que a partir do ano de 2011 tem sido ofertado
duas turmas por perodo letivo, uma com os alunos ingressantes no
curso e outra turma apenas com alunos reprovados. No foco deste
trabalho discutir a metodologia utilizada pelos professores que
ministraram estas disciplinas. Percebe-se que o nmero de reprovaes
por turma bastante alto e que a turma 2010.2 atingiu 77% de
reprovaes, sendo, portanto, a maior porcentagem de reprovaes das
turmas. (a) (b)
Figura 1: Nmero de reprovaes por turma nos anos de 2010 e
2011.
Diante desta anlise, faz-se a seguinte pergunta: o que pode ser
feito para que haja um melhor aproveitamento da disciplina por
parte dos alunos? Que metodologia deve ser utilizada para minimizar
o nmero de reprovaes desta disciplina?Estes nmeros so preocupantes
tanto para o Ministrio de Educao e Cultura quanto para os
profissionais envolvidos com o ensino superior. No sentido de
aumentar a taxa de sucesso dos cursos de graduao, diversos esforos
tm sido realizados nas Instituies de Ensino Superior brasileiras,
tais como: O projeto LOGO [PAPERT, 1985], O projeto Alice Brasil, A
metodologia ERM2C [CAMPOS, 2010], entre outros.Um esforo que est
sendo realizado na UFPI diz respeito a capacitao de profissionais
da rea de Computao para atuar na indstria brasileira de software e
servios de Tecnologia da Informao. Esta proposta foi aprovada pelo
Edital CNPq 23/2010 Formao Expressa. A estratgia de ensino
utilizada neste projeto contempla o uso do Software ALICE, que um
ambiente de programao 3D inovador que cria histrias em animao. uma
ferramenta de ensino gratuita, projetada para ensinar os primeiros
passos de programao orientada objeto de forma simples e ldica. O
ambiente grfico permite que os estudantes aprendam conceitos
fundamentais de programao no contexto de criar filmes animados e
jogos simples para motivar os participantes. Atualmente, este
projeto est sendo executado com os alunos aprovados no Sistema de
Seleo Unificada SiSU, mas que ainda no iniciaram as atividades
curriculares regulares na UFPI.Este artigo tem como objetivo
descrever resumidamente este esforo, atravs da utilizao do Software
ALICE e discutir os resultados preliminares obtidos com a execuo
parcial do projeto.
2. Capacitao de Programadores
O projeto Capacitao de Programadores Java Usando Jogos fora
aprovado pelo CNPq atravs do Edital 23/2010, porm o termo de
concesso e aceitao de apoio financeiro ao projeto s foi liberado no
final de 2011. Decidiu-se, ento, executar uma turma do projeto com
os alunos aprovados no Sistema de Seleo Unificada SiSU para o curso
de Cincia da Computao, mas que ainda no haviam iniciado as
atividades curriculares regulares na UFPI.Para selecionar os
participantes do curso, enviou-se um convite por e-mail no dia 16
de abril de 2012 para os 36 alunos aprovados no SiSU/UFPI. Em dois
dias, obteve-se 18 respostas positivas, o que comprova o grau mdio
de interesse dos alunos ingressantes 50 % de alunos interessados. A
seguir, descreve-se a estrutura bsica do curso e alguns resultados
motivadores para a metodologia que tem sido utilizada para o ensino
de tcnicas de programao.
2.1. Estrutura do CursoA carga-horria total do curso de 200
horas, dividida em trs mdulos: introdutrio, programao e processo de
software. O mdulo introdutrio possui trs disciplinas:Introduo Lgica
de Programao com Jogos 30 h, Introduo a Estruturas de Dados 30 h e
Infraestrutura de HW e SW 20 h; O mdulo de programao com trs
disciplinas: Java Bsico 36 h, Java e Banco de Dados 12 h e Java e
WEB: JSF 24 h; e o mdulo bsico de processo de software tambm com
trs disciplinas:Introduo Engenharia de Software 16 h, Testes de
Unidade 16 h e Um Exemplo de um Processo de Software 16 h. A
metodologia do curso consta de aulas tericas e prticas,
enriquecidas por seminrios, debates, discusses de casos, pesquisas
dirigidas e palestras. O contedo dasdisciplinas tem sido exposto
com o uso de jogos computacionais em laboratrio de computao com o
uso de projetor multimdia. Cada participante recebe no incio de
cada disciplina o plano de trabalho elaborado pelos bolsistas que
ministram o curso, sob orientao de um professor.A disciplina
Introduo Lgica de Programao com Jogos fez uso intenso da ferramenta
ALICE [DANN et al., 2009]. O software ALICE foi idealizado em 1997
por um grupo de pesquisa, liderado pelo pesquisador Randy Pausch,
na Carnegie Mellon University nos Estados Unidos. No Brasil, o
professor Edson Barros tem organizado o Congresso Internacional
ALICE BRASIL nos anos de 2011 e 2012, com o intuito de difundir
esta ferramenta em pases de lngua portuguesa.
2.2. O uso do Software ALICE
2.2.1 O Sofware
Segundo [4] e [6] o ALICE um software livre que suporta a
programao orientada a objetos, como as linguagens C++ ou Java.O
ALICE possui uma interface grfica, que compe o ambiente virtual, na
qual o usurio pode organizar o cenrio e os objetos de sua aplicao.
Assim, este software constitui-se em um ambiente de desenvolvimento
de programas tridimensionais, o qual acrescido de recursos de
animao e interao, tem sido considerado um recurso facilitador no
processo de ensino e aprendizagem da lgica computacional. Graas a
estas caractersticas, a utilizao do ALICE visa reduzir o tempo de
criao e implementao de programas grficos em 3D interativos, uma vez
que o usurio no necessita aprender a sintaxe dos comandos da
linguagem, bastando apenas, na maior parte dos casos, clicar e
arrastar objetos e mtodos disponveis no software, inclusive usar
efeitos de cmeras e luz [5].O ALICE dispe de um conjunto de objetos
e mtodos fixos, que utilizados em conjunto geram os movimentos, ou
eventos, e animaes da aplicao. Alm disso, permite que os mesmos
mtodos fixos sejam combinados de vrias formas para gerar novos
mtodos e outros eventos [5].Por sua vez, os eventos so usados no
ALICE, junto com as funes lgicas, para criar as animaes, ou
movimentos dos elementos ou personagens que atuam no cenrio,
permitindo inclusive agregar sons e interao do usurio, enquanto a
estria transcorre, com o uso do teclado ou mouse [5].Para os seus
desenvolvedores [2], a efetiva utilizao do ALICE, poder resultar na
superao de alguns problemas, por eles considerados como os trs
primeiros obstculos na introduo de uma linguagem de programao. So
eles [2][5]:1) Desde as suas origens, o processo de desenvolvimento
de um programa ou aplicao, usando alguma linguagem de programao,
envolvia erros relacionadas notao ou sintaxe utilizada nos
comandos.Assim sendo, muitas vezes o usurio programador sentia-se
frustrado, ao ver o seu esforo de programao interrompido devido a
erros de sintaxe. Oprocesso de edio do ALICE permite que o usurio
se sinta mais livre no desenvolvimento de uma intuio sua
relacionada sintaxe, devido ao fato, de no ter que se preocupar com
ela. Neste software cada vez que este necessitar utilizar um
comando, bastar apenas selecionar, clicar e arrastar os comandos,
previamente escritos nos tpicos de programao, nos quais as opes
vlidas ficam em destaque.O cdigo j vem organizado, inclusive
respeitando as regras de endentao e a colocao de blocos e
parnteses, erros muito comuns que ocorrem nas linguagens de
programao tradicionais.2) O ALICE, por ser uma linguagem virtual,
agregado sua concepo, permite aos estudantes visualizar na tela, os
resultados parciais, no necessitando esperar o programa ser
totalmente executado. Assim, torna- se mais fcil acompanhar, ver e
perceber visualmente que algum objeto se moveu para frente ou para
trs, do que entender de um ponto de vista terico, que alguma
varivel presente no programa foi incrementada ou decrementada em
uma ou mais unidades.A concepo do ALICE possibilita que os usurios
ao utilizarem este software, percebam e identifiquem facilmente as
relaes estabelecidas entre o programa desenvolvido e a ao de
animao.3) O ALICE propicia um ambiente de programao, visto sob um
ponto de vista psicolgico, que motiva e encoraja o aluno a criar
pequenos mtodose funes. Na medida em que o aluno cria uma animao
3D, um filme ou um jogo, usando os recursos de programao do ALICE,
abre-se caminho para que o professor possa estimul-lo no
desenvolvimento de uma estria, como o enredo de um filme, que pode
ser elaborada com recursos simples de design e refinada com
pseudocdigos.A seguir as estruturas bsicas de programao,
implementadas na linguagem JAVA e no ALICE.
2.2.2 As EstruturasComo dito na maioria dos livros de programao
bsica, os programas podem ser escritos e implementados utilizando
apenas as trs estruturas bsicas da programao: sequencial,
condicional e repetitiva. Comeando com a estrutura sequencial, No
software ALICE, os comandos dessa estrutura so colocados na rea de
edio do programa a ser desenvolvido. Existe um comando especfico,
denominado Do in order, que far com que cada ao seja executada uma
aps a outra. Como exemplo, pode-se criar um mundo com neve
(File/New World) e adicionar o objeto husky da classe Animals (em
Add Objects presente na janela do mundo), como ilustra a Figura
2.
Figura 2: Objeto Husky da Classe AnimalsConcluda a construo do
cenrio do programa, inicia-se o desenvolvimento do mesmo. Na rea de
edio do ALICE, no mtodo principal do programa (World.myfirstmethod)
insere-se os mtodos referentes ao husky (existentes no huskys
details no lado esquerdo da tela) dentro do comando Do in order na
ordem em que se deseja que eles sejam executados, j que nesse
comando, as aes seguiro a sequncia imposta.Dessa forma, o husky ir
primeiramente caminhar, depois sentar, latir, coar a orelha e mexer
a cauda, nessa sequncia, que pode ser visualizada na Figura 3.
Figura 3: Exemplo do comando Do in order.
J a estrutura condicional consiste em uma deciso a ser tomada ou
ainda uma condio, cujo atendimento ou no implicar em um caminho
diferente na lgica do programa. Se uma determinada condio for
verdadeira, o programa executa determinado comando, caso seja
falsa, no executa o comando (condicional simples) ou ainda, executa
outro comando (condicional composta).Na linguagem Java, por
exemplo, existem as estruturas condicionais if, if...else e
switch...case.Por meio de um exemplo muito simples, visto a seguir
em linguagem Java (Figura 4), pode-se entender as estruturas
condicionais. O usurio deve inserir um nmero inteiro.Se o resto da
diviso desse nmero por 2 for zero, o programa identifica que o
nmero par. Caso ocorra o contrrio, ou seja, o resto da diviso for
diferente de zero, o programa identifica que o nmero mpar.
Figura 4 : Exemplo de Condicional em JAVANo software ALICE,
existe o comando If/Else, que est relacionado com as estruturas
condicionais da programao e se assemelha muito com a linguagem
JAVA. No entanto, o cuidado com a sintaxe no necessrio no ALICE,
conforme indicado anteriormente.Desenvolve-se um cenrio de neve
(Figura 5) composto pelo objeto IceSkater da classe People/Walking
People. Em seguida, altera-se as propriedades do mundo, em
properties no worlds details (atmosphere Color: blue;
ambientLightColor: Black; ambientLight Brightness de forma a criar
um ambiente apagado e escuro.
Figura 5: Cenrio de Neve com PatinadoraA prxima etapa, aps o
cenrio ter sido finalizado, escrever o cdigo do programa, que,
nesse caso, envolver a estrutura If/Else, sendo que esta depender
da deciso do usurio do programa. O cdigo do programa pode ser visto
nas Figuras 6 e 7.Quando o programa executado o usurio deve decidir
se quer ou no que a bailarina patine (funo do mundo ask user for
Yes or No). Ou seja, h uma condio para que haja a continuao da
execuo da lgica do programa. Caso a resposta seja Yes, um bloco de
comandos ser executado, como pode ser visto nas figuras 6 e 7: a
luz do ambiente se tornar branca e com uma intensidade maior, a
bailarina ir andar, girar, mudar de pose diversas vezes e, assim,
compor a dana.
Figura 6: Exemplo de Estrutura Condicional no Alice
Figura 7: Exemplo de Estrutura Condicional no AliceCaso o usurio
decida para que a bailarina no patine, aparecer a mensagem que ela
no pode patinar. Verifica-se, portanto, que a execuo do programa
depende da escolha do usurio. Ento, o cdigo do programa utiliza-se
da estrutura condicional If/Else e os comandos que dependem da
escolha encontram-se dentro dessa estrutura.Por fim, as estruturas
repetitivas so aquelas que permitem repetir um comando ou bloco de
comandos determinadas vezes ou at que alguma condio seja
satisfeita.No software ALICE, existem os seguintes comandos de
repetio: Loop e While.O comando Loop muito til quando se sabe o
nmero de repeties que se deseja executar. Ou ainda quando no se
sabe, mas ainda assim possvel calcular esse nmero atravs das funes
disponveis: distance in front of, distance to, width, etc.No
programa da Figura 8, criou-se um cenrio de grama com o objeto
bunny da classe Animals. O objetivo do programa era que o coelho
saltasse 5 vezes para frente. Por isso, todos os comandos
referentes a um salto foram escritos dentro do comando Loop (no
World.myfirstmethod), que ir repetir o bloco de comando 5 vezes.
Para um coelho saltar necessrio que ele se mova para cima e para
frente simultaneamente, por isso o uso do comando Do together.
Figura 8: Exemplo da Estrutura Repetitiva Loop no AliceOutra
maneira de repetir comandos no software ALICE por meio do comando
While e, nesse caso, no necessrio saber o nmero de vezes em que a
repetio ir ocorrer.No exemplo da Figura 9, o leo (objeto lion da
classe Animals) deve correr em direo ao esquilo e rugir enquanto a
distncia entre os dois animais for maior que 3,15 metros. Portanto,
h uma condio no comando e quando a condio no for mais verdadeira
(distncia menor que 3,15 metros), a repetio cessada e inicia-se o
outro comando. Os comandos que ocorrem enquanto a distncia maior
que 3,15 metros devem estar dentro do comando While.
Figura 8: Exemplo da Estrutura Repetitiva While no Alice
2.3. Resultados Preliminares
Discute-se neste artigo os resultados obtidos com a avaliao
preliminar dos alunos aps a execuo do primeiro mdulo do curso.
Inicialmente, aplicou-se um questionrio com perguntas abertas para
avaliar o grau de conhecimento dos participantes do curso.O perfil
dos participantes o seguinte: todos os alunos possuem computador em
casa, com acesso a Internet e participam da Rede Social Facebook e
50% participam tambm da Rede Social Orkut; 50% deles j tiveram
contato anterior com alguma linguagem de programao, porm quando
solicitados para escrever um trecho de programa envolvendo a
definio de uma varivel, seguido de um comando de atribuio, somente
um aluno escreveu corretamente; Por fim, 70% responderam escolha
pessoal como a motivao para a escolha do curso de Cincia da
Computao.Aps o primeiro mdulo do curso, aplicou-se uma avaliao com
a seguinte questo: Faa um programa que permita cadastrar um
Registro formado pelos Nomes e pelas Notas dos alunos da disciplina
Laboratrio de Programao e implementar funes para: a) inserir um
Registro em uma determinada posio do vetor; b) trocar de posio dois
Registros do vetor; c) mostrar os Registros em ordem decrescente
considerando as notas; d) mostrar a mdia da turma, o Nome e a Nota
do aluno com o melhor rendimento e maior nota e o Nome e a Nota do
aluno com o pior rendimento; e) classificar os alunos como
aprovados ou reprovados considerando que a Nota mnima para aprovao
7.0.Esta mesma avaliao fora aplicada na turma de Laboratrio de
Programao disciplina do segundo perodo do curso de Cincia da
Computao. Vale destacar que os alunos da disciplina Laboratrio de
Programao j cursaram a disciplina Programao Estruturada no primeiro
semestre do curso. A Tabela 1 apresenta o desempenho dos alunos nas
duas atividades.Tabela 1
3.0 Concluses e PerspectivasPara a equipe de execuo do projeto
de Capacitao de Programadores Java, o ALICE mostrou-se uma
ferramenta eficaz para ensino de lgica de programao. Os
participantes do curso foram perdendo a resistncia inicial medida
que o software ALICE foi sendo inserido nas atividades. Percebeu-se
avanos na prtica de programao por parte dos alunos.Por fim,
acredita-se que pelo carter intuitivo e encorajador do software
ALICE, este curso poder ser estendido para tcnicos administrativos
da Universidade que possuem algum interesse na rea de computao, mas
que no exercem a atividade de programao de computadores.
Acredita-se tambm que o uso do ALICE contribuiu para motivar os
alunos nas atividades iniciais de programao de computadores.
Referncias
[1] CAMPOS, R. L. B. L. Metodologia ERM2C: Para melhoria do
processo de ensino-aprendizagem de lgica de programao. XVIII
Workshop de Educao em Informtica (WEI 2010), 2010.
[2] DANN, W., COOPER, S., PAUSCH, R. Learning to Program with
Alice. Second Edition. New Jersey: Prentice Hall, 2009.
[3] NUNES, D. J., Educao Superior em Computao Estatsticas 2010.
Disponvel em: http://www.sbc.org.br/. ltimo acesso: junho/2012.
[4] PAPERT, S., LOGO: Computadores e Educao. So Paulo: Ed
Brasiliense, 1985.
[5] TCHEMRA, A. H; GRINKRAUT, M.L. Ensino da Matemtica com o
software ALICE. In: ANAIS Alice Brasil 2010. Editora Pginas &
Letras: So Paulo, 2010, p. 17-23.
[6] ALICE. An Educational Software that teaches students
Computer Programming in a 3DEnvironment. Carnegie Mellon
University, Pittsburgh, EUA. Disponvel em: http://www.alice.org/.
ltimo acesso em: novembro/2012.
[7] BOHM, C.; JACOBINI, G. Flow Diagrams, Turing Machines and
Languages with Only Two Formation Rules. Communications of the ACM
9, 1996, v. 5, p.366371. doi:10.1145/355592.365646