gustavo lazaro amendola - cepein.femanet.com.br · sua interface interativa, os alunos arrastam e...

32
1 GUSTAVO LAZARO AMENDOLA UTILIZANDO ALICE PARA ENSINAR CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS ASSIS 2013

Upload: nguyendiep

Post on 08-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

1

GUSTAVO LAZARO AMENDOLA

UTILIZANDO ALICE PARA ENSINAR CONCEITOS DE

PROGRAMAÇÃO ORIENTADA A OBJETOS

ASSIS

2013

2

GUSTAVO LAZARO AMENDOLA

UTILIZANDO ALICE PARA ENSINAR CONCEITOS DE

PROGRAMAÇÃO ORIENTADA A OBJETOS

Trabalho apresentado ao Programa de Iniciação Científica (PIC) do Instituto Municipal de Ensino Superior de Assis – IMESA e à Fundação Educacional do Município de Assis – FEMA. Orientando: Gustavo Lazaro Amendola. Orientador: Dr. Luiz Carlos Begosso. Linha de Pesquisa: Ciências Exatas e da Terra.

3

SUMÁRIO

1. INTRODUÇÃO E PROBLEMA .................................................................................. 1

2. HIPÓTESE ........................................................................................................... 4

3. OBJETIVO ............................................................................................................ 5

4. JUSTIFICATIVA .................................................................................................... 5

5. ALICE ................................................................................................................... 5

5.1 OS BENEFÍCIOS DO ALICE ....................................................................... 5

5.2 A INTERFACE DO ALICE ............................................................................ 5

5.3 O DESENVOLVIMENTO DO PROJETO COM O SOFTWARE ALICE ........ 5

6. CONCLUSÃO ....................................................................................................... 5

7. REFERÊNCIAS .................................................................................................... 5

8. APÊNDICE 1 – CURSO ALICE 3 ......................................................................... 5

4

1. INTRODUÇÃO E PROBLEMA

Como se tem visto, o uso da tecnologia tem crescido consideravelmente na

sociedade nas ultimas décadas, e junto com isso a necessidade de mão de obra

qualificada para dar suporte a todo esse crescimento. A área da Tecnologia da

Informação (TI) é umas das áreas que mais crescem ultimamente e também uma

das que tem mais vagas disponíveis no mercado de trabalho. Grande Parte desta

demanda no mercado de trabalho esta fortemente relacionada à área de

desenvolvimento de softwares, que é a área onde a maioria dos estudantes em

iniciação sente dificuldade no aprendizado.

Entre muitas causas a que pode se dar mais relevância é a dificuldade de

aprendizado nas matérias que utilizam logica e cálculos matemáticos como

ferramenta principal de ensino, Algoritmo, Calculo e Introdução a Logica, são

alguns exemplos.

A dificuldade no ensino e na aprendizagem dos conteúdos destas disciplinas tem

preocupado os docentes de cursos de graduação da área de informática. Estas

disciplinas trabalham conteúdos chave para a formação do profissional de

computação e historicamente tem apresentado alto grau de dificuldade para os

alunos, conduzindo a altos níveis de retenção.

Moskal, Lurie e Cooper (2004), argumentam que alunos com pouco ou nenhum

conhecimento prévio em programação e pouco embasamento em matemática são

fatores contribuintes, também, para as altas taxas de reprovação nas disciplinas de

programação de computadores.

O aluno ingressante em cursos de computação não consegue entender e abstrair a

lógica dos problemas e transformá-la numa sequência de passos para

posteriormente desenvolver o algoritmo, conforme aponta Rapkiewicz et al (2006).

Uma alternativa para minimizar tal situação, é o emprego de recursos tecnológicos

como suporte à atividade docente que tendem a favorecer o aprendizado do aluno.

Pimentel et al (2003) destacam o fato de que as ferramentas e ambientes

computacionais foram concebidos para apoiarem o ensino das disciplinas de

programação, entretanto os autores chamam a atenção de que não existem

indicações de uma vasta utilização de tais ferramentas.

5

Por estes motivos, este Projeto de Iniciação Cientifica (PIC) pretende utilizar e

testar um programa de ensino chamado Alice, que tende a fornecer princípios de

Lógica de Programação e conceitos de Orientação a Objetos.

2. HIPÓTESE

Inserir uma ferramenta computacional no ensino de lógica de programação e

orientação a objetos pode contribuir para o aprendizado do aluno de programação,

na resolução de problemas e desenvolvimento de programas, e assim, ajudar a

diminuir os altos índices de retenção?

3. OBJETIVO

Criar um plano de ensino utilizando o software de desenvolvimento de aplicações

tridimensionais, o ALICE, que possa auxiliar na aprendizagem de lógica de

programação, dando suporte na construção de algoritmos, e criar uma base nos

conceitos de orientação a objeto.

4. JUSTIFICATIVA

Este trabalho se justifica por expressar preocupação com o ensino do aluno que

tem dificuldade na aprendizagem de disciplinas onde os conteúdos chaves são a

matemática e a lógica de programação.

6

5. ALICE

O projeto ALICE foi criado nos Estados Unidos em 1997, primeiramente sendo

conduzido pelo grupo de pesquisas do professor e pesquisador Randy Pauch,

autor de best-seller mundial “A Lição Final”. Antes de seu falecimento Randy Pauch

passou a liderança do grupo ALICE para sua amiga, a professora e também

pesquisadora, Wanda Dann, segundo Cymrot, Grinkraut, Barros e Tchemra (2012).

O software ALICE foi criado na Carnegie Mellon University, nos Estados Unidos, e

inicialmente com o objetivo de apoiar e facilitar o ensino de lógica de programação

para alunos do ensino médio, e, posteriormente, devido à evolução do software, foi

estendido para alunos do ensino superior. De acordo com Phillips (2007), das

aproximadamente 3000 faculdades nos Estados Unidos, 10% utilizam o software

ALICE 2.0 como ferramenta de ensino, e entre março de 2006 e março de 2007 o

software foi baixado da internet mais de 440 mil vezes.

ALICE é um ambiente de programação 3D, desenvolvido especialmente para

alunos que terão sua primeira experiência com programação orientada a objetos. O

software permite que o aluno aprenda conceitos fundamentais de programação

criando animações e jogos simples.

No ALICE, objetos 3D como pessoas, animais, veículos, etc. formam um mundo

virtual onde os alunos criam programas para animar tais objetos, Alice (2013). Em

sua interface interativa, os alunos arrastam e soltam blocos gráficos que

correspondem a comandos padronizados em uma linguagem de programação,

como Java, C++ e C. Ao usar o software ALICE, de acordo com Alice (2013), os

alunos podem ver imediatamente seus programas de animação sendo executado,

isso os tornam capazes de entender facilmente a relação entre os comandos de

programação e o comportamento dos objetos em suas animações.

Manipulando os objetos no mundo virtual, os alunos ganham experiência com

todas as construções de programação tipicamente ensinadas em cursos

introdutórios de programação.

7

5.1 OS BENEFÍCIOS DO ALICE

Os benefícios oferecidos pelo software ALICE são diversos na questão de ensino e

aprendizagem na área da computação, e abrange mais de um conteúdo. De acordo

com Pedrosa e Pamboukian (2010), os recursos oferecidos pelo ambiente ALICE

podem ser utilizados da seguinte forma:

Oportunidade de visualização dos objetos inseridos no mundo criado para o

jogo;

Obtenção da árvore de objetos existente no mundo virtual;

Utilização de métodos disponíveis para um determinado objeto selecionado,

como por exemplo: rolar, dizer, mover, entre outros.

Possibilidade de criar e alterar o código-fonte criado para cada método do

jogo.

Segundo Pausch (2002), além dos conceitos inerentes de programação (execução

condicional, iteração, sub-rotinas, parâmetros), programadores iniciantes são

frequentemente confrontados com as complexas sintaxes de programação. A

incapacidade de ver o estado de seu programa, uma vez que é executado, gera

pouca motivação para seus trabalhos. ALICE melhora a introdução inicial à

programação por:

1) Evitar os obstáculos de digitação e de sintaxe, fornecendo uma interface

arraste-e-solte, onde os alunos podem manipular visualmente os elementos

do programa ("se", "tempo", "enquanto", etc.).

2) Mostrando o estado do programa com objetos 3D, reforça o modelo de

programação baseada em objetos e faz com que todas as alterações de

dados sejam visíveis e animadas.

3) O uso de caracteres gráficos 3D, como um veículo para contar histórias é

um grande motivador para estudantes em fase inicial, principalmente com

estudantes do sexo feminino. Alice faz parte de uma iniciativa maior da

Carnegie Mellon, onde aumentaram recentemente a nossa população no

sexo feminino de graduação no curso de ciência da computação de 13 %

para 40 %.

8

5.2 A INTERFACE DO ALICE

O software ALICE teve sua interface desenvolvida com o objetivo de proporcionar

uma visão mais chamativa e divertida. Os usuários podem arrastar e soltar blocos

de gráficos que correspondem a comandos pré-programados como nas linguagens

orientadas a objeto, como JAVA, C#, C++ etc.

A figura 1ilustra a interface do ALICE na janela principal na versão 3.1:

Figura 1: Interface do ALICE

No ALICE tudo é tratado como objeto, todos os objetos adicionados ao programa

ficam dentro do mundo (world). Você pode movimentar os objetos por clicar e

arrastar na parte gráfica. Existe a lista de objetos que é o local onde se seleciona

os objetos para listar seus métodos ou funções, dependendo da aba selecionada.

Para colocar um método ou função em seu programa você deve selecionar o objeto

a quem o ele pertence, arrasta-lo para área de códigos, e se houver parâmetros, no

momento que você solta-lo, abrirá uma janela para você seleciona-los.

Para melhor manipular os métodos e funções, há os comandos que ficam na parte

inferior da janela, eles são essenciais para um programa dinâmico. Alguns deles

são: while, if, do_together, variable, count (enquanto, se, faça junto, variável,

contar).

MUNDO

Métodos

Funções

Área de códigos

Comandos

Lista de objetos

9

A figura 2 mostra o Setup Scene (configuração de cena) do Software ALICE:

Figura 2: Setup Scene

Essa parte do programa é onde você adiciona (instancia) os objetos ao mundo. Os

objetos são divididos por categorias (classes), mostrado na parte inferior da

imagem.

Classe é o que define o objeto, um protótipo. Objetos da mesma classe não são

iguais, mais sim do mesmo tipo, por exemplo, Gustavo e Luiz são da mesma classe

Humanos, mas são dois humanos iguais. Esses são conceitos de orientação a

objeto.

Na parte direita da imagem, é onde você pode manipular todas as propriedades

dos objetos, como por exemplo: posição, altura, largura, profundidade, opacidade,

etc.

MUNDO

Objetos

Propriedade

dos objetos

10

5.3 O DESENVOLVIMENTO DO PROJETO COM O SOFTWARE ALICE

No decorrer do ano, o software ALICE foi estudado e todas suas funções que

auxiliam no ensino da lógica de programação e de conceitos de orientação a

objetos foram exploradas. Também foram criados ambientes gráficos que foram

utilizados para o desenvolvimento do curso.

Após feito isso, foi desenvolvido um curso utilizando a ferramenta ALICE na versão

3.1 com o objetivo de ensinar lógica de programação e conceitos de orientação a

objetos para estudantes da área da programação que tem pouco ou nenhum

contato com a programação prática.

O curso tende a estimular o raciocínio lógico incrementando a capacidade de

solucionar problemas através de desafios passados como atividade para o aluno.

As atividades encorajam os alunos para resolverem os exercícios, que

diferentemente das linguagens padrões de programação, o ALICE gera o resultado

instantaneamente sem a necessidade de terminar o código para ver o resultado,

aumentando a motivação do aluno e consequentemente ajudando a formar uma

segurança na criação de passos para a resolução do problema.

A título de exemplo as figuras 3 e 4 ilustram métodos do ALICE:

Figura 3: Método walk

11

Figura 4: Método keyPressed

Tais métodos são exemplos de atividades que o curso contém. Esses trechos de

códigos tem o resultado de fazer um objeto da classe biped andar, o método walk

faz o movimento do corpo e das pernas e chamado pelo método keyPressed, que é

acionado quando usuário aciona a tecla UP (seta para cima) e DOWN (seta para

baixo). O método walk recebe dois parâmetros, um é um objeto da classe biped e

outro do tipo direction (direção), os parâmetros servem para que o método possa

ser reutilizado, tanto para mais de um objeto quanto para a direção que o objeto vai

andar. A reutilização de código é um conceito de orientação a objetos.

6. CONCLUSÃO

O software ALICE é uma incrível ferramenta para desenvolver aplicações simples.

Diferente da maioria das linguagens de programação que são projetadas para

serem utilizáveis em "código de produção" e, assim, introduzir uma complexidade

adicional, ALICE foi concebido unicamente para ensinar a teoria de programação

sem os complexos mecanismos de semântica de linguagens de produção, com um

ambiente mais receptivo e divertido. Acredita-se que alunos com pouca ou

nenhuma experiência com a programação orientada a objetos, utilizando o software

ALICE, podem aprender muito e criar conceitos fundamentais para seu

desenvolvimento profissional.

12

7. REFERÊNCIAS

ALICE, Página do software ALICE. Disponível em:

http://alice.org/index.php?page=what_is_alice/what_is_alice. Acesso em:

junho/2013.

CYMROT, R.; GRINKRAUT M. L.; BARROS E. A. R.; TCHEMRA A. H. O perfil dos

participantes do 3º Congresso Brasileiro sobre o software ALICE. Em: Alice Brasil,

2012, São Paulo/SP. ANAIS DO ALICE BRASIL 2012. p. 21-28.

MOSKAL, B.; LURIE, D.; COOPER, S. Evaluating the effectiveness of a new

instructional approach. In: Proceedings of the 35th SIGCSE technical symposium

on Computer science education, 2004, Norfolk / Virginia. Anais do 35th SIGCSE, p.

75-79.

PAUSCH R. Alice: A System for Teaching Computer Programming to the Rest of

Us. Disponível em: http://www.hcii.cmu.edu/news/seminar/2002/08/alice-system-

teaching-computer-programming-rest-us. Acesso em: outubro/2013.

PEDROSA, D. C.; PAMBOUKIAN, S., V., D. ALICE no ensino de computação para

crianças. Em: Alice Brasil, 2010, São Paulo/SP. ANAIS DO ALICE BRASIL, 2010.

p. 21-26.

PIMENTEL, E. P.; FRANÇA, Vilma Fernandes de; OMAR, Nizam; NORONHA, R.

V. Avaliação Contínua da Aprendizagem, das Competências e Habilidades em

Programação de Computadores. In: IX WIE - Workshop de Informática na

Educação da Sociedade Brasileira de Computação, 2003, Campinas / SP. ANAIS

DO XXIII CONGRESSO DA SBC, 2003. v. V. p. 108-116.

PHILLIPS D. Alice: Teaching Programming through 3D Animation and Storytelling.

Disponível em: http://www.cmu.edu/corporate/news/2007/features/alice.shtml.

Acesso em: julho/2013.

RAPKIEWICZ, C. E.; FALKEMBACK, G.; SEIXAS, L.; SANTANA DOS SANTOS,

N.; CUNHA, V. V.; KLEMANN, M. Estratégias Pedagógicas no Ensino de

Algoritmos e Programação Associadas ao Uso de Jogos Educacionais. RENOTE.

Revista Novas Tecnologias na Educação, v. 4, n. 2, p. 1, 2006.

13

8. APÊNDICE 1 – CURSO ALICE 3

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32