Вы находитесь на странице: 1из 14

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 Brasil
isabastoss@hotmail.com
Abstract. 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 Curso
A 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 das
disciplinas 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. O
processo 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 mtodos
e 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 Estruturas
Como 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 Animals
Concluda 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 JAVA
No 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 Patinadora
A 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 Alice
Caso 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 Alice
Outra 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 Perspectivas
Para 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

Вам также может понравиться