Top Banner
Utilizando o Software ALICE no Projeto de Capacitação de Programadores Java no âmbito da UFPI Isadora Bastos1, Raimundo Moura1 1Departamento de Informática e Estatística – Universidade Federal do Piauí (UFPI) 64.049-550 – Teresina – PI – Brasil [email protected] 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 utilização do Software ALICE no projeto Capacitação de Programadores Java usando Jogos, bem como o projeto, aplicado a uma turma de alunos ingressantes do curso de Ciência da Computação da UFPI. O objetivo principal deste projeto é evitar a evasão e minimizar o número de reprovações na disciplina programação estruturada utilizando-se de uma ferramenta diferente, inovadora e que busca mais interação do aluno no aprendizado. Os resultados preliminares são motivadores com relação a metodologia de ensino utilizada. 1. Introdução De acordo as estatísticas apresentadas no documento Educação Superior em Computação [Nunes, 2012], o número de alunos matriculados tem aumentado ano a ano, passando de 117.351 (2001) para 209.680 (2005) e 314.436 (2010). No entanto, o número de alunos concluintes gira entre 20% a
19

Utilizando o Software ALICE No Projeto de Capacitação de Programadores Java No Âmbito Da UFPI

Nov 24, 2015

Download

Documents

Isa Bastos
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

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