Escolar Documentos
Profissional Documentos
Cultura Documentos
Jogos e Python
Ayla Dbora Dantas S. Rebouas1, Diego Lopes Marques1,
Lus Feliphe Silva Costa1, Max Andr de Azevedo Silva3
1
Departamento de Cincias Exatas Universidade Federal da Paraba (UFPB)
Campus IV - Rua da Mangueira, s/n, - Companhia de Tecidos Rio Tinto
CEP 58297-000 - Rio Tinto - PB - Brasil
{ayla,diego.lopes,luis.feliphe,max.azevedo}@dce.ufpb.br
1. Introduo
O uso de softwares educativos, tais como jogos, tem sido cada vez mais explorado na
rea da Informtica na Educao. Isso ocorre porque atravs de jogos possvel criar
ambientes de ensino e aprendizagem individualizados (adaptados s caractersticas de
cada aluno), somado s vantagens que os jogos trazem consigo: entusiasmo,
concentrao, motivao, entre outros [Passerino 1998].
Este ano a Folha de So Paulo apresentou uma reportagem apontando que embora
existam muitos jogos educativos disponveis na Internet, a oferta de boas ferramentas
no grande [Rewald 2010]. Tal reportagem discutia uma experincia em que alunos de
um colgio brasileiro desenvolveram jogos e relatava que o interesse era to grande por
parte dos alunos que vrios passavam o intervalo desenvolvendo os jogos.
Aliando a necessidade da sociedade de jogos educativos com alguns indicadores de
que ensinar jovens a desenvolver jogos pode aumentar o seu interesse por computao,
como tambm relatado por Ceder e Yergler [Ceder e Yergler 2003], este trabalho se
destina a pesquisar formas de introduzir noes de programao bsica no ensino mdio
utilizando jogos como fator de motivao. A ideia proposta tanto utilizar jogos para
atrair os alunos de ensino mdio para os cursos introdutrios de programao,
mostrando de que podem ser capazes ao final, quanto introduzir a estes alunos alguns
jogos educativos desenvolvidos por alunos de graduao autores deste trabalho e que
podem lhes ajudar a melhor absorver alguns contedos importantes do ensino mdio.
A programao em si uma disciplina que nem sempre bem vista por vrios
alunos que ingressam em cursos universitrios de informtica e alguns acabam por
desistir. Muitas vezes isso ocorre porque vrios alunos ingressam no curso sem uma real
noo do que um curso nessa rea. Introduzir aos alunos de ensino mdio cursos dessa
natureza uma forma tanto de motiv-los a procurarem cursos de uma rea em
expanso e que demanda muitos profissionais, quanto de deixar mais claro o que se v
em um curso superior assim. Alm disso, considerando que este trabalho ser
desenvolvido por alunos de um curso de Licenciatura em Computao, v-se tambm
nele uma forma de dar a chance aos alunos deste curso de pesquisarem e de exercitarem
o ensino de programao para alunos do ensino mdio, fazendo com que eles ponham
em prtica os conceitos tanto de disciplinas tcnicas de seu curso quanto daquelas de
carter didtico-pedaggico.
Durante o XXIV Congresso da SBC (2004) em Salvador, o Grupo de Licenciatura
em Computao (GT-3) aprovou, em assemblia, a proposta de incluir contedos da
rea de computao e informtica no Ensino Mdio [Pereira Junior et al. 2005], visando
desde cedo desenvolver competncias nessa rea e tambm fomentar o interesse pela
rea aumentando o nmero de profissionais no pas. Com essa motivao, foi realizado
o estudo relatado por Pereira Junior e outros (2005), que buscava investigar o ensino de
programao no ensino mdio, que tambm um dos objetivos do presente trabalho.
Um dos pontos levantados nesse trabalho que o desenvolvimento de algoritmos e
programas est entre as competncias mais difceis de serem desenvolvidas, sendo esta
uma forte razo para incluir tal temtica no ensino mdio. Dessa forma os futuros
alunos dos cursos de computao teriam menos dificuldade nessa rea e aqueles que se
dirigissem para outros ramos profissionais teriam desenvolvido competncias de
resoluo e formalizao de problemas, que seriam teis em suas respectivas reas do
conhecimento. Na experincia relatada nesse trabalho, utilizou-se Pascal como
linguagem de programao e foram oferecidas oficinas para os alunos. Apesar da
grande evaso que foi observada, a oficina permitiu comprovar que a ideia do GT-3
factvel e tambm contribuiu para ampliar o interesse pela rea da computao, alm de
contribuir para o aprendizado de outros contedos conforme relatado pelos prprios
alunos.
O trabalho aqui proposto inspira-se na ideia apresentada nesse trabalho. Porm,
considerando alguns trabalhos relatando boas experincias com o uso de Python como
primeira linguagem [Grandell et al. 2006] [Miller 2004] e as facilidades que ela oferece
para o desenvolvimento rpido de jogos, pretende-se, nesse projeto, explorar essa
linguagem. Embora Pascal tenha sido projetada para educao, tm-se percebido que
ela no tem seguido a evoluo das outras linguagens de programao [deRaadt et al.
2002 apud Grandell et al. 2006] e que Python tem mostrado facilitar o primeiro contato
com a programao por diversos fatores (ex: sintaxe simples e flexvel, feedback
imediato, mdulos fceis de usar, o fato de requerer indentao apropriada).
De maneira geral, o objetivo principal deste trabalho investigar e propor
tcnicas para a introduo de noes de programao para alunos do ensino mdio,
sendo uma delas o uso de jogos, de forma a motivar mais alunos para procurarem cursos
de informtica e tambm como forma de melhorar a forma como se introduz
programao inclusive no ensino superior de maneira a tentar evitar o problema da
evaso e dos altos ndices de reprovao em disciplinas desta natureza.
Este artigo traz como contribuies principais os primeiros jogos produzidos
para a motivao dos alunos e para contribuir em sua formao no ensino mdio e
tambm as principais lies aprendidas na investigao sobre tcnicas a utilizar em um
curso de introduo a programao para alunos do nvel mdio baseadas em estudos da
literatura e pesquisas de opinio com alunos de cursos de informtica.
Este artigo est organizado da seguinte forma. A Seo 2 descreve a motivao
para se investigar o uso de jogos no ensino de programao para o ensino mdio. A
Seo 3 apresenta a metodologia utilizada no projeto de pesquisa em que se insere este
trabalho. A Seo 4 d uma viso geral dos jogos educacionais que foram
desenvolvidos por alunos de licenciatura em computao e que sero apresentados aos
alunos para motivar-lhes a participar do curso de programao e para que possam
utilizar em seus estudos. A Seo 5 apresenta a anlise das prticas a explorar em um
curso inicial de programao e alguns dados que motivaram a proposta de algumas
prticas. Por fim, a Seo 6 apresenta as consideraes finais deste trabalho e os
trabalhos futuros que vm sendo planejados.
2. Motivao
H muito tempo se discute sobre quais assuntos de computao devem ser abordados no
ensino fundamental, mdio e profissional. Escolas de outros pases tm includo em
seus currculos noes de programao. Esta deciso foi motivada pela crena de que a
educao, tanto no nvel fundamental como no mdio, deve prover aos estudantes os
conhecimentos necessrios para o exerccio das suas atividades dirias. Portanto,
considerando-se o papel crescente da tecnologia e das aplicaes da computao na
sociedade moderna, a computao pode ser vista como uma parte essencial desse
aprendizado sobre o que cerca as crianas e jovens [Grandell et al. 2006].
Prticas semelhantes tm sido seguidas por algumas escolas brasileiras motivadas
pela Olimpada Brasileira de Informtica (OBI), em que contedos como lgica e
programao so tambm exigidos. Tais escolas, como forma de preparao para a
olimpada, oferecem, s vezes, cursos introdutrios de programao em horrios extra-
classe. Mesmo assim, o que se tem observado, segundo relatos, que ainda so poucos
os estudantes que acabam se sentindo atrados pela programao e por cursos extra-
classe na rea. Considerando isso e, tomando por base alguns artigos na rea de ensino
de programao que apresentam experincias contrrias [Ceder e Yergler 2003]
[Grandell et al. 2006], observou-se que introduzir programao atravs de jogos e
utilizando-se a linguagem de programao Python pode ser uma abordagem interessante
para atrair mais os alunos. O que se v que jogos de computador ou celular so
softwares que realmente fazem parte do cotidiano de crianas e jovens. Portanto, ter a
chance de desenvolver um jogo, que pode ser usado por seus amigos, pode ser muito
atrativo para estes jovens. Um exemplo de relato nessa direo apresentado por Ceder
e Yergler [Ceder e Yergler 2003], em um artigo em que relatam a experincia obtida na
Canterbury School, nos Estados Unidos. Dentre as concluses principais deste artigo
esto: (i) a constatao de que Python uma boa linguagem para introduzir
programao para iniciantes (algo tambm observado em outros trabalhos); (ii) a
observao de que escrever jogos pode ser uma maneira mais efetiva de ensinar
programao mais avanada; e tambm (iii) a observao de que Python combinada
com a biblioteca PyGame oferece uma combinao efetiva para o uso de jogos no
ensino de programao. Outro fator que fortalece os argumentos expostos nesse artigo
a experincia que se tem observado em algumas universidades, como a UFCG, onde
alunos de computao foram capazes de desenvolver jogos de interface grfica bem
elaborada j no primeiro perodo. Exemplos de jogos desta natureza esto divulgados na
Internet.
Considerando o que foi exposto, achou-se interessante fazer uma investigao
junto a alunos do curso de Licenciatura em Cincia da Computao da UFPB, um curso
que visa formar professores capazes de ensinar computao no ensino fundamental,
mdio e profissional, sobre formas de introduzir noes de programao de forma
motivante no ensino mdio em escolas pblicas no Brasil. Para isso, os prprios alunos,
de perodos iniciais do curso, passaram pela experincia de aprender Python mesmo
sem terem visto essa linguagem em disciplinas do curso e de desenvolver jogos
investigando nesse processo formas de tornar outros jovens capazes de fazerem o
mesmo. Estes tiveram ainda o desafio adicional de explorarem nos jogos feitos alguns
conceitos das disciplinas de carter didtico-pedaggico que tm em seu curso, de
forma que tais jogos pudessem ter um fim educativo para os jovens do ensino mdio.
Sendo assim, este trabalho teve duas motivaes fundamentais: a busca de
formas de melhor introduzir programao atraindo mais os estudantes e tambm ajudar
na formao dos licenciados em computao, fazendo-os tanto combinar os contedos
vistos em disciplinas tcnicas quanto as de educao, quanto incentivando-lhes a
investigar melhores formas de ensino e a exercitarem essa prtica no seu curso.
3. Metodologia
A metodologia utilizada para este trabalho segue os seguintes passos:
Estudo da linguagem Python por parte dos alunos de licenciatura participantes
do trabalho e das bibliotecas de jogos da linguagem. Como resultados concretos
do estudo, foram desenvolvidas verses iniciais de trs jogos educativos, e
foram levantadas ideias sobre como introduzir programao com base na
experincia de aprendizado destes alunos, em pesquisas de opinio com outros
alunos e na literatura.
Estudos e pesquisas de natureza bibliogrfica sobre o ensino de programao
para iniciantes. Como resultados deste estudo foram levantadas abordagens a
utilizar para motivar os alunos a participarem do curso e tambm tcnicas para
introduzir os contedos de programao considerando tanto o que a literatura
apresenta quanto a experincia vivida pelos estudantes participantes do trabalho
e as que lhes foram relatadas por seus colegas.
Planejamento e preparao do curso de programao para iniciantes com foco
em jogos utilizando as ideias extradas das experincias dos alunos ao
desenvolverem seus jogos e tambm de sua prpria experincia em introduo
programao.
Aplicao do curso a alunos do ensino mdio de escolas do ensino pblico da
regio do litoral norte da Paraba, uma atividade que est para ser iniciada.
Avaliao dos resultados obtidos com o curso, coletando pontos positivos e
negativos deste e a impresso dos alunos sobre computao antes e depois do
curso.
4. Jogos Desenvolvidos
A primeira fase deste trabalho consistiu no estudo da linguagem Python e na produo
de jogos educativos como uma forma concreta de demonstrar que os alunos de
Licenciatura em Cincia da Computao, responsveis pelos cursos para o ensino
mdio, tinham absorvido os conhecimentos que necessitariam transmitir. Props-se que
esses alunos que desenvolveriam os jogos que serviriam de motivao deveriam pensar
em contedos do ensino mdio no qual os estudantes normalmente sentem dificuldades
e em formas de exercitar aqueles contedos via jogos onde os jovens os pudessem
absorver brincando. Neste sentido, foram desenvolvidas verses iniciais de trs jogos: o
PyQuimica, o PyLavra e o PyGonometria. O tempo total para que os alunos
aprendessem a linguagem e desenvolvessem a primeira verso dos jogos foi de trs
meses, o que foi mais um fator motivador para a explorao do uso da linguagem
Python no curso a ser oferecido nas escolas.
4.1. O PyQuimica
Para vivenciar a experincia de ensinar programao levando aos alunos do ensino
mdio como fator motivante um exemplo de jogo que poderiam implementar ou que
poderiam pelo menos utilizar para facilitar seu aprendizado em alguma disciplina do
ensino mdio, foi desenvolvido o jogo PyQuimica. O principal objetivo desse jogo
estimular o aprendizado das nomenclaturas qumicas e tambm familiarizar os alunos
com a tabela peridica. Para isso, o jogo apresenta para os alunos vrios desafios.
Os desafios consistem em fazer com que dada a nomenclatura de um composto
qumico, identificar seus componentes e sua frmula. Quando o desafio proposto ao
jogador, este deve arrastar os elementos da tabela peridica at o tubo de ensaio na
quantidade esperada para cada elemento e mistur-los. Para familiarizar o jogador
tambm com os elementos da tabela, quando este passa o mouse em cima de qualquer
elemento, o nome do mesmo pode ser visualizado, como mostra a Figura 1.
Figure 1. PyQuimica
O jogador tem a opo de obter algumas dicas sobre o composto pedido e assim
tanto ter mais chances de acertar quanto aprender mais sobre o composto. Para no
desmotivar o jogador, possvel passar para o desafio seguinte e ao fim do jogo pode-se
ver um ranking dos melhores jogadores.
4.2. PyLavra
Observando a dificuldade de alguns alunos com a ortografia de certas palavras no
portugus pensou-se em desenvolver um jogo que serviria tanto para ajudar na
alfabetizao de crianas que esto comeando a aprender a ler, quanto poderia auxiliar
alunos com srias dificuldades em ortografia. Esse jogo se chama PyLavra e este foi
projetado para apresentar vrios nveis. No nvel bsico, destinado a crianas em
processo de alfabetizao, o jogo apresenta para o jogador uma figura de um objeto e
considerando um conjunto de letras embaralhadas, este deve arrastar essas letras para
sua posio correta de forma que o nome do objeto possa ser visualizado. Para o nvel
mais bsico, que pode inclusive ser aplicado a crianas que ainda no sabem ler, o local
onde devem ser colocadas as letras ordenadas apresenta em cores claras e pouco
legveis as letras que ali esto presentes e caberia criana apenas associar letras
semelhantes quela posio, considerando as letras embaralhadas ao longo da tela e que
devem ser arrastadas at a posio correta, fazendo com que intuitivamente as crianas
j estejam montando palavras. Um exemplo da tela do jogo apresentado na Figura 2.
Em nveis menos bsicos do jogo, no ser possvel ver as letras mais claras e
em outros nveis pode-se ter mais letras a arrastar que o tamanho das palavras e as
prprias palavras utilizadas vo tendo um maior ndice de dificuldade em sua grafia.
4.2. PyGonometria
O jogo educacional PyGonometria visa ajudar os estudantes a praticar algumas regras
da trigonometria. A ideia do jogo que os jogadores completem ngulos em figuras
compostas por vrias figuras geomtricas, utilizando regras da trigonometria, mas
praticando tais regras como se estivessem jogando um quebra cabea. A Figura 3 ilustra
uma das telas do jogo com um dos ngulos a completar. Ao longo do jogo o jogador
pode pedir dicas e alguma regra da trigonometria que possa lhe ajudar naquela soluo
lhe pode ser mostrada.
Figure 3. PyGonometria Jogo para treinar algumas regras da trigonometria
References
Ceder, V.; Yergler, N. (2003) Teaching Programming with Python and PyGame.
Apresentado na PyCon 2003.
Grandell, L.; Peltomaki, M.; Back, R. B.; Salakoski, T. (2006) Why Complicate
Things? Introducing Programming in High School Using Python. Anais do 8th
Australasian Computing Education Conference (ACE 2006). Hobart, Tasmania,
Australia.
Miller, J. A. (2004) Promoting Computer Literacy through Programming Python.
Tese de Doutorado - Universidade de Michigan, EUA. Disponvel em:
http://www.python.org/files/miller-dissertation.pdf
Passerino, L. M. (1998) Avaliao de Jogos Educativos Computadorizados. Taller
Internacional de Software Educativo 98 (TISE98).
Pereira Jnior, J.; Rapkiewicz, C.E.; Delgado, C.; Xexeo, J.A.M. (2005) Ensino de
Algoritmos e Programao: Uma Experincia no Nvel Mdio. XIII Workshop de
Educao em Computao (WEI2005). So Leopoldo, RS, Brasil.
Rapkiewicz, Clevi E. et al. Estratgicas pedaggicas no ensino de algoritmos e
programao associadas ao uso de jogos educacionais. Novas Tecnologias na
Educao. V. 4. No. 2. Rio Grande do Sul, Dezembro, 2006. Disponvel em:
<http://www.cinted.ufrgs.br/renote/dez2006/artigosrenote/25157.pdf > Acesso em:
03 out. 2010.
Rewald, F. (2010) Escolas e estudantes desenvolvem games educativos. Folha de So
Paulo, 11 jan. 2010. Disponvel em:
http://www1.folha.uol.com.br/folha/informatica/ult124u677394.shtml. Acesso em:
27 jan. 2010.
Tarouco, L. M. R. et al. O aluno como co-construtor e desenvolvedor de jogos
educacionais. Novas Tecnologias na Educao. V. 3. No. 2. Rio Grande do Sul,
Novembro, 2005. Disponvel em: <
http://www.cinted.ufrgs.br/renote/nov2005/artigosrenote/a54_aluno_coconstrutor.pdf
> Acesso em: 03 out. 2010.