1. UTILIZANDO PROGRAMAÇÃO PARALELA NA
CRIAÇÃO DE UM JOGO PARA AUXÍLIO NO
ENSINO DE ALGORITMOS COMMAND++
Everton Seiei Arakaki
Lucas Grigolon Varela
Rodrigo Curvêllo
2. Este jogo tem o objetivo de facilitar o ensino da disciplina de
algoritmos, trazendo ao jogador a possibilidade de entendimento e
a compreensão de como funcionam as funções. Conceitos de
thread, concorrência e programação paralela aprendidos em
sala de aula foram aplicados na implementação do jogo,
que foi desenvolvido utilizando a linguagem de programação
Python.
O jogo
3. Teste para aprovação na universidade 42 do Vale
do Silício (foco no ensino de programação)
4. A disciplina de algoritmos é considerada a base para o ensino de programação
nos cursos de Ciência da Computação. Esta disciplina aborda os princípios da lógica
de programação, com o objetivo de desenvolver a capacidade de análise e resolução
de problemas dos alunos através da descrição dos mesmos na forma de algoritmos.
Além disso, ela faz parte do plano curricular de outros cursos, como os de engenharia,
com a finalidade de introduzir os conceitos de programação. Essas disciplinas
costumam ter altos índices de evasão e reprovação, sendo um dos gargalos existentes
nos cursos de graduação, particularmente de computação, dificultando ou até
mesmo impedindo a continuidade dos alunos no curso (RAPKIEWICZ et al., 2006).
Porque algoritmos?
5. É hoje consensual que um aluno que presta atenção retém aproximadamente
10% do que lê 20% do que ouve 30% do que vê, 50% do que vê e ouve ao mesmo
tempo, 80% do que diz e 90% do que diz fazendo qualquer coisa a propósito da qual
reflete e na qual se implica pessoalmente. (ROCHA, 1988 p. 176).
Segundo Tarouco et al (2004) os jogos podem ser ferramentas eficientes, pois
eles divertem enquanto motivam, facilitam o aprendizado e aumentam a capacidade de
retenção do que é ensinado, exercitando as funções mentais e intelectuais do jogador.
De acordo com Tarouco (2005) algumas características que fazem com que os jogos
sejam atrativos são: os jogos possuem regras (fornecem uma estrutura),
têm metas (produzem motivação), são interativos (permitem agir), têm resultados e
realimentação (favorecem a aprendizagem) e são divertidos (tornam o processo
agradável).
Por conta destes fatos, a escolha de implementar um jogo para o auxílio do ensino da
matéria de algoritmos é relevante.
Porque utilizar ferramentas visuais para
facilitar o ensino?
6. Desde que os sistemas computacionais
evoluíram, eles começaram a prover
mecanismos que nos permitem a executar
partes específicas do programa em paralelo
com outras, melhorando a resposta e a
performance do programa como um todo. A
programação paralela está em diversos
contextos, desde pequenos smartphones
a grandes e potentes servidores em centros
de pesquisas. A programação paralela
permite um melhor gerenciamento de
recursos, levando menos tempo para
executar uma tarefa (PALACH, 2014).
Programação Paralela
7. A linguagem de programação Python traz para o usuário módulos
prontos, similar as bibliotecas em Java para implementações usando
threads. A versão do Python escolhida para ser abordada neste jogo é a
3.6. A partir da versão 3, a linguagem de programação Python oferece
ao usuário o módulo threading. O módulo threading faz com que o
desenvolvedor tenha acesso a recursos de programação paralela de
maneira abstrata, utilizando código de alto nível em sua implementação.
Implementando threads em python
8. Com o desenvolvimento deste projeto o grupo veio a compreender melhor a
aplicação real de threads em softwares de uso real. O jogo implementado
não está completo para poder ser utilizado no auxílio da matéria de
algoritmos, faltando atualizar o gerenciamento de comandos, bem como
atualizar o limite de comandos. Também para próximos projetos é
interessante o desenvolvimento de novos mapas, do sistema de cores para
estruturas de seleção, adicionar um contador para limitar o tempo de jogo
máximo com um sistema de pontuação. Em uma futura implementação é
recomendada a reestruturação do código usando Programação Orientada
a Objetos para melhor utilização dos recursos da linguagem Python.
V2 – Em desenvolvimento.
Conclusão – V1
9. Referências
PALACH, J. Parallel Programming with Python. Develop efficient parallel systems using the robust
Python environment. Packt Publishing, 2014.
PEREIRA JR, J. C. R., RAPKIEWICZ, C. E.. O Processo de Ensino e Aprendizagem de Algoritmos e
Programação: Uma Visão Crítica da Literatura. WEIMIG – Workshop de Educação em Informática
de Minas Gerais. Belo Horizonte. 2004.
RAPKIEWICZ, C. E. et al. ESTRATÉGIAS PEDAGÓGICAS NO ENSINO DE ALGORITMOS E
PROGRAMAÇÃO ASSOCIADAS AO USO DE JOGOS EDUCACIONAIS. Revista RENOTE – Novas
Tecnologias na Educação UFRGS, V.4 No 2, Dezembro, 2006.
ROCHA, M. N. Recursos Visuais e Audiovisuais no Ensino – Construção e Exploração de
Materiais Pedagógicos. 1998. Disponível em: https://web.archive.org/web/20100102124526/www.cf
franciscoholanda.rcts.pt/accoes/2005/accao_7.htm. Acesso: 30 de maio de 2017
TAROUCO, L. M. R., ROLAND, L. C., FABRE , M. C. J. M., KONRATH, M. L. P. Jogos educacionais ,
RENOTE Novas Tecnologias na Educação , v. 2, n. 1. 2004.
TAROUCO, L. Jogos educativos via WWW. Disponível em:
http://penta3.ufrgs.br/animacoes/JogosEducacionais. 2005. Acesso: 30 de maio de 2017.
10. Referências
PALACH, J. Parallel Programming with Python. Develop efficient parallel systems using the robust
Python environment. Packt Publishing, 2014.
PEREIRA JR, J. C. R., RAPKIEWICZ, C. E.. O Processo de Ensino e Aprendizagem de Algoritmos e
Programação: Uma Visão Crítica da Literatura. WEIMIG – Workshop de Educação em Informática
de Minas Gerais. Belo Horizonte. 2004.
RAPKIEWICZ, C. E. et al. ESTRATÉGIAS PEDAGÓGICAS NO ENSINO DE ALGORITMOS E
PROGRAMAÇÃO ASSOCIADAS AO USO DE JOGOS EDUCACIONAIS. Revista RENOTE – Novas
Tecnologias na Educação UFRGS, V.4 No 2, Dezembro, 2006.
ROCHA, M. N. Recursos Visuais e Audiovisuais no Ensino – Construção e Exploração de
Materiais Pedagógicos. 1998. Disponível em: https://web.archive.org/web/20100102124526/www.cf
franciscoholanda.rcts.pt/accoes/2005/accao_7.htm. Acesso: 30 de maio de 2017
TAROUCO, L. M. R., ROLAND, L. C., FABRE , M. C. J. M., KONRATH, M. L. P. Jogos educacionais ,
RENOTE Novas Tecnologias na Educação , v. 2, n. 1. 2004.
TAROUCO, L. Jogos educativos via WWW. Disponível em:
http://penta3.ufrgs.br/animacoes/JogosEducacionais. 2005. Acesso: 30 de maio de 2017.