Escolar Documentos
Profissional Documentos
Cultura Documentos
net/publication/320992943
CITATIONS READS
2 225
2 authors, including:
Andre L M Santana
Insper Institute of Education and Research
23 PUBLICATIONS 98 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Andre L M Santana on 17 September 2019.
1. Introdução
Pensamento Computacional se trata do processo de abstrair, criar diferentes níveis de
abstração e escolher os níveis certos para se trabalhar, identificar e ver as relações entre
cada um dos níveis. É uma forma de formular e resolver um problema gerando um
algoritmo que qualquer humano ou máquina consiga reproduzir efetivamente e não é
necessariamente uma linguagem de programação. É uma forma de se resolver
problemas e pode ser aplicada nos mais diversos campos do conhecimento se tornando
uma habilidade praticamente fundamental para as pessoas. Além de já existir até antes
dos computadores modernos. (WING, 2006).
Segundo Santana (2015), após uma análise de várias definições, o Pensamento
Computacional pode ser tratado como “o desenvolvimento de habilidades que
favorecem a resolução de problemas, em que através da organização do modo de
pensar, é possível expandir a capacidade mental, permitindo resolver os mais diversos
níveis de desafio”.
DOI: 10.5753/cbie.wcbie.2017.92 92
VI Congresso Brasileiro de Informática na Educação (CBIE 2017)
Anais dos Workshops do VI Congresso Brasileiro de Informática na Educação (WCBIE 2017)
93
VI Congresso Brasileiro de Informática na Educação (CBIE 2017)
Anais dos Workshops do VI Congresso Brasileiro de Informática na Educação (WCBIE 2017)
objetivo claro e nem uma história específica, o jogo deixa a pessoa livre para fazer o
que bem entender. O jogo vendeu mais de 22 milhões de cópias para os sistemas
operacionais Windows e Macintosh, segundo a própria desenvolvedora (MINECRAFT,
2016).
Este trabalho pretende explorar o pensamento computacional para estudantes do
ensino médio, usando uma abordagem construcionista de ensino, por meio de uma
MODificação (MOD) do jogo Minecraft que permita que os estudantes aprendam
enquanto se divertem. A escolha do jogo se dá pela popularidade com estudantes de
faixa etária mais nova e por ter aderência de várias iniciativas privadas ao redor do
mundo. O uso do Scratch permite aproximar o usuário a programação diminuindo a
curva de aprendizagem inicial.
2. Projeto do MOD
Diferente de um Plugin, aonde o programador segue uma interface de programação
sugerida pelo dono do aplicativo, o desenvolvimento de MODs segue uma linha
alternativa. Um MOD se trata de uma modificação do jogo base aonde o programador
sobrescreve e altera o código fonte da aplicação original dando mais poder ao
desenvolvedor uma vez que ele pode alterar as classes da aplicação original, assim o
limite para o desenvolvimento não fica atrelado a uma interface para programação de
Plugins, ele passa a ser as classes que se pode alterar e o potencial da linguagem de
programação.
Para a criação de um MOD para o jogo Minecraft é necessário se ter acesso as
classes do código fonte do jogo. Isso é feito pela comunidade através de um processo de
descompilação e desofuscamento do código Java do jogo. Uma ferramenta desenvolvida
por terceiros que faz este processo é o Mod Coder Pack (MCP) que descompila o
executável Java do jogo transformando-os em classes e deixa o código legível para um
programador humano.
Somente usando o Mod Coder Pack já é possível criar um MOD para o jogo,
uma vez que você já tem acesso as classes do jogo base basta modificar e recompilar
estas classes que irá funcionar normalmente. Porém, para conseguir atingir uma maior
compatibilidade entre MODs e ter acesso a alguns métodos e classes que facilitam o
desenvolvimento o ideal para o jogo Minecraft é utilizar uma API que garanta esta
compatibilidade e facilidade.
O Minecraft Forge é uma API desenvolvida por terceiros que foi desenvolvida
em cima do Mod Coder Pack que suporta tanto o arquivo cliente do jogo quanto o
arquivo servidor do jogo. Está ferramenta possui uma série de facilidades além de já
realizar a tarefa de descompilação já que possui embutido nela o Mod Coder Pack. O
Minecraft Forge é uma API bastante utilizada, referenciada e documentada pela
comunidade desenvolvedores de MOD e em cima desta API é que se pretende
desenvolver o MOD proposto nesta pesquisa (ver Figura 2).
94
VI Congresso Brasileiro de Informática na Educação (CBIE 2017)
Anais dos Workshops do VI Congresso Brasileiro de Informática na Educação (WCBIE 2017)
RF1. O jogador pode abrir o painel de programação do robô apertando com o botão
direito na base.
RF2. O Robô possui uma categoria de comandos de movimento da cor verde escuro
e permitem a ele andar para frente, para trás, para cima, para baixo e girar para
os lados.
RF3. O Robô possui uma categoria de comandos de ação da cor roxa e o permitem
apanhar e colocar objetos no mundo do jogo.
RF4. O Robô possui uma categoria de comandos da cor verde, eles servirão para
criar laços de repetição.
95
VI Congresso Brasileiro de Informática na Educação (CBIE 2017)
Anais dos Workshops do VI Congresso Brasileiro de Informática na Educação (WCBIE 2017)
RNF2. Se o robô receber a instrução de andar e existir um bloco na sua frente, ele
irá ignorar está instrução e seguir para a próxima
RNF3. Sempre que o jogador mudar as instruções do robô, ele irá parar as instruções
que estava fazendo no momento, voltar para a base e reiniciar com as instruções
novas.
RNF4. Quando for dado o comando para o robô colocar um bloco no mundo do
jogo, ele irá colocar os blocos na ordem que aparecem em seu inventário, se for
possível de serem colocados, se não for ele deverá colocar o próximo bloco em
seu inventário.
RNF5. Caso o robô tente coletar algum bloco que não existe na sua frente, ou
colocar algum bloco possuindo o inventário vazio, ele deverá ignorar estas
instruções e seguir para a próxima.
RNF6. O robô deve emitir um som para cada instrução que for executada.
96
VI Congresso Brasileiro de Informática na Educação (CBIE 2017)
Anais dos Workshops do VI Congresso Brasileiro de Informática na Educação (WCBIE 2017)
97
VI Congresso Brasileiro de Informática na Educação (CBIE 2017)
Anais dos Workshops do VI Congresso Brasileiro de Informática na Educação (WCBIE 2017)
classes para que elas funcionassem como o esperado, uma vez que elas podiam gerar
conflitos com as ações de renderização do próprio Minecraft.
O resultado da implementação da interface gráfica pode ser visto na Figura 5
98
VI Congresso Brasileiro de Informática na Educação (CBIE 2017)
Anais dos Workshops do VI Congresso Brasileiro de Informática na Educação (WCBIE 2017)
Outros testes foram efetuados para verificar os casos em que o robô tentasse andar para
cima de algum bloco, ou tentasse colher um bloco que não existe, ou tentasse colocar
algum bloco no lugar de outro bloco, porém em todos estes casos o robô simplesmente
ignorou este tipo de instrução e executou a próxima, evitando que ele danificasse
estruturas ou criasse estados inconsistentes no jogo.
Durante a etapa de testes foi feita as correções nos casos em que ocorreram falhas, até
todos os testes passassem sem nenhum problema.
3 Resultados
Após a conclusão da implementação do MOD do robô e os testes de funcionalidade
pode-se citar como produtos gerados por esta pesquisa, no que diz respeito a
implementação do MOD: (i) o detalhamento de como criar um MOD para Minecraft
utilizando o Forge; (ii) uma interface de programação baseada em blocos e que utiliza a
premissa do Scratch e (iii) a automatização de tarefas extremamente mecânicas dentro
do jogo através de um robô.
Durante o processo de criação do MOD descobriu-se várias funcionalidades
dentro do Minecraft e do Forge que auxiliaram na implementação, também foram
encontradas uma série de barreiras que dificultaram a implementação de algumas
funcionalidades como: desvios condicionais. A principal dificuldade para implementar
esta instrução consiste na renderização de objetos específicos do mundo para que sejam
utilizados dentro das instruções lógicas de comparação que o bloco necessitaria. Outros
tipos de sensores apresentam a mesma dificuldade.
Com relação a implementação descobriu-se que o Minecraft só oferece suporte
para interfaces gráficas básicas. Qualquer interface um pouco mais avançada, como a
interface de blocos de instrução proposta neste trabalho acaba exigindo um nível de
conhecimento que permeia a construção de instruções de mais baixo nível de abstração
computacional, neste caso, pode-se citar que as instruções em OpenGL costumam a ser
muito primitivas e fogem do paradigma orientado a objetos.
Outro aspecto interessante, que não foi dimensionado como escopo deste
trabalho, consiste na criação de, mais de um robô dentro do jogo, com isso é possível
mandar os robôs executarem tarefas complexas dentro do jogo, como por exemplo na
Figura 7 pode-se ver um conjunto de Robôs construindo uma ferrovia.
99
VI Congresso Brasileiro de Informática na Educação (CBIE 2017)
Anais dos Workshops do VI Congresso Brasileiro de Informática na Educação (WCBIE 2017)
4 Conclusões
No desenvolvimento deste projeto percebeu-se que o cenário do ensino atual precisa ter
novos métodos que se adequem a realidade atual. O Pensamento Computacional é um
tópico tão importante quanto as demais áreas que constituem o currículo do ensino
fundamental, uma vez que se trata de habilidades úteis para resolução de problemas e no
desenvolvimento da criatividade. A criação de ferramentas baseadas em jogos que
auxiliem no estimulo ao Pensamento Computacional, além de trazerem benefícios para
os aprendizes, transformam o método de ensino em algo divertido.
Foi conhecido e documentado o processo de criação de MODs para o Minecraft
e foi construído um MOD onde o estudante pode programar um robô para efetuar
tarefas dentro do jogo através de uma IDE visual baseada no Scratch e no Blockly.
Programar um MOD dentro do jogo tem uma curva de aprendizado alta no início,
porém com o passar do tempo vai se tornando uma tarefa menos complexa, com muitas
ferramentas para auxilio no desenvolvimento. A criação de uma interface gráfica
complexa dentro do jogo exige conhecimento de OpenGL, neste caso, é necessário
conhecer bem a API para compreender as ações de interação com a interface e tratar os
aspectos de renderização.
Ao mesmo tempo como o robô precisa ser programado, ele explora conceitos de
programação e Pensamento Computacional, e como a sua programação é bem simples,
dado ao número reduzido de instruções e a linguagem de notação em blocos que evita
erros sintáticos, acredita-se que com o tempo qualquer um pode programa-lo para fazer
o que bem entender enquanto estimula o pensamento computacional.
Verifica-se deste modo como principais contribuições desta pesquisa: O
desenvolvimento de uma ferramenta que permite exercitar conceitos lógicos em um
ambiente divertido e descontraído e o desenvolvimento de uma ferramenta que permite
auxiliar jogadores na resolução de desafios de projetos dentro do jogo, como por
exemplo, construir uma casa.
O robô criado consegue: se movimentar livremente em um mundo aberto,
apanhar objetos, colocar objetos, andar, girar, se movimentar, destruir o cenário e
construir no cenário, dando poder para que o estudante consiga construir praticamente
qualquer coisa dentro do jogo.
Como trabalhos futuros nas linhas de Educação e Computação Aplicada
sugerem-se as seguintes temáticas: o desenvolvimento de outros MODS aplicados ao
ensino de outras linhas de conhecimento; a implementação de outras funcionalidades
para este MOD dentro do jogo, como desvios condicionais e sensores e a
implementação de um sistema de avaliação embarcado no Minecraft sob a forma de um
MOD.
Referências
LAHTINEN, E.; ALA-MUTKA, K.; JÄRVINEN, H.-M. A study of the difficulties of
novice programmers. ACM SIGCSE Bulletin, v. 37, n. 3, p. 14–18, 2005.
MINECRAFT Educational. Disponível em: <http://education.minecraft.net/>. Acesso
em: 01 jun. 2016.
100
VI Congresso Brasileiro de Informática na Educação (CBIE 2017)
Anais dos Workshops do VI Congresso Brasileiro de Informática na Educação (WCBIE 2017)
101