Escolar Documentos
Profissional Documentos
Cultura Documentos
C ENTRO DE T ECNOLOGIA
P ROGRAMA DE P ÓS -G RADUAÇÃO EM E NGENHARIA E LÉTRICA E
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE
DE C OMPUTAÇÃO
Ao meu Deus, meu melhor amigo e meu tudo. Obrigada por sua bondade e amor.
Ao meu orientador, professor Luiz Marcos Garcia Gonçalves, sou grata pela orientação,
pela confiança depositada e por todo o incentivo.
Aos meus pais, Margaret Thomaz e Paulo Ney, e a minha irmã Camilla Rose, por todo
amor e apoio.
A Erika Yanaguibashi e todos os meus amigos, por todas as orações, ajuda, dedicação e
discussões sobre este trabalho.
Este trabalho propõe um ambiente web para robótica educacional, que é uma solução
aberta, dinâmica e completa para auxiliar no processo de ensino-aprendizagem neste tipo
de atividade. O ambiente permite que diferentes plataformas robóticas sejam programadas
através do cadastro de linguagens de programação com suas respectivas funções de baixo
nível utilizando uma linguagem intermediária com alto nível de abstração. O sistema
pode ser utilizado por qualquer tipo de usuário com ou sem experiência em programação,
através de uma linguagem com comandos textuais simples. Este trabalho oferece, então,
um sistema web completo que pode ser utilizado a fim de facilitar o processo de ensino
aprendizagem utilizando robótica educacional. Além disso, para fins de validação o traba-
lho inclui um método homogêneo para avaliação de softwares para robótica educacional,
o qual validou a ferramenta desenvolvida através de experimentos que avaliaram seu uso
didático e suas funcionalidades e o comparou com outras ferramentas.
This work proposes a web environment for educational robotics, which is an open,
dynamic and complete solution to assist in the teaching-learning process in this type ac-
tivity. The environment allows different robotic platforms to be programmed through the
registration of programming languages with their low level functions using an intermedi-
ate language with a high level of abstraction. The system can be used by any user with or
without programming experience, through a language with simple text commands. The-
refore, this work provides a full web system that can be used to facilitate the teaching/le-
arning process using educational robotics. In addition, for validation purposes this work
includes a homogeneous method for evaluating educational software for robotics, which
validated the developed tool through experiments that have assessed its didactical use and
its features and compared with other tools.
Sumário i
Lista de Figuras v
1 Introdução 1
1.1 Escopo do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Tema, Problema e Hipótese de Pesquisa . . . . . . . . . . . . . . . . . . 7
1.4 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Contribuições e Aplicações . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Estrutura do texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Fundamentação Teórica 13
2.1 Robótica Educacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 Hardwares para Robótica Educacional . . . . . . . . . . . . . . . 14
2.1.2 Ambientes de Desenvolvimento para Robótica Educacional . . . 15
2.2 Linguagens de Programação . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.1 Desenvolvimento de Programas . . . . . . . . . . . . . . . . . . 17
2.3 Qualidade de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.1 Norma ISO/ IEC 9126 . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.2 CMMI - Capability Maturity Model Integration . . . . . . . . . . 21
2.4 Avaliação de Software Educacional . . . . . . . . . . . . . . . . . . . . . 22
3 Estado da Arte 23
3.1 Ambientes para Robótica . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.1 Ambientes Desktop . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.2 Ambientes Web . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.3 Análise Comparativa entre Ambientes . . . . . . . . . . . . . . . 31
i
3.2 Comparação entre Métodos . . . . . . . . . . . . . . . . . . . . . . . . . 33
4 Ambiente Proposto 35
4.1 Projeto do Ambiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2 Ambiente Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2.1 Requisitos Funcionais . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.2 Ferramentas Utilizadas . . . . . . . . . . . . . . . . . . . . . . . 38
7 Implementações 53
7.1 Ambiente Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.2 Tradutor Universal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.2.1 Linguagem R-Educ . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.2.2 Registro de linguagem e casamento de padrões . . . . . . . . . . 58
7.2.3 Abstração de Linguagem . . . . . . . . . . . . . . . . . . . . . . 60
7.2.4 Análise Léxica . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
7.2.5 Análise Sintática . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2.6 Análise e Verificação de Erros . . . . . . . . . . . . . . . . . . . 65
8 Experimentos e Resultados 67
8.1 Ambiente W-Educ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.1.1 Principais Telas e Funcionalidades . . . . . . . . . . . . . . . . . 67
8.1.2 Linguagens em Uso . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.1.3 Ambiente de Programação . . . . . . . . . . . . . . . . . . . . . 71
8.1.4 Abstração de Linguagem . . . . . . . . . . . . . . . . . . . . . . 73
8.2 Teste dos Protótipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
8.2.1 Protótipo 01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.2.2 Protótipo 02 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.2.3 Avaliação Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
8.3 Comparação entre Ambientes . . . . . . . . . . . . . . . . . . . . . . . . 84
9 Conclusão 89
9.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Referências Bibliográficas 91
Lista de Figuras
v
8.3 Professores do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
8.4 Solicitação de graduação no sistema . . . . . . . . . . . . . . . . . . . . 69
8.5 Formulário de cadastro de linguagens de programação . . . . . . . . . . 70
8.6 Dados de desempenho do usuário . . . . . . . . . . . . . . . . . . . . . . 71
8.7 Tela de escolha de linguagem de programação . . . . . . . . . . . . . . . 71
8.8 Linguagens atualmente cadastradas . . . . . . . . . . . . . . . . . . . . . 72
8.9 Ambiente de programação do W-Educ . . . . . . . . . . . . . . . . . . . 72
8.10 Dicionário de funções de R-Educ para NXC . . . . . . . . . . . . . . . . 73
8.11 Código a ser traduzido em Ino-Nano . . . . . . . . . . . . . . . . . . . . 73
8.12 Código traduzido em Ino-Nano . . . . . . . . . . . . . . . . . . . . . . . 74
8.13 Código a ser traduzido em CV3 . . . . . . . . . . . . . . . . . . . . . . . 74
8.14 Código traduzido em CV3 . . . . . . . . . . . . . . . . . . . . . . . . . 75
8.15 Tela de programação do Protótipo 01 . . . . . . . . . . . . . . . . . . . . 77
8.16 Tela inicial do Protótipo 01 . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.17 Bot’N Roll One A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.18 Gráfico comparativo entre as médias dos professores e alunos . . . . . . . 80
8.19 Gráfico comparativo entre as médias dos professores e alunos . . . . . . . 81
8.20 Gráfico avaliativo das funcionalidades do software . . . . . . . . . . . . . 83
8.21 Gráfico comparativo entre as notas atribuídas pelos professores . . . . . . 86
8.22 Gráfico comparativo entre as notas atribuídas pelos alunos . . . . . . . . 86
Lista de Tabelas
vii
Capítulo 1
Introdução
A robótica educacional foi idealizada por Seymour Papert, no final da década de 60,
e está sendo amplamente difundida no contexto de inserção de novas tecnologias em sala
de aula e com o crescimento de olímpiadas estudantis na área. A robótica educacional é
uma estratégia interdisciplinar que promove o aprendizado de conceitos curriculares atra-
vés da montagem e programação de modelos robóticos, trazendo consigo o uso do avanço
tecnológico, aliado a um ambiente de aprendizagem rico e inovador. Este ambiente de
aprendizagem se destaca por mostrar, na prática, conceitos teóricos e por desenvolver as-
pectos cognitivos e psicomotores dos alunos [Zilli 2004]. Entre esses, podemos citar a
coordenação motora, pensamento investigativo, raciocínio lógico, criatividade, desenvol-
vimento de método científico, e outros [Miranda et al. 2010].
De acordo com Schons et al. (2004) a robótica educacional pode ser utilizada para
enriquecer e complementar o estudo de disciplinas curriculares, pois ela propõe o uso de
robôs como ferramenta educacional para permitir que estudantes inexperientes possam
abordar temas não relacionados à robótica [Cristóforis et al. 2013]. Isto é possível através
da construção de protótipos que proporcionam aos alunos uma experiência única, rica em
aprendizagem, e o desenvolvimento de uma inteligência múltipla [Eguchi 2012].
Diversos trabalhos foram desenvolvidos a fim de popularizar a robótica educacio-
nal, inserindo-a no contexto das atividades diárias dos alunos e levando-os a adentrar no
mundo tecnológico. O grupo de pesquisa Natalnet-UFRN desenvolveu diversos trabalhos
nesta área, envolvendo não somente metodologias para robótica educacional [Silva 2008,
Fernandes et al. 2012], visando a execução de oficinas para crianças de 4 a 17 anos, como
também a criação/desenvolvimento de sistemas e hardwares para permitir a sua aplicação,
sendo utilizados por professores e alunos nas oficinas.
Silva (2008) desenvolveu uma metodologia para o uso da robótica educacional em sala
de aula estruturada em oficinas, onde os alunos devem seguir um conjunto de passos esta-
belecidos para que seja extraído o máximo de benefícios que esta ferramenta proporciona.
2 CAPÍTULO 1. INTRODUÇÃO
Os passos propostos por esta metodologia são: análise da atividade proposta, montagem
de um protótipo robótico, e programação e execução do programa no protótipo montado.
Segundo a metodologia para a aplicação da robótica em um contexto educacional, os
seguintes recursos devem estar disponíveis em sala de aula:
Para a construção da parte mecânica do robô, um kit de robótica pode ser utilizado.
Existem alguns kits comerciais, disponíveis no mercado, como o kit LEGO MindStorms,
PETE, Modelix e outros, além de kits que seguem o paradigma chamado de robótica
livre que fazem uso de materiais mais baratos (ou até de sucatas). Independente do kit
escolhido, o protótipo robótico montado deve ter um controlador programável capaz de
receber um conjunto de comandos a partir da execução de um algoritmo escrito em alguma
linguagem de programação. Kits de robótica comerciais são normalmente acompanhados
de um software específico para programação de seus robôs. Por outro lado, os kits de
robótica livre podem, geralmente, ser programados utilizando compiladores de linguagens
específicas, como C, C++ ou Java, por exemplo.
Neste modelo, caso o professor de robótica educacional necessite ou deseje fazer uso
de um novo kit de robótica, a fim de baixar os custos, ou mesmo visando trazer inovação
para a sala de aula, seria eventualmente necessário trocar o ambiente de programação e/ou
a linguagem de programação utilizada. Isso geralmente ocorre no caso do kit ser de marca
diferente, por exemplo, sendo necessário ensinar um novo conjunto de passos e instruções
aos alunos para a programação dos protótipos, além de ser necessário, em alguns casos,
ensinar o passo a passo para a montagem de modelos utilizando o novo hardware.
Com a difusão da robótica educacional no cenário educacional mundial, diversas pes-
quisas vêm sendo realizadas a fim de produzir ferramentas para que as oficinas de robó-
tica educacional tragam novos desafios aos alunos [Alimisis 2013]. Nesse cenário, surge
a busca por uma maior versatilidade de hardware em ambientes de aprendizagem que
fazem uso da robótica educacional, além de ferramentas de programação escaláveis, que
ofereçam diferentes níveis de programação e que estejam disponíveis gratuitamente ao
público.
3
Nessa direção, um dos requisitos tomados como base para o projeto e desenvolvimento
da ferramenta apresentada neste trabalho foi o seu alcance e disponibilidade. Inspirados
neste quesito, decidimos utilizar a rede global de computadores como ferramenta de au-
xílio ao ensino da robótica educacional. Aqui, pode ser notado que os termos robótica
e internet geralmente estão associados a laboratórios remotos onde a escola ou o aluno
que não possui um dispositivo físico utilizam a internet para programar e visualizar os
resultados [Pressman 2011], não sendo este o foco deste trabalho.
Neste trabalho apresentamos uma nova ferramenta web, dinâmica, aberta e gratuita
para a programação de robôs que contém um conjunto único de funcionalidades para dar
suporte ao ensino de programação e algoritmos para robótica. Realizamos uma pesquisa
extensa passando pelas diversas ferramentas web existentes na literatura e não consta-
tamos uma proposta que contemple várias plataformas robóticas, que ofereça diferentes
níveis de programação, que permita o envio de programas ao robô local sem necessidade
de instalação de softwares e que favoreça a interação entre aluno e professor. Desenvolve-
mos uma ferramenta web que torna possível programar e enviar o programa a diferentes
tipos de dispositivos robóticos utilizando uma linguagem universal, a linguagem R-Educ
[Pitta et al. 2010, Sá et al. 2013], através de comandos gráficos ou textuais, programar
na linguagem base do controlador, permitir interação entre aluno e professor. Tudo isso
em uma ferramenta web aberta, dinâmica, e gratuita, possibilitando que a mesma seja
utilizada em escolas ou pelo público em geral.
Ao utilizar o ambiente desenvolvido, o usuário tem flexibilidade no uso de disposi-
tivos robóticos, visto que é possível editar, compilar e enviar programas para diferentes
robôs utilizando um browser, na web. No ambiente, o aluno pode enviar e receber di-
recionamentos de seu professor, enquanto que, ao professor, é possível registrar novas
linguagens de programação, permitindo que o kit utilizado em sala de aula possa ser
programado através do ambiente. Com a solução proposta, qualquer dispositivo compu-
tacional que possua um browser (e acesso à web) pode ser utilizado como uma estação
de desenvolvimento para robôs. O uso da ferramenta fora do contexto escolar é possível
através da condução de atividades enviadas pelo professor pelo sistema, com estatísticas
de uso e erro do usuário, além de um fórum que permite aos estudantes e professores
compartilharem suas experiências.
Além disso, como contribuição secundária, durante os trabalhos, desenvolvemos o
hardware de dois kits de robótica de baixo custo utilizando o controlador Arduino. For-
necemos todos os guias na ferramenta web para que o aluno ou qualquer instituição possa
montar o seu próprio kit e fazer uso da ferramenta para programação do mesmo no ambi-
ente web.
4 CAPÍTULO 1. INTRODUÇÃO
Norte. Com o desenvolvimento desse projeto e de outro projeto posterior, com fomento
do CNPq, a partir de 2005 e até 2008, foi desenvolvida por Silva (2008) uma metodologia
para implementação da robótica educacional em sala de aula, visando fazer uso de forma
satisfatória dos benefícios que esta pode proporcionar.
Para verificação da metodologia desenvolvida na época, a mesma foi colocada em
prática em uma escola pública do Estado utilizando kits de robótica educacional Lego
Mindstorms (o então RCX) e o software RoboEduc, que foi inicialmente concebido no
projeto e estava ainda em desenvolvimento na época. Os resultados do projeto foram
compilados e a metodologia foi validada no trabalho de Silva (2008). A equipe do labo-
ratório Natalnet trabalhou para concluir a versão 4.0 do software RoboEduc [Pitta 2008],
incluindo nesse trabalho cinco diferentes níveis de programação fazendo uso da primeira
versão da linguagem R-Educ [Pitta et al. 2010].
Levando em consideração o custo de aquisição de kits de robótica utilizados, após o
desenvolvimento do software, a equipe teve como foco o desenvolvimento de ferramentas
capazes de aumentar a adesão das escolas às oficinas de robótica educacional. Neste con-
texto, Fernandes (2010) desenvolveu um simulador robótico tridimensional que permite a
criação e execução de oficinas de robótica educacional sem a necessidade de utilização de
material para montagem de protótipos robóticos. Nesta mesma linha de trabalho (barate-
amento da robótica educacional), também em trabalho anterior a este [Sá 2011], criamos
um kit de robótica utilizando materiais de sucata e componentes eletrônicos, composto
por motores e sensores e unidade de controle, com um custo inferior aos kits comerciais.
Aroca (2013) desenvolveu uma plataforma robótica de baixíssimo custo, denominada
N-Bot. O N-Bot possui uma arquitetura de controle e um conjunto de técnicas que visam
diminuir a complexidade de montagem e programação dos protótipos, tendo inclusive
sido premiada no AFRON - African Robot Network Contest [Network 2016].
Os trabalhos da equipe do laboratório Natalnet [NatalNet 2013] visam que uma maior
quantidade de alunos de ensino fundamental e médio possam entrar/estar em contato com
um ambiente de aprendizagem tão rico e motivador quanto é a robótica educacional, fa-
zendo uso de todos os recursos disponíveis. Foi neste contexto que surgiu a ideia do
ambiente de desenvolvimento web configurável para aplicações em robótica educacional
[Sá et al. 2013]. E, como continuidade, surge esta proposta corrente, visando difusão e
plena utilização da robótica educacional, em âmbito geral. Este trabalho tem como dife-
rencial a criação de um ambiente de desenvolvimento na web para aplicações em robótica
educacional associado a uma linguagem de programação em língua única, com interfaces
acessíveis, que ofereça um maior poder de criação tanto em hardware quanto em software
aos alunos desde a educação infantil ao ensino superior.
6 CAPÍTULO 1. INTRODUÇÃO
1.2 Motivação
Como visto, para o desenvolvimento de uma oficina de robótica educacional são ne-
cessários alguns recursos que nem sempre estão presentes em um contexto de sala de aula
trivial [Neves-Júnior 2011], são eles: um kit de robótica composto por um controlador
lógico programável, sensores, motores e peças para construção de uma estrutura mecâ-
nica para o protótipo robótico, um ambiente de desenvolvimento para programação dos
protótipos, um dispositivo computacional capaz de utilizar o ambiente escolhido e um
ambiente propício ao desenvolvimento de um desafio prático, geralmente proposto em
cada oficina.
O ensino e utilização da robótica educacional estão intrinsecamente associados ao en-
sino da programação, visto que se faz necessário a manipulação dos protótipos através de
instruções (programas). Existem diversas linguagens de programação para robôs, porém
os ambientes de desenvolvimento que acompanham os kits de robótica educacional, em
sua maioria, possuem linguagens de programação diferentes e formas diferentes de se pro-
gramar: gráfica ou textual. As interfaces de programação gráfica possuem duas vertentes:
ou se aproximam ao máximo do controle direto das peças do hardware [N.I. 2013a] ou
tentam abstrair a visualização do hardware a partir do encaixe de conteúdos textuais. Por
outro lado, os que podem ser programados de forma textual apresentam, em sua maio-
ria, estruturas baseadas na língua inglesa com palavras chaves e sequências de comandos
diferenciadas.
Para que um programa seja compilado e enviado a um robô, frequentemente, é ne-
cessária a instalação de softwares específicos em um computador, limitando essas opera-
ções a usuários especialistas [Aroca, Guardiman & Gonçalves 2012]. Em alguns casos
é necessário que o usuário possua privilégios de administração do sistema para instalar
e/ou executar softwares de desenvolvimento de robótica. Sendo também, muitas vezes,
necessário que o usuário possua computador com alto poder de processamento ou especi-
ficações de hardware específicas. Além disso, a prática da programação de robôs muitas
vezes está condicionada apenas ao ambiente de sala de aula, não sendo possível ao aluno
e/ou ao professor fazer o teste, a execução de programas, e interagirem fora do contexto
escolar.
A motivação principal deste trabalho surge, então, pela constatação de uma não uni-
formidade encontrada nas formas de programação dos kits de robótica e dos impasses
encontrados para se instalar softwares específicos num determinado computador. Ainda,
somos motivados pelos benefícios que as ferramentas da robótica educacional possuem
no processo de ensino aprendizagem e buscando permitir que pessoas com diferentes
1.3. TEMA, PROBLEMA E HIPÓTESE DE PESQUISA 7
• Tema de pesquisa
Desenvolvimento de metodologias envolvendo ambientes de aprendizagem para a
programação de robôs e realização de atividades de robótica educacional de forma
interativa na web.
et al. 2015]. Porém, notamos que a substituição de parte (ou o todo) das ferramentas
(hardware ou software) pode acarretar problemas de descontinuidade no processo ensino-
aprendizagem. Nosso problema de pesquisa surge, então, relacionado ao tema, quando
nos deparamos com uma questão principal que pode ser sintetizada como:
• Problema:
Como conseguir utilizar plataformas variadas em sala de aula sem a necessidade
de trocar o ambiente computacional e/ou a linguagem utilizada tanto para progra-
mação de robôs quanto para atividade de robótica educacional?
• Hipótese de Pesquisa:
É possível realizar a programação de robôs e a interação professor-aluno das ati-
vidades de Robótica Educacional via web em um único ambiente e com uma única
linguagem de programação independente do hardware usando um tradutor univer-
sal que converta de uma linguagem de alto nível ao código de máquina específico
de cada plataforma.
1.4 Metodologia
Por fim, para validação da ferramenta web, contamos com o auxílio de professores
para realizar cadastros de linguagens a fim de que sejam utilizadas no mínimo três plata-
formas robóticas utilizando o ambiente. Promovemos também oficinas e minicursos de
robótica educacional utilizando a ferramenta onde colhemos e comparamos os resultados
a partir da aplicação do método avaliativo desenvolvido. Particularmente, o ferramental
foi validado através de sua utilização por alunos participantes da fase final da modalidade
teórica da Olimpíada Brasileira de Robótica.
10 CAPÍTULO 1. INTRODUÇÃO
Fundamentação Teórica
Tendo em vista a acessibilidade, a web tornou-se um meio atrativo e passível de ser as-
sociado à educação e ao ensino tradicional. A plataforma web, para propósitos didáticos,
permite que o aluno agende o seu próprio aprendizado, além disso, por sua disponibili-
dade e gratuidade ela permite que o uso da robótica educacional saia dos limites de sala
de aula [Salazar-Silva et al. 1999].
Os ambientes de desenvolvimento web possibilitam que qualquer computador ou dis-
positivo com acesso à web via navegador possa ser utilizado para programar robôs sem a
necessidade de instalação de softwares específicos e sem necessidade de modificação das
variáveis de ambiente [Yanagisawa 2012].
Existem duas categorias de ambientes web para robótica educacional: laboratórios
remotos, nestes ambientes o usuário é capaz de programar e enviar comandos a um robô
localizado em um laboratório específico, e a segunda categoria é de laboratório local, onde
16 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA
o usuário programa e compila via web e os comandos são enviados a um robô pessoal do
usuário [Tzafestas 2009].
mada a partir das regras de formação especificadas. Já os sistemas geradores são disposi-
tivos formais que permitem a geração sistemática de todas as sentenças possíveis de uma
linguagem. Os principais sistemas geradores disponíveis são as gramáticas, destacando-
se as de Chomsky [Chomsky 1965, Acióly et al. 2002]. Linguagens formais podem ser
representadas de maneira finita e precisa através de sistemas com fundamentação mate-
mática.
Compiladores
O programa alvo é o código de máquina produzido pelo compilador e, para que ele
seja gerado, o compilador passa por um conjunto de fases [Aho et al. 2008] como mos-
trado na Figura 2.1. Cada uma das fases transforma o programa fonte de uma represen-
tação para outra. Algumas dessas fases podem, no entanto, serem agrupada e a repre-
sentação entre elas não necessita ser, de fato, implementada. Nesta seção, descreveremos
as três fases principais: análise léxica, análise sintática e gerador de código [Barbosa
et al. 2009].
A análise léxica é a etapa do processo onde são reconhecidas quais cadeias de símbo-
los do programa fonte representam entidades indivisíveis. Por exemplo, palavras não são
tratadas letra a letra, mas sim como uma unidade composta por várias letras. O analisador
léxico também identifica os conjuntos de símbolos que representam valores numéricos,
operadores aritméticos, palavras, símbolos reservados e outros, gerando assim um padrão
de bits conhecidos como símbolos ou tokens [Aho et al. 2008]. Cada símbolo ou token
representará um dado de entrada do analisador sintático. Além disso, o analisador léxico
realiza também outras tarefas como remover comentários e marcas de edição, bem como
relacionar o número da linha com possíveis mensagens de erro.
2.3. QUALIDADE DE SOFTWARE 19
Após a realização da análise léxica, é realizada a análise sintática. Esta etapa re-
presenta o processo de identificação da estrutura gramatical do programa e do reconhe-
cimento da função de cada um dos seus componentes. A análise sintática é realizada
baseada em um conjunto de regras sintáticas que definem a gramática da linguagem de
programação. O analisador sintático é um programa que, para uma dada gramática, ele
aceita como entrada uma sentença - lista de símbolos ou tokens - e constrói para ela uma
árvore gramatical. Ou, caso a sentença não pertença à linguagem descrita por essa gramá-
tica, uma indicação de erro. A ação final do processo de tradução é a geração do programa
objeto, a qual é realizada através da escrita das instruções em linguagem de máquina.
Muitas vezes, dependendo do compilador, as análises léxica, sintática e a geração
do programa objeto, não são efetuadas em ordem sequencial. A Figura 2.2 apresenta o
formato de compilação em que o analisador léxico começa o processo identificando o
primeiro token e fornecendo-o ao analisador sintático. Já com a identificação da estrutura
que vem a seguir, o analisador sintático solicita ao analisador léxico o próximo token.
À medida que o analisador sintático reconhece sentenças ou comandos completos, ele
chama o gerador de código, para que este possa produzir as correspondentes instruções
em linguagem de máquina.
Essa tem como objetivo maior obter a garantia da qualidade seja em um produto inter-
mediário do processo de desenvolvimento ou em um produto final. Com a existência de
uma direta correlação entre a qualidade de produtos de software e a qualidade do pro-
cesso através do qual o software é desenvolvido, a área de estudos em qualidade pode ser
dividida em dois ramos [Rocha 2001]:
Estado da Arte
RoboEduc
O software educacional RoboEduc [Pitta 2008] teve sua versão inicial desenvolvida
em 2003 por pesquisadores da Universidade Federal do Rio Grande do Norte. É um
software voltado para aplicações em robótica educacional, permitindo o controle e a pro-
gramação de vários tipos hardwares. O RoboEduc possui versões para programação dos
kits Lego RCX, Lego NXT [LEGO 2011] e H-Educ [Sá 2011]. A programação do robô
pode ser realizada utilizando um dos cinco níveis de programação (abstração) existentes,
podendo ser realizada via programação gráfica ou textual. A Figura 3.1(a) apresenta um
dos ambientes deste software.
A linguagem de programação utilizada é denominada R-Educ, escrita em um portu-
guês simples, que pode ser utilizada por alunos a partir dos 8 anos [Pitta 2011, Sá 2011].
A linguagem R-Educ possui comandos que permitem a movimentação de motores e a
aquisição de dados dos sensores do robô, possui controladores de fluxo e outros coman-
dos, responsáveis por imprimir textos ou acender luzes no robô. Os comandos escritos
em linguagem R-Educ são compiladas no ambiente e enviados ao robô.
O desenvolvimento do software RoboEduc e suas versões durou cerca de 9 anos e
foi abortado. A equipe de desenvolvimento iniciou trabalhos em outras áreas não dando
continuidade ao projeto. Atualmente o software possui versão disponível apenas para
programação de robôs Lego NXT.
3.1. AMBIENTES PARA ROBÓTICA 25
(a) Software RoboEduc 4.0 (b) Software RobotC - Versão para progra-
mação de Lego Ev3
Teve sua primeira versão lançada em 2006 pela Microsoft e foi concebido para a
criação de aplicações na área de robótica. Este ambiente, mostrado na Figura 3.1(d), é
baseado no sistema operacional Windows e permite criar programas de robótica incluindo
uma grande variedade de plataformas de hardware. Além disso, possui uma linguagem
de programação gráfica que oferece aos usuários a possibilidade de programar robôs e de
ter seus algoritmos executados tanto em um simulador quanto no hardware em si.
O Microsoft Robotics Studio possibilita o desenvolvimento de aplicações utilizando
um conjunto de linguagens de programação, dentre elas: Visual C#, Visual Basic, Micro-
soft IronPython e as integradas ao Microsoft Visual Studio. O ambiente é compatível com
as aplicações, serviços e robôs de diversas empresas, como: Lego [LEGO 2011], Parallax
[Parallax Robotics 2013], RoboDynamics [RoboDynamics 2013], iRobot [IRobot 2013],
entre outras.
Este software está disponível gratuitamente, possuindo versão apenas em inglês e não
foram encontrados relatos de seu uso em ambientes de aprendizagem em robótica educa-
cional.
RobotC
Legal
Arduino IDE
BricxCC
A maior parte dos ambientes web encontrados durante a fase de pesquisa deste tra-
balho visava solucionar o problema de que nem todo usuário ou instituição de ensino
possui condições de adquirir o dispositivo robótico e material necessário para realização
de uma oficina de robótica [Tzafestas 2009]. Na prática, esses trabalhos, chamados de
laboratórios remotos, permitem que o usuário programe o robô remotamente via um na-
vegador web e observe os resultados através de um vídeo que captura os movimentos do
robô real localizado próximo ao servidor. Os trabalhos de Belousov et al. (2001), Moo-
tien et al. (2006), Garrett & Thornton (2005), Lopez et al. (2009) e Miroslav et al. (2013)
apresentam propostas deste tipo, no entanto eles fogem do escopo deste trabalho.
A seguir apresentamos os trabalhos encontrados na literatura que possuem o formato
de execução do tipo SDCE - Server-side Development and Client-side Execution - com
desenvolvimento e processamento no lado servidor e execução no lado cliente ou CE -
Client-side Execution - apenas execução do lado cliente via navegador.
3.1. AMBIENTES PARA ROBÓTICA 29
ADWN
O ADWN foi desenvolvido por Aroca, Barros, Burlamaqui & Gonçalves (2012) para
programação de robôs do projeto N-Bot ou qualquer dispositivo que utilize a arquitetura
proposta em seu trabalho. A solução de Aroca é executada na web e é de código aberto,
passível de ser acessada por qualquer dispositivo que possua acesso a um navegador co-
nectado a internet. Essa ferramenta surgiu com o propósito de ser simples e intuitiva para
iniciantes, mas também de ser uma ferramenta poderosa e flexível para usuários experi-
entes.
Para realizar a programação de robôs N-Bot, o usuário precisa acessar uma página
web que oferece opção de programação em blocos, textual ou híbrida. Um grande dife-
rencial deste ambiente é que toda a implementação utiliza JavaScript, logo não depende
do servidor, sendo toda a execução efetuada em navegador local. Além disso, é possível
salvar a página web para programação, não sendo mais necessário ter uma conexão com
a Internet para seu funcionamento. Após a criação do programa ele é executado pelo pró-
prio navegador, sendo então gerados tons de áudio que serão decodificados pelos circuitos
do robô.
A Figura 3.3 apresenta o ambiente de desenvolvimento ADWN. Podemos observar,
na parte direita, a execução de programação gráfica a partir do encaixe de blocos textuais.
Na parte esquerda, a programação textual pode ser efetuada diretamente e também pode
ser visualizado o código gerado a partir dos blocos gráficos. No mesmo ambiente, é
possível colocar o programa gerado em funcionamento. Este ambiente não se encontra
mais disponível online.
CodeBender
O CodeBender é uma aplicação web criada com o objetivo de permitir que o usuário
escreva e envie programas a dispositivos montados fazendo uso do hardware Arduino
através de um browser [UserVoice 2016]. Foi desenvolvido em 2012, na Universidade de
Patras, na Grécia. Em sua estrutura, apresentada na Figura 3.4, ele possui um ambiente
de programação textual e realiza compilação de códigos escritos na linguagem INO. Para
sua execução não é necessário instalar nenhum software ou driver.
DuinoBlocks
ModKit
Possui uma versão web para programação apenas de robôs montados a partir do kit VEX,
apresentada na Figura 3.5. Esta é executada no navegador e necessita de um aplicativo
na área de trabalho do computador local para realizar a comunicação com o hardware. O
ambiente web permite que os projetos sejam salvos na nuvem. O ModKit é um sistema
que apenas disponibiliza todas as suas funcionalidades após a compra de licenças de uso
pessoal ou coletivo.
OpenRoberta
O Open Roberta Lab [Lab 2016] é um projeto web que possui um ambiente de progra-
mação integrado, foi desenvolvido por Fraunhover IAIS na iniciativa Roberta - Learning
with Robots [Bredenfeld & Leimbach 2010]. Este projeto foi criado a fim de diminuir os
obstáculos encontrados por estudantes, professores e escolas na programação de robôs.
Sua versão atual permite que crianças e adolescentes realizem a programação e envio
para robôs Lego MindStorms EV3 A plataforma Open Roberta Lab é open source, tanto
o software quanto os códigos fontes estão disponíveis online.
A Figura 3.6 apresenta o ambiente de programação deste projeto. Essa proposta conta
com um simulador 2D online que permite verificar os dados obtidos pelos sensores, ma-
nipular objetos e verificar se a movimentação do robô ocorre como desejado.
constatamos que apesar de possuírem algumas funcionalidades não encontradas neste tra-
balho, nenhum deles se assemelha com este trabalho. Nenhum deles fornece um ambiente
na web, completo e dinâmico que permita realizar a programação, compilação e envio
para qualquer dispositivo robótico além de permitir uma total interação entre alunos e
professores.
Na Tabela 3.1, apresentamos uma síntese entre as principais características dos am-
bientes de desenvolvimento para robótica educacional para desktop. Na primeira coluna,
estão dispostos os softwares e na primeira linha as características analisadas. Na última li-
nha, é possível observar as características inerentes à ferramenta desenvolvida. Na tabela,
nos referenciaremos ao software Lego Mindstorms por Lego, e ao Microsoft Robotics
Studio por MRS.
Como pode ser observado na Tabela 3.3, nenhum dos métodos é específico para
softwares voltados para a robótica educacional. No entanto, alguns trabalhos foram tam-
bém encontrados na literatura apresentando softwares específicos para esta área, como por
exemplo Sá et al. (2013), Kwon et al. (2012) e Aroca (2013). Esses trabalhos foram avali-
ados e validados com métodos de avaliação diferentes um do outro, não seguindo alguma
metodologia de avaliação formal. Ou seja, percebemos que nesses últimos trabalhos [Sá
et al. 2013, Kwon et al. 2012, Aroca 2013] as avaliações geralmente são realizadas sem
nenhum embasamento teórico específico advindo da área de Avaliação de Software, o que
pode tornar o processo de avaliação errôneo, ou, pior ainda, não sendo possível aplicá-
lo a outros softwares com o mesmo propósito (servir como ferramenta para a Robótica
Educacional).
Capítulo 4
Ambiente Proposto
A revista científica IEEE Robotics & Automation, em sua edição de junho de 2005, na
seção de Educação, publicou um artigo cujo nome pode ser traduzido como Ensinando
Robótica na Web [Editorial 2005]. No artigo, são abordados os benefícios da utilização
da Internet no processo ensino-aprendizagem e são apresentados os impasses encontrados
para se fazer uso da robótica utilizando essa ferramenta tão poderosa (a web). De acordo
com os autores, a maior parte das iniciativas, como mencionado no Capítulo 3, está vol-
tada à implantação de laboratórios remotos e que, no entanto, deveriam ser desenvolvidos
novos meios de utilizar a Internet, tomando total vantagem dela. O artigo enfatiza ainda
que o uso da internet no ensino da robótica deveria possibilitar o aprendizado autônomo,
estimulante, divertido, e que possa adaptar-se às necessidades de uma crescente aprendi-
zagem por parte do usuário.
A rede europeia de robótica (EURON) possui em seu sítio uma seção específica para
educação. Nela, é encontrada uma seção chamada de WEBook em robótica. A proposta
é disponibilizar, na Internet, vídeos, links para plataformas de simulação e uma série de
materiais de ensino. No entanto, essa plataforma se encontra vazia atualmente. Alguns
grupos tentaram colocar suas experiências com robótica na web, mas por se tratarem
de laboratórios online, necessitavam de um curso tradicional para seu uso. Além disso,
eventos como a RoboCup, RoboFesta e as Olimpíadas de Robótica Escolares, tais como
a Olimpíada Brasileira de Robótica e a Olimpíada de Robótica Escolar Peruana, estimu-
lam milhares de participantes à utilização da robótica. Porém, é possível notar que uma
ferramenta acessível, escalável e completa não surgiu desses eventos.
Diante desta realidade e de toda a problemática envolvida pela utilização de diversos
hardwares controlados por um único ambiente e linguagem, a possibilidade de incremento
do nível de conhecimento através da programação em diferentes níveis de abstração, o
acompanhamento do usuário e o custo dos softwares, é que realizamos uma pesquisa para
verificar se essa lacuna já havia sido preenchida.
36 CAPÍTULO 4. AMBIENTE PROPOSTO
Realizamos uma análise das ferramentas já estabelecidas a fim de verificar seus prin-
cipais atributos, funcionalidades, faltas e falhas a fim de contribuir com a comunidade
científica, contemplando aspectos ausentes e precários nestas ferramentas, criando uma
ferramenta web completa, dinâmica, gratuita e aberta para robótica educacional.
tipos de erros, dados de acesso e quantidade de compilações bem e mal sucedidas. Esses
dados poderão ser posteriormente utilizados, eventualmente, para um processo avaliativo
do aprendizado do aluno.
O envio de programas e a comunicação com o robô local é possível através da criação
de um arquivo do tipo .jar, utilizado para armazenar classes com rotinas de envio com-
piladas e metadados associados, que, ao serem executados no dispositivo computacional
local, realizam todas as rotinas de envio ao dispositivo robótico conectado.
É possível realizar o cadastro no ambiente com dois perfis de usuário: Aluno ou Pro-
fessor. Ao professor será possível cadastrar e editar linguagens, programar na lingua-
gem escolhida, enviar mensagens aos alunos, além de selecionar alunos para acompanha-
mento. Aos alunos, é permitido fazer uma requisição ao professor, para acompanhamento,
solicitar correção de atividades, programação em qualquer linguagem cadastrada e inte-
ração com os outros usuários. O ambiente web conta ainda com um fórum de discussão
onde é possível compartilhar algoritmos e desafios aos demais usuários. O ambiente deve
ser facilmente adaptável para ser estendido com versões em inglês e espanhol.
envolver o desenvolvedor.
Seguindo o conceito de avaliação de usuário para usuário, foi determinado que o ciclo
de utilização do método, como descrito na Figura 5.1, seria estruturado em três etapas (de
forma simples): aplicação de questionários, análise e geração de relatórios.
5.1 Questionários
Como citado acima, o método dispõe de questionários para avaliação de softwares
para robótica educacional. Para esta avaliação, disponibilizamos dois tipos de questioná-
rios, um para os professores e outro para os alunos, sendo que cada um deles é composto
por perguntas adequadas aos avaliados. Os questionários propostos na metodologia estão
divididos em duas partes, vistas a seguir.
respondidas marcando sim ou não. Os quesitos quinze e dezesseis são perguntas discursi-
vas, portanto são abertas para qualquer resposta. Por último, o questionário apresenta um
espaço destinado aos comentários sobre o software avaliado.
O questionário disponível para os alunos sofre algumas modificações, se comparado
ao dos professores, com o objetivo de tornar o questionário mais compreensível (sim-
plificado). Diferentemente do questionário dos professores o questionário dos alunos
apresenta dez questões sobre as funcionalidades do software que devem ser respondidas
marcando sim, não ou mais ou menos. Os outros dois quesitos são discursivos e abordam
questões do processo de ensino e aprendizagem. Em seguida, um espaço para comentários
é disponibilizado para os alunos.
Os questionários de professor, de aluno e a planilha de análise podem ser encontrados
online no sítio oficial do ambiente W-Educ [W-Educ 2016a].
5.2 Análise
Após a aplicação dos questionários, os dados coletados devem ser armazenados em
uma tabela, onde estarão dispostas todas as perguntas realizadas. Cada quesito apresenta,
de acordo com os dados, o total de pontos, a média, o desvio padrão e a variância encon-
trada. Depois de dispor os dados na tabela, eles são analisados quanto à sua relevância e
a partir dai é gerado um relatório contendo todas as notas e gráficos para melhor entendi-
mento dos dados.
blico indicado tanto pelos professores como pelos alunos, obteve média de 9,11, sendo
de 9,50 pelos alunos e 8,73 pelos professores, sendo esta a maior nota recebida pelo soft-
ware dentre os quesitos avaliados. Outros atributos relevantes do software são a satisfação
diante das necessidades do usuário, esse quesito mostra o quanto o software atinge o obje-
tivo desejado, obtendo a média de 8,62. A clareza do conteúdo apresentado pelo software
recebeu média de 8,36, quanto ao layout favorável ao uso que consiste em apresentar de
forma clara a interface do software aos usuários, atingiu a média de 8,2.
No gráfico apresentado na Figura 5.2, podemos observar a variação das notas entre
alunos e professores em relação aos questionamentos realizados nos questionários que
tiveram de ser respondidos obedecendo a escala de 0 a 10. Os quesitos cujos resultados
estão compilados no gráfico são os seguintes:
Podemos observar, a partir da Figura 5.2, que existe uma discrepância significativa
entre os resultados obtidos pelos professores e alunos. Avaliando o Q2, constatamos que
5.3. ESTUDO DE CASO 45
houve uma diferença de notas superior a três pontos. Nesse caso específico, os alunos não
apresentaram conhecimento do que são diferentes tipos de robôs. Para eles, montar um
robô de forma diferente configura outro tipo de hardware, o que não é verdade. Apesar
da discrepância de nota apresentadas neste quesito os dados não são excluídos da média
final, visto que a filosofia do método EducAval prima por fazer uma avaliação qualitativa
a partir dos seus dois tipos de usuários.
O questionário dos professores difere do questionário dos alunos por apresentar uma
seção que avalia o software do ponto de vista didático (Q10 e Q11). Nesta seção os pro-
fessores avaliaram que o software favorece a aprendizagem e ao ensino, e deram a estes
quesitos médias 9,0 e 9,09 respectivamente, 54% dos professores inferiram também que
o software oferece diferentes tipos de dificuldades e 64% afirmaram que o software ofe-
rece um retorno (feedback). Avaliamos também se o software, que possui a classificação
indicativa do desenvolvedor a partir dos dez anos atinge o público alvo a que se destina,
e a classificação obtida a partir dos dados fornecidos pelos professores entrevistados foi
uma média de classificação indicativa entre 7,64 a 16 anos. Os testes foram aplicados a
alunos com média de idade de 14,35 anos.
Durante o processo de avaliação, como mencionado, os professores também devem
inferir quais as funcionalidades presentes no software. O gráfico da Figura 5.3 apresenta
no eixo das ordenadas as possíveis funcionalidades do software e no eixo das abscissas
o percentual de professores que apontaram que cada uma dessas funcionalidades está
presente no software.
Com base nos resultados apresentados na Figura 5.3, observamos que as duas funcio-
nalidades mais indicadas pelos professores foram a presença de manuais de montagem e
ambiente de programação gráfica obtendo 82% e 73% de indicação, respectivamente. De
acordo com os desenvolvedores do software esses quesitos realmente existem, validando
assim a presença de tais funções no software.
46 CAPÍTULO 5. MÉTODO EDUCAVAL
Depois de realizadas as análises dos resultados, realizamos uma média geral do soft-
ware a partir da média dos resultados de cada quesito avaliado por alunos e professores,
a qual foi de 7,52 pelos alunos e 7,52 pelos professores. Podemos observar que apesar
da convergência entre as notas de quesitos individuais, houve uma convergência na média
final obtida. Dessa forma, de acordo com os dados coletados e analisados, o software
Lego obteve uma média geral de 7,52.
Capítulo 6
6.1 LabsRia
No kit para robótica LabsRia utilizamos como base de sua montagem um flutuador do
tipo espaguete (Figura 6.1), conhecido popularmente como macarrão. A ideia principal
do projeto deste kit foi a utilização de materiais de baixo custo em sua estrutura. Cada
macarrão tem tamanho aproximado de 1,65 metros e pode ser encontrado em qualquer
loja de artigos para piscinas (valores a partir de R$ 6,90, atualmente). Este deve ser
cortado em pedaços de aproximadamente 15 a 20 centímetros. Dessa forma, o custo da
base é de aproximadamente R$0,86 por robô. Esse tipo de base foi escolhido pelo seu
baixo peso e custo, e por possuir modelos que tem um furo central o qual será útil para
a passagem de fios. Além disso, por possuir um material de polietileno, é possível fazer
encaixes sem necessidade de cola, realizando perfurações no material utilizando algum
48 CAPÍTULO 6. KITS DE ROBÓTICA DE BAIXO CUSTO
O controlador utilizado foi o Arduino Nano v.3.0, com microcontrolador Atmel (AT-
mega328), que tem 22 pinos. Dentre eles, temos pinos analógicos e digitais os quais
permitem o controle de motores e a leitura de sensores dos mais diversos tipos. Incluí-
mos, também, sensores ultrassônicos, de toque e de luz, além de rodas, compartimento
para pilhas e uma mini-matriz de contato para montagem dos circuitos. O custo final
aproximado do kit é de R$50,00 (cinquenta reais). Para a montagem do protótipo, é ne-
cessário utilizar um ferro de solda e cola branca, portanto não indicamos a manipulação
para construção do kit a usuários com pouca idade sem a devida supervisão de um adulto.
Arduino Nano V3.0, como mostrado na Figura 6.2(a), guardando o pedaço cortado do
flutuador para utilizar como proteção dos componentes do controlador.
6.2 PetBot
O kit PetBot foi idealizado a fim de ser utilizado em oficinas de robótica ofertadas em
escolas públicas e em escolas que se encontram afastadas dos grandes centros urbanos, vi-
sando diminuir a evasão escolar e aumentar a consciência quanto aos impactos ambientais
causados pelo descarte indevido de embalagens de garrafa plástica (pet).
A estrutura principal do PetBot é uma garrafa pet. No entanto, o kit conta com outros
componentes que são imprescindíveis para a sua montagem e funcionamento. Estes com-
ponentes são a placa Arduino Nano v.3.0, rodas, motores, placa de prototipagem mini,
ponte h, sensores de cor e de ultrassom e embalagens de desodorante do tipo Roll On para
serem utilizadas como roda solta.
Após a realização dos cortes, é feita então a montagem do circuito utilizando uma
placa de prototipagem mini. Esta montagem segue o desenho esquemático do lado es-
querdo da Figura 6.5 para a conexão dos motores e o do lado direito para a conexão do
sensor de ultrassom.
Depois de finalizada a montagem do circuito na placa de prototipagem, esta é posicio-
nada no interior da garrafa, bem como os sensores. As rodas dianteiras são acopladas aos
motores e a roda solta é posicionada (todas com cola quente), obtendo o robô completo
do PetBot, como mostrado na Figura 6.6.
6.2. PETBOT 51
Implementações
tipo Professor. Além das tarefas disponíveis para o Aluno o usuário do tipo Professor pode
cadastrar uma linguagem de programação, editar uma linguagem previamente cadastrada
e selecionar alunos para acompanhamento.
versalizada foi a linguagem R-Educ, descrita na Seção 7.2.1. Nesta tese, realizamos uma
re-implementação da linguagem a fim de acrescentar novos atributos além dos descritos
no trabalho anterior [Sá et al. 2013].
O primeiro passo para realizar a tradução é a análise léxica do código escrito em R-
Educ. Nesta etapa, é realizada a separação e armazenamento dos tokens (ou unidades
indivisíveis, fichas) da linguagem. Em seguida é chamada uma função de mapeamento
que fornece ao tradutor todos os dados registrados pelo usuário do tipo Professor ou Ad-
ministrados no caso de uso cadastro de linguagem. Por último, é realizada uma análise
sintática. Neste ponto, é realizada a checagem da corretude das sentenças escritas pelo
usuário, cada sentença escrita de forma correta será traduzida em um código na linguagem
alvo selecionada. Se a análise não apresentar erros será feita uma chamada ao compilador
específico da linguagem, caso necessário, a fim de completar o processo de obtenção do
7.2. TRADUTOR UNIVERSAL 57
código na linguagem necessária para envio ao robô. Caso seja encontrado algum erro o
usuário será informado do tipo de erro e da linha onde ele foi verificado.
for chamada, com substituição dos parâmetros pelos seus respectivos valores sendo reali-
zado no mapeamento. Estes parâmetros devem ser do tipo: int, float, double, boolean ou
String.
A escrita da função é realizada de forma direta no formulário de cadastro. No entanto,
os parâmetros devem ser nomeados de forma específica, eles devem ser chamados de var
seguido pelo número do parâmetro, acrescido do tipo do parâmetro entre parênteses. Por
exemplo: var1(int), var2(String), var3(boolean), var4(float), var5(double).
da fila passa então a ser chamada de símbolo léxico ou token. O Algoritmo 1 ao ter
suas duas primeiras linhas processadas pelo analisador léxico desenvolvido deve gerar
a estrutura apresentada na Figura 7.7 onde o valor a esquerda de cada posição indica a
palavra e o mais a direita a linha onde a palavra foi encontrada.
O analisador desenvolvido é invocado uma única vez e retorna a fila completa dos
tokens presentes no arquivo com o código fonte. Nesta etapa não são detectados erros de
escrita das palavras reservadas da linguagem R-Educ ou em suas estruturas.
tica livre de contexto especificada para a linguagem R-Educ, apresentada a seguir, para
realizar a verificação da corretude das sentenças escritas no código fonte. O algoritmo
implementado irá realizar uma verificação a cada token. Antes do início da função prin-
cipal, especificado pela palavra chave inicio, só são permitidas declarações de variáveis
e funções sem retorno. Dessa forma, as únicas palavras válidas para o primeiro token
serão tarefa, numero, texto e booleano. Ao encontrar uma dessas palavras o analisador
sintático verificará a corretude da sentença até o seu fim, baseado na estrutura definida na
gramática. Ao final da verificação de cada sentença, o código é traduzido acessando os
dados de mapeamento fornecidos pelo banco de dados e escrito no novo arquivo criado.
A gramática da linguagem R-Educ é especificada como segue:
Experimentos e Resultados
EducAval, bem como seus questionários e planilhas, e o menu ajuda do sistema, o qual
redireciona para uma wiki que possui todos os manuais de instalação de servidor local,
código fonte, manuais de utilização do sistema e da linguagem R-Educ, códigos prontos
e sugestões de atividades. No menu presente na lateral esquerda é possível ao aluno se
encaminhar ao módulo de programação, procurar um professor para ser acompanhado,
verificar seu relatório de desempenho e acessar o fórum de discussão.
O fórum do W-Educ, apresentado na Figura 8.2, permite que os usuários troquem in-
formações, compartilhem conhecimentos e permite a difusão de notícias acerca de com-
petições e da robótica de forma geral.
Caso o usuário acesse o menu Professores será apresentada a tela da Figura 8.3 que
mostra a lista de professores atualmente cadastrados no sistema, e permite que o usuá-
8.1. AMBIENTE W-EDUC 69
rio Aluno solicite acompanhamento ou envie uma mensagem pelo sistema ao professor
indicado.
Ao usuário do tipo Aluno é permitido solicitar a graduação nos sistema, essa fun-
cionalidade pode ser acessada ao visualizar o próprio perfil. Quando uma solicitação é
realizada a mensagem da Figura 8.4 é apresentada ao usuário. Uma lista de solicitações
feitas é apresentada ao administrador que decide se o usuário pode ser graduado ou não.
Caso a graduação seja aceita, o usuário passa a ter privilégios de professor no sistema.
relacionada ao cadastro dos tipos de dados está apresentado na Figura 8.5. Quanto a ge-
rência de alunos, o usuário do tipo Professor pode visualizar uma listagem com os alunos
que solicitaram acompanhamento e estão aguardando aceitação, seus alunos com seus
respectivos dados e estatísticas.
em linguagem R-Educ e ter a linguagem traduzida de seis formas diferentes. Cada uma
dessas instâncias possui suas funções, modo de compilação e envio do programa ao robô
específicos. As linguagens cadastradas atualmente estão dispostas na Figura 8.8. É possí-
vel adicionar uma nova linguagem a qualquer momento apenas preenchendo o formulário
de cadastro, não sendo necessário ao usuário se preocupar com configurações do servidor.
ao professor. A solicitação de correção de uma atividade feita pelo aluno ao seu profes-
sor é realizada a partir do envio do código escrito pelo aluno seguido de uma mensagem
pessoal.
por eles.
A etapa teórica é dividida em cinco níveis de acordo com o nível de ensino do estu-
dante. O nível 5 desta modalidade é destinada a alunos de qualquer ano do ensino médio
ou técnico. Os melhores estudantes deste nível, que nunca tiveram contato com ro-
bótica, são convidados a participar de um minicurso que ocorre durante a etapa prática
nacional do Olimpíada. Nestes minicursos são ensinados conceitos teóricos da robótica,
em seguida utilizando um kit de robótica educacional são instruídos quanto a montagem
e programação dos protótipos. A ideia é que ao fim dos dois dias e meio de minicurso os
estudantes possam efetuar o mesmo desafio, em proporções menores, que os participantes
da modalidade prática devem cumprir.
Durante cinco anos o grupo de pesquisa do laboratório Natalnet foi convidado a minis-
trar o minucurso oferecido nesta etapa da OBR. Nos primeiros três anos foram utilizados
os softwares proprietários que acompanhavam os kits de robótica em uso para realizar a
programação dos protótipos, no entanto, quando os alunos retornavam para as suas reali-
dades eles não podiam continuar com seus estudos. Esta tese foi densenvolvida e testada
tendo como um de seus objetivos suprir essa lacuna.
Nesta seção descreveremos inicialmente as duas experiências que fizeram uso de dois
76 CAPÍTULO 8. EXPERIMENTOS E RESULTADOS
8.2.1 Protótipo 01
Seguindo a metodologia de engenharia de software adotada elaboramos um primeiro
protótipo do sistema. Dentre os requisitos estabelecidos para a versão final este não pos-
suia fórum, relatório de desempenho, dicas de erros de compilação, relacionamento entre
usuários, acompanhamento de professor, solicitação de correção de código e tradução
para fins de comparação da linguagem R-Educ para linguagem alvo. Também não es-
tava bem estabelecido o cadastro de linguagens assim como seu módulo de envio. Dessa
forma, a dinamicidade e escalabilidade proposta ainda não estava em operação.
O ambiente, foi testado em um minicurso oferecido aos vencedores da etapa teórica
na etapa nacional da Olímpiada Brasileira de Robótica 2014. A proposta do minicurso,
era levar aos alunos do ensino médio que nunca tiveram contato com robótica, noções
básicas de robótica e programação. Ao total o minicurso contou com 23 alunos e dois
professores. Os kits de robótica disponíveis foram kits Lego Mindstorms EV3. Por se
tratar de um kit novo, este não contava ainda com uma biblioteca de programação de baixo
nível e os organizadores da olimpíada não possuiam a licença do software proprietário
que acompanha o kit. Dessa forma, desenvolvemos e incluímos como contribuição deste
trabalho, uma biblioteca de baixo nível chamada de CV3 que permite a programação deste
tipo de hardware em uma linguagem baseada em C.
A partir da especificação desta biblioteca realizamos o cadastro do CV3 no ambiente
desenvolvido e o curso foi ministrado utilizando o ambiente web e fazendo uso da lin-
guagem R-Educ sendo convertida pelo tradutor universal para a linguagem CV3 para em
seguida ser compilada e enviada ao robô.
A Figura 8.15 apresenta a tela de programação do Protótipo 01. A Figura 8.16 exibe
a tela inicial do ambiente, nela são dispostas as estatísticas e links para os documentos
relativos ao método EducAval, guias de ajuda, cadastro de linguagens e ambiente de pro-
gramação, alguns links como o para acesso do fórum ainda não estavam ativos. Após o
minicurso, foi realizada uma aplicação dos questionários do método EducAval aos pro-
fessores e alunos envolvidos.
Alguns alunos participantes reportaram que fazendo uso da ferramenta eles poderiam
no ano seguinte competir na etapa prática da Olimpíada. Ao término do curso, com
8.2. TESTE DOS PROTÓTIPOS 77
8.2.2 Protótipo 02
Em face dos erros e desafios encontrados no minicurso realizado em 2014, realizamos
analises e testes a fim de aprimorar o Protótipo 01. Para tal, realizamos uma modifica-
ção do servidor em uso, assim como definimos uma nova organização dos arquivos do
78 CAPÍTULO 8. EXPERIMENTOS E RESULTADOS
sistema, tendo em vista que as novas linguagens que estavam sendo cadastradas necessi-
tavam de uma nova forma de organização e nomenclatura. O banco de dados também foi
reorganizado.
Em 2015, a organização da Olimpiada Brasileira de Robótica decidiu utilizar em seu
minicurso oferecido na etapa nacional o kit Bot’N Roll One A. Este kit possui um con-
trolador compatível com a plataforma Arduino. A montagem deste dispositivo robótico,
apresentado na Figura 8.17 possibilita o contato com componentes eletrônicos comu-
mente utilizados como: resistores, capacitores, motores e microprocessadores. O desafio
passou a ser não só ensinar robótica para alunos que nunca tinham tido contato com ela,
mas ensinar conceitos de eletrônica e manipulação de seus componentes. Tornou-se ne-
cessário construir o robô, soldando seus componentes na placa de circuito impresso, e
programá-lo em apenas 2 dias e meio de curso.
robôs para percorrer um caminho onde era necessário seguir uma linha preta em uma
superfície branca, além de identificar e desviar de obstáculos ao longo do caminho. Ao
término do curso todos os estudantes conseguiram efetuar satisfatoriamente a tarefa pro-
posta.
Ao final do curso os alunos e professores responderam questionários do método Edu-
cAval a fim de que a ferramenta pudesse ser avaliada. Neste teste de protótipo ocorreu
um problema com a internet do servidor utilizado durante a execução da última ativi-
dade avaliativa do minicurso, gerando insatisfação por parte dos alunos que se sentiram
prejudicados.
Podemos observar, a partir da Figura 8.18, que existe uma discrepância significativa
entre os resultados obtidos pelos professores e alunos na avaliação do Q1. Foi constatada
8.2. TESTE DOS PROTÓTIPOS 81
uma diferença de notas de 4,87 pontos e um valor de variância igual a 14,32 para a nota
inferida pelos alunos e 0,50 para a nota inferida pelos professores. Para esse caso especí-
fico, os alunos e professores apresentaram discordância no conhecimento desse quesito.
Devido ao valor da variância ter sido maior para os alunos, podemos concluir que estes
não compreenderam o quesito avaliado. No entanto a variância calculada pelos valores
inferidos pelos professores foi insignificante em contraste com a dos alunos. A Figura
8.19, apresenta os valores de desvio padrão calculados para as notas inferidas por alunos
e professores.
A Tabela 8.1 apresenta as medidas de dispersão calculadas após a obtenção dos dados
nos questionários dos professores e alunos. A primeira coluna dispõe os quesitos avali-
ados. Na segunda, encontra-se o desvio padrão dos dados dos professores, seguidos dos
valores dos dados dos alunos. Na terceira coluna, vê-se a variância para casa usuário.
Observamos que os quesitos que apresentam os valores mais expressivos de variância
são Q4 e Q5. O quesito Q4 não apresenta uma diferença significativa entre os valores
de média, como mostrado na Figura 8.18. No entanto, tanto os professores quanto os
alunos relataram problemas com o software, o problema na execução se deu devido ao
problema com a conexão da internet no local. Nesse caso,a variância dos alunos foi de
7,50, bem acima dos professores que foi de 1,30, nesse quesito os alunos alegaram que
foram prejudicados devido a má conexão com a internet, prejudicando seu desempenho
no curso. A seguir apresentamos a declaração de um aluno sobre este problema:
82 CAPÍTULO 8. EXPERIMENTOS E RESULTADOS
"Apesar de ser cômodo usar uma interface online, uma offline facilitaria o
trabalho na falta de internet." (L. 16 anos)
"Esse software é muito útil para quem está iniciando seu aprendizado sobre
robótica, pois torna mais fácil seu entendimento sobre a programação." (S.
16 anos)
"O software ajuda na aprendizagem de forma simples, fica mais fácil apren-
der programação." (A. 17 anos)
Dois alunos ao serem questionados sobre que atividades poderiam ser realizadas com
o ambiente fizeram as seguintes afirmações que contemplam toda a proposta desta tese.
NXT, Lego Mindstorms RCX e H-Educ). Este software foi o melhor avaliado dentre os
que possuem ambiente de programação gráfica como uma de suas funcionalidades.
O software para robótica educacional LEGO NXT obteve suas maiores notas, superio-
res a 9,00, nos quesitos Q10 e Q11, nos possibilitando determinar que para os professores
o software favorece o processo de ensino e aprendizagem. Analisando as notas e fazendo
um comparativo com as notas dos alunos, não houve em nenhum quesito uma nota que
fosse superior as dos demais softwares. Para os professores e alunos os quesitos que ob-
tiveram maiores notas foram os Q11 e Q9, respectivamente, concluindo que dentre as
8.3. COMPARAÇÃO ENTRE AMBIENTES 87
características do software as que mais se destacam são: que o software atinge ao seu
público alvo e que favorece o processo de ensino.
Assim como os usuários do software RoboEduc, os usuários do software Bricxcc tam-
bém não chegaram a um consenso quanto aos principais atributos relativos ao software.
Para os alunos, os quesitos mais bem avaliados foram Q3, Q4 e Q9, mas para os professo-
res o software não obteve nenhuma nota superior aos outros softwares avaliados. Por isso,
esse software também é avaliado de forma individual a cada usuário. Para os professores
as maiores notas obtidas foram em Q1 e Q6 com nota 6,83, e apesar destas serem as notas
de maior destaque não podem ser consideradas como atributos relevantes do software ao
ser comparado os demais. Já para os alunos, Q3, Q4 e Q9 além de obterem notas supe-
riores aos demais softwares ainda possuem duas notas máximas, nos quesitos Q3 e Q9.
Concluimos, assim, que o software atinge o seu público alvo satisfazendo as necessidade
do usuário e garantindo que o software não falha durante o período de execução, do ponto
de vista dos usuários do tipo Aluno.
O software seguinte é o software para programação fornecido pela Lego para progra-
mação de Robôs da linha Lego Mindstorms EV3. Para os professores, Q11 foi o quesito
que obteve maior nota, garantindo que o software favorece o processo de ensino. E para
os alunos Q2 foi o melhor classificado, mostrando que o software tem boa capacidade
de execução em diferentes tipos de hardware. Observamos uma discrepância significa-
tiva entre os resultados de Q2, pois esse software possibilita a programação de robôs
Mindstorms, tanto NXT quanto EV3. De acordo com os alunos, estes são considerados
hardwares distintos e pelos professores não.
Ao analisar o próximo software, denominado Legal, percebemos que existem dois
quesitos entre os onze que se destacam, por apresentar as maiores nota frente aos demais.
Estes quesitos foram Q7 e Q11, inferimos então que o software apresenta o melhor layout
favorável ao uso e é o que mais favorece o processo de aprendizagem aprendizagem, de
acordo com os professores. Para os alunos, não existe qualquer quesito que obteve nova
superior aos demais softwares, porém o quesito Q9 foi o que obteve melhor nota, dessa
forma, podemos afirmar que o software atinge ao público alvo para o qual foi indicado.
Para os professores, o software Arduino IDE o obteve notas superiores aos demais em
cinco quesitos, sendo eles Q1, Q2 Q4, Q5 e Q6. Isso mostra que o software apresenta
facilidade em ser modificado e detecção de erros, além de garantia de que o software
não falha durante o período de execução, apresenta uma eficácia diante de objetivos es-
pecíficos, bem como rapidez no tempo de resposta. Este software, no entanto, apresenta
um conjunto de funcionalidades concisa o que possibilitou com que este fosse o segundo
software mais bem avaliado com média geral de 8,38.
88 CAPÍTULO 8. EXPERIMENTOS E RESULTADOS
Conclusão
lhos futuros.
Acióly, Benedito M., Benjamín R. C. Bedregal & Aarão Lyra (2002), Introdução à Teoria
das Linguagens Formais, dos Autômatos e da Computabilidade, Edições UnP.
Al-Kilidar, H., K. Cox & B. Kitchenham (2005), The use and usefulness of the iso/iec
9126 quality standard, em ‘International Symposium on Empirical Software Engi-
neering’.
Alimisis, Dimitris (2013), ‘Educational robotics: Open questions and new challenges’.
Alves, Rafael Machado & Fábio Ferrentini Sampaio (2014), Duinoblocks: Desenho e
implementação de um ambiente de programação visual para robótica educacional
baseado no hardware arduino, em ‘Congresso Brasileiro de Informática na Educa-
ção’.
Aroca, Rafael V., Renata P. Barros, Aquiles Burlamaqui & Luiz M. G. Gonçalves (2012),
‘Um robô por aluno: uma realidade possível’, Workshop de Robótica Educacional -
WRE 2012 - Fortaleza, Ceará .
Aroca, Rafael V., Renato Q. Guardiman & Luiz M. G. Gonçalves (2012), ‘Web-based
robot programming environment and control architecture’, Latin American Robotics
Symposium .
Aroca, Rafael Vidal (2013), Plataforma robótica de baixíssimo custo para robótica edu-
cacional, Dissertação de mestrado, Universidade Federal do Rio Grande do Norte.
91
92 REFERÊNCIAS BIBLIOGRÁFICAS
Belousov, Igor R., Ryad Chellali & Gordon Clapworthy (2001), Virtual reality tools for
internet robotics, em IEEE, ed., ‘ICRA’, pp. pp. 1878–1883.
Bredenfeld, Ansgar & Thorsten Leimbach (2010), ntl. conf. on simulation, modeling and
programming for autonomous robots.
Chrissis, Mary Beth, Mike Konrad & Sandy Shrum (2003), CMMI Guidlines for Process
Integration and Product Improvement, Addison-Wesley Longman Publishing Co.
Cristóforis, Pablo, Sol Pedre, Matías Nitsche, Thomas Fischer, Facundo Pessacg & Car-
los Di Pietro (2013), ‘A behavior-based approach for educational robotics activities’.
Dias, Josualdo, Débora Abdalla & Hugo Saba (2015), Ensino da robótica livre como
instrumento de aprendizado interdisciplinar na rede pública de educação profissional
e tecnológica, em ‘Workshop sobre Educação em Computação’.
DIEB (2012), ‘Dicionário interativo da educação brasileira: Educa brasil 2012’, Disponí-
vel em: http://www.educabrasil.com.br/eb/dic/dicionario.asp. Acesso em: 01 junho
2013.
Eguchi, Amy (2012), ‘Educational robotics theories and practice: Tips for how to do it
right’.
REFERÊNCIAS BIBLIOGRÁFICAS 93
Fernandes, Carla, Sarah Thomaz & Luiz Gonçalves (2012), Uma nova abordagem em
robótica educacional utilizando simuladores e kits de robótica livre, em ‘Workshop
de Robótica Educacional’.
Garrett, Aaron & David Thornton (2005), A web-based programming environment for
lego mindstorms robots, em ‘Proceedings of the 43rd annual Southeast regional con-
ference - Volume 2’, New York, NY, USA.
Garvin, D. (1984), What Does ’Product Quality’ Really Mean?, Sloan Management Re-
view, pp. 15–45.
Hopcroft, John E., Rajeev Motwani & Jeffrei D Ullman (2015), Introdução à Teoria de
Autômatos , Linguagens e Computação (2Âa Edição).
Kurose, James & Keith W. Ross (2010), Redes de Computadores e a Internet - Uma
Abordagem Top-down, Addison-Wesley.
Kwon, D., H. Kim, J. Shim & W. Lee (2012), ‘Algorithmic bricks: A tangible robot
programming tool for elementary school students’.
LLC., Modkit (2016), ‘Mod kit’, Disponível em: http://www.modkit.com. Acesso em: 13
de junho de 2016.
Lopez, D., R. Cedazo, F.M. Sanchez & J.M. Sebastian (2009), Ciclope robot: Web-based
system to remote program an embedded real-time system, em ‘Industrial Eletronics
IEEE Transaction’.
Metrics and Models in Software Quality Engineering (2002), 1 ed.a edição, Boston:
Addison-Wesley.
Miranda, Leonardo C., Fábio F. Sampaio & José Antônio S. Borges (2010), ‘Robofácil:
Especificação e implementação de um kit de robótica para a realidade educacional
brasileira’, Revista Brasileira de Informática na Educação 18(3).
Miroslav, Kulich, Jan Chudoba, Karel Kosnar, Tomás Krajník, Jan Faigl & Libor Preucil
(2013), ‘Syrotek - distance teaching of mobile robotics’.
Oracle (2016), ‘Integrated cloud applications and platform services’, Disponível em:
http://www.oracle.com. Acesso em: 19 de agosto de 2016.
Paul Oman, Shari Lawrence Pfleeger Paul Oman, Shari Lawrence Pfleeger Paul Oman &
Shari Lawrence Pfleeger (1996), Applying Software Metrics, Wiley-IEEE Computer
Society Press.
PETe, Projeto Educação Tecnológica (2010), Manual do Usuário Módulo 2, PNCA Ro-
bótica e Eletrônica LTDA, São Carlos, SP.
Pflegeer, S. L. (2001), Software Engineering: Theory and Practice, New Jersey : Prentice
Hall.
Pitta, Renata (2008), Roboeduc - uma ferramenta para programação de robôs lego, Dis-
sertação de mestrado, Universidade Federal do Rio Grande do Norte.
Pitta, Renata, Sarah Thomaz, Akynara Aglaé, Samuel Azevedo, Aquiles Burlamaqui &
Luiz Marcos Gonçalves (2010), Roboeduc: Um software para programação em ní-
veis, em ‘WorkShop de Informática na Educação - WIE’.
Quintela, H., R. Q. Dias & M. R. Teixeira (2006), Análise dos impactos na qualidade de
software em instituições financeiras segundo a norma iso/iec 9126 na adoção das
práticas de testes do modelo cmmi, em ‘Relatórios de Pesquisa em Engenharia de
Produção’, Vol. Volume 6 de ISSN - 1678-2399.
96 REFERÊNCIAS BIBLIOGRÁFICAS
Resnick, Mitchel, John Maloney, Andrés Monroy-Hernández, Natalie Rusk, Evelyn East-
mond, Karen Brennan, Amon Millner, Eric Rosenbaum, Jay Silver, Brian Silverman
& Yasmin Kafai (2009), ‘Scratch: Programming for all’.
Rocha, Ana Regina C., José C. Maldonado & Kival C. Weber (2001), Qualidade de soft-
ware: Teoria e Prática, Prentice Hall.
Sá, Sarah T. L. (2011), ‘H-educ: Um hardware de baixo custo para a robótica educacio-
nal’, Trabalho de Conclusão de Curso, UFRN, Natal/RN.
Sá, Sarah T. L., Carla C. Fernandes, Renata P. Barros, Victor P. Torres & Luiz M. G. Gon-
çalves (2013), Web based configurable and multiplatform development environment
for educational robotics, em ‘16th International Conference on Advanced Robotics’,
Montevideo.
Santos, Elci A. A., Eduardo L. Fermé & Elsa M. S. Fernandes (2006), Droide virtual:
Utilização de robôs na aprendizagem colaborativa da programação através da web,
em ‘V Conferência Internacional de Tecnologias de Informação e Comunicação na
Educação’, Minho, Portugal, pp. 263 – 267.
Schons, Claudine, Érica Primaz & Grazieli de Andrade Pozo Wirth (2004), ‘Introdução a
robótica educativa na instituição escolar para alunos do ensino fundamental da dis-
ciplina de língua espanhola através das novas tecnologias de aprendizagem’, Anais
do I Workshop de Computação da Região Sul .
Tzafestas, Spyros G. (2009), Web Based Control and Robotics Education, Springer.
W3Techs (2016), ‘Usage statistics and market share of ubuntu for websites’.
URL: http://w3techs.com/technologies/details/os-ubuntu/all/all
Webber, C., E. Boff & F. Bono (2009), Ferramenta especialista para avaliação de software
educacional, em ‘XX Simpósio Brasileiro de Informática na Educação’.