Você está na página 1de 119

U NIVERSIDADE F EDERAL DO R IO G RANDE DO N ORTE

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

W-Educ: Um Ambiente Web, Completo e


Dinâmico para Robótica Educacional

Sarah Thomaz de Lima Sá

Orientador: Prof. Dr. Luiz Marcos Garcia Gonçalves

Tese de Doutorado apresentada ao Pro-


grama de Pós-Graduação em Engenharia
Elétrica e de Computação da UFRN (Área de
concentração: Engenharia de Computação)
como parte dos requisitos para obtenção do
título de Doutor em Ciências.

Número de ordem PPgEEC: D181


Natal, 29 de Agosto de 2016.
Catalogação da Publicação na Fonte
Universidade Federal do Rio Grande do Norte - Sistema de Bibliotecas
Biblioteca Central Zila Mamede / Setor de Informação e Referência

Sá, Sarah Thomaz de Lima.


W-Educ: Um ambiente web, completo e dinâmico para robótica
educacional / Sarah Thomaz de Lima Sá. - 2016.
117 f. : il.

Tese (doutorado) - Universidade Federal do Rio Grande do Norte,


Centro de Tecnologia, Programa de Pós-Graduação em Engenharia
Elétrica e de Computação. Natal, RN, 2016.
Orientador: Prof. Dr. Luiz Marcos Garcia Gonçalves.

1. Robótica educacional - Tese. 2. Ambiente web - Tese. 3.


Tradutor universal - Tese. I. Gonçalves, Luiz Marcos Garcia. II.
Título.

RN/UF/BCZM CDU 004.896


A Deus, por ter me criado, amado,
salvado e guiado meus passos.
Agradecimentos

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.

A equipe do laboratório NatalNet, em especial Francisco Bianor, João Marcos, Diogo e


Sebastião por toda ajuda e dedicação para a conclusão desta tese.

A Capes, pelo apoio financeiro.


Como é feliz aquele que não segue o
conselho dos ímpios, não imita a
conduta dos pecadores, nem se
assenta na roda dos zombadores! Ao
contrário, sua satisfação está na lei
do Senhor, e nessa lei medita dia e
noite. É como árvore plantada à
beira de águas correntes: Dá fruto
no tempo certo e suas folhas não
murcham.
Tudo o que ele faz prospera!
Salmos 1.1-3
Resumo

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.

Palavras-chave: Ambiente de Web, Robótica Educacional, Tradutor Universal.


Abstract

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.

Keywords: Web Environment, Educational Robotics, Universal Translator.


Sumário

Sumário i

Lista de Figuras v

Lista de Tabelas vii

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

5 Método para Avaliação de Softwares para Robótica Educacional 41


5.1 Questionários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.2 Análise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3 Estudo de Caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6 Kits de Robótica de Baixo Custo 47


6.1 LabsRia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.1.1 Montagem do Protótipo - LabsRia . . . . . . . . . . . . . . . . . 48
6.2 PetBot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.2.1 Montagem do Protótipo - PetBot . . . . . . . . . . . . . . . . . . 50

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

2.1 Fases de um compilador . . . . . . . . . . . . . . . . . . . . . . . . . . 18


2.2 Interação entre analisador léxico e sintático . . . . . . . . . . . . . . . . 19

3.1 Ambientes de Desenvolvimento Desktop . . . . . . . . . . . . . . . . . . 25


3.2 Ambientes de Desenvolvimento Desktop . . . . . . . . . . . . . . . . . . 27
3.3 Ambiente de programação do ADWN . . . . . . . . . . . . . . . . . . . 29
3.4 Ambiente de programação textual do Codebender . . . . . . . . . . . . . 30
3.5 Versão web do ModKit para VEX . . . . . . . . . . . . . . . . . . . . . 31
3.6 Ambiente de programação do OpenRoberta . . . . . . . . . . . . . . . . 32

5.1 Ciclo de Utilização do Método . . . . . . . . . . . . . . . . . . . . . . . 42


5.2 Gráfico comparativo entre as médias dos professores e alunos. . . . . . . 44
5.3 Avaliação quanto às funcionalidades do software . . . . . . . . . . . . . 45

6.1 Flutuador Espaguete . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48


6.2 Montagem do Protótipo . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.3 LabsRia - Primeiro protótipo . . . . . . . . . . . . . . . . . . . . . . . . 49
6.4 Marcações e cortes na garrafa pet . . . . . . . . . . . . . . . . . . . . . . 50
6.5 Esquemáticos dos circuitos dos motores e sensor de ultrassom . . . . . . 51
6.6 Robô PetBot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7.1 Arquitetura Geral do Sistema . . . . . . . . . . . . . . . . . . . . . . . . 54


7.2 Diagrama de Caso de Uso - Aluno . . . . . . . . . . . . . . . . . . . . . 54
7.3 Diagrama de Caso de Uso - Professor . . . . . . . . . . . . . . . . . . . 55
7.4 Diagrama de Caso de Uso - Administrador . . . . . . . . . . . . . . . . . 56
7.5 Fluxograma do Processo de Escrita, Tradução e Compilação . . . . . . . 57
7.6 Modelo de cadastro de linguagem . . . . . . . . . . . . . . . . . . . . . 60
7.7 Fila de tokens gerada a partir do Algoritmo 1 . . . . . . . . . . . . . . . 63

8.1 Tela principal do W-Educ . . . . . . . . . . . . . . . . . . . . . . . . . . 68


8.2 Fórum de discussão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

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

3.1 Comparativo entre os ambientes de desenvolvimento desktop . . . . . . . 32


3.2 Comparativo entre os ambientes de desenvolvimento web . . . . . . . . . 33
3.3 Comparativo entre métodos de avaliação . . . . . . . . . . . . . . . . . . 34

7.1 Palavras Reservadas da Linguagem R-Educ . . . . . . . . . . . . . . . . 58


7.2 Funções Cadastradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.3 Lista de Erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8.1 Medidas de Dispersão . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82


8.2 Melhores Softwares por Quesitos Avalidados . . . . . . . . . . . . . . . 88

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:

• Um kit de robótica, composto de um controlador lógico programável, sensores,


motores e peças para a montagem da estrutura do protótipo robótico;
• Um ambiente de programação;
• Um dispositivo computacional capaz de executar satisfatoriamente o ambiente es-
colhido e se comunicar com o protótipo;
• Um espaço adequado para o desenvolvimento das atividades propostas.

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

Para o projeto e desenvolvimento deste trabalho, realizamos inicialmente uma pes-


quisa bibliográfica acerca das principais linguagens de programação utilizadas em robó-
tica, bem como suas definições e paradigmas, a partir da qual foi possível definir um
conjunto de padrões considerados importantes para a criação desta ferramenta. Estende-
mos a pesquisa aos ambientes de programação mais utilizados em robótica educacional
e, para isto, foi necessário desenvolver um método de avaliação homogêneo para este
tipo de software, que também é outra contribuição deste trabalho. A partir da avaliação
dos softwares para programação de robôs mais utilizados no cenário das competições de
robótica, estabelecemos um conjunto de requisitos que deveriam ser contemplados pela
ferramenta proposta. Definimos, também, quais tecnologias deveriam ser utilizadas para
o seu desenvolvimento.
Em seguida, ainda na fase inicial de desenvolvimento, implementamos protótipos do
ambiente, tomando como base o trabalho anterior desenvolvido [Sá et al. 2013], e levando
em consideração os requisitos e funcionalidades definidos na fase de pesquisa e estrutu-
ração do projeto. Os kits de robótica de baixo custo construídos foram concebidos com
a finalidade de serem utilizados no ambiente e de permitirem que este seja considerado
completo, indo desde a plataforma de hardware ao software. Um banco de dados para
cadastro das linguagens e usuários foi desenvolvido em Java BD, um servidor de banco
de dados escrito em Java, com total suporte a SQL, JDBC e JavaEE. A plataforma web foi
desenvolvida fazendo uso da tecnologia Java EE, uma plataforma de programação para
servidores na linguagem de programação Java.
A ferramenta proposta teve suas duas versões testadas e validadas em um curso in-
trodutório (prático) de robótica, oferecido aos vencedores da etapa teórica da Olímpiada
Brasileira de Robótica em 2014 e 2015. Como será mostrado, os resultados indicam que,
fazendo uso do ambiente proposto, é possível realizar a programação de qualquer dispo-
sitivo robótico que siga os parâmetros estabelecidos, utilizando uma única linguagem de
programação em um ambiente web gratuito. Com isso, professores e alunos de robótica
educacional não precisam necessariamente mudar de plataforma de desenvolvimento nem
ensinar/aprender novas linguagens de programação quando houver troca do hardware uti-
lizado.

1.1 Escopo do Trabalho


O Laboratório Natalnet da Universidade Federal do Rio Grande do Norte desenvolve
projetos na área de robótica e educação desde o ano de 2003. O foco inicial do traba-
lho foi inclusão digital dos alunos de uma escola pública do estado do Rio Grande do
1.1. ESCOPO DO TRABALHO 5

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

níveis de conhecimento em robótica ou até mesmo sem nenhum conhecimento possam


programar e fazer uso da ferramenta desenvolvida. A intenção é permitir uma maior
flexibilidade do uso de dispositivos robóticos em sala de aula através de um ambiente de
desenvolvimento que permite aos usuários a edição, compilação e execução de programas
de qualquer dispositivo robótico utilizando apenas um navegador web. No ambiente, será
possível cadastrar-se como aluno de algum professor e receber orientações do mesmo,
será permitido ao professor cadastrar novas linguagens de programação para que o kit
que ele utiliza possa ser programado através do ambiente.
Com a solução proposta, qualquer dispositivo que possua um navegador web, pode ser
usado como estação de desenvolvimento de programas para protótipos robóticos. Além
disso, nos motivamos muito pela difusão dessa ferramenta e sua utilização não só no
contexto escolar. A utilização fora do ambiente escolar pode ser realizada por meio de
tarefas enviadas através do sistema pelo professor, estatísticas fornecidas ao aluno e um
fórum que permite com que os alunos e professores compartilhem suas experiências [W-
Educ 2016a].

1.3 Tema, Problema e Hipótese de Pesquisa


Além do mero desenvolvimento de ferramentas tecnológicas, o tema de pesquisa em
foco no presente trabalho possui várias questões teóricas, além de possuir um contexto
multidisciplinar, pois está intrinsecamente relacionado, também, com a área de Educa-
ção, além dos contextos em Ciência da Computação, Engenharia Mecatrônica, Elétrica
e Mecânica, inerentes à área de Robótica Educacional. Ferramentas dessas disciplinas
são necessárias para o desenvolvimento de aplicações que sejam utilizadas de forma efi-
ciente no contexto do processo ensino-aprendizagem. Assim, dentro da área de Robótica
Educacional, estudamos e apresentamos soluções para o:

• 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.

Experimentos anteriores mostram que, ao utilizar ferramentas de robótica educacio-


nal, os alunos, ficam envolvidos, interessados e empolgados com uma nova maneira de
aprender. Em particular, o entusiasmo de trabalhar com robôs reais mantêm os alunos mo-
tivados, o que faz melhorar seus rendimentos escolares [Silva 2008, Pitta et al. 2010, Dias
8 CAPÍTULO 1. INTRODUÇÃO

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?

A partir desta questão de pesquisa, nos propomos a estudar, verificar e analisar os


hardwares e softwares existentes, e pudemos encontrar lacunas em todos eles. Uma des-
sas lacunas é que as ferramentas existentes não permitem uma continuidade do processo,
de forma suave, caso algum deles (hardware ou software) tenha que ser trocado, por des-
continuidade de fabricação ou por melhoria tecnológica, por exemplo. Geralmente, cada
ferramenta tecnológica (kit robótico) vem acompanhada de um software diferente, acarre-
tando na necessidade do aprendizado de uma nova linguagem de programação por todos
os usuários envolvidos. Embasados pelos aspectos teóricos do problema em questão, for-
mulamos a seguinte hipótese de pesquisa, a ser comprovada empiricamente, no decorrer
deste trabalho:

• 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.

Ou seja, apresentamos neste trabalho, justamente, uma forma de tentar estender, ao


máximo possível, a vida útil da linguagem de programação e o ambiente de interação
professor-aluno, mesmo no caso de troca do hardware. Isto garante a continuidade do
processo ensino-aprendizagem, uma vez que tantas plataformas existem, cada qual com
suas características particulares. A ideia é justamente tentar desenvolver um formalismo
que permita a tradução para a linguagem R-Educ, que passa então a ser utilizada de ma-
neira mais abrangente. Esta linguagem não tem intenção de ser a única linguagem, porém
uma solução a ser adotada no caso de escolas e outras instituições que não pretendem ficar
trocando o ambiente de programação e de interação, em todo momento. A plataforma que
será detalhada aqui é de código aberto e livre, estando disponível na Internet.
1.4. METODOLOGIA 9

1.4 Metodologia

Como citado, para o desenvolvimento deste trabalho, realizamos inicialmente uma


pesquisa bibliográfica acerca das principais linguagens de programação utilizadas em ro-
bótica, bem como suas definições e paradigmas, a partir da qual foi possível definir um
conjunto de padrões considerados importantes para a criação deste ambiente, tendo em
vista se tratar de um ambiente dinâmico que pode ser expansível a qualquer linguagem.
Nesta etapa, desenvolvemos também um método para avaliação de softwares para robótica
educacional a fim de auxiliar na categorização e definição dos requisitos da ferramenta.

Em seguida, na fase de desenvolvimento de software, realizamos uma pesquisa sobre


as tecnologias existentes para a implementação do ambiente. Para tal, estabelecemos a
necessidade de migrar completamente a plataforma já desenvolvida para tecnologias que
viabilizassem o uso em larga escala desta ferramenta e que fossem passíveis de serem exe-
cutadas em diferentes plataformas. Estabelecemos como requisito básico a necessidade
de um servidor de banco de dados, uma plataforma web e uma linguagem para implemen-
tação e atualização do compilador R-Educ.

Concomitante a fase de desenvolvimento de software, realizamos o desenvolvimento


dos hardwares para testar a plataforma. Estes são projetados de forma a viabilizar a repro-
dução de sua confecção. Nesta etapa, são elaborados manuais, guias de funcionalidades e
vídeos instrucionais.

A quarta fase é o desenvolvimento de protótipos do ambiente dinâmico, utilizando


os dados obtidos na fase de pesquisa. Incluímos no ambiente guias web de utilização
para aluno e professor, manuais para implantação de um servidor local, guias de cadastro
de linguagens, manual da linguagem R-Educ, exemplos de programas básicos prontos,
sugestões de atividades interdisciplinares, manual completo de confecção e utilização do
kit de baixo custo que fará parte deste trabalho.

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

1.5 Contribuições e Aplicações


Diversos projetos são encontrados na literatura apresentando diferentes abordagens
para a programação de robôs em ambientes educacionais. Nestas, um dos problemas
encontrados é a falta de ambientes capazes de atender ao perfil de diferentes usuários
com níveis de conhecimento diferentes em robótica. O presente trabalho atende a esses
requisitos e traz aos interessados, em utilizar a robótica educacional, uma ferramenta
web livre e gratuita, que pode ser utilizada em qualquer plataforma não sendo necessário
computador com funcionalidades específicas, sendo todo o processamento de compilação
executado no servidor.
O trabalho fornece à comunidade uma ferramenta completa e gratuita para robótica
educacional, incluindo modelos de aula, instruções detalhadas de como construir dois
kits de robótica de baixo custo, manuais de utilização e guias de implantação, ambiente
de programação textual, um método homogêneo para análise e avaliação de softwares
para robótica educacional, tudo isso fornecido em um ambiente web que também permite
a interação entre professores e alunos.
A seguir elencamos, por ordem de relevância, algumas contribuições apresentadas
neste trabalho:
• Tradutor universal de linguagens;
• Utilização de diversos hardwares para robótica utilizando apenas uma linguagem;
• Flexibilização do uso de hardwares em sala de aula;
• Ambiente web para robótica educacional;
• Método para avaliação de softwares para robótica educacional;
• 2 kits de robótica livre de baixo custo.

1.6 Estrutura do texto


Este trabalho introduz uma proposta de desenvolvimento de uma ferramenta web com-
pleta dinâmica para programação de robôs em um ambiente de aprendizagem de robótica
educacional.
No Capítulo 1 apresentamos o escopo do trabalho, destacando o contexto no qual este
trabalho se insere bem como os trabalhos desenvolvidos na área de robótica educacional
no mesmo laboratório. Expomos, também, uma visão geral da motivação deste trabalho,
que é a criação de uma solução para o problema da troca e inserção de novos kits de ro-
bótica em um ambiente de robótica educacional. Descrevemos em seguida a metodologia
utilizada para o desenvolvimento do trabalho e as aplicações da tecnologia proposta.
1.6. ESTRUTURA DO TEXTO 11

O Capítulo 2 apresenta o embasamento teórico necessário à compreensão deste traba-


lho, sendo discutidos aspectos e benefícios já estabelecidos da robótica educacional, os
principais conceitos referentes a linguagens de programação e seus paradigmas, lingua-
gens de programação web, teoria a cerca dos compiladores, metodologias de avaliação de
softwares educacionais e a metodologia de engenharia de software utilizada.
Em seguida, o Capítulo 3 apresenta uma revisão do estado da arte. Neste são discu-
tidos diversos trabalhos que propõem ambientes de desenvolvimento para robótica edu-
cacional, web ou local, e os métodos para avaliação de softwares educacionais. Neste
Capítulo será realizada uma análise categórica das ferramentas apresentas com a proposta
deste trabalho, além de uma avaliação das principais funcionalidades de cada uma dessas
ferramentas.
No Capítulo 4, apresentaremos em detalhes o problema encontrado e a solução pro-
posta, incluindo nesta descrição aspectos de implementação e estruturação da ferramenta.
Especificaremos o escopo da ferramenta, e faremos uma breve descrição de cada aspecto
do ambiente proposto.
O Capítulo 5 apresenta o método homogêneo de avaliação de softwares para robótica
educacional, um estudo de caso da aplicação desse método e os resultados da aplicação
desse método com seis softwares voltados a este fim.
Os kits de baixo custo para robótica educacional, também considerados contribuições
deste trabalho, serão apresentados no Capítulo 6. Neste serão discutidas os princípios de
criação de cada um e apresentada a sua metodologia de montagem.
O Capítulo 7 apresenta as implementações realizadas. Nesta seção descreveremos
as estruturas dos protótipos desenvolvidos, diagramas descrevendo o funcionamento e
enquadramento desta ferramenta no ambiente de aprendizagem da robótica educacional.
No Capítulo 8 apresentaremos os experimentos realizados com essa ferramenta, mo-
delo de abstração de linguagens alcançado, kits utilizados e resultados obtidos a partir da
aplicação do método de avaliação. Por fim, apresentaremos um comparativo dos dados
obtidos a partir do método de avaliação entre a ferramenta proposta e as mais utilizadas
no cenário nacional.
A conclusão do trabalho se dá no Capítulo 9, com aferições acerca do trabalho, restri-
ções e sugestões de trabalhos futuros.
12 CAPÍTULO 1. INTRODUÇÃO
Capítulo 2

Fundamentação Teórica

Com o objetivo de melhor viabilizar a compreensão deste trabalho, apresentamos


neste Capítulo 2 os conceitos e técnicas já consolidadas na literatura, relacionados com
o assunto proposto como tema de pesquisa. Iniciamos elucidando definições, bem como
aspectos metodológicos e práticos da robótica educacional, linguagens de programação,
seus tipos, e como é realizada a estruturação de compiladores. Apresentamos ainda, em
seguida, conceitos relativos à avaliação e qualificação de softwares educacionais.

2.1 Robótica Educacional


Existe uma busca atual constante de inserção de novas tecnologias em sala de aula.
Essa busca visa tanto satisfazer as necessidades dos alunos e professores quanto pro-
mover uma maior qualidade de ensino, permitindo com que os ambientes de ensino-
aprendizagem se tornem mais ricos e motivadores [Miranda 2006]. Dentre as tecnologias
emergentes, está a robótica educacional ou robótica pedagógica, que pode ser definida
de forma simples como sendo um ambiente de aprendizagem que reúne materiais de su-
cata ou kits de montagem com dispositivos controláveis ou programáveis por computador
[DIEB 2012].
As oficinas de robótica educacional podem possuir vários objetivos e podem utili-
zar diferentes metodologias. Porém, no geral, caracterizam-se como um ambiente no
qual os alunos seguem um conjunto de instruções e manuais ou criam e experimentam
a montagem e programação do seu próprio protótipo robótico [Fortes 2007, Silva 2008,
DIEB 2012]. Nas oficinas, são propostos desafios que são apresentados de forma lúdica e
atrativa aos alunos, podendo relacionar diversas temáticas, como por exemplo: artes, ci-
bernética, física, matemática, ética e responsabilidade social. As oficinas de robótica pos-
sibilitam que os desafios propostos pelo professor mediador sejam discutidos em grupo,
gerando assim uma forte contribuição ao aprendizado colaborativo e estímulo à criação
14 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

de um método científico para obtenção de soluções.


As metodologias mais utilizadas para robótica educacional geralmente organizam as
oficinas em quatro etapas [Miranda 2006]:

• Exposição do desafio interdisciplinar que deverá ser solucionado pelos alunos;


• Exploração e discussão das potenciais soluções;
• Implementação da solução escolhida, nesta etapa é realizada a montagem e progra-
mação do protótipo robótico;
• Teste e análise dos resultados, caso os resultados não sejam satisfatórios os alunos
devem voltar à segunda etapa.

A ferramenta da robótica educacional, aplicada como exposto, estimula a exploração


e investigação de problemas concretos, estimula o raciocínio lógico, coordenação motora,
criatividade, concentração, incentiva o trabalho colaborativo, introduz ao método cientí-
fico e erro construtivo [Zilli 2004], além de permitir uma maior transversalidade curricular
[Barriuso et al. 2004, Santos et al. 2006].

2.1.1 Hardwares para Robótica Educacional


Na etapa de montagem do protótipo robótico em uma oficina de robótica, faz-se neces-
sário o uso de um hardware que inclui, comumente, um controlador lógico programável
que pode ou não estar associado a um kit de robótica. Um kit de robótica é composto
por um conjunto de peças que auxiliam na construção da parte física de um robô. Os
hardwares que possuem um controlador lógico programável são aqueles em que os usuá-
rios podem implementar algoritmos para modificar o comportamento do robô ao longo
do tempo. Já os hardwares que não possuem este tipo de componente executam sempre o
mesmo conjunto de instruções.
Existem diferentes tipos de hardwares (associados ou não a kits de robótica) que po-
dem ser utilizados em uma oficina de robótica educacional. Neste trabalho utilizaremos a
classificação dos hardwares em três categorias: kits comerciais e kits com sucata (material
alternativo) e os kits com peças e materiais eletrônicos.
A primeira categoria está relacionada aos kits que podem ser adquiridos comercial-
mente, sendo trazidos prontos de fábrica, são exemplos deste tipo o kit LEGO Mindstorms
EV3 [LEGO 2011] e o Vex [Vex 2011]. Nota-se que esses kits apresentam uma qualidade
de material melhor quando comparados aos das demais categorias. A segunda categoria
está relacionada aos kits cujos componentes utilizados na montagem da carcaça do robô
são, em sua maioria, provenientes de lixo eletrônico. Um trabalho desenvolvido nesta área
2.1. ROBÓTICA EDUCACIONAL 15

é o SH-Educ [Sá 2011] e o trabalho de Pinto (2011). Já a terceira categoria, engloba os


kits construídos manualmente, mas formado por componentes eletrônicos e peças que são
disponíveis comercialmente. Dentre os trabalhos realizados nesta vertente está o N-Bot
[Aroca, Barros, Burlamaqui & Gonçalves 2012].

2.1.2 Ambientes de Desenvolvimento para Robótica Educacional


Os protótipos robóticos montados não são constituídos apenas de aparatos mecâni-
cos. Comumente, os kits de robótica educacional incluem um dispositivo lógico, passível
de ser programado através de um software. Neste trabalho, chamaremos estes softwa-
res de ambientes de desenvolvimento para robótica educacional. Estes possibilitam que
comandos sejam escritos, ou montados, e compilados para a linguagem de máquina do
dispositivo lógico.
Ambientes de desenvolvimentos para robótica educacional devem permitir também
que os códigos compilados sejam enviados para o protótipo robótico montado e este deve
ser passível de executar os comandos. Estes ambientes podem ser categorizados em ambi-
entes web ou ambientes desktop. Nos primeiros, a arquitetura de funcionamento é do tipo
cliente-servidor [Kurose & Ross 2010], neste caso, todo o custo computacional é requi-
sito do servidor e não da máquina do cliente. No segundo caso, geralmente, é necessária
uma instalação de software na máquina local, devendo esta possuir todos os requisitos
necessários pelo sistema.

Ambientes Web para Robótica Educacional

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].

2.2 Linguagens de Programação


O uso de uma linguagem de programação torna possível a comunicação entre os seres
humanos e as máquinas. O dicionário Aurélio [Dicionário Aurélio 2013] define-a como:

"Conjunto de instruções e regras de composição e encadeamento, por meio


do qual se expressam ações executáveis por um computador, seja direta-
mente, seja por meio de processos de compilação, interpretação ou mon-
tagem."

A linguagem de programação permite ao programador especificar precisamente sobre


quais dados um computador vai atuar, como estes dados serão armazenados ou transmiti-
dos e quais ações devem ser tomadas ao se deparar com determinadas circunstâncias. O
conjunto de palavras chamadas de tokens, compostas de acordo com um conjunto de re-
gras de formação, constitui o código fonte de um algoritmo. O código fonte é, em última
instância, a linguagem entendível pelas pessoas que deve ser traduzido para gerar o código
de máquina a fim de que possa ser entendido e executado pelo processador (máquina).
Conceitos relativos à linguagens de programação são estudados pela área de Teoria
das Linguagens Formais e dos Autômatos (LFA). Essa teoria tem por objetivo estudar
e definir os modelos matemáticos que possibilitam a especificação e o reconhecimento
de linguagens, suas classificações, estruturas, propriedades, características e relaciona-
mentos. Podemos dizer que as linguagens formais são uma abstração das características
gerais de uma linguagem de programação, baseadas na área de Teoria da Computação e
possuem um conjunto de símbolos, regras de formação de sentenças, entre outros [Acióly
et al. 2002].
Uma linguagem formal nos diz todas as regras que são explicitamente declaradas em
termos das cadeias de símbolos que podem ocorrer nela. Uma linguagem formal L sobre
um alfabeto ∑ é um subconjunto de ∑∗ , isto é, o conjunto de todas as cadeias (finitas)
obtidas concatenando-se zero ou mais símbolos de ∑. O alfabeto ∑ é um conjunto não-
vazio e finito de símbolos.
As representações são feitas por reconhecedores e geradores [Hopcroft et al. 2015].
Os reconhecedores são dispositivos formais que servem para verificar se uma sentença
pertence ou não à determinada linguagem. Ou seja, se a sentença pode ou não ser for-
2.2. LINGUAGENS DE PROGRAMAÇÃO 17

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.

2.2.1 Desenvolvimento de Programas

O computador deve conter mecanismos capazes de converter os comandos dados em


linguagem de alto nível (linguagens de programação em geral) para a linguagem de má-
quina (códigos binários). Esta tarefa de conversão é feita através de um programa que
recebe as instruções em linguagem de alto nível e retorna como saída outro programa
constituído de instruções em código de máquina. Ao programa original, em linguagem
de alto nível, dá-se o nome de programa fonte e ao resultado, em linguagem de máquina,
de programa objeto [Gomes 2012]. Apresentamos nesta seção as principais etapas de
geração de um programa.
A primeira etapa para geração de um programa é a codificação, está é dada pela escrita
utilizando uma determinada linguagem de programação das instruções que a máquina
deve realizar para alcançar o resultado almejado. Para realização desta tarefa é preciso
utilizar ambientes integrados de desenvolvimento ou editores. É possível nesta etapa
utilizar qualquer editor para gerar o programa fonte. Porém, alguns ambientes oferecem
ferramentas de edição mais poderosas, com reconhecedores e realçadores das palavras
chaves de uma linguagem, geração do código fonte, possibilidade de projeto de interfaces
gráficas, etc.
A segunda etapa é a tradução do programa fonte em programa alvo. Sabemos que,
independente da linguagem de programação utilizada e da arquitetura do sistema compu-
tacional em uso, o programa fonte não é executável diretamente pela unidade de proces-
samento. A linguagem é uma ferramenta que permite apenas que o programa seja legível
a olhos humanos. Para que o programa fonte seja executável, é necessário que ele seja
traduzido para o código de máquina do processador que faz parte da arquitetura do sis-
tema. Esta tarefa é realizada de forma automática pelos montadores e compiladores. O
programa alvo gerado por estas ferramentas é apresentado de acordo com o sistema de
numeração binária.
18 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

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].

Figura 2.1: Fases de um compilador

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.

Figura 2.2: Interação entre analisador léxico e sintático

2.3 Qualidade de Software


A fim de alcançar níveis cada vez mais altos de qualidade de software torna-se neces-
sário melhorar cada etapa de seu ciclo de vida [Paul Oman & Pfleeger 1996]. Um dos
alvos de pesquisa dos últimos anos tem sido sobre a avaliação da qualidade de software.
20 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

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]:

• Qualidade de produtos de software: procura assegurar a qualidade dos produtos


gerados.
• Qualidade de processos de software: visa à avaliação e melhoria de processos de
desenvolvimento.

Torna-se fundamental adequá-la aos objetivos específicos da organização e do pro-


duto [Gomes & et al. 2000]. Ou seja, qualidade não deve ser entendida como perfeição de
software. Qualidade é um conceito que abrange vários níveis, realizado por um conjunto
de atributos, representando vários aspectos relacionados ao produto como o seu desenvol-
vimento, manutenção e o próprio uso. Qualidade é algo executável, relativo, dinâmico e
evolutivo, adequando-se ao nível dos objetivos a serem atingidos [Simão 2002]. Geral-
mente, a qualidade dos produtos de software é avaliada através de modelos de avaliação
de qualidade. Esses modelos armazenam e organizam as propriedades do produto que
está sendo avaliado. Dentre vários modelos de avaliação, existem dois mais utilizados e
aceitos no mercado, são eles:

• CMMI (Capability Maturity Model Integration), proposto pelo CMM (Capability


Maturity Model) [Al-Kilidar et al. 2005];
• Norma ISO/IEC 9126: Proposta pela ISO (International Organization for Standar-
dization) [Chrissis et al. 2003].

A CMMI está incluída na qualidade do produto e na norma ISO/IEC 9126, referente


à qualidade do produto.

2.3.1 Norma ISO/ IEC 9126


A série de normas ISO/ IEC 9126 (NBR 13596) representam a atual padronização
mundial para a qualidade de software e do produto, descrevendo um modelo de qualidade
para produtos de software, categorizando a qualidade em um conjunto de características
e subcaracterísticas que devem ser atendidas para que o produto seja classificado como
de qualidade. Esta série também propõe métricas que podem ser utilizadas durante a
2.3. QUALIDADE DE SOFTWARE 21

avaliação dos produtos de software (medição, pontuação e julgamento dos produtos de


software).
A série de normas ISO/IEC 9126 pode ser aplicada nas seguintes ocasiões [Quintela
et al. 2006]:

• Definição dos requisitos de qualidade de um produto de software;


• Avaliação das especificações do software durante o desenvolvimento a fim de veri-
ficar se os requisitos de qualidade estão sendo atendidos;
• Descrição das características e atributos do software;
• Avaliação do software desenvolvido antes da entrega ao cliente.

Esse modelo de qualidade categoriza os atributos do software em seis características


[Quintela et al. 2006]: funcionalidade, confiabilidade, usabilidade, eficiência, facilidade
de manutenção e portabilidade. Dentro dessas seis características, estão presentes subca-
racterísticas que tornam o modelo de qualificação mais preciso e convincente.

2.3.2 CMMI - Capability Maturity Model Integration


O framework CMMI foi criado com o objetivo de ajudar organizações envolvidas com
o desenvolvimento de softwares, através de um modelo evolucionário. Além disso, tem
por objetivo principal funcionar como um guia para a melhoria dos processos da organi-
zação, considerando para isto atividades como o gerenciamento do desenvolvimento de
software, prazos e custos previamente estabelecidos. O objetivo maior, considerando o
CMMI e seus diferentes conceitos, está justamente na produção de software com maior
qualidade e menos propenso a erros.
Para isso, o CMMI está dividido em cinco níveis de maturidade que confirmam, por
sua vez, o grau de evolução em que uma organização se encontra num determinado mo-
mento, consistindo em uma série de metas que, quando satisfeitas, consolidam um com-
ponente importante do processo.

• Nível 1 (Inicial) - O processo é caracterizado como sendo imprevisível e caótico,


com inexistência de padrões;
• Nível 2 (Gerenciado) - Processos básicos de gerenciamento de projeto são estabe-
lecidos, com o planejamento, a medição e o controle dos diferentes processos;
• Nível 3 (Definido) - Os processos já estão definidos e são compreendidos. Todos os
projetos utilizam uma versão aprovada e adaptada do processo organizacional para
desenvolvimento e manutenção de produtos e serviços tecnológicos;
22 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

• Nível 4 (Quantitativamente Gerenciado) - Métricas detalhadas dos processos e dos


projetos são coletadas. Tanto os processos como os projetos são quantitativamente
compreendidos e controlados;
• Nível 5 (Em otimização) - A melhoria contínua do processo é estabelecida por meio
de sua avaliação quantitativa, e da implantação planejada e controlada.

2.4 Avaliação de Software Educacional


A busca por uma melhor qualidade de software cresceu quando o software se tornou
cada vez mais integrado nas atividades cotidianas [Pressman 2011]. Para tal, surgiram
métodos para avaliação e teste de software que verificam a presença de erros no produto
e aumentam a confiança do usuário. Podendo, assim, assegurar ao usuário que ele está
adquirindo um produto que atende às suas necessidades reais.
Avaliar um software educacional significa analisar não só suas características de qua-
lidade técnica, mas também, os aspectos educacionais envolvidos [Rocha et al. 2001].
Portanto, avaliar a qualidade de um software ultrapassa as preocupações com defeitos
de funcionamento [Pflegeer 2001, Pressman 2000]. Diversas características devem ser
analisadas, tais como as consideradas na série de normas NBR ISO/IEC 9126, visando
à avaliação da qualidade de produtos de software [ABNT 2003]. Porém, dependendo do
tipo de software e de seu grupo de usuários, diferentes fatores podem ser mais ou menos
importantes [Metrics and Models in Software Quality Engineering 2002].
Por isso, a avaliação de software usualmente busca verificar a qualidade do desem-
penho, qualidade dos recursos, confiabilidade, conformidade, durabilidade, facilidade de
manutenção, estética e percepção do software [Pressman 2011]. A partir de uma avalia-
ção é possível julgar o produto, inferindo suas qualidades, defeitos e se atende ou não a
um determinado público.
Capítulo 3

Estado da Arte

Inicialmente, recolocamos o objeto de estudo deste trabalho apresentado no Capítulo


1 que é estudar e propor soluções para o desenvolvimento de metodologias envolvendo
ambientes de aprendizagem para a programação de robôs e realização de atividades de ro-
bótica educacional de forma interativa na web. Para que seja possível atingir os objetivos
inerentes a este tema, comprovando a hipótese de pesquisa e verificando que o problema
atacado no trabalho é de caráter inovador, realizamos uma vasta pesquisa bibliográfica nos
principais meios de divulgação científica. De fato, verificamos que não existem trabalhos
que estejam diretamente relacionados com o tema de pesquisa, incluindo principalmente
a tese aqui defendida.
Assim, neste Capítulo, realizamos uma discussão sobre alguns dos trabalhos que tan-
genciam esta proposta, em alguns aspectos. Para tal, o Capítulo está dividido em duas
Seções. Na primeira exploramos os trabalhos que apresentam ambientes de desenvol-
vimento para robótica, tanto web quanto em desktop. Na segunda Seção, apresentamos
propostas já estabelecidas, relacionadas ao método de avaliação de softwares para robó-
tica educacional que é também uma contribuição deste trabalho.

3.1 Ambientes de Desenvolvimento para Robótica Edu-


cacional
Nesta seção apresentamos alguns ambientes de desenvolvimento voltados para apli-
cações em robótica educacional disponíveis no mercado e encontrados na literatura. Rea-
lizamos uma análise de cada um descrevendo as vantagens e desvantagens, possibilidades
de hardware, linguagens de programação utilizadas o público alvo ao qual se destinam.
Apresentamos, primeiro, os ambientes de desenvolvimento desktop, nestes ambientes
todo o processamento ocorre no computador local, este deve ser capaz de executar o
24 CAPÍTULO 3. ESTADO DA ARTE

software e realizar o envio ao robô utilizado. Em seguida apresentamos os ambientes de


desenvolvimento para robótica web, estes, em sua maioria, utilizam a estrutura cliente-
servidor sendo todo o processamento de responsabilidade do servidor, o cliente deve, no
entanto, ser capaz de realizar acessá-lo.

3.1.1 Ambientes Desktop


Um ambiente de desenvolvimento em desktop caracteriza-se por não utilizar a web
para qualquer operação necessária, ou seja, funciona em um computador local para to-
das as transações. O software é geralmente instalado no computador, de alguma maneira
(única situação onde se poderia usar a web), e a partir de então executa todas as suas fun-
ções localmente. Nesta Seção, apresentamos alguns dos ambientes de desenvolvimento
desktop mais populares voltados para aplicações em robótica educacional, disponíveis co-
mercialmente e encontrados na literatura, juntamente com uma breve descrição de suas
funcionalidades.

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

Software Lego Mindstorms

Os ambientes de desenvolvimento que acompanham os kits da linha Lego Mindstorms


foram desenvolvidos especificamente para programação e controle de dispositivos desta
marca. Suas versões foram desenvolvidas pela National Instruments [N.I 2013b], basea-
das no LabVIEW [N.I. 2013a]. A Figura 3.1(c) apresenta a versão mais recente utilizada
para programação de robôs Lego Mindstorms EV3.
Estes ambientes são compostos por uma interface e um bloco de diagramas onde o
fluxo de dados é possível através de ligações entre os blocos, é possível também a criação
não só de estruturas, mas de comportamentos, permitindo, assim, a criação de modelos
interativos, com os quais é possível aprender conceitos fundamentais de ciência e enge-
nharia.
Em suas versões mais recentes é possível utilizar todas as funcionalidades disponíveis
aos controladores NXT e EV3 [LEGO 2011], além de permitir o envio do programa,
gerenciamento de arquivos e pastas, e fornecer auxílio para montagem de alguns modelos
de protótipos robóticos.

(a) Software RoboEduc 4.0 (b) Software RobotC - Versão para progra-
mação de Lego Ev3

(c) Software Lego Mindstorms (d) Microsoft Robotics Studio

Figura 3.1: Ambientes de Desenvolvimento Desktop


26 CAPÍTULO 3. ESTADO DA ARTE

Microsoft Robotics Studio

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

Foi desenvolvido pela Robotics Academy da universidade Carnegie Mellon, em Pitts-


burgh nos EUA. O RobotC [RobotC 2013], apresentado na Figura 3.1(b), é um ambiente
de desenvolvimento pago atrelado a uma linguagem de programação textual também cha-
mada de RobotC que pode ser utilizado para escrever, compilar e enviar programas ao
robô. É uma solução para programação de diversos hardwares utilizando uma única lin-
guagem baseada em C. Dentro os hardwares que este ambiente oferece suporte estão o
Lego Mindstorms NXT, RCX e EV3[LEGO 2011], controladores do kit Vex [Vex 2011]
e Arduino [Arduino 2016].
A proposta inicial do RobotC é fornecer suporte para vários hardwares com uma única
linguagem, porém não existe uma versão do RobotC que permita a programação de todos
os hardwares, pois, para cada hardware, é necessário adquirir uma licença específica. As
licenças podem ser de 365 dias ou perpétuas e são divididas em três: individual, time e
sala de aula.

Legal

O ambiente de programação Legal [PETe 2010], apresentado na Figura 3.2(a) é des-


tinado a programação dos kits fornecidos pela empresa PNCA. Este ambiente permite ao
3.1. AMBIENTES PARA ROBÓTICA 27

usuário projetar, construir e programar robôs e dispositivos mecatrônicos. Todas as ações


que o robô deve executar deverão ser definidas no ambiente de programação, utilizando a
linguagem de mesmo nome.
O programa, uma vez escrito e compilado, será descarregado no módulo de controle
do robô via cabo de dados serial. Ao fim desta etapa, o robô estará pronto para funcionar
de forma autônoma e poderá ser desconectado do computador utilizado para programa-
ção. A linguagem de programação utilizada é limitada quanto ao número de sensores por
possuir uma programação orientada a eventos.

(a) Software Legal (b) Software BricxCC

(c) Arduino IDE

Figura 3.2: Ambientes de Desenvolvimento Desktop

Arduino IDE

A interface Arduino IDE [Arduino 2016], cujo ambiente de programação é apresen-


tado na Figura 3.2(c), é de código aberto (open-source) e possibilita que seja realizada a
28 CAPÍTULO 3. ESTADO DA ARTE

escrita e envio do código à placa Arduino. É um ambiente multiplataforma, escrito em


Java que pode ser utilizado para programação de qualquer placa Arduino. Sua interface
inclui um editor de código fonte com recursos que auxíliam no processo de escrita como
realce de sintaxe, identificação de parênteses correspondentes e auto identação. Através
dela é possível compilar e carregar programas para a placa em uso.
Através da Arduino IDE é possível realizar leitura de sensores do protótipo durante
o tempo de execução do programa caso este esteja conectado ao computador em uso.
Além disso, com a utilização de bibliotecas auxíliares é possível realizar a programação
de outras plataformas de hardware.

BricxCC

O software BricxCC [BricxCC 2016] é um centro de comando para robôs de todas as


gerações da família LEGO Mindstorms. É um software para Windows, que necessita de
instalação e que permite a programação textual desses dispositivos nas linguagens NXC,
NBC E NQC, todas elas baseadas em C com bibliotecas específicas para esses robôs. Sua
interface de programação é apresentada na Figura 3.2(b).

3.1.2 Ambientes Web

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.

Figura 3.3: Ambiente de programação do ADWN


30 CAPÍTULO 3. ESTADO DA ARTE

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.

Figura 3.4: Ambiente de programação textual do Codebender

DuinoBlocks

O projeto DuinoBlocks [Alves & Sampaio 2014] é um ambiente web de programa-


ção visual para robótica educacional baseado no hardware Arduino. Todo seu projeto foi
idealizado com o propósito de diminuir os custos de implantação da robótica educacio-
nal. Dessa forma, primou-se por eliminar a complexidade de instalações e configurações
do sistema operacional em uso, redução do espaço de memória ou disco dos dispositi-
vos computacionais utilizados, e pelo compartilhamento e colaboração entre professores
e alunos. No entanto, atualmente o sistema permite apenas a programação destes disposi-
tivos e não está disponível ao público.

ModKit

Ambiente de programação em blocos inspirados no Scratch [Resnick et al. 2009] que


permite programar os hardwares do kit VEX, Arduino e outros compatíveis [LLC. 2016].
3.1. AMBIENTES PARA ROBÓTICA 31

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.

Figura 3.5: Versão web do ModKit para VEX

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.

3.1.3 Análise Comparativa entre Ambientes


Após listar os ambientes, tanto na web quanto em desktop, considerados afins ao
contexto e escopo deste trabalho, com suas respectivas características e funcionalidades,
32 CAPÍTULO 3. ESTADO DA ARTE

Figura 3.6: Ambiente de programação do OpenRoberta

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.

Tabela 3.1: Comparativo entre os ambientes de desenvolvimento desktop


Níveis de Modo de Acompanhamento
Software Licença Plataforma Linguagem Hardwares
Programação Programação Didático
VEX/PIC/
RobotC Paga Windows Sim Gráfica/Textual Inglês Não
ARDUINO/LEGO
NXT/RCX/
RoboEduc Gratuita Windows/Linux Sim Gráfica/Textual Português Não
H-Educ
Lego
Paga Windows/Mac Não Gráfica Multi NXT/EV3 Não
MindStorms
Fabricantes
MRS Gratuita Windows Não Textual/Gráfica Inglês Não
Parceiros
Legal Paga Windows Não Textual Português PETE Não
Arduino IDE Gratuita Multi Não Textual Inglês Arduino Não
BricxCC Gratuita Multi Não Textual Inglês LEGO Não
Qualquer
W-Educ Gratuita Multi Sim Textual Português Sim
hardware

Na Tabela 3.2, é mostrada uma análise comparativa entre os ambientes de desenvol-


vimento web apresentados na Seção 3.1.2. Cada ponto analisado na tabela foi escolhido
3.2. COMPARAÇÃO ENTRE MÉTODOS 33

baseando-se nos conceitos de programação, robótica e relação cliente-servidor. Na pri-


meira coluna da tabela estão dispostos os softwares e na primeira linha as características
analisadas. Na última linha, é possível observar as características inerentes à ferramenta
desenvolvida.

Tabela 3.2: Comparativo entre os ambientes de desenvolvimento web


Níveis de Modo de Acompanhamento Instalação
Software Licença Plataforma Linguagem Hardwares Linguagens de Programação
Programação Programação Didático Necessária
ADWN Gratuita Multi Sim Gráfica/Textual Inglês N-Bot Não Blockly/Javascript Não
CodeBender Gratuita Multi Não Textual Inglês Arduino Não INO Não
Modkit Paga Windows Não Gráfica Inglês Arduino Não Scratch Sim
Windows/
DuinoBlocks Gratuita Não Gráfica Português Arduino Não Blockly Não
Mac
Open Roberta Gratuita Multi Não Gráfica Inglês Lego Ev3 Não Blockly Sim
R-Educ e
Qualquer
W-Educ Gratuita Multi Sim Textual Português Sim Linguagens Não
hardware
Cadastradas

3.2 Métodos para Avaliação de Softwares para Robótica


Educacional
Nesta seção será apresentada uma formulação comparativa com os métodos de avali-
ação de softwares educacionais estudados e o método proposto nesse trabalho.
Subdividida em quatro etapas, a ferramenta de avaliação de software educacional pro-
posta por Webber et al. (2009) inicia-se com a coleta de dados sobre o software educa-
cional. Em seguida, é realizada a análise dos dados obtidos. Na terceira etapa, é feita a
implementação da FASE e por fim ocorre a realização de testes da ferramenta, bem como
a análise dos resultados.
Com o objetivo de contribuir para a qualidade de softwares educacionais, Gomes et al.
(2002) propõe um método para avaliar a qualidade de softwares voltados para o ensino
de matemática. O método é composto por duas fases. A primeira denominada como
"análise a priori das interfaces"com o objetivo de analisar determinados softwares a partir
de uma tabela conhecida pela comunidade de Informática na Educação. Após essa etapa,
passamos para a análise de aprendizagem, a partir de um estudo de caso com os alunos
objetivando analisar a qualidade da etapa de resolução de problemas pelos alunos com os
softwares analisados na etapa anterior.
A Tabela 3.3 apresenta uma comparação entre os métodos encontrados na literatura
e o apresentado neste trabalho, denominado de EducAval. É composta por três modelos
de avaliação de software educacional que estão dispostas na primeira linha, e nas colunas
estão organizados os critérios utilizados para comparação.
34 CAPÍTULO 3. ESTADO DA ARTE

Tabela 3.3: Comparativo entre métodos de avaliação


Webber et al. (2009) Gomes et al. (2002) EducAval
Apresenta questionários
X
para cada tipo de usuário
Avaliação específica para
X
robótica educacional
Avaliação didática X X X
Avaliação técnica X X X
Baseada na norma
X X
ISO/IEC

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.

4.1 Projeto do Ambiente

O primeiro passo no desenvolvimento do trabalho foi o projeto do ambiente. Deparamo-


nos com a necessidade de avaliar as ferramentas já consolidadas, utilizadas para robótica
educacional a fim de verificar seus principais atributos, funcionalidades e lacunas. E vi-
sando contemplar os aspectos necessários que as demais não possuem. Nesse momento,
verificamos que não existia um modelo formal de avaliação de softwares específico para
robótica educacional, cada software pesquisado era avaliado por um modelo diferente de
avaliação o que não nos permitiu fazer um comparativo preciso entre eles.
Desta forma, decidimos incluir também como contribuição deste trabalho um método
que propõe a homogeneização do processo de avaliação de softwares específico para robó-
tica educacional, que será descrito em detalhes no Capítulo 5. O EducAval foi projetado
e aplicado aos softwares mais utilizados em ambientes de aprendizagem que fazem uso
da robótica educacional, segundo pesquisa realizada na Olímpiada Brasileira de Robótica
nos anos de 2014 e 2015, permitindo-nos desenvolver e implementar o projeto das fun-
cionalidades relativas à programação de robôs do ambiente web, principal proposta desta
tese. O projeto e implementação do ambiente será descrito na Seção 4.2.

4.2 Ambiente Web

Para realização do projeto do ambiente realizamos uma aplicação do método avaliativo


EducAval aos professores e alunos usuários dos seguintes softwares: Lego Mindstorms
NXT [LEGO 2011], Lego Mindstorms EV3 [LEGO 2011], Arduino IDE [Arduino 2016],
Legal [PETe 2010], BricxCC [BricxCC 2016] e RoboEduc [Pitta 2008]. Os resultados
serão apresentados no Capítulo 6. A partir dos dados verificamos quais funcionalidades
específicas de robótica educacional deveríamos incluir no projeto. Nesta seção descreve-
remos os itens que estão presentes no projeto a fim de contemplar toda a proposta e uma
descrição das ferramentas que utilizamos para o seu desenvolvimento.
4.2. AMBIENTE WEB 37

4.2.1 Requisitos Funcionais

O ambiente desenvolvido é um software livre o qual permite a execução e alteração


do seu código-fonte sem onerar o usuário final, a única exigência é que as licenças e
informações sobre os autores acompanhem a versão, original ou modificada, em tempo
de execução. Por esse motivo, todo o material necessário para a instalação, configura-
ção e pleno funcionamento do sistema deve ser igualmente free-software ou open-source.
O ambiente está disponibilizado em uma plataforma de compartilhamento online junta-
mente com um guia de instalação e manutenção de um servidor local além de manuais de
utilização.
O ambiente permite a programação em R-Educ e na linguagem de baixo nível de qual-
quer hardware, além do envio do programa gerado ao dispositivo robótico. Para tal, foi
implementado um ambiente de cadastro de linguagens, onde o usuário pode definir quais
as especificações e funções de baixo nível do hardware. Foi implementado, também, um
tradutor universal de linguagens que consulta o cadastro realizado e converte o código
escrito na linguagem especificada e em seguida o compila gerando o código de máquina
correspondente ao hardware em uso. Todo o processamento de tradução e compilação
é executado no lado do servidor, dispensando a necessidade de instalação de softwares e
requisitos computacionais.
A programação dos dispositivos robóticos pode, então, ser realizada em qualquer lin-
guagem, desde que a mesma seja cadastrada por um usuário com conhecimentos básicos
sobre ela, seguindo um tutorial fornecido no próprio sistema. Para permitir que a progra-
mação possa ser realizada por usuários sem nenhum conhecimento da área, e até mesmo
por usuários que a recém aprenderam a ler e a escrever, introduzimos uma linguagem com
alto grau de abstração denominada R-Educ. A mesma caracteriza-se por ser dinâmica,
pois as suas funções específicas dependem do cadastro de linguagem efetuado. Desta
forma, a completude da linguagem R-Educ depende do grau de conhecimento do usuá-
rio cadastrante das linguagens de baixo nível. Isso resulta em um modelo de linguagem
R-Educ para cada hardware com sua respectiva linguagem.
A linguagem R-Educ padrão tem o seu manual de utilização disponibilizado online e,
após a escolha de hardware e linguagem de baixo nível utilizada, o usuário tem acesso,
no ambiente de programação, às funções específicas do modelo em uso.
O cadastro de linguagens permite que a programação seja feita em tantos níveis de
abstração quanto forem necessários, sendo por padrão dois níveis: linguagem cadastrada
e R-Educ. Para fins didáticos, o tradutor e o compilador fornecem dicas para remoção
de erros e o banco de dados salva os dados dos usuários e suas estatísticas de principais
38 CAPÍTULO 4. AMBIENTE PROPOSTO

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.

4.2.2 Ferramentas Utilizadas


O sistema operacional escolhido para a utilização e suporte oficial do back-end do
projeto é a distribuição Ubuntu Linux, mantida pela Canonical Ltd. e sua própria funda-
ção. Segundo estatísticas [W3Techs 2016], 8,4% de todos os websites utilizam Ubuntu
em sua infraestrutura de servidores. Além disso, a distribuição possui também os benefí-
cios de ser de fácil utilização e manutenção, baseada na distribuição Debian Linux e por
possuir uma vasta comunidade ativa, útil e mobilizada.
A facilidade no manuseio e configuração do sistema operacional abre portas para usuá-
rios inexperientes configurarem e disponibilizarem o projeto em seu próprio domínio.
Usuários avançados também não encontram dificuldades ou limitações, podendo realizar
adaptações na plataforma e executá-la em conjunto com outros serviços.
Por ser baseado no Debian Linux, o Ubuntu conta com muitos pacotes disponíveis
para instalação e autoconfiguração imediata, através do gerenciador de pacotes que ambas
as distribuições têm em comum. A disposição que tem a comunidade de usuários também
facilita a manutenção e resolução de erros e problemas que os usuários e instaladores do
sistema possam encontrar durante a realização de suas atividades.
A versão atual do sistema utilizada no desenvolvimento do ambiente é a Ubuntu
14.04.1 LTS. A sigla LTS significa Long Term Support ou em uma tradução livre, Su-
porte Estendido. A Canonical Ltd. se compromete a entregar diversas atualizações do
4.2. AMBIENTE WEB 39

sistema e principalmente atualizações de desempenho e segurança durante um período de


até cinco anos, permitindo que a manutenção dos servidores seja adiada e seus intervalos
sejam um pouco mais espaçados, garantindo, no entanto, a segurança do sistema.
Seguindo a linha de pensamento que nos levou a escolha de uma distribuição Linux
como sistema operacional principal, escolhemos a plataforma Java para desenvolver o
ambiente. Dentre os diversos motivos que sustentam a escolha do Java, podemos citar
a compatibilidade para multiplataforma. Segundo a Oracle [Oracle 2016], mais de 2
bilhões de dispositivos utilizam o Java nos dias atuais. De supercomputadores a cartões de
crédito. Além disso, é uma tecnologia sólida, amplamente divulgada entre a comunidade e
conta com diversas bibliotecas de software livre e também de código-fonte aberto. Mas o
principal motivo da escolha do Java como plataforma para o ambiente foi o fato de existir
muito código legado, o qual corresponde ao tradutor universal proposto que já estava em
processo de desenvolvimento [Sá et al. 2013]. Ele é responsável por traduzir comandos
R-Educ, escritos em um alto nível de abstração em língua portuguesa para as linguagens
alvo, neste caso, cadastradas em um banco de dados.
No presente trabalho, desenvolvemos uma plataforma web para acessar o sistema.
Para isso, utilizamos o Groovy on Grails, um framework baseado na linguagem de pro-
gramação Groovy e que roda sobre a Máquina Virtual Java (JVM). O Groovy é uma lin-
guagem orientada a objetos, compilada dinamicamente para bytecode. Surgiu como uma
alternativa à linguagem Java e é bastante similar a linguagens do tipo script como Ruby,
JavaScript e Python, além de apresentar características ausentes no Java como suporte na-
tivo a sintaxe estática e dinâmica, sintaxe nativa para listas, mapas, vetores e expressões
regulares; closures ou clausuras e sobrecarga de operadores.
O Grails é um framework voltado para o desenvolvimento de aplicações web de arqui-
tetura MVC (Model View Controller) e inspirado no Ruby on Rails. Alguns benefícios em
sua utilização incluem suporte a bibliotecas, código legado e comunidade de desenvolvi-
mento Java. Sua interface de banco de dados é baseada em domínios, quando no Rails ela
é baseada em modelos, o que viabiliza a modelagem e design das aplicações. Tecnologias
sólidas do Java Enterprise como Spring e Hibernate estão presentes no core do Grails,
oferecendo confiança e robustez aos desenvolvedores. Um dos motivos da utilização do
Groovy on Grails no projeto foi a facilidade de integração e reaproveitamento do código
da última versão do compilador da linguagem R-Educ, escrito em Java [Sá et al. 2013].
40 CAPÍTULO 4. AMBIENTE PROPOSTO
Capítulo 5

Método para Avaliação de Softwares


para Robótica Educacional

Nesse trabalho, formulamos um método eficiente e homogêneo para avaliação de


softwares específicos para robótica educacional denominado EducAval. Classificamos
esse método como homogêneo, pois buscamos ao longo da elaboração desse trabalho
torná-lo um método padrão para softwares desta área. Para torná-lo padrão precisáva-
mos de embasamentos teóricos e conhecimento de outros tipos de métodos avaliativos,
com tais estudos verificamos a existência de vários métodos avaliativos, porém, cada um
utilizava uma metodologia diferente, apesar de avaliar o mesmo tipo de software.
De acordo com [Garvin 1984] o conceito de qualidade é descrito a partir de cinco
vertentes: visão transcendental, visão do usuário, visão do fabricante, visão do produto
e visão baseada em valor. A primeira afirma que qualidade é algo que se reconhece
imediatamente, a visão do usuário observa a qualidade a partir de metas específicas de um
usuário final. A visão do fabricante avalia a qualidade a partir da especificação original
do produto, já a visão do produto avalia as características inerentes ao produto e a visão
baseada em valor mede a qualidade a partir de quanto o cliente está disposto a pagar pelo
produto. Neste método trabalharemos com duas visões em especifico, a visão do usuário
e a visão do produto. Essas duas visões priorizam o papel do usuário/cliente cientes de
que esses usuários são fundamentais para uma boa avaliação do software.
De acordo com ISO/IEC 9126, qualidade de software refere-se às características de
um software capazes de satisfazer às necessidades implícitas e explicitas do usuário. No
caso, neste trabalho, através do grau de satisfação dos usuários, avaliaremos a qualidade
de softwares voltados para aplicações em robótica educacional, que são destinados a dois
tipos diferentes de usuários: professores e alunos. Esse novo método é composto por
duas etapas fundamentais, a aplicação dos questionários e análise dos dados coletados.
A avaliação de software, no método EducAval, é realizada de usuário para usuário sem
42 CAPÍTULO 5. MÉTODO EDUCAVAL

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.

Figura 5.1: Ciclo de Utilização do Método

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.

• Avaliação técnica: nessa primeira etapa, abordamos conceitos funcionais e de exe-


cução do software, tais como a funcionalidades do software, capacidade de execu-
ção em diferentes tipos de hardware e software, satisfação do usuário diante das
necessidades, garantia de que o software não falhará durante seu funcionamento,
qualidade diante dos objetivos específicos, rapidez no tempo de resposta e layout
favorável.
• Avaliação didática: nesta etapa priorizamos conceitos relacionados às técnicas e
métodos que possibilitam a aprendizagem, para isso disponibilizamos duas pergun-
tas discursivas que relacionam a vivência/aprendizado do aluno com o software.

No questionário fornecido aos professores, são disponibilizadas dezesseis perguntas.


Na primeira delas, os professores avaliados devem escolher qual das nove funcionalidades
apresentadas o software utilizado possui. Da questão dois a doze, o professor deve atri-
buir em cada item uma nota de zero a dez ou então informar que o item não se aplica ou
não tem condições de avaliar. As questões treze e quatorze são perguntas que deverão ser
5.2. ANÁLISE 43

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.

5.3 Estudo de Caso


Para validar o método EducAval, realizamos um estudo de caso, aplicando o método
no software para robótica educacional Lego Mindstorms NXT. Esse software foi escolhido
por ser o mais utilizado entre os professores e alunos em que aplicamos o método, sendo
este também o que possui o maior espaço amostral dentre os avaliados.
A avaliação do software foi realizada com a participação de 40 alunos e 11 professores.
A partir da coleta e análise dos dados obtidos, observamos que houve uma convergência
de valores, dessa forma os resultados podem ser considerados válidos para análise.
Os dados obtidos foram utilizados para gerar a análise qualitativa do software, indi-
cando quais os seus principais atributos. Inferimos a partir dos dados que os usuários
aprovam o software fornecido pela Lego para programação do kit LEGO Mindstorms
NXT, a nota para o quesito público alvo que questiona se o software atinge ou não o pú-
44 CAPÍTULO 5. MÉTODO EDUCAVAL

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:

• Q1 - Facilidade do software em ser modificado e a detecção de erros;


• Q2 - Capacidade de execução em diferentes tipos de hardware;
• Q3 - Satisfação diante das necessidades dos usuários;
• Q4 - Garantia de que o software não falha durante o período de execução;
• Q5 - Qualidade diante dos objetivos específicos;
• Q6 - Rapidez no tempo de resposta;
• Q7 - Layout favorável ao uso;
• Q8 - Clareza do conteúdo;
• Q9 - Atinge ao público alvo;
• Q10 - Favorecimento da aprendizagem;
• Q11 - Favorecimento do ensino.

Figura 5.2: Gráfico comparativo entre as médias dos professores e alunos.

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.

Figura 5.3: Avaliação quanto às funcionalidades do 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

Kits de Robótica de Baixo Custo

A fim de que o sistema fosse completo e viabilizasse a utilização da robótica baixando


os seus custos, decidimos incluir dois kit de robótica de baixo custo e de fácil reprodução,
disponibilizando todos os manuais necessários para montagens no ambiente web. A pro-
posta ainda surgiu com a ideia de que fosse possível ser montado dispositivos robóticos
simples com componentes eletrônicos viabilizando a montagem por crianças e adoles-
centes, e que fosse possível expandir a proposta tornando-a atrativa a alunos do ensino
superior.
O primeiro kit desenvolvido foi o LabsRia, descrito na Seção 6.1, que utiliza como
base um flutuador espaguete. O segundo, descrito na Seção 6.2 e denominado PetBot
possui como base uma garrafa de plástico (pet). Este último surgiu com o princípio de
utilizar materiais reciclados, enquanto que o primeiro teve sua base escolhida pensando
no seu baixo custo. Ambos os kits podem ser programados nas linguagens R-Educ ou C
utilizando o ambiente W-Educ.

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

metal com temperatura elevada.

Figura 6.1: Flutuador Espaguete

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.

6.1.1 Montagem do Protótipo - LabsRia


A montagem da base do protótipo é realizada a partir de um flutuador espaguete tradi-
cional, macarrão, cortado em partes de aproximadamente 15 centímetros, como citado
acima. Neste primeiro protótipo, utilizamos um flutuador com um furo central, isso
facilita a passagem dos fios conectores. Realizamos um corte para posicionamento do
6.1. LABSRIA 49

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.

(a) Posicionamento do Arduino (b) Posicionamento do Motor

Figura 6.2: Montagem do Protótipo

O posicionamento do motor ocorre a partir de um furo lateral no flutuador, do mesmo


tamanho que o do motor utilizado. Como mostrado nas Figuras 6.2(b) e 6.3(a), o mo-
tor é posicionado e seus fios conectores passam através de um furo do flutuador, sendo
conectados ao controlador. Para que seja possível a ligação dos motores ao controla-
dor realizamos ainda um furo localizado um pouco após o Arduino, onde posicionamos
as pilhas e uma placa de prototipagem mini para montagem do circuito. Neste modelo
específico (Figura 6.3(b)), utilizamos rodas de um brinquedo de montagem da Lego.

(a) Passagem dos conectores (b) Modelo montado

Figura 6.3: LabsRia - Primeiro protótipo


50 CAPÍTULO 6. KITS DE ROBÓTICA DE BAIXO CUSTO

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.

6.2.1 Montagem do Protótipo - PetBot


A primeira etapa da montagem do protótipo do PetBot é a marcação da estrutura
principal do robô na garrafa pet. Nela, são marcadas as posições de cada componente e
em seguida deve ser cortada e perfurada. A Figura 6.4 apresenta uma garrafa pet marcada
e cortada.

Figura 6.4: Marcações e cortes na garrafa pet

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

Figura 6.5: Esquemáticos dos circuitos dos motores e sensor de ultrassom

Figura 6.6: Robô PetBot


52 CAPÍTULO 6. KITS DE ROBÓTICA DE BAIXO CUSTO
Capítulo 7

Implementações

Neste Capítulo fazemos uma exposição dos detalhes envolvidos na implementação da


ferramenta proposta nesta tese através de diagramas referentes à estrutura proposta para
o ambiente. Descrevemos ainda como é realizada a conversão de linguagens através do
tradutor universal e as particularidades da linguagem R-Educ.

7.1 Ambiente Web


Baseado em resultados obtidos através da aplicação do método de avaliação EducA-
val nos softwares Lego Mindstorms NXT, Lego Mindstorms EV3 BricxCC, RoboEduc,
Arduino IDE e Legal, realizamos uma análise de quais funcionalidades específicas para
robótica educacional o ambiente web deve ter.
A proposta de implementação do ambiente web segue o modelo evolutivo de pro-
cessos de engenharia de software chamado de prototipagem [Sommerville 2003]. Nesse
modelo é realizado o desenvolvimento de protótipos. Ele foi escolhido, pois nem todos os
requisitos do sistema necessitam estarem presentes no início da implantação do projeto,
podendo assim serem ajustados e incrementados durante o processo de criação, através
de pesquisas e experimentos.
A arquitetura geral do sistema proposto, descrita na Figura 7.1, apresenta como é
realizada a comunicação entre os dispositivos robóticos e computacionais envolvidos. Um
servidor é o responsável pelo processamento dos dados, armazenamento de conteúdo de
usuários e pelo retorno de informação. Os usuários podem se conectar ao servidor através
da internet ou de qualquer meio de comunicação, guiado ou não guiado, utilizando um
dispositivo computacional com navegador web. Os usuários, caso estejam utilizando um
dispositivo computacional capaz de trocar dados com o robô, podem efetuar o envio do
programa gerado ao mesmo.
O sistema possui um superusuário, que é o Administrador, e dois tipos de usuário
54 CAPÍTULO 7. IMPLEMENTAÇÕES

Figura 7.1: Arquitetura Geral do Sistema

padrão: Aluno e Professor. No caso, descrevemos através de um diagrama de caso de uso


as principais funcionalidades da ferramenta e a interação dessas funcionalidades com cada
tipo de usuário. Esse diagrama, mostrado na Figura 7.2, apresenta as principais tarefas
para o usuário do tipo Aluno. É possível ao aluno: solicitar um professor, sendo, para
tal, necessário visualizar os professores disponíveis; enviar mensagens, sendo necessário,
para isso, consultar a lista de usuários ativos do sistema; programar, sendo que, para
isso, é necessário consultar a lista de linguagens disponíveis; e é possível enviar o código
compilado ao robô e solicitar graduação no sistema.

Figura 7.2: Diagrama de Caso de Uso - Aluno

O diagrama mostrado na Figura 7.3 apresenta as possíveis tarefas para o usuário do


7.2. TRADUTOR UNIVERSAL 55

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.

Figura 7.3: Diagrama de Caso de Uso - Professor

O usuário Administrador possui a função de gerência do sistema, a ele é possível


realizar todas as tarefas disponíveis ao usuário do tipo Professor, além de ser possível
graduar um usuário do tipo Aluno ao tipo Professor e excluir usuários ativos do sistema.
Seu diagrama de caso de uso está apresentado na Figura 7.4. O sistema possui apenas
um usuário deste tipo, o qual é gerado de forma padrão e automática quando o sistema é
executado pela primeira vez.
Na Figura 7.5, apresentamos um fluxograma de como ocorre o caso de uso especi-
ficado como Programar. O usuário pode iniciar a programação utilizando R-Educ ou
qualquer outra linguagem cadastrada. Caso o usuário inicie a programação no modelo de
R-Educ selecionado, o seu código fonte é traduzido, através do tradutor universal, para a
respectiva linguagem cadastrada. Depois disso, o código é compilado e, como resposta,
um código de máquina específico é gerado para o hardware em uso. Caso a programa-
ção seja iniciada na linguagem selecionada torna-se desnecessária a utilização do tradutor
universal, eliminando uma etapa do processo.

7.2 Tradutor Universal


A principal contribuição desta tese é o tradutor universal de linguagens. A estrutura do
tradutor é 1:N, dessa forma a partir de uma única linguagem de programação será possível
realizar a programação de N dispositivos robóticos. A linguagem escolhida para ser uni-
56 CAPÍTULO 7. IMPLEMENTAÇÕES

Figura 7.4: Diagrama de Caso de Uso - Administrador

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

Figura 7.5: Fluxograma do Processo de Escrita, Tradução e Compilação

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.

7.2.1 Linguagem R-Educ


A fim de que fosse possível realizar o processo de escrita, tradução e compilação, foi
necessário escolher qual seria a linguagem padrão do tradutor universal. Nesse momento,
optamos por utilizar a linguagem R-Educ por ser uma linguagem puramente brasileira,
baseada em um português simples e que também foi originada no laboratório Natalnet.
A linguagem R-Educ foi primeiramente proposta por Pitta (2011). Sua primeira ver-
são foi desenvolvida em C e era utilizada no software RoboEduc. A linguagem R-Educ
como originalmente concebida inclui 5 níveis de abstração. São eles:

• Nível 1 - programação realizada através de símbolos gráficos com o mecanismo de


arrastar e soltar, utilizando ícones que representam as direções de movimentação
do robôs;
• Nível 2 - programação similar ao Nível 1 com estruturas de controle de fluxo;
• Nível 3 - programação realizada no modo textual, utilizando a primeira versão da
linguagem R-Educ;
• Nível 4 - programação realizada através de símbolos gráficos com o mecanismo de
arrastar e soltar, utilizando ícones complexos que representam os motores do robô;
58 CAPÍTULO 7. IMPLEMENTAÇÕES

Tabela 7.1: Palavras Reservadas da Linguagem R-Educ


inicio fim
tarefa se
senao entao
enquanto farei
repita para
vez vezes
teste numero
texto booleano
sair verdadeiro
falso

• Nível 5 - programação na linguagem padrão do dispositivo robótico.

A linguagem foi reestruturada no trabalho anterior a proposta desta tese, a partir de


uma reimplementação do tradutor em Java e inclusão do uso de chaves para representar o
início e fim de uma sequência de comandos. Nesta tese realizamos uma nova modificação
da linguagem R-Educ e seu tradutor incluindo controle, ordenação de tipos de erros, uso
de definições e operações aritméticas, visto que este tipo de operação é imprescindível
para programação de dispositivos robóticos e está presente em todas as linguagens de
programação.
As palavras chaves padrões da linguagem R-Educ reestruturada, apresentadas na Ta-
bela 7.1, diferentemente das demais linguagens de programação comumente utilizadas,
são minimalistas. As palavras reservadas são compostas apenas dos tipos de dados, estru-
turas de início, fim e controladores de fluxo. A linguagem, no entanto, é dinâmica. Desta
forma, seu conjunto de palavras reservadas pode crescer de acordo com o cadastro de lin-
guagens realizado. Esse fato permite que o sistema possua tantas versões da linguagem
R-Educ quanto necessárias. O nível de abstração alcançado não depende mais do sistema
e sim do usuário.

7.2.2 Registro de linguagem e casamento de padrões


A fim de que seja possível realizar a tradução para qualquer linguagem de progra-
mação, deve ser realizado o cadastro de linguagens de programação para robótica. No
trabalho anterior a esta tese [Sá et al. 2013], foi realizado um estudo dos principais com-
ponentes e estruturas presentes nas linguagens de programação: tipos de dados, controla-
dores de fluxo, cabeçalho, rodapé e outros.
7.2. TRADUTOR UNIVERSAL 59

Para a implementação do registro de linguagens, foi realizado um estudo sobre o tra-


balho anterior e acrescentado novas estruturas como operadores matemáticos e defini-
ções. A estrutura de definições foi inclusa, pois apesar de seu uso ser facultativo, ela está
presente e é amplamente utilizada na maior parte das linguagens de programação para
robótica. Dessa forma, o formulário de cadastro necessário para o registro de linguagens
foi reestruturado e distribuído da seguinte forma:

• Nome e descrição: informação acerca do nome da linguagem, robô ao qual a lin-


guagem é associada e sua descrição;
• Compilação e envio: informações sobre as chamadas de sistema para compilar o
programa em baixo nível, envio do programa, extensão dos arquivos da linguagem
e dos arquivos gerados pelo compilador;
• Definições: definições necessárias para este módulo da linguagem;
• Cabeçalho e rodapé: código que deve ser inserido ao cabeçalho e rodapé de todos
os arquivos gerados pelo tradutor;
• Declarações de funções: informações sobre a função principal e de como funções
sem retorno devem ser escritas;
• Tipos de dados: informações sobre como os dados são gerados na linguagem;
• Operadores: operadores lógicos, relacionais e aritméticos da linguagem;
• Controladores de fluxo: estrutura dos controladores de fluxo;
• Funções: informação sobre as funções específicas da linguagem e especificação do
seu nome de chamamento em R-Educ.

A partir das informações fornecidas o sistema pode realizar um casamento de padrões,


relacionando a escrita do programa em R-Educ para seu respectivo código na linguagem
correspondente. O cadastro das informações deve ser realizado por um usuário com co-
nhecimentos no mínimo intermediários na linguagem a ser cadastrada. Essas informações
são estruturadas seguindo o modelo apresentado no sistema, onde são acrescentadas pa-
lavras reservadas que permitem ao casador de padrões verificar onde começa e termina
cada conjunto de instruções.
A Figura 7.6 apresenta um exemplo de como deve ser realizada a escrita das estrutu-
ras de controle de fluxo IF-THEN-ELSE, WHILE e FOR, para o cadastro da linguagem
NXC específica para programação de robôs Lego Mindstorms NXT. Observe que as pa-
lavras comandos, comandos1, comandos2, condicao, variavel, valor1 e valor2 devem
aparecer nestes exemplos para servir de parâmetro da realização do casamento de pa-
drões, indicando onde ocorre o início e término de cada cadeia de comandos padrões da
linguagem.
60 CAPÍTULO 7. IMPLEMENTAÇÕES

(a) Escrita da estrura IF-THEN-ELSE (b) Escrita da Estrutura FOR

(c) Escrita da estrutura WHILE

Figura 7.6: Modelo de cadastro de linguagem

Antes de ser iniciada a compilação, a classe chamada de mapeamento é invocada e


o seu processamento visa fornecer as estruturas necessária para o casamento de padrões.
Cada conjunto de dados fornecido será dividido em um conjunto de listas de dados do tipo
String. No exemplo da estrutura de controle de fluxo WHILE, o resultado da chamada da
classe mapeamento retornará uma lista com 3 dados do tipo String, uma que percorre do
início dos dados fornecidos até a palavra condicao, outra que percorre de após a palavra
condicao até comandos, e outra que vai após comandos até o término dos dados forneci-
dos. Esses dados serão utilizados após a realização da análise léxica e ao término de cada
sentença processada pelo analisador sintático.

7.2.3 Abstração de Linguagem


O último conjunto de informações que deve ser cadastrado são as funções específicas
da linguagem de programação utilizada. Esse cadastro permite a dinamicidade da lingua-
gem R-Educ e com isso uma gama de possibilidades quanto à abstração de linguagem.
Essas funções podem ser funções padrões da linguagem, como conversão entre tipos
de dados, por exemplo, funções específicas para robótica, como configuração de pinagem
ou movimentação de motores. Além de funções herdadas de algum arquivo inserido no
cabeçalho, sequência de comandos definidos no momento do cadastro e chamadas de
funções definidas no cabeçalho ou rodapé do arquivo.
No momento do cadastro da função deve ser definido qual será seu nome de chama-
mento em R-Educ, o número de parâmetros da função, seu tipo de retorno, tipo da função
e seu código fonte. De fato, quando um usuário realiza o cadastro de uma função em
R-Educ ele está indicando qual código deverá ser escrito quando uma função cadastrada
7.2. TRADUTOR UNIVERSAL 61

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).

Algoritmo 1: Algoritmo para seguir linha em R-Educ


inicio
definircor(1)
definircor(2)
enquanto (1=1) farei {
seguirlinha(1,2)
}
fim
O Algoritmo 1 apresenta um código padrão em R-Educ que realiza a chamada de duas
funções, apresentadas na Tabela 7.2, que foram cadastradas para a linguagem NXC, uma
função simples definircor e outra com alto grau de abstração seguirlinha. A primeira
função ao ser chamada define que há um sensor de cor na porta especificada por parâme-
tro. Já a segunda função ao ser chamada realiza uma rotina para que um robô com dois
sensores de cor, cuja porta ao qual está conectado são especificadas por parâmetros, possa
seguir uma linha preta em uma superfície branca.

Tabela 7.2: Funções Cadastradas


Função Parâmetro
definircor Porta
seguirlinha 1- Porta do sensor da
direita
2- Porta do sensor da
esquerda

Após realização da tradução o código gerado em NXC para o Algoritmo 1 escrito em


R-Educ será o apresentado no Algoritmo 2. Observe que duas simples chamada de função
em R-Educ gerou um código complexo. Dessa forma, dependendo do grau de familiari-
dade do usuário com a programação podem ser criados múltiplas instâncias da linguagem
R-Educ com diferentes níveis de abstração.
62 CAPÍTULO 7. IMPLEMENTAÇÕES

Algoritmo 2: Tradução do Algoritmo 1 para NXC


task main () {
SetSensorColorFull(IN_1);
SetSensorColorFull(IN_2);
while (1==1) {
if (Sensor(IN_1) == 1) {
OnFwd(OUT_B, 100);
OnRev(OUT_C, 100);
Wait(100);
}
else {
if (Sensor(IN_2) == 1) {
OnFwd(OUT_C, 100);
OnRev(OUT_B, 100);
Wait(100);
}
else {
OnFwd(OUT_BC, 100);
Wait(100);
}
}
}
}

7.2.4 Análise Léxica


O analisador léxico tem por função isolar palavras reservadas, símbolos especiais e
outras estruturas a fim de transformá-las em estruturas mais convenientes para as demais
fases do processo de compilação. O processo de análise léxica implementado realiza um
pré-processamento do código escrito na linguagem R-Educ. Para tal, o analisador léxico
recebe o arquivo com o código escrito em R-Educ e realiza a identificação e separação
de palavras, cujo primeiro passo é uma busca por símbolos específicos a fim de realizar
a separação de palavras processáveis pela linguagem através da inserção de espaços entre
elas.
Cada palavra encontrada, sendo ela reservada ou não, é inserida em uma lista contendo
o seu conteúdo e a linha a que pertence. Em seguida cada lista é inserida em uma fila que é
formada por ordem de aparecimento das palavras no texto do início ao fim, cada posição
7.2. TRADUTOR UNIVERSAL 63

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.

Figura 7.7: Fila de tokens gerada a partir do Algoritmo 1

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.

7.2.5 Análise Sintática


Ao finalizar a análise léxica é dado início a análise sintática. Este processo tem por
objetivo principal determinar se o código fonte acessado por este, apresentado através
de um conjunto de tokens gerado pelo analisador léxico, possui sentenças válidas para a
linguagem em uso.
Por se tratar de uma análise sintática universal, diretamente associada com as infor-
mações cadastradas pelo usuário, a primeira tarefa do analisador sintático desenvolvido
será acessar o banco de dados e carregar suas variáveis com as estruturas necessárias
para formação do programa objeto, através do processo de mapeamento. A sentença será
convertida para seu código na linguagem correspondente ao final de cada análise de sen-
tença. Dessa forma, o analisador sintático implementado é responsável pela geração do
programa na linguagem alvo e sua compilação posterior em linguagem objeto.
O primeiro passo realizado no processo de análise sintática é a geração de uma tabela
com os símbolos definidos na linguagem R-Educ. Essa tabela é acessada pela função
keyword que a cada token recebido verifica se a palavra armazenada representa algum
dos símbolos válidos da linguagem para dar continuidade ao processo. Em seguida, é
realizada a criação de um arquivo com a extensão da linguagem alvo e uma contabilização
do número de tokens a serem processados. Todos os dados fornecidos no processo de
cadastro são acessados e a análise começa a ser efetivamente realizada.
Os primeiros dados a serem escritos no código em linguagem alvo são os fornecidos
como cabeçalho na etapa de cadastro da linguagem. Em seguida será utilizada a gramá-
64 CAPÍTULO 7. IMPLEMENTAÇÕES

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:

• <tarefa> := tarefa <nome da tarefa> { <instrucao>* }


• <nome da tarefa> := <letra> ( <letra> || <numero>) *
• <controle de fluxo> := <condicional> || <repeticao>
• <condicional> := se ( <condicao> ) entao { <instrucao>* } [ senao {<instrucao>*}
]
• <variavel> := <letra> (<letra> || <numero>)*
• <repeticao> := repita <numero> vezes || vez { <instrucao>* }
• <para> := para <variavel> de <numero> ate <numero> passo <numero> { <instru-
cao>* }
• <enquanto> := enquanto <condicao> farei <instrucao>*
• <farei> := farei <instrucao>* enquanto <condicao>
• <operadores> := = || > || >= || < || <= || != || e || ou || !
• <letra> := [A-Za-z]
• <instrucao> := <controle de fluxo> || <nome de acao>
• <condicao> := <variavel> <operador> <variavel>
• <nome de acao> := <letra> ( <letra> || <numero> )*
• <numero> := (0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9)*

Ao ser encontrada a função principal do programa as verificações seguem de forma


similar, o programa terá sua análise sintática realizada de forma recorrente para cada sen-
tença até que a palavra fim, que especifica o término da função principal seja encontrado.
Por fim, o rodapé fornecido da etapa de cadastro é escrito no fim do arquivo com
o código traduzido para a linguagem alvo. Caso nenhum erro seja encontrado durante
o processo de análise sintática será realizada uma chamada de sistema com os dados
fornecidos na etapa de cadastro para geração do programa em linguagem objeto.
7.2. TRADUTOR UNIVERSAL 65

7.2.6 Análise e Verificação de Erros


Durante todo o processo de análise sintática é realizada uma verificação e análise
de erros. Caso seja encontrado qualquer erro na escrita de sentenças, o processo é in-
terrompido imediatamente. Todo o algoritmo traduzido já escrito no código fonte será
substituído por um código de erro seguido da descrição do erro e/ou sua possível causa.
O sistema desenvolvido realiza uma quantização e categorização de erros. Esses dados
são disponibilizados ao usuário do tipo Aluno a fim de que este possa saber onde tem se
concentrado seus erros, e ao usuário do tipo Professor, que pode verificar seus próprios
erros e os erros de seus alunos para orientá-los de forma mais eficaz.
O sistema conta com 31 diferentes tipos de erro, divididos em 8 categorias. As cate-
gorias distribuem os erros em erro de sintaxe, escrita das tarefas, escrita de nomes, escrita
de funções e estruturas de controle de fluxo. Os diferentes tipos de erros estão dispostos
na Tabela 7.3. Não são esperados que sejam encontrados erros no processo de compila-
ção seguinte a tradução, caso algum erro ocorra este será devido a algum erro realizado
no cadastro da linguagem no sistema e não um erro inerente a este. Caso a compilação
seja realizada diretamente na linguagem alvo, será fornecido ao usuário o relatório de erro
gerado pelo próprio compilador.
66 CAPÍTULO 7. IMPLEMENTAÇÕES

Tabela 7.3: Lista de Erros


Código Erro
01 INICIO não encontrado
02 Não é possível declarar TAREFAS dentro da função INICIO
03 Utilização de nome inválido
04 Falta ’{’
05 Função INICIO em duplicidade
06 FIM não encontrado
07 Esta declaração deve ser feita dentro do INICIO
08 Está faltando um SE
09 Erro nos parâmetros da função NOME_DA_FUNCAO
10 Expressão inexistente
11 Está faltando "
12 A quantidade de parâmetros é maior do que a necessária
13 Está faltando um parâmetro
14 Parâmetro com valor inválido
15 Está faltando ’(’
16 Confira os parênteses
17 Erro na condição
18 ENQUANTO não encontrado
19 Confira a gramática da sua expressão
20 É exigido um número nesta expressão
21 Erro na sintaxe do PARA
22 SAIR está fora de um laço de repetição
23 Expressão com valor inválido
24 Falta expressão
25 Está faltando ’:’
26 SENAO em duplicidade
27 Falta operador para comparação
28 Confira a expressão anterior
29 Expressão matemática incorreta
30 Operador inválido
31 Confira a sintaxe da estrutura
Capítulo 8

Experimentos e Resultados

Para fins de resultados, apresentaremos neste Capítulo o modelo atual do ambiente,


conhecido como Protótipo 03, suas telas, modos de uso, especificações, linguagens atual-
mente cadastradas e o nível de abstração de linguagens alcançado.
Em seguida, para fins de validação, apresentaremos os dois protótipos utilizados como
teste da ferramenta com uma avaliação geral fazendo uso do método EducAval. E por fim,
avaliaremos o ambiente desenvolvido em comparação com os ambientes mais utilizados
no cenário nacional, segundo pesquisa realizada nas etapas nacionais da Olímpiada Bra-
sileira de Robótica em 2014 e 2015.

8.1 Ambiente W-Educ


A fim de realizar a programação em R-Educ e em outras linguagens cadastradas por
usuários do tipo Professor, implementamos um ambiente web utilizando APIS específicas
do Java EE. O ambiente desenvolvido é web, gratuito e está disponível online no sítio
<http://www.natalnet.br/weduc> a fim de ser amplamente difundida. Uma vez que
a escrita e compilação do algoritmo pode ser realizada em qualquer dispositivo que possua
um browser web, todo os recursos computacionais necessários restringen-se ao servidor.
Além disso, o fato de ser web torna desnecessária a instalação de programas e drivers
auxiliares.

8.1.1 Principais Telas e Funcionalidades


A tela principal do ambiente web, acessada por um usuário do tipo Aluno, está apre-
sentada na Figura 8.1, nela é possível visualizar a mensagem de boas vindas do sistema,
acessar o fórum de discussão, verificar quais robôs estão cadastrados no sistema com
suas respectivas linguagens de programação, acessar resultados de aplicações do método
68 CAPÍTULO 8. 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.

Figura 8.1: Tela principal do W-Educ

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.

Figura 8.2: Fórum de discussão

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.

Figura 8.3: Professores do sistema

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.

Figura 8.4: Solicitação de graduação no sistema

O menu lateral esquerdo do usuário do tipo Professor difere do inerente ao usuário


do tipo Aluno, por possuir três funcionalidades a mais. A ele é permitido cadastrar lin-
guagens, gerenciar linguagens cadastradas e gerenciar alunos. O cadastro e gerência de
linguagens é realizado a partir do mesmo formulário que expõe de forma didática e intu-
tiva como deve ser realizado o registro de linguagens no sistema. A seção do formulário
70 CAPÍTULO 8. EXPERIMENTOS E RESULTADOS

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.

Figura 8.5: Formulário de cadastro de linguagens de programação

Ao ser acessado o menu desempenho ou gerência de alunos, o usuário tem acesso


aos dados estatísticos de seu desempenho ou do aluno selecionado. Na tabela do lado
esquerdo da Figura 8.6 é apresentado um relatório geral do usuário, incluindo o número
total de compilações bem e mal sucessidadas, quantos programas possui no banco de
dados, quantas linguagens já utilizou. No gráfico do lado direito da Figura 8.6 dados
mais concisos são apresentados. Neste gráfico são apresentados a quantidade de erros
categorizados para cada data de acesso do usuário no sistema. A partir desses dados
o usuário do tipo Professor pode acompanhar os erros mais recorrentes do aluno e sua
evolução ao utilizar o sistema.

8.1.2 Linguagens em Uso


O ambiente W-Educ é um ambiente dinâmico que permite o cadastro de diversas lin-
guagens de programação. Ao acessar o ícone Robôs e linguagens de programação pre-
sente na tela principal o usuário é redirecionado para a tela apresentada na Figura 8.7.
Nesta são dispostos as linguagens cadastradas, a que robô cada instância da linguagem
está associada e uma breve descrição. Ao clicar em programar o usuário é redirecionado
para o ambiente de programação.
Atualmente o W-Educ já possui 6 linguagens cadastradas, sendo possível programar
8.1. AMBIENTE W-EDUC 71

Figura 8.6: Dados de desempenho do usuário

Figura 8.7: Tela de escolha de linguagem de programação

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.

8.1.3 Ambiente de Programação


A Figura 8.9 apresenta o ambiente de programação do W-Educ. Nele, é possível se-
lecionar se deseja programar em R-Educ ou diretamente na linguagem alvo, nesse caso
NXC, por exemplo. É possível salvar e abrir programas salvos no banco de dados, com-
pilar o programa, visualizar dicionário de funções, enviar código ao robô, baixar o código
escrito na extensão atual, converter para a linguagem alvo e solicitar correção do código
72 CAPÍTULO 8. EXPERIMENTOS E RESULTADOS

Figura 8.8: Linguagens atualmente cadastradas

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.

Figura 8.9: Ambiente de programação do W-Educ

O dicionário de funções, ilustrado na Figura 8.10, apresenta um guia com todos os


nomes de funções específicas para a instância de R-Educ escolhida, quantos parâmetros
cada função possui e uma breve descrição de cada uma. Esses dados dependem do nível
de completude utilizada pelo cadastrante da linguagem.
Ao ser solicitado o envio do código ao robô, é gerado no servidor um arquivo com
extensão .jar, com o código compilado e todos os arquivos necessários ao envio e comu-
nicação do dispositivo computacional local com o robô. Esse arquivo é então enviado ao
dispositivo local e ao ser executado, descompacta os arquivos e executa uma chamada de
sistema específica para realização do envio. Ao término da execução desta chamada os
arquivos descompactados são automaticamente excluídos.
8.1. AMBIENTE W-EDUC 73

Figura 8.10: Dicionário de funções de R-Educ para NXC

8.1.4 Abstração de Linguagem


A abstração das linguagens de programação pode ser visualizada através da funcio-
nalidade de conversão presente no ambiente de programação, que traduz de R-Educ para
a linguagem selecionada. Um código simples, apresentado na Figura 8.11 apenas com
início e fim de programa escrito na instância de R-Educ para a linguagem Ino, para pro-
gramação de dispositivos Arduino Nano, ao ser solicitada a conversão para INO-Nano irá
gerar o código disposto na Figura 8.12.

Figura 8.11: Código a ser traduzido em Ino-Nano

Caso a linguagem de programação escolhida necessite de definições (defines) ou pos-


suir diversas especificações que devem ser inseridas no código fonte, a conversão irá gerar
um código mais extenso e complexo, como é o caso do algoritmo apresentado na Figura
8.13. O algoritmo apresentado, ao ser convertido, gerou o código de 48 linhas apresen-
tado na Figura 8.14. O código fonte apresentado na Figura 8.13 foi traduzido de R-Educ
para a linguagem alvo CV3.
74 CAPÍTULO 8. EXPERIMENTOS E RESULTADOS

Figura 8.12: Código traduzido em Ino-Nano

Figura 8.13: Código a ser traduzido em CV3

8.2 Teste dos Protótipos

A robótica educacional oferece diversos recursos que beneficiam o processo de ensino


e aprendizagem. A fim de incentivar sua utilização, um grupo de professores universitá-
rios criaram a Olimpíada Brasileira de Robótica - OBR. O foco desta Olimpíada escolar é
motivar os alunos do ensino fundamental e médio, desmistificar e popularizar a robótica
no Brasil, além de atrair talentos para os cursos superiores nas áreas de ciência e tecno-
logia. A OBR possui dois tipos de modalidades: teórica e prática. Na teórica os alunos
realizam uma prova teórica acerca da robótica utilizando apenas os conteúdos e conceitos
relevantes ao seu nível de ensino. Já na etapa prática, um grupo de estudantes devem solu-
cionar uma situação problema utilizando um dispositivo robótico montado e programado
8.2. TESTE DOS PROTÓTIPOS 75

Figura 8.14: Código traduzido em CV3

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

hardwares e linguagens completamente distintos utilizando como ferramenta o ambiente


proposto nesta tese. Para fins de avaliação e validação dos protótipos, realizamos uma
compilação dos dados coletados durante os minicursos oferecidos na OBR nos anos de
2014 e 2015 e apresentamos os 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

Figura 8.15: Tela de programação do Protótipo 01

Figura 8.16: Tela inicial do Protótipo 01

duração de três dias todos os alunos conseguiram programar satisfatoriamente o robô,


manipulando seus motores e fazendo leituras de sensores, além de enviar o programa ao
robô utilizando o ambiente W-Educ.

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.

Figura 8.17: Bot’N Roll One A

O minicurso contou com a participação de 26 alunos e 2 professores. Durante o curso


os estudantes foram apresentados pela primeira vez à programação fazendo uso do ambi-
ente W-Educ e realizaram diversas atividades, dentre elas: movimentação do robô, seguir
linha e desviar de obstáculos. Ao fim do curso, os estudantes tiveram de programar seus
8.2. TESTE DOS PROTÓTIPOS 79

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.

8.2.3 Avaliação Geral


Para realizar uma avaliação geral do ambiente proposto utilizamos o método avaliativo
EducAval, descrito no Capítulo 5, que consiste em três partes, nas duas primeiras, cada um
dos usuários, professores e alunos envolvidos no processo de ensino-aprendizagem, res-
ponderam ao questionário destinado ao seu perfil. Estes determinaram as funcionalidades
do software e o avaliaram de acordo com os aspectos técnicos e didáticos apresentados no
questionário. Além disso, os avaliadores puderam especificar que tipo de atividades didá-
ticas são passíveis de serem realizadas com o software, bem como inseriram comentários
na avaliação.
Os resultados apresentados nesta seção, foram gerados a partir de uma compilação dos
resultados obtidos na aplicação de questionários após a utilização do primeiro e segundo
protótipo. Como mencionado na Seção 8.2.1 e 8.2.2, o primeiro protótipo foi utilizado
para programação de robôs do kit Lego MindStorms EV3 e o segundo para programa-
ção de robôs Bot’N Roll One A. Nesses testes foram coletados dados de 45 alunos e 5
professores. A partir da coleta e análise dos dados obtidos, observamos que houve uma
convergência de valores. Dessa forma, os resultados foram considerados válidos para a
análise em questão.
Os dados obtidos foram utilizados para gerar a análise qualitativa do ambiente, in-
dicando quais os seus principais atributos. Inferimos a partir dos dados que os usuários
aprovam o ambiente W-Educ. A nota para o quesito público alvo que questiona se o am-
biente atinge ou não o público indicado tanto pelos professores como pelos alunos, obteve
média de 9,84, sendo de 9,89 pelos alunos e 9,80 pelos professores, sendo esta a sua maior
nota entre os quesitos avaliados, verificando e validando que essa exigência foi satisfeita.
Outros atributos relevantes que obtiveram destaque em relação a sua avaliação foram
os quesitos capacidade de execução em diferentes tipos de hardware e layout favorável
80 CAPÍTULO 8. EXPERIMENTOS E RESULTADOS

ao uso. Para o quesito capacidade de execução em diferentes tipos de hardware foram


obtidas notas de 9,70 pelos alunos e 9,60 para os professores, caracterizando que o am-
biente tem a capacidade de realizar a programação de diferentes tipos de dispositivos
robóticos, validando assim o conceito principal da ferramenta proposta nesta tese. Para o
quesito layout favorável ao uso foi obtida uma média de 9,44 pelos alunos e 9,40 pelos
professores.
No gráfico apresentado na Figura 8.18 podemos observar a variação das notas entre
alunos e professores em relação aos questionamentos realizados nos questionários, que
foram respondidos obedecendo uma escala de 0 a 10. Os quesitos cujos resultados estão
compilados no gráfico são os seguintes:

• Q1 - Facilidade do software em ser modificado e a detecção de erros;


• Q2 - Capacidade de execução em diferentes tipos de hardware;
• Q3 - Satisfação diante das necessidades dos usuários;
• Q4 - Garantia de que o software não falha durante o período de execução;
• Q5 - Qualidade diante dos objetivos específicos;
• Q6 - Rapidez no tempo de resposta;
• Q7 - Layout favorável ao uso;
• Q8 - Clareza do conteúdo;
• Q9 - Atinge ao público alvo.

Figura 8.18: Gráfico comparativo entre as médias dos professores e alunos

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.

Figura 8.19: Gráfico comparativo entre as médias dos professores e alunos

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

Tabela 8.1: Medidas de Dispersão


Desvio Padrão Variância
Q1 0,71/3,78 0,50/14,32
Q2 0,89/1,74 0,80/3,03
Q3 0,45/1,44 0,20/2,07
Q4 1,14/2,74 1,30/7,50
Q5 0,71/3,25 0,50/10,56
Q6 0,84/2,57 0,70/6,62
Q7 0,89/2,19 0,80/4,80
Q8 0,84/1,79 0,70/3,21
Q9 0,45/0,75 0,20/0,56
Q10 0,55/— 0,30/—
Q11 1,10/— 1,20/—

"Apesar de ser cômodo usar uma interface online, uma offline facilitaria o
trabalho na falta de internet." (L. 16 anos)

No entanto, apesar do problema de conexão, outro aluno enalteceu a filosofia proposta


nesta tese:

"Plataforma muito eficiente, pois é online e não necessita do download de


softwares." (T. 17 anos)

Após analisar os questionários dos alunos e professores e comparar os seus dados,


iremos analisar separadamente os questionários dos professores devido a este apresentar
dois quesitos a mais que avaliam o software do ponto de vista didático, são eles:

• Q10 - Favorecimento da aprendizagem;


• Q11 - Favorecimento do ensino.

Nesta etapa os professores avaliaram que o software favorece o processo de ensino


e aprendizagem, e deram a esses dois quesitos as médias 9,40, e 9,20, respectivamente.
100% dos professores inferiram que o ambiente oferece diferentes tipos de dificuldades e
afirmam que o software oferece feedback.
Foi avaliado, também, se o ambiente atinge o público alvo que se destina. A classifi-
cação obtida a partir dos dados fornecidos pelos professores entrevistados foi uma média
de classificação indicativa de 7,80 a 18,00 anos.
Durante o processo de avaliação, como mencionado, os professores também deveriam
inferir quais as funcionalidades presentes no ambiente. O gráfico da Figura 8.20 apresenta
8.2. TESTE DOS PROTÓTIPOS 83

Figura 8.20: Gráfico avaliativo das funcionalidades do software

no eixo das ordenadas as possíveis funcionalidades e no eixo das abscissas o percentual


de professores que apontaram que cada uma dessas funcionalidades está presente.
Com base nos resultados apresentados na Figura 8.20 pode ser observado que as qua-
tro funcionalidades mais indicadas pelos professores são ambiente de programação tex-
tual, utilização de diferentes hardware, utilização de diferentes linguagens de programa-
ção e plataforma web obtendo 100% de indicação nesses quesitos.
Depois de realizadas as análises dos resultados, foi calculada e inferida uma média
geral do ambiente, a partir da média dos resultados de cada quesito avaliado por alunos e
professores, a qual foi de 8,67 pelos alunos e 9,04 pelos professores. Assim, com isso, a
ferramenta W-Educ obteve uma média geral de 8,85.
Algumas observações foram inferidas pelos alunos quanto as funcionalidades e possi-
bilidades de execução do ambiente. Em um dos comentários feitos por alunos, um deles
observou a capacidade de expansão do ambiente por se tratar de uma ferramenta web.

"Apesar de novo, o software promete facilitar o aprendizado e se expandir


bastante." (A. 18 anos)

A linguagem de programação utilizada no ambiente W-Educ também foi comentada


pelos alunos por ser de fácil entendimento.

"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)

"Gostei muito do software, achei de fácil entendimento, até porque o aprendi


em 2 dias. Muito bom." (G. 16 anos)
84 CAPÍTULO 8. EXPERIMENTOS E RESULTADOS

"O software ajuda na aprendizagem de forma simples, fica mais fácil apren-
der programação." (A. 17 anos)

"Com ele a atividade de programar torna-se bastante simples e divertida, e


como ele tem um layout simples e eficiente não se torna cansativo." (L. 16
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.

"Com o software é possível digitar códigos e comandos de programas em


português, o que é melhor que o uso do inglês, além de compilar o programa,
tornando-se acessível ao robô. Além de ter instruções para o aprendizado no
uso da linguagem." (N. 17 anos)

"Escrever, salvar, compilar e baixar programas em diferentes linguagens,


para realizar automação de robôs." (T. 17 anos)

Um dos professores avaliados elencou as principais vantagens encontradas em se usar


o ambiente proposto frente aos já disponíveis.

"Principais vantagens: 1) uso online, permitindo ser utilizado não só em sala


de aula. 2) diferentes níveis: engloba não só a dificuldade de cada atividade
como também o aprendizado de novas linguagens, que serão utilizados em
diferentes hardwares." (Professor 1)

8.3 Comparação entre Ambientes para Robótica Educa-


cional
Nesta Seção apresentaremos uma avaliação do ambiente W-Educ ao ser comparado
com outros softwares para robótica educacional já avaliados com o método EducAval.
Nesta comparação, serão destacadas as funcionalidades que são comuns ou não entre os
softwares.
A fim de realizar a comparação entre os softwares de robótica educacional e o am-
biente proposto nesta tese, foi realizada uma pesquisa com aplicação de questionários
do método EducAval nas etapas regional e nacional da Olimpíada Brasileira de Robótica
nos anos de 2014 e 2015. Nesta pesquisa, foram contabilizados quais os ambientes de
8.3. COMPARAÇÃO ENTRE AMBIENTES 85

programação e robôs mais utilizados nesta competição. A procura de um maior número


de amostras, aplicamos o método em uma escola municipal de João Pessoa no estado da
Paraíba e em um clube de robótica conhecido no Rio Grande do Norte.
Dentre os softwares avaliados foram escolhidos os seis mais utilizados para apresentar
e comparar os resultados com o W-Educ. A seguir elencamos os ambientes que serão
analisados, o número de amostras colhidas e uma breve descrição do ambiente.

• LEGO NXT (40 alunos 12 professores): ambiente de desenvolvimento que acom-


panha o kit da linha Lego MindStorms NXT;
• RoboEduc (15 alunos e 12 professores): software voltado para aplicação em robó-
tica educacional que permite o controle e programação de diferentes robôs;
• Bricxcc (11 alunos e 8 professores): ambiente de desenvolvimento voltado para
robôs da linha Lego MindStorms NXT e EV3;
• W-Educ (45 alunos e 5 professores): ambiente proposto;
• LEGO EV3 (16 alunos e 5 professores): ambiente de desenvolvimento que acom-
panha o kit da linha Lego MindStorms EV3;
• Legal (20 alunos e 7 professores): software que acompanha o kit de robótica edu-
cacional PETE;
• Arduino IDE (39 alunos e 10 professores): ambiente de desenvolvimento para pro-
gramação de Arduinos;

Os professores e alunos que participaram da avaliação, em geral, são professores de


Matemática ou Física e alunos do ensino fundamental e médio com experiência interme-
diária em robótica e programação. Observamos na pesquisa realizada que os alunos mais
experientes abandonam a Olimpíada Brasileira de Robótica para participares de compe-
tições mais avançadas, como a RoboCup Júnior, dessa forma não foi comum encontrar
alunos com experiência avançada.
Os gráficos apresentados nas Figuras 8.21 e 8.22 mostram um comparativo das notas
entre os professores e alunos para cada quesito especificado na Seção 5.3. O software
RoboEduc, de acordo com os professores, se destaca no Q8 com nota superior aos demais
softwares. No entanto para os alunos apenas no quesito Q1 o software se destaca frente
aos demias. De acordo com os professores e alunos, os quesitos que obtiveram maiores
notas em relação aos demais softwares foram os quesito Q1 e Q5, respectivamente, inferi-
mos que esse software é fácil em ser modificado e considerado eficaz diante dos objetivos
específicos. Há uma discrepância significativa entre os resultados do Q2, apontando uma
falta de conhecimento do usuário quanto as funcionalidades do software, visto que o Ro-
boEduc possibilita a programação em diferentes tipos de hardware (Lego Mindstorms
86 CAPÍTULO 8. EXPERIMENTOS E RESULTADOS

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.

Figura 8.21: Gráfico comparativo entre as notas atribuídas pelos professores

Figura 8.22: Gráfico comparativo entre as notas atribuídas pelos alunos

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

Tabela 8.2: Melhores Softwares por Quesitos Avalidados


Quesito Software e Classificação
Q1 RoboEduc (1), Arduino IDE (2) e W-Educ (3)
Q2 W-Educ (1) e Arduino IDE (2)
Q3 W-Educ (1), Arduino IDE (2) e LEGAL (2)
Q4 Arduino,IDE,(1), W-Educ (1) e BricxCC (2)
Q5 RoboEduc,(1), W-Educ (1) e Arduino IDE (1)
Q6 Arduino IDE (1), LEGAL (2) e W-Educ (3)
Q7 W-Educ (1), RoboEduc (2) e LEGAL (3)
Q8 W-Educ (1), LEGAL (2) e RoboEduc (3)
Q9 W-Educ (1) LEGAL (2) e Arduino IDE (3)
Q10 W-Educ (1), LEGAL (2) e Lego NXT (3)
Q11 LEGAL (1), Lego NXT (2) e W-Educ (3)

Ao analisarmos os resultados, podemos concluir que o software melhor avaliado com


nota geral de 8,85 foi o ambiente W-Educ, proposto nesta tese. De acordo com os profes-
sores, este software obteve três maiores notas entre os onze quesitos, Q3, Q9 e Q10. De
acordo com os alunos, o software W-Educ foi o melhor avaliado e obteve nota superior
aos demais em três quesitos, Q2, Q7 e Q8. Dentre os quesitos destacados por professores
e alunos a discrepância máxima encontrada entre os dados foi de 0.47 pontos. No entanto,
dentre as funcionalidades presentes no W-Educ uma das restrições observadas foi a au-
sência de um ambiente de programação gráfica, assim como nos softwares LEGO NXT,
RoboEduc, LEGO EV3 e Legal. Além disso, por se tratar de um ambiente web ele não é
possível de ser executado off-line. A não ser que seja instalado um servidor local.
Um resumo dos softwares com as melhores avaliações a partir da média geral, entre
professores e alunos, obtida por quesito é apresentado na Tabela 8.2. Na segunda coluna
da tabela, estão dispostos os softwares seguidos de sua classificação. Alguns softwares
se apresentam estatisticamente equivalentes em alguns quesitos, possuindo, desta forma,
a mesma colocação. No quesito Q2, apenas dois softwares estão listados. Estes apre-
sentam valores da média altos (9,69 e 9,45 respectivamente) e valores de variância baixo
(1,33/5,56 e 4,18/8,52) quando comparado aos demais.
Observamos na Tabela 8.2 que o ambiente web W-Educ proposto nesta tese se apre-
senta em primeiro lugar em seis quesitos e nos demais ele se apresenta como destaque
em uma das três primeiras colocações. Dessa forma, percebemos que a pesquisa pré-
via das funcionalidades de cada software e seus principais atributos foi eficaz. Inferimos
que o ambiente desenvolvido cumpriu a proposta de preencher as lacunas existentes nos
ambientes disponíveis para robótica educacional.
Capítulo 9

Conclusão

Neste trabalho, propomos o projeto e desenvolvimento de um ambiente voltado para


a web, completo e dinâmico, para suporte às atividades de robótica educacional. A hi-
pótese de que é possível programar diferentes tipos de dispositivos robóticos utilizando
uma única linguagem de programação foi demonstrada nesta tese. Sua demonstração
foi possível através da utilização de uma única linguagem de programação, chamada de
R-Educ, que ao ser processada por um tradutor universal, alimentado por um banco de
dados, permite a geração de código compatível com múltiplas plataformas.
Para inferir quais funcionalidades deveriam ser inseridas no ambiente, foi elaborado
um método homogêneo específico para avaliação de softwares de robótica educacional.
Este foi aplicado aos diferentes tipos de usuários dos softwares mais utilizados em robó-
tica educacional. Em seguida, baseando-se na análise dos dados obtidos o ambiente foi
desenvolvido e validado a partir do teste de dois protótipos em minicursos de robótica
oferecidos na etapa nacional da Olimpíada Brasileira de Robótica nos anos de 2014 e
2015. Os resultados obtidos permitiram inferir a qualidade da ferramenta proposta frente
às demais. Pode ser notado nos resultados experimentais que esta se destaca com média
geral superior a todas as ferramentas avaliadas.
A nível de técnica, esta tese deixa como contribuição principal o tradutor universal de
linguagens, disponível de forma gratuita no sítio do Laboratório Natalnet[W-Educ 2016b].
Além disso, fica como legado uma plataforma completa de suporte à aplicação de oficinas
de robótica e programação de robôs, um método de avaliação homogêneo para softwares
voltado para aplicações em robótica educacional, até então inexistente na literatura, e dois
kits de robótica educacional de baixo custo. Todo o suporte necessário para montagem e
programação destes kits estão disponibilizados na plataforma web, permitindo que usuá-
rios possam comprar os componentes, montar e programar seu próprio robô.
Algumas limitações, não suficientes para invalidar este trabalho, foram encontradas
durante a fase de testes. Apresentamos a seguir cada uma delas como propostas de traba-
90 CAPÍTULO 9. CONCLUSÃO

lhos futuros.

9.1 Trabalhos Futuros


Versões em inglês e espanhol do ambiente são propostas futuras, a fim de alcançar
um público maior. De fato, já temos contato com o Perú para a versão em espanhol
(Universidade Católica de San Pablo, em Arequipa). Ainda como sugestão de trabalho
futuro, propomos a possibilidade de programar com mais de um arquivo de código. Além
disso, a estruturação de uma versão desktop simplificada do ambiente, ou a criação de uma
instância desktop para cada linguagem cadastrada, seria uma proposta relevante devido
aos impasses encontrados frente a falhas com a Internet.
Ainda como trabalho futuro, propomos também a criação de um módulo de programa-
ção gráfica a fim de permitir que alunos que ainda não aprenderam a ler possam realizar
de forma satisfatória a programação de dispositivos robóticos. Outra sugestão, por fim,
é a criação de um simulador web compatível com as diversas instâncias da linguagem
R-Educ presentes no ambiente. De fato, este último item já vem sendo atendido, uma
vez que um simulador robótico versão desktop já está sendo implementado em trabalho
paralelo, pela equipe do Laboratório Natalnet, e deve ser apenas adaptado para sua versão
web.
Referências Bibliográficas

ABNT (2003), Engenharia de software - qualidade de produto, Relatório técnico, NBR


ISO/IEC 9126-1:2003.

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.

Aho, A. V., M. S. Lam, R. Sethi & J. D. Ullman (2008), Compiladores: Princípios,


técnicas e ferramentas, Vol. 2, Pearson Addison-Wesley.

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’.

Arduino (2016), ‘https://www.arduino.cc’.

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

Barbosa, Marcelo R. G., Felipe A. Silva, Victor M. de A. Oliveira, Valéria D. Feltrim,


Luiz G. B. Mirisola, Paulo C. Gonçalves, Josué J. G. Ramos & Lucas T. Alves
(2009), Implementação de compilador e ambiente de programação icônica para a
linguagem logo em um ambiente de robótica pedagógica de baixo custo, em ‘XX
Simpósio Brasileiro de Informática na Educação’.

Barriuso, J. M., E. Castellano, J. Cebrián, J. Garcia, M. J. Haro, M. Herreros, I. Pérez,


J. Valiente & I. Vidosa. (2004), Experiencias com robots en aulas de secundaria.,
em ‘Avances en Informática Educativa’, Servicio de Publicaciones, Universidad de
Extremadura, Cáceres Espanã, p. 98.

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.

BricxCC (2016), ‘Bricxcc’, Disponível em: http://bricxcc.sourceforge.net. Acesso em:


13 de junho de 2016.

Chomsky, Noam (1965), Aspects of the Theory of Syntax.

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’.

Dicionário Aurélio (2013), http://www.dicionariodoaurelio.com/.

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.

Editorial (2005), ‘Teaching robotics on the web’.

Eguchi, Amy (2012), ‘Educational robotics theories and practice: Tips for how to do it
right’.
REFERÊNCIAS BIBLIOGRÁFICAS 93

Fernandes, Carla C. (2010), ‘Ambiente simulado da metodologia roboeduc’.

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’.

Fortes, Renata M. (2007), Interpretaçãdo de gráficos de velocidade em um ambiente ro-


bótico, Dissertação de mestrado, PUC, São Paulo, SP.

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.

Gomes, A. S., J. A. C. Filho, V. Gitirana, A. Spinillo, M. Alves, M. Melo & J. Xi-


menes (2002), Avaliação de software educativo para o ensino de matemática, em
‘Workshop de Informática na Educação’.

Gomes, A. & et al. (2000), Medição e melhoria de processos de software, em ‘Workshop


de Qualidade de Software’, João Pessoa.

Gomes, V. (2012), Fundamentos da Programação de Computadores, Editora Prentice


Hall.

Hopcroft, John E., Rajeev Motwani & Jeffrei D Ullman (2015), Introdução à Teoria de
Autômatos , Linguagens e Computação (2Âa Edição).

IRobot (2013), Disponível em: http://www.irobot.com/us/. Acesso em: 08 de junho de


2013.

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’.

Lab, Open Roberta (2016), ‘Open roberta’, Disponível em: https://lab.open-roberta.org/.


Acesso em: 13 de junho de 2013.
94 REFERÊNCIAS BIBLIOGRÁFICAS

LEGO (2011), ‘Mindstorms nxt’, Disponível em: http://mindstorms.lego.com/en-


us/Default.aspx. Disponível em: 5 de dezembro de 2011. .

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. (2006), Robofácil: Especificação e implementação de artefatos de


hardware e software de baixo custo para um kit de robótica educacional, Dissertação
de mestrado, Universidade Federal do Rio de Janeiro, UFRJ, Rio de Janeiro, RJ.

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’.

Mootien, Saravanen, Robert T. F. Ah King & Harry C. S. Rughooputh (2006), A web-


based interface for the gryphon robot, em ‘International Journal of Electrical Engi-
neering Education’.

NatalNet (2013), ‘Laboratório natalnet’, Disponível em: http://www.natalnet.br. Acesso


em: 08 de junho de 2013.

Network, African Robotics (2016), ‘http://robotics-africa.org’.

Neves-Júnior, Othon R. (2011), Desenvolvimento da fluência tecnológica em programa


educacional de robótica educacional, Dissertação de mestrado, Universidade Federal
de Santa Catarina, UFSC, Florianópolis, SC.

N.I. (2013a), ‘Labview’, Disponível em: http://www.ni.com/labview/pt/. Acesso em: 08


de junho de 2013.

N.I (2013b), ‘National instruments’, Disponível em: http://www.ni.com/pt/. Acesso em:


09 de junho de 2013.
REFERÊNCIAS BIBLIOGRÁFICAS 95

Oracle (2016), ‘Integrated cloud applications and platform services’, Disponível em:
http://www.oracle.com. Acesso em: 19 de agosto de 2016.

Parallax Robotics (2013), Disponível em: http://www.parallax.com/. Acesso em: 08 de


junho de 2013.

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.

Pinto, M. (2011), Aplicação de arquitetura pedagógica em curso de robótica educacio-


nal com hardware livre, Dissertação de mestrado, Universidade Federal do Rio de
Janeiro - UFRJ.

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 (2011), Evolução, avaliação e validação do software roboeduc, Dissertaçã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’.

Pressman, R. S. (2000), Software Engineering: a Practitioner’s Approach, 5 e.d.a edição,


New York: McGraw-Hill.

Pressman, R. S. (2011), Engenharia de Software - Uma abordagem profissional, 7. e.d.a


edição, Mc Graw Hill.

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’.

RoboDynamics (2013), Disponível em: http://robodynamics.com. Acesso em: de junho


de 2013.

RobotC (2013), Disponível em: http://www.robotc.net. Acesso em: 08 de junho de 2013.

Rocha, A. R. C. (2001), Qualidade de software: Teoria e prática, Prentice Hall.

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.

Salazar-Silva, G. H., J. C. Martinéz-García & R. Garrido (1999), Enhancing basic robotics


education on the web, em ‘American Control Conference’, San Diego, California.

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 .

Silva, Alzira F. (2008), RoboEduc: Uma Metodologia de Aprendizado com Robótica


Educacional, Tese de doutorado, Universidade Federal do Rio Grande do Norte.

Simão, R. P. S. (2002), Características de qualidade para componentes de software, Dis-


sertação de mestrado, Fundação Educacional Edson de Queiroz - Universidade de
Fortaleza.
REFERÊNCIAS BIBLIOGRÁFICAS 97

Sommerville, Ian (2003), Software Enginnering, Pearson Education.

Tzafestas, Spyros G. (2009), Web Based Control and Robotics Education, Springer.

UserVoice (2016), ‘Code bender’, Disponível em: https://codebender.cc. Acesso em: 13


de junho de 2016.

Vex (2011), ‘Vex robotics design system’, Disponível em:


http://www.vexrobotics.com.br/. Disponível em: 20 de novembro de 2011 .

W-Educ (2016a), ‘Plataforma w-educ’, Disponível em: http://www.natalnet.br/weduc.


Acesso em: 19 de agosto de 2013.

W-Educ (2016b), ‘Tradutor universal de linguagens’.


URL: http://www.natalnet.br/weduc

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’.

Yanagisawa, Hideaki (2012), Evaluation of a web-based programming environment, em


‘15th International Conference on Network-Based Information Systems’.

Zilli, Silvana (2004), A robótica educacional no ensino fundamental: Perspectivas e prá-


ticas, Dissertação de mestrado, Universidade Federal de Santa Catarina - UFSC,
Florianópolis, SC.

Você também pode gostar