universidade federal do parÁ curso de ......protótipo desenvolvido, foi aplicado um questionário...
TRANSCRIPT
UNIVERSIDADE FEDERAL DO PARÁ CURSO DE SISTEMAS DE INFORMAÇÃO
Campus Marabá
JOGO BARALHO DAS VARIÁVEIS
Uma proposta de utilização de jogos para disciplina de
Programação
Elvis Lopes de França
Roberto Costa Nunes
Rogério Carvalho dos Santos
MARABÁ
2012
ii
Elvis Lopes de França
Roberto Costa Nunes
Rogério Carvalho dos Santos
JOGO BARALHO DAS VARIÁVEIS
Uma proposta de utilização de jogos para disciplina de
Programação
Trabalho de Conclusão de Curso, apresentado à
Universidade Federal do Pará, como parte dos
requisitos necessários para obtenção do Título de
Bacharel em Sistemas de Informação.
Orientadora:
Profª. M.Sc. Cássia Maria Carneiro Kahwage
MARABÁ
2012
iii
Ficha Catalográfica
França, Elvis Lopes de
Baralho das Variáveis: uma proposta de utilização de jogos para a disciplina
de programação. / Elvis Lopes de França, Roberto Costa Nunes,
Rogério Carvalho dos Santos. Marabá, 2012.
64f. : il. color. ; 31 cm.
Orientadora: Cássia Maria Carneiro Kahwage
Trabalho de Conclusão de Curso (Graduação) – Universidade Federal do
Pará, Faculdade de Computação.
1. Jogos Educativos. 2. Dificuldades de Aprendizagem. 3. Ensino de
Programação. 4. Ferramentas que Auxiliem no Ensino. I.
Kahwage, Cássia Maria Carneiro. II. Universidade Federal do
Pará. III. Título.
iv
Elvis Lopes de França
Roberto Costa Nunes
Rogério Carvalho dos Santos
JOGO BARALHO DAS VARIÁVEIS
Uma proposta de utilização de jogos para disciplina de
Programação
Trabalho de Conclusão de Curso, apresentado à
Universidade Federal do Pará, como parte dos
requisitos necessários para obtenção do Título de
Bacharel em Sistemas de Informação.
Marabá: 08 de novembro de 2012.
________________________________________
Profª.: M.Sc. Cássia Maria Carneiro Kahwage
(Orientadora)
(UFPA)
________________________________________
Profª.: M.Sc. Danielle Costa Carrara Couto
(Examinadora da Banca)
(UFPA)
________________________________________
Profº.: M.Sc. Josué Leal Moura Dantas
(Examinadora da Banca)
(UFPA)
Marabá, PA.
2012
v
AGRADECIMENTOS
Agradeço primeiramente Àquele eu decidi ir ao encontro e Ele
me acolheu de braços aberto, obrigado Jesus, pelas madrugas
que você ficou comigo e por todos os momentos que me
acompanhou nessa jornada; aos meus pais Elson e Auzeide por
sempre ter acreditado em mim; a minha irmã Emidya e ao meu
primo Douglas por ter suportado a luz ligada no quarto por
tantas madrugadas; ao grande amigo Jailton, que colaborou
tanto para a realização deste; a grande amiga Hillana por ter me
incentivado e entendido em todos os momentos; a todos os
meus colegas de trabalho e de estudo, em especial aos amigos da
turma de SI2007 que sempre me incentivaram a me tornar um
excelente profissional e principalmente amigo; aos mestres da
UFPA, a Profª. Alessandra, que nos estimulou a realizar esse
trabalho; e em especial a Profª. Cássia que tanto colaborou e nos
mostrou que era possível concluir essa etapa de nossas vidas;
aos meus amigos Roberto e Rogério pela determinação de a
cada dia vencer mais um desafio e chegar a vitória; e a todos que
direta ou indiretamente colaboraram para o desenvolvimento
deste trabalho.
Elvis Lopes de França
vi
Agradeço primeiramente à Deus pelas graças concedidas, aos
meus familiares, em especial a minha irmã Regina Costa Nunes
pela força e paciência, a todos os meus amigos, em especial aos
colegas de TCC Elvis e Rogério que me ajudaram imensamente
em vários momentos de minha vida, e agradeço principalmente
a minha amiga, namorada, noiva e futura esposa Sulair Gomes
de Souza.
Roberto Costa Nunes
vii
Agradeço a minha mãe Regina por tornar tudo isso possível. Ao
meu padrasto Nilson que sempre foi mais que um pai pra mim e
me deu todo o apoio. A minha namorada Samara Kallynne pelo
amor e compreensão. Aos meus colegas de turma que
caminharam comigo nessa fase da minha vida, os considero
minha segunda família, principalmente aos meus colegas Deivid
e Daiane que deram valiosa contribuição neste trabalho,
principalmente com as imagens do jogo. Aos mestres que me
mostraram novos caminhos. E de maneira especial aos meus
amigos Roberto e Elvis que me deram a chance de participar
deste trabalho.
Rogério Carvalho dos Santos
viii
RESUMO
O presente trabalho tem como objetivo desenvolver o protótipo de um jogo denominado de
Baralho das Variáveis, sendo este voltado para auxiliar no ensino de princípios iniciais da
disciplina de programação. Para coletar dados nesta pesquisa, além da revisão de literatura,
foi aplicado um questionário com os alunos iniciantes do curso de graduação em Sistema de
Informação, turma 2010, da Faculdade de Computação, Campus Universitário de Marabá da
Universidade Federal do Pará, e realizado uma entrevista com professores de cursos
superiores e técnicos de instituições públicas dentro do município de Marabá, com foco em
encontrar as principais dificuldades no ensino da disciplina de programação. Para testar o
protótipo desenvolvido, foi aplicado um questionário a alunos do curso de graduação em
Sistema de Informação, turma 2011, sendo que estes foram divididos em dois grupos e um
dos grupos utilizou o jogo baralho de variáveis, antes de responder o questionário. O grupo de
alunos que jogaram, apresentaram maior índice de acerto comparado aos alunos do grupo que
não jogaram. O estudo se mostrou positivo, pois foi de acordo com a revisão de literatura
levantada ao longo da pesquisa, mostrando que o uso de ferramentas que auxiliem no ensino,
pode somar com o conteúdo ensinado pelo professor.
PALAVRAS-CHAVE: Jogos Educativos, Dificuldades de aprendizagem, ensino de
programação, ferramentas que auxiliem no ensino.
ix
ABSTRACT
This study aims to develop a prototype game called Variable Deck, which is geared to assist
in teaching the principles of initial programming discipline. To collect data in this research, in
addition to literature review, a questionnaire was administered to students beginning
undergraduate course in Information System, Class 2010, School of Computing, University
Campus of Marabá, Federal University of Pará, and conducted a interview with faculty from
colleges and technical institutions public within the city of Marabá, focused on finding the
main difficulties in the teaching of programming. To test the prototype, a questionnaire was
administered to students in the undergraduate program in Information Systems, class 2011,
and these were divided into two groups and one of these groups played the prototype before
answering the questionnaire. The group of students who played, had higher accuracy
compared to the group of students who did not play. The study was positive, it was according
to the literature review raised throughout the research showing that the use of tools that assist
in teaching, can add to the content taught by the teacher.
KEYWORDS: Deck of the variables; Learning disabilities, teaching programming, tools that
aid in teaching
x
LISTA DE FIGURAS
Figura 1. Algoritmo de um jogo desenvolvido na ferramenta Scratch ........................ 7
Figura 2. Simulador do problema Torre de Hanói ....................................................... 8
Figura 3. Ambiente do Robocode ................................................................................ 9
Figura 4 – Quantidade de alunos que tiveram experiências com programação entes de
iniciar a graduação ..................................................................................................... 12
Figura 5 – Porcentagem de alunos que identificaram as diferenças entre softwares e
hardwares ................................................................................................................... 13
Figura 6. Tipos de cartas de acordo com os tipos e cores .......................................... 21
Figura 7. Paleta que disponibiliza os operadores para realizar operações no jogo .... 21
Figura 8. Tela inicial do jogo ..................................................................................... 22
Figura 9. Placar de pontos .......................................................................................... 23
Figura 10. Tela de Instruções do jogo ........................................................................ 23
Figura 11. Tela de apresentação de desafios .............................................................. 24
Figura 12. Tela principal do jogo ............................................................................... 24
Figura 13. Alteração da tela principal para realizar a operação de concatenação ..... 25
Figura 14. Alteração da tela principal para realizar a operação subString ................ 25
Figura 15. Alteração da tela principal para realizar a operação de radiciação .......... 25
Figura 16. Tela de fracasso ........................................................................................ 26
Figura 17. Tela de sucesso ......................................................................................... 26
Figura 18. Mensagens de notificação ao aluno .......................................................... 27
Figura 19. Arquitetura cliente-servido do jogo .......................................................... 29
Figura 20. Alunos da turma 2011 realizando os testes .............................................. 31
Figura 21. Resultado da avaliação da usabilidade do jogo ........................................ 33
Figura 22. Nota dos alunos ao jogo ........................................................................... 34
xi
LISTA DE TABELAS
Tabela 1 – Motivo de escolha do curso de Sistemas de Informação pelos alunos .... 12
Tabela 2 – Quantidades de alunos que se acham capazes de desenvolver programas13
Tabela 3 – Quantidades de alunos utilizaria softwares para auxilio no aprendizado de
programação ............................................................................................................... 14
Tabela 4 – Resultado da pesquisa realizada com todos os alunos da turma 2011 ..... 34
xii
SUMÁRIO
INTRODUÇÃO .......................................................................................................... 1
2. DIFILCULDADES NAS DISPLINAS DE PROGRAMAÇÃO E PROPOSIÇÕES DE
SOLUÇÕES; ............................................................................................................ 4
2.1. Concepção e dificuldades de ensino-aprendizagem de algoritmos e programação de
computadores ............................................................................................................ 4
2.2. Ferramentas e jogos para auxiliar na aprendizagem de programação ............... 5
3 COLETA DE INFORMAÇÕES INICIAIS .......................................................11 3.1 Questionário realizado com alunos ingressantes em Sistemas de Informação . 11
3.2 Entrevista realizada com os professores ........................................................... 14
3.2.1 Entrevista realizada com a Professora Alessandra Oliveira .......................... 15
3.2.2 Entrevista realizada com o Professor Francisco ............................................ 16
3.2.3 Entrevista realizada com o Professor Rodrigo Barroso Gonçalves ............... 18
3.2.4 Entrevista realizada com o Professor Leonardo Figueiredo Maia ................. 18
4. O JOGO BARALHO DAS VARIÁVEIS ............................................................. 20
4.1. Desenvolvimento do jogo ................................................................................ 27
5. VALIDAÇÃO DO PROTÓTIPO DO JOGO BARALHO DAS VARIÁVEIS .... 30
5.1. Resultados ........................................................................................................ 32
6. CONSIDERAÇÕES FINAIS ............................................................................. 36
7. REFERÊNCIAS BIBLIOGRÁFICAS ............................................................... 39
Apêndice A – Questionário inicial aplicado aos alunos do Curso de Sistemas de
Informação ................................................................................................................. 44
Apêndice B – Game Design Document (GDD) do Jogo Baralho de Variáveis ........ 45
Apêndice C – Questionário avaliativo aplicado aos alunos do Curso de Sistemas de
Informação nos testes ................................................................................................. 49
Apêndice D – Questionário de avaliação do Jogo ..................................................... 50
Anexo A – Fonte dos Áudios utilizados no jogo Baralho das Variáveis ................... 52
1
INTRODUÇÃO
O processo de ensino-aprendizagem dos cursos de graduação das universidades é
favorecido pelo desenvolvimento de práticas e metodologias voltadas para conteúdos que são
ministrados durante o decorrer desses cursos, fazendo assim com que alunos interajam com o
objeto de estudo e se familiarizem mais com os conteúdos abordados.
Nos cursos de graduação na área da computação, a Programação de computadores
é uma das disciplinas introdutórias essenciais para os estudantes dos cursos de computação. E
como afirma Moreira & Faveiro (2009), ela constitui a base para muitos campos em que a
informática se aplica, bem como capacita o indivíduo a utilizar a lógica de programação na
resolução de problemas, fator muito importante em disciplinas mais avançadas da relação de
estudo dos alunos.
Os conteúdos relacionados às disciplinas de algoritmos e de programação são
aqueles que os alunos iniciantes têm encontrando maiores dificuldades, como afirma Medina
& Ferting (2006). E refletem nos altos índices de reprovação desses alunos e,
consequentemente, em mau desempenho em outras matérias que têm a Programação como
base.
O nível de evasão de alunos nas graduações da área tecnológica é preocupante. De
acordo com artigo publicado por Fusco (2011) no portal Folha de São Paulo, dos 174.161
alunos matriculados nas principais carreiras do setor, como analistas de sistemas ou
programadores, 151.266 desistem dos cursos pelas mais diversas razões, ou seja, 87% evasão
de acordo com o estudo realizado. Ainda segundo a reportagem, essa alta evasão dos cursos
de tecnologia, deverá contribuir para a falta de mão de obra nas carreiras básicas desta área
até 2014.
As maiores dificuldades são encontradas quando os alunos são postos para
resolver problemas que envolvem conhecimento de lógica computacional para
desenvolvimento de algoritmos e código de programa, deixando-os desmotivados e
prejudicando o processo de ensino-aprendizagem. Além disso, segundo Tobar et al (2011), a
diferença de níveis de percepção de conteúdos entre alunos de grandes turmas, muitas vezes,
acaba por atrapalhar o processo de aprendizagem.
O presente trabalho procura explorar as dificuldades relacionadas ao ensino e
aprendizagem dos conceitos iniciais das disciplinas relacionadas à programação, visando
minimizar essas através da utilização de jogos educativos e ferramentas lúdicas. De acordo
com as informações levantadas e as entrevistas realizadas, os conteúdos que os alunos
2
possuem maiores dificuldades estão envolvidos com a programação, mas precisamente nos
conteúdos introdutórios, como lógica computacional, construção de algoritmos e estrutura de
programação. Entre os principais motivos para essas dificuldades, pode-se citar que: o fato do
conteúdo visto ser novidade para a maioria dos alunos; frustração dos alunos ao terem contato
com a disciplina; falta de preparo desses e ausência de uma metodologia de ensino mais
envolvente entre os alunos e o conteúdo.
Nesse sentido, a utilização de jogos educativos, que possam envolver mais o aluno
com o conteúdo através da ludicidade pode ser uma estratégia eficiente para minimizar esse
problema. Pois como é afirmado Santos et al (2007), os jogos são ferramentas motivadoras,
que estimula o raciocínio lógico e desenvolvem novas atitudes nos alunos, facilitando o
processo de aprendizagem. O uso de jogos para ensinar pode ser uma boa prática para
estimular o aprendizado e motivar a permanência e continuidade dos alunos em seus cursos,
se for aliada com uma metodologia envolvente e bem planejada. Sendo assim, esse trabalho
propõe a utilização de jogos educativos para auxiliar professores e alunos no processo de
ensino-aprendizagem, apresentando o protótipo do jogo “Baralho das Variáveis”, que pode ser
utilizado no estudo dos conceitos iniciais dos tipos de variáveis e suas operações. Vale
destacar, que o professor tem um papel de suma importância no processo de ensino-
aprendizagem e o mesmo não poderia ser substituído, mas pode buscar ferramentas, como o
protótipo do jogo que é desenvolvido nesse trabalho, para auxiliar a sua metodologia de
ensino.
O objetivo geral do trabalho é desenvolver um protótipo de um jogo que possa ser
utilizado juntamente com as metodologias de ensino dos professores para estimular a
aprendizagem de programação. Além disso, o trabalho proposto tem como objetivos
específicos:
Verificar as principais dificuldades de alunos que ingressam nos cursos de
computação em aprender programação e quais conteúdos eles possuem mais
dificuldades;
Buscar os principais trabalhos e ferramentas que auxiliem no processo de
aprendizagem de programação;
Identificar alguns dos problemas vivenciados pelos professores através do ensino
de programação, para utilizar de base na construção do jogo;
Realizar testes com alunos de cursos de computação como forma de validação da
jogo.
3
O jogo proposto visa utilizar a ludicidade para estimular o envolvimento e
interação do aluno com o conteúdo de uma maneira divertida, levando a uma aprendizagem
mais efetiva.
Foram executadas quatro etapas principais: primeiramente foi feita uma revisão de
literatura, analisando diversas publicações, livros e periódicos. Logo após foi realizada uma
pesquisa de campo com os alunos da turma de Sistema de Informação de 2010 da Faculdade
de Computação da UFPA – Marabá, através da aplicação de um questionário fechado; e
entrevista com 4 (quatro) professores de instituições ensino técnico e superior, as entrevistas
deram-se através de questões abertas. Os dados coletados foram tabulados e avaliados, a
análise das etapas anteriores serviu de base para proposição do jogo e o desenvolvimento do
protótipo do jogo de cartas desenvolvido nesse trabalho. A quarta e ultima etapa foi voltada
para a realização dos testes do jogo com alunos para validação do estudo realizado.
Desta maneira o presente trabalho está dividido em quatro capítulos. O primeiro
capitulo, é destinado a revisão de literatura e a discursão da problemática, sendo exposto toda
análise bibliográfica pertinente ao tema, fazendo um apanhado sobre a concepção de diversos
autores a respeito do processo de ensino-aprendizagem de algoritmos e programação, e razões
das dificuldades dos alunos na aprendizagem das disciplinas de programação. No capitulo 2
será exposto a pesquisa de campo realizada com os alunos, bem como as entrevista com os
professores. No capitulo 3, é feito uma explanação sobre o jogo desenvolvido, demonstrando
todo o processo de desenvolvimento. No 4º capítulo é exposto o teste realizado do jogo com
alunos das disciplinas de programação da Faculdade de Computação – UFPA Marabá. Por
último, são expostas as considerações finais de toda a pesquisa, pautando os pontos mais
relevantes e resultados obtidos.
4
2. DIFILCULDADES NAS DISPLINAS DE
PROGRAMAÇÃO E PROPOSIÇÕES DE SOLUÇÕES;
2.1. Concepção e dificuldades de ensino-aprendizagem de
algoritmos e programação de computadores
É perceptível a falta de interesse e dificuldades de aprendizagem dos alunos
iniciantes de cursos voltados à informática ou computação principalmente no que diz respeito
a disciplinas que envolvem fundamentos teóricos, como programação, arquitetura de
computadores e teoria da computação (ALMEIDA et al, 2004).
Dentre as disciplinas citadas, segundo Moreira e Faveiro (2009) a Programação é
uma das mais essenciais para os estudantes dos cursos de computação e constitui
conhecimento básico para muitos campos em que a informática se aplica, pois ela colabora na
aprendizagem da lógica de programação e na resolução de problemas, que é um fator
diferencial em disciplinas avançadas.
Também, é uma das disciplinas que causam maior índice de evasão, pois as
dificuldades no aprendizado de programação refletem em altos índices de reprovação e
consequentemente em mau desempenho do aluno em outras matérias que têm essa disciplina
como base (Tobar et al 2001).
Assim, os alunos que não conseguem compreender com clareza os conceitos
ministrados, como os de lógica de programação e sintaxe de linguagem, tem seu aprendizado
afetado, sendo isso um obstáculo a ser superado conforme seu grau de interação no processo
de ensino-aprendizagem.
Muitos alunos reportam que não conseguem criar conjuntos de inferências que
resolvam um problema sem a ajuda de um professor, como é exposto por Marcelino &
Rosatelli (2008). Nos últimos anos, muitas instituições de ensino têm identificado esse
problema, onde o aluno é desestimulado a aprender algoritmos e a programar, dessa forma,
uma metodologia pedagógica adequada contribui para o melhor aprendizado dessas
disciplinas, porém como afirma Santos et al (2003) poucas metodologias são universalmente
aceitas e mesmo as mais consolidadas, não formalizam um processo claro de procedimento de
ensino, deixando muitos aspectos delegados ao professor.
Desta maneira criando um cenário de metodologias errôneas ou fracas no ensino
da disciplina provocando afastamento dos alunos do seu objetivo principal que é a formação
intelectual e profissional, aumentado à evasão, ou ainda formando alunos com qualidade
5
duvidosa, gerando assim desconfiança na comunidade acadêmica quanto à qualidade de
alguns cursos superiores, impedindo a entrada de novos alunos e retardando o crescimento da
área de computação. (RODRIGUES, 2004).
Dessa forma, para que os alunos possam aprender a programar de forma mais
aprofundada têm-se a necessidade de adquirir um conjunto de conhecimentos que vão além de
conhecer a sintaxe e a semântica de uma linguagem de programação (GOMES & MENDES,
2000). É necessário aprender claramente a criar algoritmos de forma correta, que é uma das
maiores dificuldades deles, permitindo que aprendam desde cedo os conceitos de
programação para resolver os problemas, podendo resultar numa redução dos índices de
insucesso dessas disciplinas.
Assim, vários autores, como Koliver et al (2004) e Nobre & Menezes (2002),
destacam que o modo tradicional de ensinar algoritmos e a programar não consegue
facilmente motivar os alunos a se interessarem pelo assunto, pois não é claro para eles a
importância de certos conteúdos na sua formação. Nesse aspecto, o uso devido de técnicas
que auxiliem o ensino e a aprendizagem torna-se essencial, uma vez que são fatores de
decisão entre continuação ou abandono de um curso superior.
Diante disso, é plausível o uso de ferramentas e jogos que buscam a integração
prática dos conceitos dessas disciplinas, pois ocasionaria uma melhoria substancial na
metodologia aplicada e qualidade do aprendizado dos conteúdos iniciais de um curso de
ciência da computação, permitindo assim ao professor explorar novos conceitos e atividades
além de servir como estimulo para o aluno, como é apresentado no tópico seguinte.
2.2. Ferramentas e jogos para auxiliar na aprendizagem de
programação
Alunos iniciantes nas disciplinas de programação possuem dificuldades
principalmente na abstração e na resolução de problemas e podem ser desmotivados pelo fato
dos professores utilizarem na maioria das vezes exemplos hipotéticos que demonstram o
comportamento do computador. Dessa maneira a utilização dessa metodologia conjuntamente
com ferramentas educacionais pode colaborar para o aprendizado, mas como é destacado por
Jesus & Brito (2010), essas ferramentas devem ser motivadoras e estimulantes, para que o
aluno possa ser auxiliado no seu aprendizado e desenvolver as suas competências.
Diversas pesquisas, projetos e ferramentas têm sido desenvolvidos para auxiliar
no processo de aprendizagem dessas disciplinas. Tobar et al (2001) demonstra que os
resultados de suas pesquisas indicam que ferramentas educacionais facilitam a visualização
6
das abstrações dos algoritmos implementados e o seu uso propicia atividades práticas de
laboratório.
Vários autores apresentam ferramentas desenvolvidas para estimular a criação de
algoritmos e a aprendizagem dos conceitos iniciais de programação, essas se diferenciam por
diversas características e propósitos. Dentre elas pode-se destacar as que possibilitam a
simulação e construção de algoritmos através de pseudocódigos como o AMBAP - Um
Ambiente de Apoio ao Aprendizado de Programação (Almeida et al, 2002) e o VisualPseudo
(Silva & Faveiro, 2005), que permitem aos alunos iniciantes criar, executar e depurar
pseudocódigos desenvolvidos para a resolução de problemas. Com essa característica ainda se
enquadra o VisualAlg (Souza, 2009) que permite ao usuário interagir com código escrito em
linguagem natural durante a sua execução e o Tepequém (Hinterholz Jr., 2009), que segundo
o autor é uma linguagem de programação imperativa que permite aos alunos o
desenvolvimento de pseudocódigos totalmente em português e traduzi-los para a linguagem
Java através de um plug-in para a IDE (Integrated Development Enviroment – Ambiente
Integrado de Desenvolvimento) do NetBeans 6.5 da Sun® Microsystems.
Outras ferramentas possibilitam ao usuário a criação de códigos e a visualização
dos programas através de animações e imagens gráficas, um deles é o Javatool, apresentado
por Mota et al (2008) e que foi desenvolvido para ser utilizada com alunos iniciantes e que
permite a visualização do resultado do algoritmo transcrito na linguagem Java em animações
2D. Essa ferramenta possibilita ao aluno o acompanhamento de passo a passo do código
desenvolvido através da representação dos seus dados em vários formatos de exibição.
Outras ferramentas estimulam a criação de algoritmos através da codificação e
programação de ambientes e objetos animados. Bini & Koscianski (2009) e Wang & Chen
(2010) relatam o uso da ferramenta de ensino de programação Scratch1. Essa ferramenta se
baseia em um ambiente interativo e sugestivo para o aluno arrastar pequenos blocos de
comandos até a área de execução e visualizar os resultados através de imagens gráficas. O
maior objetivo do trabalho é estimular o desenvolvimento de habilidades de resolução de
problemas. Os autores constataram que o uso da ferramenta melhora o aspecto motivacional
dos alunos, fazendo com que eles consigam resolver problemas diversificados com maior
facilidade sem ter sido necessário escrever linhas de código ou pseudocódigo. A figura 1
apresenta um exemplo de um algoritmo de um jogo desenvolvido no Scratch.
1 Scratch é uma linguagem de programação desenvolvida no Media Lab do MIT. Foi criado para ajudar maiores
de 8 anos na aprendizagem dos conceitos matemáticos e computacionais, através de jogos e histórias animadas.
(WIKIPÉDIA, 2012).
7
Figura 1. Algoritmo de um jogo desenvolvido na ferramenta Scratch
Fonte: Próprio autor
A ferramenta Robomind também se assemelha as características do Scratch, onde
o aluno tem de programar objetos visuais para realizar ações. Porém no Robomind o aluno
utiliza uma linguagem de programação própria da ferramenta, que é simples e educativa, para
criar pequenos algoritmos que façam um robô se movimentar e realizar outras ações. Para isso
pode ser utilizado estruturas de algoritmos básicos, como loops de repetição, condicionais e
procedimentos; sendo todas essas estruturas semelhantes às principais linguagens de
programação utilizadas nos meios acadêmicos (Robomind, 2012).
Alguns autores descrevem o estimulo a aprendizagem de programação através de
sistemas e ambientes que promovam a colaboração e que possam ser utilizados através da
web e no processo de educação á distância. Entre eles, destacam-se Botelho (2008) e Petry
(2005) que apresentam a utilização de Sistemas Tutores Inteligentes (STI), como forma de
estimular a aprendizagem de algoritmos através da realização de exercícios e com auxílio de
um tutor. Na ferramenta apresentada por Petry (2005), o tutor interage com o aluno através de
um companheiro de aprendizagem que ao analisar os algoritmos apresentados emite
mensagens de erros e estímulos para a correção dos problemas.
Já no trabalho de Reategui et al (2006) é apresentado um ambiente virtual
conhecido com Ambiente de Aprendizagem de Algoritmos (A3), que possibilita o
aprendizado através de conteúdos, exercícios e atividades relacionados a algoritmos e
conceitos iniciais de programação através da colaboração entre alunos, professores e tutores.
O A3 conta com um agente de interface que faz recomendações de assuntos e de alunos
8
tutores aos usuários que utilizam. Vale destacar que esse agente permite ao aluno ter uma
interação mais amigável com o sistema, estimulando-o a ter um aprendizado de algoritmos de
forma mais interessante.
Existem hoje diversas ferramentas provenientes de trabalhos que buscam auxiliar
o ensino de programação. Essas possuem características próprias e utilizam diversas
estratégias para estimular o aprendizado. Porém, os alunos ingressantes dos cursos de
computação têm cada vez mais dificuldades na aprendizagem dos conteúdos referentes a essas
disciplinas. Por isso, essa motivação pode ser produzida através de utilização de pequenos
jogos para estimular o aluno a aprender de forma interativa e fácil.
Vahldick & Matos (2008) demonstram a utilização da ludicidade com alunos que
estão aprendendo conceitos de programação orientada a objetos e afirma que os índices de
aprovação da turma pesquisada melhoraram. Já Kieling & Sá (2006) afirma que utilizar jogos
permite ao aluno visualizar e experimentar conceitos abstratos, além de despertar a
criatividade.
A utilização de jogos lúdicos pode possibilitar ao aluno um estímulo maior a
aprender os conceitos relacionados à produção de algoritmos e programação de
computadores.
Rosa et al (2006), Digiampietri et al. (2010) e Santos et al (2007) descrevem a
utilização de jogos como fator motivacional para a aprendizagem de fundamentos de
programação. Os autores destacam que esses, além de motivar os alunos, estimulam o
desenvolvimento do raciocínio lógico, possibilitam maior interatividade e também são
divertidos. Em Digiampietri et al (2010) são apresenta diversas estratégias para estimular o
aprendizado de programação, destacando o uso de jogos e simuladores de algoritmos, criados
com base em famosos problemas computacionais, dentre eles está a torre de Hanói
apresentado na figura 2.
Figura 2. Simulador do problema Torre de Hanói
Fonte: Digiampietri et al. (2010)
9
Um jogo utilizado para a aprendizagem de programação é o Robocode (2012),
onde os alunos são estimulados a desenvolver códigos para criar pequenos robores tanques de
guerra, que possam realizar ações, como se movimentar em diversos ângulos, bater um nos
outros, atirar, com o objetivo de destruir outros robores em uma batalha. Esse jogo de
programação permite a criação de algoritmos na linguagem Java, .NET e C#. Ele tem sido
utilizado por diversas instituições para a o ensino de disciplinas de Programação e Inteligência
Artificial (IA).
O Robocode se assemelha a ferramenta Robomind, porém o primeiro é
classificado como jogo por estimular a competitividade e a ludicidade, além de seus
algoritmos serem desenvolvidos em linguagem de programação comercial, diferentemente do
segundo que só tem caráter educacional. A figura 3 apresenta o ambiente do Robocode
destacando os robores foram programados para competir.
Figura 3. Ambiente do Robocode
Fonte: Vahldick & Matos (2008)
Rajaravivarma (2005) realizou um estudo da utilização de diversos tipos de jogos
no trabalho de conteúdos iniciais de programação, dividindo-os em duas classes: jogos de
palavras, para a aprendizagem de manipulação de strings, processo de entrada e saída, etc.; e
jogos de números, onde os alunos são estimulados a aprenderem a geração de números
aleatórios, as estruturas de controle, matrizes e etc. A autora destaca que as estratégias
utilizadas possibilita ao aluno um aprendizado mais divertido e estimulante, fazendo com que
ele tenha determinação de buscar conteúdos mais profundos.
Binder & Martins (2010) e Taylor (2011) discutem ainda, como forma de
estimular o aprendizado de programação, a inclusão do processo de desenvolvimento de jogos
10
nas disciplinas dos cursos de computação. Esse processo é analisado também por Tsukamoto
et al (2009) que faz uma análise da motivação de alunos na aprendizagem dos conceitos
iniciais de programação, onde duas turmas diferentes participam do estudo e somente uma
utiliza ferramentas para a criação de jogos 2D. A experiência destaca as dificuldades que os
alunos que não participaram do desenvolvimento dos jogos e destaca que a motivação foi
maior na classe que participou da criação de jogos.
Assim sendo, percebe-se que a utilização de jogos pode gerar bons resultados
quanto à aprendizagem de algoritmos e conceitos iniciais de programação, estrutura de dados
entre outros conteúdos. Como é destacado por Margi & Oliveira (2009), ainda há muito que
explorar do poder pedagógico dos jogos voltados ao ensino de programação, mesmo que essa
metodologia já esteja sendo bastante explorada. Dessa forma, para a criação do jogo educativo
proposto nesse trabalho houve a necessidade, além de estudar os conceitos apresentados
acima, realizar um estudo local com professores e alunos das instituições que oferecem cursos
de computação em Marabá, como é exposto no próximo capítulo.
11
3 COLETA DE INFORMAÇÕES INICIAIS
Para identificar as principais características e problemas que dificultam a
aprendizagem dos conceitos de programação e colaboram para aumentar os níveis de
desistência dos cursos de computação foram realizadas pesquisas com os principais públicos
envolvidos. Por isso, para saber o perfil e as características desses foi aplicado um
questionário aos alunos, enquanto foi realizado entrevistas com os professores de instituições
de ensino superior e técnico que atuam na área da computação.
3.1 Questionário realizado com alunos ingressantes em Sistemas de
Informação
Como o presente trabalho visa propor jogos a serem utilizados nas atividades da
disciplina de programação, foi aplicado um questionário aos alunos do curso de Sistemas de
Informação, turma de 2010 da FACOM (Faculdade de Computação), Campus Universitário
de Marabá da UFPA - Universidade Federal do Pará. Procurou-se abordar questões referente à
afinidade com a área, conhecimentos básicos de informática, programação e expectativas
futuras.
Foi aplicado um questionário em 29 alunos que estavam com menos de 1 (um)
mês que haviam iniciado o curso de graduação, como durante esse período as disciplinas
ministradas eram modulares, os alunos ainda não tinham tido contato com a disciplina de
programação, desta forma espera-se que os alunos não tenham respondido o questionário
sobre influência da experiência com a disciplina. O questionário aplicado aos alunos está
disponível no Apêndice A.
Na questão 2, todos os alunos entrevistados afirmam ter contato com computador,
sendo que 86,2% (Tabela 1) deles responderam ter escolhido o curso de sistemas de
informação por gostarem da área. 93% utilizam o computador ao menos uma vez por dia,
tendo a sua casa como principal local de contato com o computador (Questão 3). Dessa forma
verifica-se que o perfil dos alunos entrevistados, é de pessoas que são inclusos digitalmente,
pois o contato e a familiaridade com o computador pode aproximar o estudante pelo interesse
em aprender os assuntos relacionados à computação.
12
Tabela 1 – Motivo de escolha do curso de Sistemas de Informação pelos alunos
Questão1: Por que você escolheu fazer o curso de Sistemas de Informação?
Gosto da Área 86,2%
Meus pais influenciaram 0%
Falta de Opção 6,9%
Por necessidade 0%
Outros 6,9%
Na realidade já era esperado que os alunos tivessem contato com o computador,
pelo índice elevado da presença de computadores em residências brasileiras, que segundo o
Comitê Gestor de Internet no Brasil, foi de 45% dos domicílios em 2011(CGI, 2012). Mas
apesar disso, 76% (Questão 5) deles não tiveram experiência alguma com a programação
antes de iniciar a sua graduação (Figura 4). Compondo um dos fatores para que os alunos
mantenham certas expectativas mesmo antes de cursar a disciplina.
Figura 4 – Quantidade de alunos que tiveram experiências com programação entes de iniciar a graduação
Quando foi perguntado, na questão 6, se o discente tinha alguma afinidade
relacionada à programação, 48% responderam que sim, 42% que não e 10% que talvez.
Mostrando que uma parcela considerável de 48% dos alunos se sentem confiantes em
aprender programação, e que já tiveram algum tipo de contato com conceitos rudimentares de
programação, diante de 42% que não possuem nenhum conceito de programação.
6
23
0 5 10 15 20 25
Sim
Não
Questão5: Você já teve alguma experiencia com programação antes
de ingressar na universidade?
13
Outro questionamento feito aos alunos foi sobre algumas diferenças entre o
software e o hardware (Questão 7). Apesar de ser uma questão relativamente básica de
informática, quase todos erraram, tendo apenas 7% de acerto (Figura 5)
Figura 5 – Porcentagem de alunos que identificaram as diferenças entre softwares e hardwares
Pode-se constatar que os alunos iniciam o curso com alta motivação para os
estudos em programação, pois 96,55% dos entrevistados têm interesse em desenvolver
programas, como os jogos e aplicativos comerciais (Questão 8). E mesmo estando no inicio
do curso com pouca experiência e pouco contato com a programação, apenas 3,45% dos
alunos não se acham capaz de desenvolver programas (Questão 9), como é apresentado na
Tabela 2.
Tabela 2 – Quantidades de alunos que se acham capazes de desenvolver programas
Questão 9: Você se acha capaz de desenvolver softwares?
Sim 55,17%
Não 3,45%
Talvez 41,38%
Quanto ao nível de dificuldade que eles creem que terão para desenvolver
sistemas de computadores, 79% dos alunos acham que terão um nível de dificuldade dito
como razoável, 14% dizem que terão muita dificuldade e apenas 7% dizem que não terão
dificuldade alguma (Questão 10).
Na 12º (décima segunda) pergunta do questionário da entrevista, foi demonstrado
um algoritmo considerado simples, para realizar a troca de um pneu de carro. Diante do
Acertos
7%
Erros
93%
Questão 7
14
exemplo, 72% dos alunos se dizem capazes de desenvolver algoritmos como o descrito e 24%
acham que talvez possam fazer algoritmos assim.
Já na questão de nº 13, foi apresentado um algoritmo um pouco mais complicado
do que o anterior, o qual descreve a receita para fazer um bolo. Esse foi apresentado de duas
formas, sendo que a primeira apresentava todos os passos na sequência correta e na segunda
opção alguns passos estavam com a ordem invertida. Com essas duas opções foi perguntado
aos alunos quais dessas duas opções era a correta e todos (100%) acertaram indicando que a
opção 1 estava certa. Isso não quer dizer necessariamente que os alunos saibam escrever
algoritmos, mas sim que é muito importante conhecer os passos corretos e a ordem de
execução de cada um desses passos, pois é assim que funciona um programa.
Cerca de 97% dos alunos dizem que gostariam de uma ajuda extra para
complementar o aprendizado adquirido nas aulas de programação (Questão 14). Como o
intuito do presente trabalho é o uso de jogos e outras ferramentas para auxiliar no ensino de
programação, perguntou-se na questão 15 aos alunos se eles gostariam de utilizar isso para
ajudar no aprendizado dos conceitos básicos, e 96,55% entrevistados responderam que sim
(Tabela 3).
Tabela 3 – Quantidades de alunos utilizaria softwares para auxilio no aprendizado de programação
Questão 15: Você gostaria de utilizar um software que o auxilie no aprendizado
dos conceitos básicos?
Sim 96,55%
Não 3,45%
3.2 Entrevista realizada com os professores
Foram realizadas entrevistas com os professores de cursos superiores e técnicos
que ministram aula da disciplina de programação. O objetivo da entrevista foi buscar a visão
do professor sobre as dificuldades no ensino de programação e algoritmos. Cada docente foi
entrevistado individualmente, de forma semiestruturada com questões abertas, procurando
deixar o professor a vontade para responder tudo que sentir necessidade, sendo que todas as
conversas foram gravadas por um dispositivo de gravação de áudio, para facilitar a análise
posterior das respostas.
Como guia da entrevista, procurou-se seguir o seguinte roteiro:
Se os seus discentes possuem dificuldades em construir e entender as estruturas
dos algoritmos? E quais são essas dificuldades e os seus motivos?
Como os alunos são ensinados a construir algoritmos?
15
Entre as três formas de algoritmos (narrativa, fluxograma e pseudocódigo), qual
delas o aluno tem mais facilidade e dificuldade em desenvolver?
Se os alunos conseguem entender de forma clara e rápida entradas e saídas do
algoritmo?
Se é feito o uso de alguma ferramenta para auxiliar o ensino de algoritmo?
Se os alunos fazem o uso correto dos diferentes tipos de variáveis?
Se o ensino de algoritmo for ensinado separado de programação poderia trazer
algum beneficio ou não para o aprendizado dos conceitos iniciais?
Ao total foram realizadas entrevistas com quatro professores, sendo eles: a
professora Alessandra Oliveira e o professor Francisco da Faculdade de Computação do
Campus Universitário de Marabá da UFPA; e os professores Leonardo Figueiredo Maia e
Rodrigo Barroso Gonçalves do campus de Marabá do IFPA - Instituto de Federal de
Tecnologia e Ciência do Pará.
3.2.1 Entrevista realizada com a Professora Alessandra Oliveira
Segundo a professora Alessandra, os alunos possuem sim dificuldades em
aprender algoritmos, ao menos a maioria deles. Os discentes demoram a aprender esse novo
conceito, pois tanto a construção de algoritmos como a linguagem de programação, são
novidades para quase todos, sem nunca ter se deparado com o estudo desses conteúdos. Não
há nenhuma disciplina ou conteúdo que os alunos tenham visto durante o ensino médio que
envolva esses tipos de conhecimentos. A lógica de programação é um assunto nunca visto
pela grande maioria da turma, sendo que alguns conseguem se familiarizar bem rápido devido
ter um bom conhecimento de organização e estrutura de computadores, além de um longo
tempo como usuário de computador.
Como esses discentes não têm conhecimentos a respeito de lógica de
programação, as aulas são iniciadas com os conteúdos mais básicos, explicando os conceitos e
passando exemplos de algoritmos que se aproximam da vida real para que eles consigam
assimilar como se dá a construção dos algoritmos, até chegarem na solução de problemas
mais complexos para então passarem a instrução para o computador através de alguma IDE.
A professora utiliza mais o pseudocódigo pela proximidade com as linguagens de
programação, pois dessa forma fica mais fácil a passagem do algoritmo para a linguagem de
programação estudada. O fato de se utilizar uma linguagem de programação para ensinar
algoritmos é pela necessidade de demonstrar para os alunos o processamento de dados, a
entrada, o processamento e a saída. A introdução desses conceitos é bastante delicada, pois os
16
alunos por não compreenderem o paradigma da lógica de programação, acabam criando certa
barreira e receio sobre a programação. E mesmo depois de aprendido os conceitos iniciais, os
conceitos mais avançados, como sub-rotina e orientação a objetos, acabam se tornando
barreiras para muitos alunos.
Como os alunos aprendem algoritmo atrelado a uma linguagem de programação,
geralmente acabam tendo dificuldades ao migrarem para outra linguagem. O professor acaba
mostrando as diferença entre a linguagem e o algoritmo, mas cabe ao aluno fazer essa
distinção. Geralmente os alunos só vão dar importância para essa distinção com a
necessidade, ou seja, quando precisarem aprender outra linguagem.
Como ferramentas, a professora utiliza as interfaces de desenvolvimento, as
conhecidas IDE, já ensinando logo a linguagem de programação de acordo com o PPP –
Projeto Político Pedagógico – do curso. A professora acredita que o ensino de algoritmo
poderia ser desatrelado a linguagem de programação, podendo ser criado até mesmo uma
disciplina separada de programação.
A professora defende o uso de ferramentas que possam auxiliar o ensino de
programação, pois até mesmo as IDEs utilizadas são ferramentas e as mesmas são essenciais
para que os alunos consigam desenvolver com mais facilidade. O uso de jogos também seria
bem aceito, uma vez que esses possam ajudar o professor a ministrar os seus conteúdos.
3.2.2 Entrevista realizada com o Professor Francisco
O professor Francisco afirma que os alunos possuem dificuldades na construção
de algoritmos devido a deficiência da parte matemática que envolve a lógica de programação.
Mas ressalta que em uma turma, o nível de conhecimento e de aprendizado é bastante
heterogêneo, se tornando complicado para o professor conseguir trabalhar com essa
diversidade. Afirma ainda que o grande responsável pelo aprendizado é o próprio aluno. A
instituição e o professor não conseguem ensinar de forma satisfatória aqueles alunos que não
se empenham.
Na disciplina de programação I, o professor inicia com a passagem dos conceitos
iniciais de algoritmos. É necessário fazer ainda um nivelamento inicial a respeito de
organização de estrutura de computadores para que eles possam compreender como se
constrói algoritmos e como solucionar problemas de acordo com a lógica computacional. Às
vezes é necessário até mesmo passar assuntos matemáticos, devido à deficiência que a grande
maioria dos alunos possui.
17
As maiores dificuldades enfrentadas pelos alunos se deve ao fato de ser um
conteúdo inédito para quase todos os alunos. Alguns até estudaram ou viram a estrutura e
organização de computadores, mas a lógica de programação geralmente só é abordada mesmo
em disciplinas de programação.
O professor diz ainda que muitos dos professores de programação não tiveram
uma formação voltada para ensinar, então eles acabam esquecendo a parte pedagógica do
ensino. Mesmo muitos acreditando no autodidatismo dos alunos, o ensino acaba sendo
prejudicando pelo fato dos professores não terem uma metodologia de ensino adequada para
ensinar a construção de algoritmos e de programação. Muitos dos alunos demoram a entender
que o algoritmo serve para solucionar diversificados problemas dentro da lógica
computacional, por isso a importância de se fazer as analogias com exemplos práticos da vida
real, como a receita de um bolo ou a troca de pneu de carro.
O algoritmo deve ser mais utilizado na hora da construção da solução do
problema, sem ser necessariamente a codificação. O algoritmo é a solução do problema, os
passos que deverão ser seguidos ou executados para resolver o problema. A programação é
necessária somente depois que tiver o algoritmo construído. A codificação é necessária, pois
de nada valerá construir o algoritmo se não codificar. A codificação é a forma de verificar se
o algoritmo está correto. Caso não se tenha a saída esperada, o erro pode estar tanto na
codificação como na construção do algoritmo, mas isso será verificado tentando, com a
experiência o aluno conseguirá verificar onde está a falha, e pode aprender a construir
algoritmos melhores e consequentemente a programar com menos erro também.
O professor afirma também que a teoria deve estar associada a prática. Por isso há
a necessidade de o aluno passar aquela solução que ele achou como instruções para o
computador. O conhecimento colaborativo também é muito importante. O trabalho em grupo
ajuda bastante para que os alunos consigam achar os erros, falhas e correções.
Ele também acredita que se o ensino de algoritmo for ministrado como uma
disciplina desatrelada à programação poderia ser melhor, uma vez que não teria a obrigação
de se passar a linguagem no momento inicial. O professor defende também o uso de
ferramentas para auxiliar no ensino, pois o mesmo diz que utiliza as IDEs que acabam
facilitando bastante a codificação pela parte dos alunos, e no caso dos jogos, se for jogos
fáceis de serem jogados, poderia ser bastante satisfatório. Agora ele não utilizaria ferramentas
muito complexas, pois os alunos ou até mesmo o professor, poderia perder muito tempo para
aprender a mexer na ferramenta.
18
3.2.3 Entrevista realizada com o Professor Rodrigo Barroso Gonçalves
O professor Rodrigo diz que quase todos os alunos possuem dificuldades em
aprender a construção de algoritmos e lógica de programação, devido não ter tido preparo
antes de ingressarem no curso de tecnologia. A maior deficiência é pela falta de conhecimento
de lógica matemática, pois o professor espera que os alunos já tenham domínio desse
conteúdo para ministrar os conceitos iniciais de programação. Sendo assim é necessário que o
professor realize um nivelamento. Às vezes é necessário ainda fazer a introdução de assuntos
relacionados ao processamento de dados e introdução de organização de computadores.
No inicio o professor ensina a lógica de programação através de fluxograma, pois
acredita que assim se torna mais fácil do aluno abstrair os conceitos iniciais, para então
utilizar o pseudocódigo. Após o domínio do pseudocódigo, os alunos são levados a codificar
através de uma IDE, para testar os algoritmos. Os primeiros exemplos de algoritmos são feitos
através de analogias com o mundo real, procurando abordar geralmente exemplos concretos.
O professor acredita que se os alunos entrarem direto nas IDEs para codificar,
poderão ter maiores dificuldades para solução de problemas computacionais. O objetivo do
algoritmo é exatamente procurar a solução para diversificados tipos de problemas. Alguns
alunos vêm isso como perca de tempo e procuram logo codificar, sendo que geralmente essa
prática se torna mais demorada e trabalhosa devido à necessidade de realizar várias tentativas
até chegar à solução correta.
O professor Rodrigo também acredita que uma disciplina de algoritmo distinta de
programação, teria um efeito favorável no ensino tanto de algoritmo, como de programação.
3.2.4 Entrevista realizada com o Professor Leonardo Figueiredo Maia
De acordo com o professor Leonardo, a dificuldade que os alunos possuem em
aprender os conceitos de construção de algoritmo e em compreender a lógica matemática, se
deve pelo fato de os alunos não terem o preparo antes de ingressar no curso tecnológico. Para
ministrar esses conteúdos, o professor primeiro introduz os conceitos iniciais da lógica de
programação, explicando o processamento de dados e a lógica matemática para o
desenvolvimento de algoritmos.
Ele pouco utiliza o fluxograma, fazendo mais uso do pseudocódigo, abordando na
grande maioria dos casos, ao menos nos momentos iniciais, exemplos extraídos da vida real e
que fazem parte do dia-a-dia. Procura forçar os alunos a escreverem os pseudocódigos no
caderno, para que eles consigam fixar melhor o conteúdo. Dessa forma, eles desprendem no
inicio da disciplina, da ideia de programar. Após ter maturada a construção de algoritmos, os
19
alunos são levados a codificar através de alguma IDE. A necessidade de codificar é vista pelo
fato de os alunos precisarem comprovar a solução criada no papel, mas é muito complicado
para o aluno aprender a construir algoritmos e a programar ao mesmo tempo. Por isso os
discentes são levados a fazer somente o algoritmo nos momentos iniciais.
Segundo professor, o uso de exercícios de fixação é muito bom para que o aluno
trabalhe o conteúdo aprendido. A prática faz com que o aluno consiga pensar mais nas
soluções possíveis de um determinado problema. A teoria é muito importante, mas ela tem
que está associada com a prática.
O professor vê que o inicio da disciplina pode ser muito difícil para a grande
maioria dos alunos, até porque o conteúdo é novidade para eles. Mas quando chega na parte
que envolve conceitos avançados de programação, causa bastante dificuldade também para
eles assimilarem a matéria, como acontece na estrutura de dados. Nessa parte mais avançada
vale mais a capacidade individual de cada um, pois fica muito complicado para o professor
conseguir trabalhar com essas diferentes curvas de aprendizado. O professor tem a
responsabilidade de ministrar o conteúdo e procurar uma metodologia eficiente, mas a grande
carga do aprendizado fica a cargo do próprio aluno.
Os alunos geralmente conseguem aprender bem a usar variáveis e a diferenciá-las
de forma descomplicada, mas isso se o professor conseguir explicar de forma clara, e
exercitá-los como é feito com os exercícios de fixação. Se os discentes conseguirem aprender
algoritmos desvinculados de uma linguagem de programação, acaba se tornando mais fácil
para que eles consigam aprender diversas línguagens de programação. Por isso ele acha
importante não fechar em uma linguagem em específico no inicio da disciplina de
programação. Sendo assim, ele também acredita que se algoritmos for ministrado como uma
disciplina desvinculada das linguagens de programação poderia ser mais proveitosa e melhor
de trabalhar com os alunos.
O professor apoia o uso de ferramentas que podem vir a ajudar os professores a
ensinar e/ou os alunos a aprenderem qualquer conteúdo que seja, mas não concorda se essa
ferramenta for muito complicada de se trabalhar, pois poderia demandar muito tempo para
aprenderem a mexer na ferramenta.
20
4. O JOGO BARALHO DAS VARIÁVEIS
Diversas ferramentas foram desenvolvidas para auxiliar professores e alunos no
processo de ensino-aprendizagem dos conceitos iniciais de programação. Porém verifica-se
que essas possuem poucos elementos que possam motivar os alunos a sanarem as dificuldades
que possuem nessas disciplinas. Taylor (2011), Digiampietri et al (2010), entre outros autores
discutem a utilização de jogos educativos como ferramenta motivacional para os alunos das
áreas da computação. Esses jogos podem permitir aos alunos desenvolverem o raciocínio
lógico e matemático além de fixarem conteúdos para resolverem problemas e produzirem
algoritmos.
Para atingir os seus objetivos, os jogos educativos devem disponibilizar desafios e
promover o interesse do aluno para a resolução de problemas permitindo uma autoavaliação
de seu desempenho (Costa, 2009, p.33). Esses conceitos foram essenciais na criação do
protótipo do jogo proposto neste trabalho. O jogo “Baralho das variáveis” surgiu a partir das
pesquisas realizadas em bibliografias e o levantamento de dados com alunos e professores do
curso de Sistemas de Informação da Universidade Federal do Pará – Campus Marabá, além de
debates entre os membros da equipe e orientadora. A proposta é de se trabalhar com jogos
educativos que permitam aos alunos fixarem os conteúdos repassados pelos professores em
sala de aula.
Das classificações de gêneros de jogo apresentadas por Rolling e Morris apud
Damasceno (2009, p. 8) o jogo proposto se enquadra principalmente como um jogo
educacional, por colaborar no desenvolvimento de um conceito ou uma habilidade.
Após entrevistas realizadas com professores foram selecionados os assuntos
referentes a disciplinas introdutórias de algoritmos, programação e estrutura de dados que os
alunos apresentavam maior dificuldade, dentre eles pode-se citar:
Criação de algoritmos;
Tipos de dados e operações com variáveis;
Estrutura de controle e decisão;
Vetores e Matrizes;
Listas, Pilhas
Com base nesses assuntos foram selecionados alguns para a criação de jogos que
auxiliasse na aprendizagem dos alunos. O protótipo do jogo Baralho das Variáveis foi
21
desenvolvido com base no assunto tipos de dados e operações com variáveis, pois segundo
alguns professores entrevistados os alunos ao desenvolverem seus primeiros algoritmos
utilizavam somente um tipo de variável e realizavam poucas operações com essas, muitas
vezes por desconhecerem outras instruções mais eficazes.
O protótipo do jogo foi desenvolvido buscando a diversão e aprendizado dos
alunos, por isso foi projetado uma ideia semelhante ao um jogo de baralho como o Paciência2.
No Baralho das Variáveis é apresentado ao jogador um número ou palavra para
que ele realize uma operação com cartas e operadores. São disponibilizadas 12 cartas que
representam variáveis, essas cartas podem ser do tipo: inteiro, real ou caractere. O valor
representado é destacado na parte superior e o seu tipo é classificado de acordo com as cores
padronizadas (figura 6).
Figura 6. Tipos de cartas de acordo com os tipos e cores
É disponibilizada uma paleta com botões que representam os operadores que
podem ser utilizados para realizar operações com essas variáveis. As operações disponíveis
são soma, subtração, multiplicação, divisão, potenciação, radiciação, resto da divisão,
concatenação e substring (propriedade para seleção de um conjunto de caracteres dentro de
uma variável caracter) (Figura 7).
Figura 7. Paleta que disponibiliza os operadores para realizar operações no jogo
Foram desenvolvidos quatro níveis no jogo, para que aluno possa conhecer e
diferenciar a utilização de cada tipo de variável, as características desses são:
Nível 1: é realizado operações com cartas do tipo inteiro e real e com os
operadores soma (+), subtração (-);
2 Paciência: variante do jogo Klondike desenvolvido para os Sistemas Operacionais Microsoft Windows.
22
Nível 2: é realizado operações com cartas do tipo inteiro e real e com os
mesmos operadores do nível anterior acrescido das operações de
multiplicação (*), divisão ( / );
Nível 3: é realizado operações com cartas do tipo inteiro e real e com os
mesmos operadores do nível anterior acrescido das operações de
potenciação (POT), radiciação (RAD), resto da divisão (MOD);
Nível 4: é realizado operações com cartas do tipo caracter e inteiro e com
os operadores soma (+), concatenação (CONCAT) e subString
(subString);
Para um melhor entendimento da estrutura do jogo Baralho das Variáveis é
apresentado abaixo as suas interfaces.
Tela de Inicio
Na tela inicial é solicitada a inserção do nome do jogador, para fazer referência no
ranking com os pontos que ele conquistou. São apresentadas as opções de “Jogar”,
“Instruções” e “Placar”, para que o aluno possa se movimentar pelas telas ou iniciar o jogo
(figura 8).
Figura 8. Tela inicial do jogo
Tela Placar
Nessa interface o jogador pode observar uma lista com as maiores pontuações
conquistadas. O placar apresenta uma lista com os 10 jogadores que conseguiram as melhores
notas de forma decrescente (figura 9).
23
Figura 9. Placar de pontos
Tela instruções
Antes de o jogo ser iniciado recomenda-se que sejam conhecidas as regras, as
formas de movimentação e outros detalhes importantes que são apresentados na interface
“Instruções”. Nesse espaço são demonstradas todas as funcionalidades além da apresentação
de conceitos sobre os tipos de variáveis e as operações que são disponibilizadas no jogo
(figura 10).
Figura 10. Tela de Instruções do jogo
Tela de apresentação dos desafios
Quando o aluno inicia o jogo, uma tela é apresentada com o desafio que é
proposto. Essa permite que o aluno possa tomar conhecimento do caractere ou número que
tem de chegar realizando as operações (figura 11).
24
Figura 11. Tela de apresentação de desafios
Tela principal do jogo
Na figura 12 é apresentada a tela principal jogo, espaço onde o aluno utilizará as
cartas e operadores para realizar as operações. Na parte superior é disposto uma palavra ou
número, de acordo com o nível, que foi dado como desafio para o aluno alcançar através das
operações. Existem ainda 6 espaços para movimentação das cartas, além da apresentação dos
pontos, nível atual do jogo e representação das cores de cada tipo de variável. Na parte
inferior é apresentada a paleta de operadores, o ícone para distribuição de novas cartas e o
espaço de operação, onde o aluno arrastará as cartas e operadores para realizar o cálculo que
chegue ao desafio proposto.
Figura 12. Tela principal do jogo
A tela principal do jogo é a mesma, com exceção de quando são realizadas as
operações radiciação (3º nível), concatenação e subString (4º nível). Quando essas operações
são solicitadas o espaço de operação é alterado para cada tipo, devido as suas particularidades,
25
como é apresentado nas figuras 13, 14 e 15. Um exemplo é a realização da operação
concatenação (operador CONC) que necessita somente de um operador e seguido das cartas
que representa as variáveis.
Figura 13. Alteração da tela principal para realizar a operação de concatenação
Figura 14. Alteração da tela principal para realizar a operação subString
Figura 15. Alteração da tela principal para realizar a operação de radiciação
26
Telas de confirmação e de Erro
Após realizar o calculo é apresentado ao jogador às telas de sucesso, quando o
resultado estiver correto, ou de fracasso, quando o resultado estiver errado (figuras 16 e 17).
A tela de sucesso apresenta o algoritmo da operação realizada na linguagem de programação
Java.
Figura 16. Tela de fracasso
Figura 17. Tela de sucesso
Buscando além do divertimento, o jogo Baralho das Variáveis insere alguns
conceitos sobre a realização de operações com variáveis. Primeiramente os tipos de dados são
classificados por cores, essas são utilizadas nas cartas, nos valores dos desafios e nos
resultados. Dessa forma, o aluno ao realizar uma operação, identifica que o resultado deverá
ser do mesmo tipo do valor do desafio, ou seja, da mesma cor.
Em segundo lugar o jogo, de acordo com a ação realizada pelo aluno, apresenta
algumas mensagens de notificação, demonstrando a ele a forma correta de realização da
operação. Entre essas mensagens observa-se a que é apresentada quando um aluno utiliza uma
27
carta real em operações com resultados inteiros, nesse caso orienta-se que essas operações só
podem ser realizadas com cartas inteiras (figura 18).
Figura 18. Mensagens de notificação ao aluno
Na tela Instruções são apresentados os conceitos de: tipos de variáveis e as
características de cada operação. Além da apresentação dessas em pequenos algoritmos em
linguagem natural.
Essas identificações são de suma importância, para que o aluno fixe o conteúdo
repassado em sala de aula, pois segundo as pesquisas realizadas, esses são os pontos que mais
acontecem erros ou não são utilizados, devido principalmente ao fato do desconhecimento do
uso correto das variáveis e das operações.
4.1. Desenvolvimento do jogo
O desenvolvimento do jogo foi iniciado com o estudo do perfil dos alunos, dos
assuntos escolhidos e com o desenvolvimento da idéia. Foi produzido um documento geral,
conhecido como Game Design Document (GDD), que segundo Gularte & Pontes (2011) “é o
registro central de todas as ideias até então pensadas e processadas, e recebe constantes
atualizações”. Na versão simplificada do GDD foram descritas as características, regras,
componentes, interfaces entre outros detalhes do desenvolvimento técnico do jogo (Apêndice
B).
O jogo foi desenvolvido para atuar em ambiente web, para possibilitar que uma
quantidade maior de alunos possam ter acesso. Ele pode ser utilizado em sites, Ambientes
Virtuais de Aprendizagem (AVA) para trabalhar em cursos semipresenciais e/ou a distância,
além da possibilidade de sua publicação em plataformas sociais.
28
Foi utilizada a ferramenta Adobe Flash Professional CS5, que é uma excelente
ferramenta que permite criar desde simples animações até jogos e sites completos, esta
ferramenta foi escolhida por seus recursos gráficos, inclusão de som e controle dos resultados,
além da renderização de gráficos mais eficientes e arquivos menores possibilitando o seu
acesso através da web com o consumo mínimo de banda.
Para manipular os dados, permitir a interatividade e adicionar outros recursos no
jogo foi utilizada a linguagem de programação ActionScript 3.0 que é uma linguagem robusta
e orientadas a objeto, que é incluída no Adobe® Flash® Player e permite a produção de jogos
para múltiplos jogadores e em tempo real.
Após a sua criação o jogo é salvo no formato “swf” e executado no Adobe Flash
Player, que é um plugin que permite a visibilidade e disponibilidade desses arquivos em uma
grande variedade de plataformas, navegadores e dispositivos. O arquivo swf, ao ser utilizado
executa o código ActionScript através da ActionScript Virtual Machine (AVM), que vem
inclusa no Flash Player e fornece um aprimoramento de desempenho bem significativo.
(RHODES, 2008; ADOBE, 2008).
Uma característica do jogo é a possibilidade de múltiplos jogadores o executarem
ao mesmo tempo e salvar os pontos em um servidor, para que seja organizado um ranking dos
melhores jogadores. Nesse sentido foi utilizado o paradigma cliente/servidor, que possibilita a
disponibilização do jogo através de um ambiente de rede e o salvamento dos dados em um
arquivo no servidor. Foi utilizado o servidor web Apache, onde estão armazenados o arquivo
.swf e o arquivo para salvar os dados do jogo.
Quando o aluno inicia o jogo são coletado as informações dos jogadores e pontos
no servidor, para formar o ranking. E ao finalizar o jogo é encaminhada uma solicitação ao
servidor que através de script php, recebe os valores das variáveis enviadas pelo arquivo .swf,
logo após é aberto um arquivo do formato .txt que armazena os dados, realizar uma operação
de escrita e logo após fecha o arquivo. Essa operação é demonstrada na figura 19.
29
Figura 19. Arquitetura cliente-servido do jogo
O protótipo do jogo Carta de Variáveis é composto ainda pelos áudios e imagens.
Na finalização da sua implementação foram selecionados diversos sons em bancos de áudios
gratuitos e adicionados para chamar a atenção dos alunos em pontos principais. A lista dos
links dos áudios está no Anexo A.
Quanto às imagens, algumas foram produzidas utilizando a ferramenta de
software livre Gimp3. Para a produção de todas as outras imagens contou-se com a
colaboração dos alunos Deivid Teixeira Souza e Daiane Pantoja Lopes, da turma de sistemas
de Informação 2007, que também fizeram uma análise da usabilidade do jogo e sugeriram
diversas modificações que permitiram criar uma melhora visual do jogo e maior interação
com o usuário.
3 Gimp: ferramenta de código aberto que permite a criação e manipulação de imagens vetoriais.
30
5. VALIDAÇÃO DO PROTÓTIPO DO JOGO
BARALHO DAS VARIÁVEIS
Na tentativa de validar o protótipo do jogo exposto no trabalho e realizar a análise
da utilização dos jogos educacionais nas disciplinas introdutórias de programação, foi
realizado um teste com alunos da turma 2011 do curso de Sistemas de Informação da
Universidade Federal do Pará, campus Marabá. A turma, que esta cursando o segundo
período, conta com 41 alunos, dos quais 28 alunos participaram do teste, com uma
porcentagem de 68,3% dos alunos presentes na turma.
No momento do teste a turma era de responsabilidade do professor Josué Leal
Moura Dantas, e dentre os 28 alunos foram selecionados 14 para fazer parte do grupo
experimental, ou seja, que jogariam, essa seleção foi realizada pelo professor da turma em
ordem da lista de presença.
O teste foi dividido em duas fases, a primeira foi à apresentação do jogo, seus
objetivos e características e a utilização deste pelo grupo experimental. Na segunda fase
foram aplicados questionários para os participantes do deste grupo mais ao grupo de controle
formado pela outra metade da turma, que não tinha jogado.
Como o jogo baralho de Variáreis objetiva incentivar os alunos e fixar o conceitos
de tipos de variáveis, que são conceitos visto inicialmente nas disciplinas de algoritmos e
programação, que geralmente são apresentados nos primeiros períodos letivos do curso,
infelizmente não houve a possibilidade de dispor de alunos cursando a disciplina algoritmo,
ou programação 1, pois não existia no momento da pesquisa turma cursando estas disciplinas,
mas felizmente existia uma turma cursando programação 2, que já havia cursado a disciplina
programação 1. Deste modo decidiu-se a realização dos testes com turma disponível;
A primeira fase do teste foi realizada no Laboratório de Informática 3 da
Universidade Federal do Pará, Campus I, no dia 30 de Novembro de 2012, das 10h40min às
11h50m, portanto tendo a duração de 1:10 hora. A Figura 20 apresenta um dos momentos
desta etapa.
31
Figura 20. Alunos da turma 2011 realizando os testes
Para a realização da primeira etapa do teste foi utilizado um computador como
servidor, que recebia as solicitações do jogo e armazenava as informações dos alunos que
estavam jogando. Essa maquina estava configurada com sistema Operacional Windows® 7, e
o sistema WampServer e como configuração de hardware processador Intel Pentium Dual
Core T4300 2.10GHz, 3 GB de memória RAM, 320 GB de HD.
Quatorze computadores foram utilizados como estações clientes, para que os
alunos participantes pudessem acessar o jogo através da rede. Eles possuíam Sistema
Operacional Windows® 7, sendo que doze tinham instalado o browser Internet Explore 9.0 e
três o browser Mozila Firefox 15.0, todos possuíam o plugin Abobe® Flash® Player 11.
Além disso, foram disponibilizados aos alunos, fones de ouvido, já que o jogo Baralho das
Variáveis possui sons que permite uma interação auditiva com os alunos.
Durante essa fase, foi inicialmente apresentado o jogo aos alunos do grupo
experimental e solicitado que os mesmos lessem as orientações. Em seguida foi
disponibilizado um tempo de 50 minutos para que eles pudessem jogar a vontade. Após cinco
minutos observou-se que alguns alunos já tinham se familiarizado com a proposta e
utilizavam as cartas e os operadores facilmente para chegar aos resultados solicitados. Porém,
percebe-se que cerca de 21% dos alunos tinha dificuldades em chegar aos resultados nos
primeiros dois níveis.
Após 50 minutos todos os alunos chegaram ao último nível e conseguiram
resolver os desafios propostos, alguns inclusive já haviam jogado várias vezes. Quanto ao
32
desempenho do jogo, durante o teste o software executou de forma estável e os alunos fizeram
sugestões de que características que puderam ser aguardáveis ou não em suas opniões, como a
inserção de novos níveis, a abordagem de outros conceitos de programação, entre outras
sugestões que serão abordadas na discussão dos resultados.
A segunda fase do teste foi realizada na parte da tarde do mesmo dia às 14hs em
uma sala de aula da Faculdade de Computação. Foi aplicado um questionário com 8 questões
referente ao conteúdo explorado no jogo, como é apresentado no Apêndice C, para 28 alunos,
sendo 14 (50%) que tinham jogado na primeira fase do teste e outros 14 (50%) que não
tinham tido contato algum com o jogo. A aplicação do questionário foi acompanhada pelo
Professor Josué Leal, que era responsável pela turma, e durou cerca de 20 minutos.
Foi aplicado também um pequeno questionário com 7 questões (Apêndice C),
para a avaliação da interface, funcionalidade, aplicabilidade e manuseio do jogo pelo os
alunos que tinham jogado na primeira etapa. Os resultados e analises dos questionários são
apresentados a seguir.
5.1. Resultados
Durante a realização da primeira etapa do teste pode-se observar diversas
dificuldades básicas que os alunos, mesmo estando no segundo período, isto é a disciplina
programação 2. Uma delas é a dificuldade lógica e de raciocínio para resolver os desafios
propostos do jogo, além de dificuldades matemáticas, como prioridade de sinais e conhecer as
operações resto da divisão, entre outras. Essa característica que é citada por Jesus e Brito
(2009) e por alguns dos professores entrevistados na pesquisa demonstra como essa
dificuldade pode atrapalhar no aprendizado de programação em nível mais avançado. Por
isso, vale destacar que após os primeiros erros do jogo, os alunos passavam a ter mais atenção
e cuidado na resolução.
Observou-se também, que ocorreram momentos de competição e divertimento,
onde eles observavam os resultados do “Placar” e estimulavam os outros alunos a
ultrapassarem os seus valores. Além disso, vários alunos expressavam a alegria quando
acertava os desafios ou a tristeza quando erravam. Essa interação e divertimento é apresentada
por Santos et al (2007) que destaca a importância da ludicidade desses jogos e dos elementos
multimídias para motivar os alunos a aprender os conceitos de programação.
33
Para analisar a aceitação e as dificuldades que os alunos tiveram com a
usabilidade do jogo foi aplicado um pequeno questionário para aqueles que participaram da
primeira fase do teste, de forma que eles pudessem avaliar a interface, funcionalidade, entre
outras características do sistema. Os resultados dessa avaliação foi positivo e nas 5 (cinco)
primeiras questões mais de 80% alunos apresentaram resultado “Bom” ou “Muito Bom”
como é apresentado na figura 21.
Figura 21. Resultado da avaliação de usabilidade do jogo
Foi questionado ainda aos alunos as sugestões deles para a melhora do jogo
Baralho das Variáveis e dentre as diversas respostas destaca-se:
A possibilidade de realizar os cálculos dos desafios com uma quantidade
menor de cartas e de operadores;
Possuir mais fases e assuntos de programação;
Aumentar o nível de dificuldade do jogo;
Inserir mais animações, principalmente nas instruções;
43%
57%
0% 0%
50%
43%
7%
0%
64%
29%
7%
0%
50%
36%
14%
0%
50%
43%
7%
0%0%
10%
20%
30%
40%
50%
60%
70%
Mu
ito
Bo
m
Bom
Raz
oáv
el
Ruim
Mu
ito
Bo
m
Bom
Raz
oáv
el
Ruim
Mu
ito
Bo
m
Bom
Raz
oáv
el
Ruim
Mu
ito
Bo
m
Bom
Raz
oáv
el
Ruim
Mu
ito
Bo
m
Bom
Raz
oáv
el
Ruim
Instruções do Jogo Facilidade de
Navegação
Qualidade gráfica e
de Design
Qualidade das
Animações e Sons
Conteúdo do Jogo
34
Na finalização do teste foi solicitado aos alunos que eles dessem uma nota para
jogo entre 0 e 10 e cerca de 85,71% deram nota entre 8 e 10. A figura 22 apresenta a relação
entre a quantidade de alunos e as notas dadas por esses.
Figura 22. Nota dos alunos ao jogo
Já para comparar o aprendizado dos alunos com a utilização do jogo foi aplicado
um questionário entre os alunos que jogaram e os que não jogaram. Durante a aplicação
observou-se que o questionário aplicado tinha uma inconsistência na questão de número 1
(um) e por isso ela não será utilizada para efeito de análise dos resultados. O resultado da
pesquisa é apresentado na tabela 4 que descreve a porcentagem de acertos em cada questão e
a média de acertos do grupo.
Tabela 4 – Resultado da pesquisa realizada com todos os alunos da turma 2011
Questão Alunos que Jogaram Alunos que não
jogaram
2 100,00% 92,86%
3 85,71% 85,71%
4 100,00% 92,86%
5 21,43% 0,00%
6 50,00% 42,86%
7 78,57% 85,71%
8 7,14% 7,14%
Média 67,85% 62,5%
Com base no teste observou-se que os alunos, tanto os que jogaram quanto os que
não jogaram, tiveram facilidade de responder algumas questões do questionário. Uma
0
1
2
3
4
5
6
7,5 8 9 10
Qu
anti
dad
e d
e A
lun
os
Notas
35
hipótese para esse fato é por eles estarem finalizando o segundo semestre do curso e por já
terem cursado disciplinas que tem a ver com o conteúdo abordado no protótipo do jogo
Porém, pode-se inferir que mesmo assim, os alunos que jogaram tiveram
vantagem no número de respostas, em relação aos que não jogaram. Outro fato interessante é
que a quantidade de abstenções, ou seja, alunos que deixaram de responder alguma questão, é
cerca de 6% maior no grupo dos que não jogaram. O que sugere que mesmo não sabendo a
resposta correta, os alunos que jogaram tentaram resolver as questões.
Um exemplo desse ponto é a resposta da quinta questão do questionário, que
solicitava aos alunos que realizasse uma operação de subString, que é uma operação que ainda
não tinha sido vista por eles em sala de aula e é utilizada no 4º nível do jogo. Dessa feita,
cerca de 21,43% dos alunos que jogaram acertaram a questão e 35,71% dos aluno que não
tinha jogado erraram e o restante não respondeu.
Nesse sentido, pode-se observar que o protótipo do jogo Baralho das Variáveis
teve uma boa aceitação pelos alunos e que os testes mesmo sendo aplicado em uma turma de
alunos do segundo semestre e que já tenham visto alguns dos conteúdos abordados
demonstrou que houve a colaboração na aprendizagem dos conteúdos propostos de forma
estimulante e divertida.
36
6. CONSIDERAÇÕES FINAIS
Desenvolver novas metodologias e formas de auxiliar na aprendizagem de
programação tem sido uma preocupação constante professores e pesquisadores. Nesse sentido
as considerações desse trabalho vêm demonstrar o ganho que o uso de pequenos jogos e
metodologias de ensino mais interativas podem representar no aprendizado de alunos no que
se refere ao ensino das disciplinas de algoritmos e de programação de computadores.
O trabalho desenvolvido tinha como proposito analisar como o uso de jogos
educativos podem estimular na aprendizagem de programação. Logo, foram realizadas
pesquisas, entrevistas com professores e aplicação de questionários com alunos que serviram
de base para o desenvolvido do protótipo do jogo Baralho de Variáveis, que visa estimular os
alunos a aprenderem os conceitos iniciais de variáveis e suas operações, brincando em um
jogo de cartas. Para o seu desenvolvimento foram analisados diversas ferramentas e conceitos,
identificando as principais características que poderiam ser utilizadas no jogo, de forma
estimulasse a aprendizagem em um formato diferente. Além disso, o jogo vem somar com o
conteúdo ministrado previamente pelo professor, podendo estar à disposição dos docentes
para auxiliar em suas metodologias de ensino, seja como complemento ou avaliação.
Pode-se inferir, também que o uso de jogos e ferramentas que estimulam a
aprendizagem de forma divertida é bem satisfatório, pois no teste realizado com os alunos
demonstrou um grau de acertos maior do grupo que jogou em relação ao que não jogou.
O teste, que foi realizado com a turma de Sistemas de Informação 2011,
demonstrou que o grupo que tinha jogado acertou cerca de 5% a mais de questões que o grupo
que não jogou, mesmo com o fato da turma já estar cursando o segundo período e ter visto
alguns dos conteúdos abordados. Vale destacar ainda que o grupo que não jogou absteve-se de
responder em 6% a mais de questões, como a questão 5, onde cerca de 64% dos alunos
deixaram de responder e o restante errou, enquanto que 21,43% dos alunos que jogaram
acertaram a questão. Logo, percebe-se que houve um nível de interesse em responder as
questões maior pelo grupo que jogou.
Foram verificadas algumas das dificuldades que os alunos possuem em aprender
programação e através das pesquisas e dos testes realizados, identificou-se que as dificuldades
lógicas e matemáticas são umas das principais barreiras para uma aprendizagem dos conceitos
mais avançados. Esse fato, que também foi identificado com alguns alunos no teste com o
37
jogo, pode ocorrer devido ao nível fraco de aprendizagem de matemática no ensino médio dos
ingressantes nos cursos de computação. Esse pode ser destacado como um dos entraves para
um ensino das disciplinas de programação, como foi relatado por uns dos professores
entrevistados.
Constatou-se, também que alguns alunos possuem dificuldades em trabalhar com
os tipos de variáveis e não conseguem diferenciar o formato adequado para determinados
valores. No teste realizado, observou-se que os alunos participantes, apesar de já possuírem
um conhecimento básico sobre programação não conheciam algumas das operações, como
por exemplo, a operação de subSting. Porém, com a aplicação do teste escrito que comparou
os alunos que jogaram e os que não jogaram, os primeiros conseguiram abstrair esses
conhecimentos e obtiveram melhores resultados.
Nesse sentido, percebeu-se que entre as dificuldades dos professores no processo
de ensino das disciplinas de programação, está no fato de o conteúdo ser novidade para os
alunos. Um professor entrevistado ressaltou que é difícil trabalhar com uma turma onde o
nível de aprendizado é bem heterogêneo e com o número grande de alunos. Todos os docentes
entrevistados na pesquisa falaram que a falta de preparo dos alunos antes de ingressar no
curso, seja ele técnico ou superior, é um grande obstáculo para o ensino de algoritmos e
programação, principalmente nos momentos iniciais. Os professores também afirmam que a
utilização de ferramentas e jogos que possam ser trabalhadas com estratégias pedagógicas
diferenciadas podem contribuir para a minimização dessas dificuldades.
Dessa forma, conclui-se que a utilização de jogos pode colaborar de forma
significativa na aprendizagem dos conceitos de programação, pois estimulam o aluno através
da interatividade, da competitividade e da diversão. O uso dessas ferramentas possibilita o
desenvolvimento do raciocínio lógico e estimula a criatividade e a descoberta de novas
soluções. Esse fato foi visível durante a aplicação do teste, onde os alunos que estavam
jogando demonstravam interesse em descobrir as soluções, interagiam com seus colegas,
motivando-os a competirem e se divertiam.
Porém, vale destacar que a utilização de jogos, como o protótipo apresentado,
deve ocorrer em consonância com o trabalho do professor em sala de aula, possibilitando a
geração de melhores resultados. Esse fato foi aparente no teste realizado com os alunos, que
por já terem estudando o assunto abordado e por terem jogado conseguiram obter melhores
resultados que aqueles que não tinham jogado.
38
Desse modo, deve-se também ser realizadas algumas melhorias no protótipo
apresentado, pois apesar do funcionamento estável necessita de pequenas adaptações, como as
que são sugeridas pelos alunos, para possa ser mais estimulante e divertido. Por isso, é cabível
ainda o desenvolvimento de outras ferramentas e jogos que possam trabalhar com conteúdos
mais avançados de programação, mas que levem em sua essência a ludicidade e diversão, para
dar continuidade ou somar com o jogo aqui apresentado.
Para trabalhos futuros, pode ser desenvolvido um módulo no jogo Baralho das
Variáveis para o professor, de forma que esse possa acompanhar melhor o andamento e
progresso dos alunos, além de coletar dados, como nota, tempo e nível do aluno dentro do
jogo; desenvolver novas fases e melhorar os níveis de dificuldades; melhorar as animações e
recursos audiovisuais; desenvolver versões para dispositivos móveis e disponibilizar o jogo
em plataformas sociais ou em Ambientes Virtuais de Aprendizagem para que o mesmo possa
chegar ao número maior de alunos e professores. Pode-se também desenvolver um repositório
de jogos educativos para a área da computação de forma agregar outros jogos criados e
disponibilizá-los aos alunos e professores.
39
7. REFERÊNCIAS BIBLIOGRÁFICAS
ADOBE. Sobre o ActionScript. Disponível em: <
http://help.adobe.com/pt_BR/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf3
51e63e3d118a9b90204-7ff4.html>. Acesso em 15 fev. 2012.
ALMEIDA, E. S.; COSTA, E. B.; SILVA, K. S.; PAES, R. B.; ALMEIDA, A. A. M., Braga,
J. D. H. AMBAP: Um Ambiente de Apoio ao Aprendizado de Programação. In:
Workshop de Educação Em Computação, Florianópolis, 2002
ALMEIDA, Eliana S. de.; et al. Um Ambiente Integrado para auxílio ao Ensino de
Ciência da Computação. Revista Digital da CVA, Vol. 2 – nº8, Setembro, 2004.
BINDER, Fabio Vinicius; MARTINS, Vidal. Uma abordagem lúdica para a aprendizagem
de programação de computadores. In: Workshop sobre Educação em Computação.
Belo Horizonte, MG, 2010.
BINI, Elena Mariele; KOSCIANSKI, André. O ensino de programação de computadores
em um ambiente criativo e motivador. In: VII Enpec - Encontro Nacional de
Pesquisadores em Educação em Ciências. Florianópolis, SC, 2009.
BOTELHO, Carlos Alberto. Sistemas Tutores no Domínio da Programação. Revista de
Informática aplicada. Vol. IV, Num. 01. Jan/jun 2008.
COMITÊ GESTOR DA INTERNET NO BRASIL (CGI.br). Pesquisa sobre o uso das
tecnologias de informação e comunicação no Brasil 2011, Coletiva de Imprensa, São
Paulo, 31 maio 2012. Disponível em: <http://cetic.br/usuarios/tic/2011-total-
brasil/apresentacao-tic-domicilios-2011.pdf>. Acesso em: 01 set. 2012.
COSTA, Danielle Fonseca. Baiuka: Jogos de lendas Amazônicas para Avaliação de
Inteligências Múltiplas. Dissertação (Mestrado). Universidade Federal do Pará,
Instituto de Tecnologia, programa de Pós-graduação em Engenharia Elétrica, Belém.
2009.
DAMASCENO, Ricardo Rodrigues. Concepção do jogo educativo “A Revolta da
Cabanagem”: enredo, cenário, interfaces, jogabilidade e áudio. Dissertação
(Mestrado). Universidade Federal do Pará, Instituto de Tecnologia, Programa de Pós-
graduação em Engenharia Elétrica, Belém. 2009.
DIGIAMPIETRI, L.A., KROPIWIEC, D. D., Silva, R. A. C. O uso de jogos como fator
motivacional em cursos de computação. In: XVIII Workshop sobre Educação em
Computação (WEI), 2010, Belo Horizonte. Anais do XXX Congresso da Sociedade
Brasileira de Computação (CSBC 2010). , 2010. p.768 – 777
DIGIAMPIETRI, Luciano A.; KROPIWIEC, Diogo D.; SILVA, Renato A. C. O uso de
jogos como fator motivacional em cursos de computação. In: Workshop sobre
Educação em Computação. Belo Horizonte, MG, 2010.
FUSCO, Camila. Faltam 90 mil profissionais de tecnologia. Folha de São Paulo, 08 abr.
2011. Mercado. Disponível em:
40
<http://www1.folha.uol.com.br/fsp/mercado/me0804201105.htm>. Acesso em 20 jul.
2012.
GIMP BRASIL. Conhecendo o gimp e sua interface. Disponível em:
<http://www.gimpbrasil.org/2011/05/conhecendo-o-gimp-e-sua-interface.html>. Acesso
em 04 ago. 2012.
GOMES, A. J. e MENDES, A. J. Suporte à aprendizagem da programação com o
ambiente SICAS. In: V Congresso Ibero-Americano de Informática Educativa, Viña
del Mar, 2000.
GULARTE, Daniel M.; PONTES, Maria Gilvanise O. Requisitos de software para jogos
eletrônicos educacionais: representação e características dos games para a
educação. VII Seminário Construindo novas trilhas: Jogos eletrônicos, educação e
comunicação. Fortaleza, 2011.
HINTERHOLZ JUNIOR, Ornélio. Tepequém: uma nova Ferramenta para o
Ensino de Algoritmos nos Cursos Superiores em Computação. In Anais do XXIX
Congresso da Sociedade Brasileira de Computação – CSBC, Bento Gonçalves, RS,
2009.
JESUS, Andreia de; BRITO, Gláucia Silva. Concepção de ensino-aprendizagem de
algoritmos e programação de computadores: a prática docente. Revista Varia
Scientia v.09 , n.16, p. 149-158. 2010.
KOLIVER, C.; DORNELES, R. V.; CASA, M. E. Das (muitas) dúvidas e (poucas) certezas
do ensino de algoritmos. XII Workshop de Educação em Computação (WEI'2004).
Salvador, 2004.
MARCELINO, EDUARDO ROSALÉM., ROSATELLI, MARTA COSTA. Ensino de
Programação em um Ambiente Colaborativo. In: Anais do XXVIII Congresso da
Sociedade Brasileira de Computação – CSBC 2008. Belém do Pará, PA, 2008.
MOREIRA, Mireille Pinheiro; FAVERO, Eloi Luiz. Um Ambiente para Ensino de
Programação com Feedback Automático de Exercícios. In Anais do XXIX
Congresso da Sociedade Brasileira de Computação – CSBC, Bento Gonçalves, RS,
2009.
MOTA, Marcelle Pereira; PEREIRA, Lis W. Kanashiro; FAVERO, Eloi Luiz. Javatool: uma
ferramenta para ensino de Programação. In Anais do XXVIII CSBC, Belém, PA,
2008 .
NOBRE, I. A. M. N., MENEZES, C. S. Suporte à Cooperação em um Ambiente de
Aprendizagem para Programação (SAmbA). In: XIII Simpósio Brasileiro de
Informática na Educação – SBIE 2002. São Leopoldo, 2002.
PETRY, P. G. Um sistema para o ensino e aprendizagem de algoritmos utilizando um
companheiro de aprendizagem colaborativo. Dissertação (Mestrado) – Universidade
Federal de Santa Catarina. Florianópolis, UFSC, 2005.
41
RAJARAVIVARMA, Rathika. A Games-Based Approach for Teaching the Introductory
Programming Course. In: SIGCSE Bulletin, Vol. 37, Nr. 4, p. 98-102. 2005.
REATEGUI, Eliseo Berni; CERON, Rafael Fernando; BOFF, Elisa; VICARI, Rosa Maria.
Um agente animado para ambientes de aprendizagem colaborativos. Revista
Brasileira de Informática na Educação. Vol. 14. Núm. 3. Set./Dez. 2006.
RHODES, Glen. Desenvolvimento de games com Macromedia Flash Professional 8. São
Paulo: Cengage Learning, 2008.
ROBOCODE. Readme for robocode. Disponível em: <
http://robocode.sourceforge.net/docs/ReadMe.html>. Acesso em: 08 ago. 2012.
ROBOMIND. Introduction. Disponível em:
<http://www.robomind.net/en/introduction.htm>. Acesso em: 08 ago. 2012.
RODRIGUES, M. Experiências positivas para o ensino de algoritmos. IV Escola Regional
de Computação Bahia-Sergipe. Feira de Santana, BA, 2004.
ROSA, Núbia dos S.; RAPKIEWICZ Clevi Elena; MANHÃES, Jefferson; PEREIRA JR.,
José Carlos da R.. Jogos educacionais como ferramentas para o ensino de
programação. In: Workshop sobre Educação em Computação. Campo Grande, MS,
2006.
SANTOS, G.; DIRENE, A. I.; GUEDES, A. L. P. Autoria e Interpretação Tutorial de
Soluções Alternativas para Promover o Ensino de Programação de Computadores.
XIV Simpósio Brasileiro de Informática na Educação – SBIE 2003. Rio de Janeiro,
2003.
SANTOS, Núbia dos S. R. S. dos; RAPKIEWICZ, Clevi Elena; XEXÉO, José Antônio M.;
CORDEIRO, Rogério A.. Jogos Educacionais - ferramentas para o ensino de
programação. In: VI Seminário de Informática - RS, Tores, RS, 2007.
SILVA, M. A. B., FAVERO, E. L. Compiladores e Interpretadores Uma Abordagem
Prática. Semana Paraense de Informática, 2005.
SOUZA, Cláudio Morgado de. VisuAlg - Ferramenta de Apoio ao Ensino de
Programação. Revista TECCEN, vol. 2, n. 2, Set. 2009
TAYLOR, Matthew E.. Teaching Reinforcement Learning with Mario: An Argument
and Case Study. In: Second AAAI Symposium on Educational Advances in Artificial
Intelligence. San Francisco, 2011.
TOBAR, C. M., ROSA, J. L. G., COELHO, J. M. A., PANNAIN, R. Uma Arquitetura de
Ambiente Colaborativo para o Aprendizado de Programação. XII Simpósio
Brasileiro de Informática na Educação (SBIE 2001). Vitória, 2001.
TSUKAMOTO, Hidekuni; NAGUMO, Hideo; TAKEMURA, Yasuhiro; MATSUMOTO,
Kenichi. Comparative Analysis of 2D Games and Artwork as the Motivation to
42
Learn Programming. In: 39th ASEE/IEEE Frontiers in Education Conference. San
Antonio, TX, 2009
VAHLDICK, Adilson; MATOS, Mauro Marcelo. Relato de uma Experiência no Ensino de
Algoritmos e Programação Utilizando um Framework Lúdico. In: XIX Simpósio
Brasileiro de Informática na Educação. Fortaleza, CE, 2008.
WANG, Li-Chun; CHEN, Ming-Puu. Learning Programming Concepts through Game
Design: A PCT Perspective. In: Third IEEE International Conference on Digital Game
and Intelligent Toy Enhanced Learning. Kaohsiung, Taiwan, 2010.
WIKIPÉDIA. Klondike (Solitaire). Disponível em:
<http://en.wikipedia.org/wiki/Klondike_(solitaire)>. Acesso em: 01 ago. 2012.
__________. Scratch. Disponível em: <http://pt.wikipedia.org/wiki/Scratch>. Acesso em: 02
nov. 2012.
43
APÊNDICE
44
Apêndice A – Questionário inicial aplicado aos alunos do Curso de
Sistemas de Informação
45
Apêndice B – Game Design Document (GDD) do Jogo Baralho de
Variáveis
GAME DESIGN DOCUMENT
Versão 1.0 (Versão Simplificada)
Baralho das Variáveis
Jogos de Apoio a Aprendizagem de Programação
Marabá - PA, 15 de janeiro de 2012
46
Baralho das Variáveis
Apresentação
Baralho das Variáveis é um jogo educacional desenvolvido para auxiliar estudantes
iniciantes dos cursos de computação. O jogo tem por objetivo possibilitar a fixação de
conteúdos iniciais de algoritmos e lógica de programação, destacando os conteúdos de tipos e
operações de variáveis.
Descrição do Jogo O jogo terá um baralho de cartas que representam as variáveis que podem ser
utilizadas para criar algoritmos.
As cartas serão classificadas em três tipos (ou naipes), correspondentes aos três tipos de
variáveis:
Inteiros: são números que não possuem componentes decimais ou fracionários,
podendo ser positivos ou negativos.
Reais: são números que podem possuir componentes decimais ou fracionários,
podendo também, ser positivos ou negativos.
Caractere: são dados constituídos por uma sequência de letras, dígitos e/ou símbolos
especiais.
O jogador terá de realizar operações (adição, subtração, multiplicação, divisão,
potenciação, radiciação, resto da divisão, concatenação e subString) com as cartas para
chegar aos desafios propostos e conseguir o maior número de pontos.
Os desafios serão divididos em três níveis:
Nível 1: operações com cartas dos tipos inteiro e real e que podem ser resolvidas com
até 4 cartas e as operações de soma e subtração;
Nível 2: operações com cartas dos tipos inteiro e real e que podem ser resolvidas com
até 4 cartas e as operações do nível anterior acrescidas das operações de multiplicação
e divisão;
Nível 3: operações com cartas dos tipos inteiro e real e que podem ser resolvidas com
até 4 cartas e as operações do nível anterior acrescidas das operações de resto da
diferença (módulo), potenciação e radiciação;
Nível 4: operações com cartas além dos tipos anteriores adiciona-se as dos tipos
caractere;
Interface do Jogo
Componentes do Jogo
1. É disponibilizado um ambiente de um jogo de baralho, semelhante ao jogo
“paciência”. No jogo, haverá cinco pilhas de cartas abertas ao jogador e um espaço em branco
(simbolizando os espaços vazios) para a movimentação de cartas das outras pilhas.
47
2. Um ícone de distribuição de cartas é disponibilizado no lado direito do ambiente para
que sejam apresentadas novas cartas abertas no jogo. As novas cartas são adicionadas em um
espaço ao lado do ícone de distribuição
3. As cartas possuirão uma imagem especifica no seu centro que represente o tipo de
variável e na parte superior esquerda o dado que ela representa, (ex. letras ou sílabas para
caractere: Au, Z, Ba, Tucunaré, etc.; Números para os tipos real e inteiro: 22, 1/3, -9, etc.).
4. É disponibilizada uma paleta com botões correspondentes as operações que poderão
ser realizadas com as cartas. Os botões serão:
adição (+);
subtração (-);
multiplicação (*);
divisão (/);
potenciação (POT);
radiciação (RAD);
resto da divisão (MOD);
concatenação (CONC);
subString (subString);
5. É apresentado como desafios palavras ou números na tela central do jogo e na parte
superior da tela para que o jogador realize as operações com as cartas e a pontuação do jogo
na parte superior direita.
Movimentação (controle das cartas pelo jogador) e execução
É disponibilizada uma área especifica para a resolução das operações em que o
jogador movimentará as cartas com o mouse para espaços de cartas em branco e movimentará
os botões de operações disponíveis na paleta para os espaços entre as cartas. Possuirá também
um botão que acionará a execução das operações com as cartas selecionadas pelo usuário e
um espaço específico para exibir o resultado da operação realizada com as cartas
selecionadas.
Interação dos Elementos do Jogo
1. O jogador solicitou uma fileira de cartas:
É adicionado 5 cartas na mesa;
O jogador poderá solicitar outras 7 cartas totalizando 12 cartas;
2. O jogador adicionou as cartas no espaço de resolução:
Na resolução dos desafios só poderão ser utilizadas cartas do mesmo tipo, com
exceção em desafios que o resultado seja real, pois poderá ser utilizadas cartas
do tipo inteiro;
Com cartas do tipo caractere só poderão ser realizadas operações de adição (+)
e concatenação (CONC) e subString(subString);
3. O jogador solicitou o calculo da operação:
É realizado o calculo da operação;
O jogador só poderá resolver outro desafio se inserir a sequência correta de
cartas do desafio que está realizando;
O jogador só poderá passar para o próximo nível após resolver dois desafios;
O jogador vencerá após realizar 2 desafios de cada nível;
48
A cada desafio realizado de forma correta o jogador ganhará 100 moedas;
A cada desafio realizado de forma incorreta o jogador perderá 20 moedas.
Roteiro
Podemos descrever a sequência de telas e passos da seguinte forma:
1. Tela de inserção do nome
2. Tela de Menu Principal
a. Menu e Opções:
i. Iniciar Jogo (Tela do Jogo em si)
ii. Instruções (Tela de Instruções)
iii. Placar (Tela de Recordes)
3. Tela de Instruções
4. Tela de Placar
5. Tela do Jogo em si
Tela de Finalização do jogo
49
Apêndice C – Questionário avaliativo aplicado aos alunos do
Curso de Sistemas de Informação nos testes
50
Apêndice D – Questionário de avaliação do Jogo
Pesquisa de avaliação do jogo
1. O que você achou das instruções do jogo?
( ) Muito bom ( ) Bom ( ) Razoável ( ) Ruim
2. Facilidade de navegação?
( ) Muito bom ( ) Bom ( ) Razoável ( ) Ruim
3. Qualidade Gráfica e de Design do jogo?
( ) Muito bom ( ) Bom ( ) Razoável ( ) Ruim
4. Qualidade das animações e sons?
( ) Muito bom ( ) Bom ( ) Razoável ( ) Ruim
5. O que você achou do conteúdo do jogo?
( ) Muito bom ( ) Bom ( ) Razoável ( ) Ruim
6. Que sugestões você deve faz para melhorar o jogo
___________________________________________________________________________
___________________________________________________________________________
______________________________
7. Dê sua nota para o jogo: (0 a 10):
51
ANEXO
52
Anexo A – Fonte dos Áudios utilizados no jogo Baralho das
Variáveis
Nome do Som Fonte
Shuffling Cards Sound Effect 3 http://www.soundjay.com/misc/sounds/shuffling-cards-3.mp3
Coins in Hand Sound Effect 1 http://www.soundjay.com/misc/sounds/coins-in-hand-1.mp3