w-educ: um ambiente web, completo e dinâmico …de aula e com o crescimento de olímpiadas...

119
UNIVERSIDADE DO RIO GRANDE DO NORTE FEDERAL UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA E DE COMPUTAÇÃ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.

Upload: others

Post on 03-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDADE DO RIO GRANDE DO NORTEFEDERAL

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE

CENTRO DE TECNOLOGIA

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA E

DE COMPUTAÇÃO

W-Educ: Um Ambiente Web, Completo eDinâ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 EngenhariaElétrica e de Computação da UFRN (Área deconcentração: Engenharia de Computação)como parte dos requisitos para obtenção dotítulo de Doutor em Ciências.

Número de ordem PPgEEC: D181Natal, 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 todoamor e apoio.

A Erika Yanaguibashi e todos os meus amigos, por todas as orações, ajuda, dedicação ediscussões sobre este trabalho.

A equipe do laboratório NatalNet, em especial Francisco Bianor, João Marcos, Diogo eSebastiã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 oconselho dos ímpios, não imita a

conduta dos pecadores, nem seassenta na roda dos zombadores! Aocontrário, sua satisfação está na lei

do Senhor, e nessa lei medita dia enoite. É como árvore plantada à

beira de águas correntes: Dá frutono 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çãoaberta, dinâmica e completa para auxiliar no processo de ensino-aprendizagem neste tipode atividade. O ambiente permite que diferentes plataformas robóticas sejam programadasatravés do cadastro de linguagens de programação com suas respectivas funções de baixonível utilizando uma linguagem intermediária com alto nível de abstração. O sistemapode 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 ensinoaprendizagem 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 usodidá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 theregistration 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 orwithout 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 workincludes a homogeneous method for evaluating educational software for robotics, whichvalidated the developed tool through experiments that have assessed its didactical use andits 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 11.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 132.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 233.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 354.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 415.1 Questionários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5.2 Análise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.3 Estudo de Caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6 Kits de Robótica de Baixo Custo 476.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 537.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 678.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778.2.3 Avaliação Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

8.3 Comparação entre Ambientes . . . . . . . . . . . . . . . . . . . . . . . . 84

9 Conclusão 899.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . 698.4 Solicitação de graduação no sistema . . . . . . . . . . . . . . . . . . . . 698.5 Formulário de cadastro de linguagens de programação . . . . . . . . . . 708.6 Dados de desempenho do usuário . . . . . . . . . . . . . . . . . . . . . . 718.7 Tela de escolha de linguagem de programação . . . . . . . . . . . . . . . 718.8 Linguagens atualmente cadastradas . . . . . . . . . . . . . . . . . . . . . 728.9 Ambiente de programação do W-Educ . . . . . . . . . . . . . . . . . . . 728.10 Dicionário de funções de R-Educ para NXC . . . . . . . . . . . . . . . . 738.11 Código a ser traduzido em Ino-Nano . . . . . . . . . . . . . . . . . . . . 738.12 Código traduzido em Ino-Nano . . . . . . . . . . . . . . . . . . . . . . . 748.13 Código a ser traduzido em CV3 . . . . . . . . . . . . . . . . . . . . . . . 748.14 Código traduzido em CV3 . . . . . . . . . . . . . . . . . . . . . . . . . 758.15 Tela de programação do Protótipo 01 . . . . . . . . . . . . . . . . . . . . 778.16 Tela inicial do Protótipo 01 . . . . . . . . . . . . . . . . . . . . . . . . . 778.17 Bot’N Roll One A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788.18 Gráfico comparativo entre as médias dos professores e alunos . . . . . . . 808.19 Gráfico comparativo entre as médias dos professores e alunos . . . . . . . 818.20 Gráfico avaliativo das funcionalidades do software . . . . . . . . . . . . . 838.21 Gráfico comparativo entre as notas atribuídas pelos professores . . . . . . 868.22 Gráfico comparativo entre as notas atribuídas pelos alunos . . . . . . . . 86

Lista de Tabelas

3.1 Comparativo entre os ambientes de desenvolvimento desktop . . . . . . . 323.2 Comparativo entre os ambientes de desenvolvimento web . . . . . . . . . 333.3 Comparativo entre métodos de avaliação . . . . . . . . . . . . . . . . . . 34

7.1 Palavras Reservadas da Linguagem R-Educ . . . . . . . . . . . . . . . . 587.2 Funções Cadastradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617.3 Lista de Erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8.1 Medidas de Dispersão . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828.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 salade 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çotecnológico, aliado a um ambiente de aprendizagem rico e inovador. Este ambiente deaprendizagem 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 acoordenaçã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 paraenriquecer e complementar o estudo de disciplinas curriculares, pois ela propõe o uso derobôs como ferramenta educacional para permitir que estudantes inexperientes possamabordar temas não relacionados à robótica [Cristóforis et al. 2013]. Isto é possível atravésda construção de protótipos que proporcionam aos alunos uma experiência única, rica emaprendizagem, 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 nomundo tecnológico. O grupo de pesquisa Natalnet-UFRN desenvolveu diversos trabalhosnesta á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, comotambé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 salade 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, montagemde 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, osseguintes 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óticalivre que fazem uso de materiais mais baratos (ou até de sucatas). Independente do kitescolhido, o protótipo robótico montado deve ter um controlador programável capaz dereceber um conjunto de comandos a partir da execução de um algoritmo escrito em algumalinguagem de programação. Kits de robótica comerciais são normalmente acompanhadosde um software específico para programação de seus robôs. Por outro lado, os kits derobótica livre podem, geralmente, ser programados utilizando compiladores de linguagensespecíficas, como C, C++ ou Java, por exemplo.

Neste modelo, caso o professor de robótica educacional necessite ou deseje fazer usode um novo kit de robótica, a fim de baixar os custos, ou mesmo visando trazer inovaçãopara a sala de aula, seria eventualmente necessário trocar o ambiente de programação e/oua linguagem de programação utilizada. Isso geralmente ocorre no caso do kit ser de marcadiferente, por exemplo, sendo necessário ensinar um novo conjunto de passos e instruçõesaos 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, surgea busca por uma maior versatilidade de hardware em ambientes de aprendizagem quefazem uso da robótica educacional, além de ferramentas de programação escaláveis, queofereçam diferentes níveis de programação e que estejam disponíveis gratuitamente aopúblico.

3

Nessa direção, um dos requisitos tomados como base para o projeto e desenvolvimentoda ferramenta apresentada neste trabalho foi o seu alcance e disponibilidade. Inspiradosneste 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óticae internet geralmente estão associados a laboratórios remotos onde a escola ou o alunoque não possui um dispositivo físico utilizam a internet para programar e visualizar osresultados [Pressman 2011], não sendo este o foco deste trabalho.

Neste trabalho apresentamos uma nova ferramenta web, dinâmica, aberta e gratuitapara a programação de robôs que contém um conjunto único de funcionalidades para darsuporte ao ensino de programação e algoritmos para robótica. Realizamos uma pesquisaextensa 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 diferentesníveis de programação, que permita o envio de programas ao robô local sem necessidadede 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 diferentestipos 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, programarna linguagem base do controlador, permitir interação entre aluno e professor. Tudo issoem uma ferramenta web aberta, dinâmica, e gratuita, possibilitando que a mesma sejautilizada 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 diferentesrobô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 novaslinguagens de programação, permitindo que o kit utilizado em sala de aula possa serprogramado 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çãode desenvolvimento para robôs. O uso da ferramenta fora do contexto escolar é possívelatravés da condução de atividades enviadas pelo professor pelo sistema, com estatísticasde uso e erro do usuário, além de um fórum que permite aos estudantes e professorescompartilharem suas experiências.

Além disso, como contribuição secundária, durante os trabalhos, desenvolvemos ohardware 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 possamontar 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 umconjunto 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 educacionale, para isto, foi necessário desenvolver um método de avaliação homogêneo para estetipo de software, que também é outra contribuição deste trabalho. A partir da avaliaçãodos softwares para programação de robôs mais utilizados no cenário das competições derobótica, estabelecemos um conjunto de requisitos que deveriam ser contemplados pelaferramenta proposta. Definimos, também, quais tecnologias deveriam ser utilizadas parao seu desenvolvimento.

Em seguida, ainda na fase inicial de desenvolvimento, implementamos protótipos doambiente, tomando como base o trabalho anterior desenvolvido [Sá et al. 2013], e levandoem 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 coma finalidade de serem utilizados no ambiente e de permitirem que este seja consideradocompleto, indo desde a plataforma de hardware ao software. Um banco de dados paracadastro das linguagens e usuários foi desenvolvido em Java BD, um servidor de bancode dados escrito em Java, com total suporte a SQL, JDBC e JavaEE. A plataforma web foidesenvolvida fazendo uso da tecnologia Java EE, uma plataforma de programação paraservidores 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ímpiadaBrasileira 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 deprogramação em um ambiente web gratuito. Com isso, professores e alunos de robóticaeducacional não precisam necessariamente mudar de plataforma de desenvolvimento nemensinar/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 desenvolveprojetos 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 fomentodo CNPq, a partir de 2005 e até 2008, foi desenvolvida por Silva (2008) uma metodologiapara implementação da robótica educacional em sala de aula, visando fazer uso de formasatisfatória dos benefícios que esta pode proporcionar.

Para verificação da metodologia desenvolvida na época, a mesma foi colocada emprática em uma escola pública do Estado utilizando kits de robótica educacional LegoMindstorms (o então RCX) e o software RoboEduc, que foi inicialmente concebido noprojeto e estava ainda em desenvolvimento na época. Os resultados do projeto foramcompilados 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 primeiraversã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 odesenvolvimento do software, a equipe teve como foco o desenvolvimento de ferramentascapazes 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 acriação e execução de oficinas de robótica educacional sem a necessidade de utilização dematerial 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], criamosum kit de robótica utilizando materiais de sucata e componentes eletrônicos, compostopor 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, denominadaN-Bot. O N-Bot possui uma arquitetura de controle e um conjunto de técnicas que visamdiminuir a complexidade de montagem e programação dos protótipos, tendo inclusivesido premiada no AFRON - African Robot Network Contest [Network 2016].

Os trabalhos da equipe do laboratório Natalnet [NatalNet 2013] visam que uma maiorquantidade de alunos de ensino fundamental e médio possam entrar/estar em contato comum 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 doambiente 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 eplena 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óticaeducacional associado a uma linguagem de programação em língua única, com interfacesacessí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 aulatrivial [Neves-Júnior 2011], são eles: um kit de robótica composto por um controladorló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 dosprotótipos, um dispositivo computacional capaz de utilizar o ambiente escolhido e umambiente propício ao desenvolvimento de um desafio prático, geralmente proposto emcada 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 deinstruções (programas). Existem diversas linguagens de programação para robôs, porémos ambientes de desenvolvimento que acompanham os kits de robótica educacional, emsua 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] outentam abstrair a visualização do hardware a partir do encaixe de conteúdos textuais. Poroutro 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 comandosdiferenciadas.

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 instalare/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 muitasvezes está condicionada apenas ao ambiente de sala de aula, não sendo possível ao alunoe/ou ao professor fazer o teste, a execução de programas, e interagirem fora do contextoescolar.

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 impassesencontrados para se instalar softwares específicos num determinado computador. Ainda,somos motivados pelos benefícios que as ferramentas da robótica educacional possuemno 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 possamprogramar e fazer uso da ferramenta desenvolvida. A intenção é permitir uma maiorflexibilidade do uso de dispositivos robóticos em sala de aula através de um ambiente dedesenvolvimento que permite aos usuários a edição, compilação e execução de programasde 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 kitque ele utiliza possa ser programado através do ambiente.

Com a solução proposta, qualquer dispositivo que possua um navegador web, pode serusado como estação de desenvolvimento de programas para protótipos robóticos. Alémdisso, nos motivamos muito pela difusão dessa ferramenta e sua utilização não só nocontexto escolar. A utilização fora do ambiente escolar pode ser realizada por meio detarefas enviadas através do sistema pelo professor, estatísticas fornecidas ao aluno e umfó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 emfoco no presente trabalho possui várias questões teóricas, além de possuir um contextomultidisciplinar, 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étricae Mecânica, inerentes à área de Robótica Educacional. Ferramentas dessas disciplinassã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óticaEducacional, estudamos e apresentamos soluções para o:

• Tema de pesquisaDesenvolvimento 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 deaprender. 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, quandonos 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 oshardwares 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, cadaferramenta 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 todosos 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 decorrerdeste 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, aomáximo possível, a vida útil da linguagem de programação e o ambiente de interaçãoprofessor-aluno, mesmo no caso de troca do hardware. Isto garante a continuidade doprocesso ensino-aprendizagem, uma vez que tantas plataformas existem, cada qual comsuas características particulares. A ideia é justamente tentar desenvolver um formalismoque 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émuma solução a ser adotada no caso de escolas e outras instituições que não pretendem ficartrocando o ambiente de programação e de interação, em todo momento. A plataforma queserá 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 umapesquisa 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 umconjunto de padrões considerados importantes para a criação deste ambiente, tendo emvista 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óticaeducacional 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 sobreas tecnologias existentes para a implementação do ambiente. Para tal, estabelecemos anecessidade de migrar completamente a plataforma já desenvolvida para tecnologias queviabilizassem 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 necessidadede 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 desenvolvimentodos 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 evídeos instrucionais.

A quarta fase é o desenvolvimento de protótipos do ambiente dinâmico, utilizandoos dados obtidos na fase de pesquisa. Incluímos no ambiente guias web de utilizaçãopara aluno e professor, manuais para implantação de um servidor local, guias de cadastrode 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 dokit de baixo custo que fará parte deste trabalho.

Por fim, para validação da ferramenta web, contamos com o auxílio de professorespara 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 derobótica educacional utilizando a ferramenta onde colhemos e comparamos os resultadosa partir da aplicação do método avaliativo desenvolvido. Particularmente, o ferramentalfoi validado através de sua utilização por alunos participantes da fase final da modalidadeteó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 abordagenspara a programação de robôs em ambientes educacionais. Nestas, um dos problemasencontrados é a falta de ambientes capazes de atender ao perfil de diferentes usuárioscom níveis de conhecimento diferentes em robótica. O presente trabalho atende a essesrequisitos e traz aos interessados, em utilizar a robótica educacional, uma ferramentaweb livre e gratuita, que pode ser utilizada em qualquer plataforma não sendo necessáriocomputador com funcionalidades específicas, sendo todo o processamento de compilaçãoexecutado no servidor.

O trabalho fornece à comunidade uma ferramenta completa e gratuita para robóticaeducacional, incluindo modelos de aula, instruções detalhadas de como construir doiskits de robótica de baixo custo, manuais de utilização e guias de implantação, ambientede 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 permitea interação entre professores e alunos.

A seguir elencamos, por ordem de relevância, algumas contribuições apresentadasneste 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óticaeducacional.

No Capítulo 1 apresentamos o escopo do trabalho, destacando o contexto no qual estetrabalho se insere bem como os trabalhos desenvolvidos na área de robótica educacionalno 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 metodologiautilizada 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, osprincipais 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 desoftwares 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. NesteCapítulo será realizada uma análise categórica das ferramentas apresentas com a propostadeste trabalho, além de uma avaliação das principais funcionalidades de cada uma dessasferramentas.

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 aspectodo ambiente proposto.

O Capítulo 5 apresenta o método homogêneo de avaliação de softwares para robóticaeducacional, um estudo de caso da aplicação desse método e os resultados da aplicaçãodesse método com seis softwares voltados a este fim.

Os kits de baixo custo para robótica educacional, também considerados contribuiçõesdeste trabalho, serão apresentados no Capítulo 6. Neste serão discutidas os princípios decriação de cada um e apresentada a sua metodologia de montagem.

O Capítulo 7 apresenta as implementações realizadas. Nesta seção descreveremosas estruturas dos protótipos desenvolvidos, diagramas descrevendo o funcionamento eenquadramento 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 daaplicação do método de avaliação. Por fim, apresentaremos um comparativo dos dadosobtidos a partir do método de avaliação entre a ferramenta proposta e as mais utilizadasno 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, apresentamosneste Capítulo 2 os conceitos e técnicas já consolidadas na literatura, relacionados como assunto proposto como tema de pesquisa. Iniciamos elucidando definições, bem comoaspectos 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, emseguida, 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 tecnologiasemergentes, está a robótica educacional ou robótica pedagógica, que pode ser definidade 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 noqual os alunos seguem um conjunto de instruções e manuais ou criam e experimentama 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 eatrativa 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çãoe 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ávelque pode ou não estar associado a um kit de robótica. Um kit de robótica é compostopor um conjunto de peças que auxiliam na construção da parte física de um robô. Oshardwares 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 longodo tempo. Já os hardwares que não possuem este tipo de componente executam sempre omesmo 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 aclassificação dos hardwares em três categorias: kits comerciais e kits com sucata (materialalternativo) 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 MindstormsEV3 [LEGO 2011] e o Vex [Vex 2011]. Nota-se que esses kits apresentam uma qualidadede material melhor quando comparados aos das demais categorias. A segunda categoriaestá 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 oskits construídos manualmente, mas formado por componentes eletrônicos e peças que sãodisponí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ívelde ser programado através de um software. Neste trabalho, chamaremos estes softwa-

res de ambientes de desenvolvimento para robótica educacional. Estes possibilitam quecomandos sejam escritos, ou montados, e compilados para a linguagem de máquina dodispositivo lógico.

Ambientes de desenvolvimentos para robótica educacional devem permitir tambémque os códigos compilados sejam enviados para o protótipo robótico montado e este deveser 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 tipocliente-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áriauma instalação de software na máquina local, devendo esta possuir todos os requisitosnecessá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 salade 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 anecessidade de instalação de softwares específicos e sem necessidade de modificação dasvariáveis de ambiente [Yanagisawa 2012].

Existem duas categorias de ambientes web para robótica educacional: laboratóriosremotos, 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 dousuá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 sereshumanos 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 sobrequais 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. Oconjunto 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 últimainstância, a linguagem entendível pelas pessoas que deve ser traduzido para gerar o códigode 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 Teoriadas Linguagens Formais e dos Autômatos (LFA). Essa teoria tem por objetivo estudare definir os modelos matemáticos que possibilitam a especificação e o reconhecimentode linguagens, suas classificações, estruturas, propriedades, características e relaciona-mentos. Podemos dizer que as linguagens formais são uma abstração das característicasgerais de uma linguagem de programação, baseadas na área de Teoria da Computação epossuem um conjunto de símbolos, regras de formação de sentenças, entre outros [Aciólyet al. 2002].

Uma linguagem formal nos diz todas as regras que são explicitamente declaradas emtermos das cadeias de símbolos que podem ocorrer nela. Uma linguagem formal L sobreum 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çapertence 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 umalinguagem. 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 serrepresentadas 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 emlinguagem 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 querecebe as instruções em linguagem de alto nível e retorna como saída outro programaconstituído de instruções em código de máquina. Ao programa original, em linguagemde 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 degeração de um programa.

A primeira etapa para geração de um programa é a codificação, está é dada pela escritautilizando uma determinada linguagem de programação das instruções que a máquinadeve realizar para alcançar o resultado almejado. Para realização desta tarefa é precisoutilizar ambientes integrados de desenvolvimento ou editores. É possível nesta etapautilizar qualquer editor para gerar o programa fonte. Porém, alguns ambientes oferecemferramentas de edição mais poderosas, com reconhecedores e realçadores das palavraschaves de uma linguagem, geração do código fonte, possibilidade de projeto de interfacesgrá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ívela olhos humanos. Para que o programa fonte seja executável, é necessário que ele sejatraduzido 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. Oprograma alvo gerado por estas ferramentas é apresentado de acordo com o sistema denumeraçã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 eleseja 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, descreveremosas três fases principais: análise léxica, análise sintática e gerador de código [Barbosaet 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ãotratadas letra a letra, mas sim como uma unidade composta por várias letras. O analisadorlé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ãode 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éxicorealiza também outras tarefas como remover comentários e marcas de edição, bem comorelacionar 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 é realizadabaseada em um conjunto de regras sintáticas que definem a gramática da linguagem deprogramação. O analisador sintático é um programa que, para uma dada gramática, eleaceita 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 programaobjeto, 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çãodo programa objeto, não são efetuadas em ordem sequencial. A Figura 2.2 apresenta oformato de compilação em que o analisador léxico começa o processo identificando oprimeiro token e fornecendo-o ao analisador sintático. Já com a identificação da estruturaque 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, elechama o gerador de código, para que este possa produzir as correspondentes instruçõesem 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 dosalvos 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 deuma 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 serdividida em dois ramos [Rocha 2001]:

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

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

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 desoftware. Qualidade é um conceito que abrange vários níveis, realizado por um conjuntode 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 eevolutivo, 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çãode qualidade. Esses modelos armazenam e organizam as propriedades do produto queestá sendo avaliado. Dentre vários modelos de avaliação, existem dois mais utilizados eaceitos no mercado, são eles:

• CMMI (Capability Maturity Model Integration), proposto pelo CMM (CapabilityMaturity 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çãomundial para a qualidade de software e do produto, descrevendo um modelo de qualidadepara produtos de software, categorizando a qualidade em um conjunto de característicase subcaracterísticas que devem ser atendidas para que o produto seja classificado comode 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 desoftware).

A série de normas ISO/IEC 9126 pode ser aplicada nas seguintes ocasiões [Quintelaet 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, facilidadede 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 como desenvolvimento de softwares, através de um modelo evolucionário. Além disso, tempor objetivo principal funcionar como um guia para a melhoria dos processos da organi-zação, considerando para isto atividades como o gerenciamento do desenvolvimento desoftware, prazos e custos previamente estabelecidos. O objetivo maior, considerando oCMMI e seus diferentes conceitos, está justamente na produção de software com maiorqualidade e menos propenso a erros.

Para isso, o CMMI está dividido em cinco níveis de maturidade que confirmam, porsua 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 osprojetos utilizam uma versão aprovada e adaptada do processo organizacional paradesenvolvimento 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 dosprojetos são coletadas. Tanto os processos como os projetos são quantitativamentecompreendidos e controlados;

• Nível 5 (Em otimização) - A melhoria contínua do processo é estabelecida por meiode 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 tornoucada vez mais integrado nas atividades cotidianas [Pressman 2011]. Para tal, surgirammétodos para avaliação e teste de software que verificam a presença de erros no produtoe 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 defeitosde funcionamento [Pflegeer 2001, Pressman 2000]. Diversas características devem seranalisadas, 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 dotipo de software e de seu grupo de usuários, diferentes fatores podem ser mais ou menosimportantes [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 demanutençã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 aum determinado público.

Capítulo 3

Estado da Arte

Inicialmente, recolocamos o objeto de estudo deste trabalho apresentado no Capítulo1 que é estudar e propor soluções para o desenvolvimento de metodologias envolvendoambientes 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 objetivosinerentes a este tema, comprovando a hipótese de pesquisa e verificando que o problemaatacado no trabalho é de caráter inovador, realizamos uma vasta pesquisa bibliográfica nosprincipais meios de divulgação científica. De fato, verificamos que não existem trabalhosque estejam diretamente relacionados com o tema de pesquisa, incluindo principalmentea 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 duasSeções. Na primeira exploramos os trabalhos que apresentam ambientes de desenvol-vimento para robótica, tanto web quanto em desktop. Na segunda Seção, apresentamospropostas 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, possibilidadesde hardware, linguagens de programação utilizadas o público alvo ao qual se destinam.

Apresentamos, primeiro, os ambientes de desenvolvimento desktop, nestes ambientestodo 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 dedesenvolvimento para robótica web, estes, em sua maioria, utilizam a estrutura cliente-servidor sendo todo o processamento de responsabilidade do servidor, o cliente deve, noentanto, 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 desenvolvimentodesktop 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 suasfuncionalidades.

RoboEduc

O software educacional RoboEduc [Pitta 2008] teve sua versão inicial desenvolvidaem 2003 por pesquisadores da Universidade Federal do Rio Grande do Norte. É umsoftware 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 doskits 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 umdos 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 aaquisiçã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 escritosem 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 efoi abortado. A equipe de desenvolvimento iniciou trabalhos em outras áreas não dandocontinuidade ao projeto. Atualmente o software possui versão disponível apenas paraprogramaçã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 Mindstormsforam desenvolvidos especificamente para programação e controle de dispositivos destamarca. 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 utilizadapara programação de robôs Lego Mindstorms EV3.

Estes ambientes são compostos por uma interface e um bloco de diagramas onde ofluxo de dados é possível através de ligações entre os blocos, é possível também a criaçãonão só de estruturas, mas de comportamentos, permitindo, assim, a criação de modelosinterativos, 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íveisaos 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 modelosde 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 acriaçã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 incluindouma grande variedade de plataformas de hardware. Além disso, possui uma linguagemde programação gráfica que oferece aos usuários a possibilidade de programar robôs e deter seus algoritmos executados tanto em um simulador quanto no hardware em si.

O Microsoft Robotics Studio possibilita o desenvolvimento de aplicações utilizandoum 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 comas 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ãoforam 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 ambientede 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 aorobô. É 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 oLego 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 únicalinguagem, porém não existe uma versão do RobotC que permita a programação de todosos hardwares, pois, para cada hardware, é necessário adquirir uma licença específica. Aslicenças podem ser de 365 dias ou perpétuas e são divididas em três: individual, time esala 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çõesque o robô deve executar deverão ser definidas no ambiente de programação, utilizando alinguagem de mesmo nome.

O programa, uma vez escrito e compilado, será descarregado no módulo de controledo robô via cabo de dados serial. Ao fim desta etapa, o robô estará pronto para funcionarde 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 porpossuir 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 emJava que pode ser utilizado para programação de qualquer placa Arduino. Sua interfaceinclui um editor de código fonte com recursos que auxíliam no processo de escrita comorealce de sintaxe, identificação de parênteses correspondentes e auto identação. Atravésdela é 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 duranteo 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çãode outras plataformas de hardware.

BricxCC

O software BricxCC [BricxCC 2016] é um centro de comando para robôs de todas asgerações da família LEGO Mindstorms. É um software para Windows, que necessita deinstalaçã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. Suainterface 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 ensinopossui condições de adquirir o dispositivo robótico e material necessário para realizaçãode uma oficina de robótica [Tzafestas 2009]. Na prática, esses trabalhos, chamados delaborató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 dorobô 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 formatode execução do tipo SDCE - Server-side Development and Client-side Execution - comdesenvolvimento 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) paraprogramação de robôs do projeto N-Bot ou qualquer dispositivo que utilize a arquiteturaproposta 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 parainiciantes, 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áginaweb 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 dependedo servidor, sendo toda a execução efetuada em navegador local. Além disso, é possívelsalvar a página web para programação, não sendo mais necessário ter uma conexão coma 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 circuitosdo 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 podeser 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 encontramais 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árioescreva e envie programas a dispositivos montados fazendo uso do hardware Arduinoatravés de um browser [UserVoice 2016]. Foi desenvolvido em 2012, na Universidade dePatras, na Grécia. Em sua estrutura, apresentada na Figura 3.4, ele possui um ambientede programação textual e realiza compilação de códigos escritos na linguagem INO. Parasua 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 foiidealizado 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çõesdo 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 professorese 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] quepermite 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 aplicativona área de trabalho do computador local para realizar a comunicação com o hardware. Oambiente web permite que os projetos sejam salvos na nuvem. O ModKit é um sistemaque apenas disponibiliza todas as suas funcionalidades após a compra de licenças de usopessoal 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 - Learningwith Robots [Bredenfeld & Leimbach 2010]. Este projeto foi criado a fim de diminuir osobstá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 enviopara robôs Lego MindStorms EV3 A plataforma Open Roberta Lab é open source, tantoo 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 contacom 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 aocontexto 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 ambientena web, completo e dinâmico que permita realizar a programação, compilação e enviopara qualquer dispositivo robótico além de permitir uma total interação entre alunos eprofessores.

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 RoboticsStudio por MRS.

Tabela 3.1: Comparativo entre os ambientes de desenvolvimento desktopSoftware Licença Plataforma Níveis de

ProgramaçãoModo de

Programação Linguagem Hardwares AcompanhamentoDidático

RobotC Paga Windows Sim Gráfica/Textual InglêsVEX/PIC/

ARDUINO/LEGO Não

RoboEduc Gratuita Windows/Linux Sim Gráfica/Textual PortuguêsNXT/RCX/

H-Educ Não

LegoMindStorms Paga Windows/Mac Não Gráfica Multi NXT/EV3 Não

MRS Gratuita Windows Não Textual/Gráfica InglêsFabricantesParceiros Não

Legal Paga Windows Não Textual Português PETE NãoArduino IDE Gratuita Multi Não Textual Inglês Arduino NãoBricxCC Gratuita Multi Não Textual Inglês LEGO Não

W-Educ Gratuita Multi Sim Textual PortuguêsQualquerhardware Sim

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ísticasanalisadas. Na última linha, é possível observar as características inerentes à ferramentadesenvolvida.

Tabela 3.2: Comparativo entre os ambientes de desenvolvimento webSoftware Licença Plataforma Níveis de

ProgramaçãoModo de

Programação Linguagem Hardwares AcompanhamentoDidático Linguagens de Programação Instalação

NecessáriaADWN Gratuita Multi Sim Gráfica/Textual Inglês N-Bot Não Blockly/Javascript NãoCodeBender Gratuita Multi Não Textual Inglês Arduino Não INO NãoModkit Paga Windows Não Gráfica Inglês Arduino Não Scratch Sim

DuinoBlocks GratuitaWindows/

Mac Não Gráfica Português Arduino Não Blockly Não

Open Roberta Gratuita Multi Não Gráfica Inglês Lego Ev3 Não Blockly Sim

W-Educ Gratuita Multi Sim Textual PortuguêsQualquerhardware Sim

R-Educ eLinguagensCadastradas

Não

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

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 aimplementação da FASE e por fim ocorre a realização de testes da ferramenta, bem comoa 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 ensinode 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 partirde 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 alunosobjetivando analisar a qualidade da etapa de resolução de problemas pelos alunos com ossoftwares analisados na etapa anterior.

A Tabela 3.3 apresenta uma comparação entre os métodos encontrados na literaturae o apresentado neste trabalho, denominado de EducAval. É composta por três modelosde avaliação de software educacional que estão dispostas na primeira linha, e nas colunasestã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çãoWebber et al. (2009) Gomes et al. (2002) EducAval

Apresenta questionáriospara cada tipo de usuário X

Avaliação específica pararobótica educacional X

Avaliação didática X X XAvaliação técnica X X XBaseada na normaISO/IEC X X

Como pode ser observado na Tabela 3.3, nenhum dos métodos é específico parasoftwares 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 porexemplo 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 algumametodologia 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 semnenhum embasamento teórico específico advindo da área de Avaliação de Software, o quepode 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óticaEducacional).

Capítulo 4

Ambiente Proposto

A revista científica IEEE Robotics & Automation, em sua edição de junho de 2005, naseçã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çãoda Internet no processo ensino-aprendizagem e são apresentados os impasses encontradospara se fazer uso da robótica utilizando essa ferramenta tão poderosa (a web). De acordocom 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 desenvolvidosnovos meios de utilizar a Internet, tomando total vantagem dela. O artigo enfatiza aindaque 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 paraeducaçã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 demateriais de ensino. No entanto, essa plataforma se encontra vazia atualmente. Algunsgrupos tentaram colocar suas experiências com robótica na web, mas por se trataremde 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 comoa 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 umaferramenta 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 diversoshardwares controlados por um único ambiente e linguagem, a possibilidade de incrementodo nível de conhecimento através da programação em diferentes níveis de abstração, oacompanhamento do usuário e o custo dos softwares, é que realizamos uma pesquisa paraverificar 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 comunidadecientífica, contemplando aspectos ausentes e precários nestas ferramentas, criando umaferramenta 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óticaeducacional 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 pararobótica educacional, cada software pesquisado era avaliado por um modelo diferente deavaliaçã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étodoque 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 projetadoe aplicado aos softwares mais utilizados em ambientes de aprendizagem que fazem usoda robótica educacional, segundo pesquisa realizada na Olímpiada Brasileira de Robóticanos 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 destatese. 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 avaliativoEducAval aos professores e alunos usuários dos seguintes softwares: Lego MindstormsNXT [LEGO 2011], Lego Mindstorms EV3 [LEGO 2011], Arduino IDE [Arduino 2016],Legal [PETe 2010], BricxCC [BricxCC 2016] e RoboEduc [Pitta 2008]. Os resultadosserão apresentados no Capítulo 6. A partir dos dados verificamos quais funcionalidadesespecí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 umadescriçã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çãodo seu código-fonte sem onerar o usuário final, a única exigência é que as licenças einformações sobre os autores acompanhem a versão, original ou modificada, em tempode 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 deutilizaçã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, foiimplementado um ambiente de cadastro de linguagens, onde o usuário pode definir quaisas especificações e funções de baixo nível do hardware. Foi implementado, também, umtradutor universal de linguagens que consulta o cadastro realizado e converte o códigoescrito na linguagem especificada e em seguida o compila gerando o código de máquinacorrespondente 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 erequisitos 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ásicossobre 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é mesmopor usuários que a recém aprenderam a ler e a escrever, introduzimos uma linguagem comalto 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. Destaforma, 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 linguagemR-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 deabstração quanto forem necessários, sendo por padrão dois níveis: linguagem cadastradae R-Educ. Para fins didáticos, o tradutor e o compilador fornecem dicas para remoçãode 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. Essesdados poderão ser posteriormente utilizados, eventualmente, para um processo avaliativodo aprendizado do aluno.

O envio de programas e a comunicação com o robô local é possível através da criaçãode um arquivo do tipo .jar, utilizado para armazenar classes com rotinas de envio com-piladas e metadados associados, que, ao serem executados no dispositivo computacionallocal, 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ãoonde é possível compartilhar algoritmos e desafios aos demais usuários. O ambiente deveser 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 doprojeto é 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 Ubuntuem 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 porpossuir 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 realizaradaptaçõ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íveispara instalação e autoconfiguração imediata, através do gerenciador de pacotes que ambasas distribuições têm em comum. A disposição que tem a comunidade de usuários tambémfacilita a manutenção e resolução de erros e problemas que os usuários e instaladores dosistema possam encontrar durante a realização de suas atividades.

A versão atual do sistema utilizada no desenvolvimento do ambiente é a Ubuntu14.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 deaté cinco anos, permitindo que a manutenção dos servidores seja adiada e seus intervalossejam 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 Linuxcomo sistema operacional principal, escolhemos a plataforma Java para desenvolver oambiente. Dentre os diversos motivos que sustentam a escolha do Java, podemos citara compatibilidade para multiplataforma. Segundo a Oracle [Oracle 2016], mais de 2bilhões de dispositivos utilizam o Java nos dias atuais. De supercomputadores a cartões decrédito. Além disso, é uma tecnologia sólida, amplamente divulgada entre a comunidade econta com diversas bibliotecas de software livre e também de código-fonte aberto. Mas oprincipal motivo da escolha do Java como plataforma para o ambiente foi o fato de existirmuito código legado, o qual corresponde ao tradutor universal proposto que já estava emprocesso de desenvolvimento [Sá et al. 2013]. Ele é responsável por traduzir comandosR-Educ, escritos em um alto nível de abstração em língua portuguesa para as linguagensalvo, 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 umaalternativa à 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õesregulares; 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 emsua 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. Tecnologiassó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 doGroovy on Grails no projeto foi a facilidade de integração e reaproveitamento do códigoda ú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 Softwarespara Robótica Educacional

Nesse trabalho, formulamos um método eficiente e homogêneo para avaliação desoftwares específicos para robótica educacional denominado EducAval. Classificamosesse método como homogêneo, pois buscamos ao longo da elaboração desse trabalhotorná-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 umutilizava uma metodologia diferente, apesar de avaliar o mesmo tipo de software.

De acordo com [Garvin 1984] o conceito de qualidade é descrito a partir de cincovertentes: visão transcendental, visão do usuário, visão do fabricante, visão do produtoe visão baseada em valor. A primeira afirma que qualidade é algo que se reconheceimediatamente, a visão do usuário observa a qualidade a partir de metas específicas de umusuário final. A visão do fabricante avalia a qualidade a partir da especificação originaldo produto, já a visão do produto avalia as características inerentes ao produto e a visãobaseada em valor mede a qualidade a partir de quanto o cliente está disposto a pagar peloproduto. Neste método trabalharemos com duas visões em especifico, a visão do usuárioe a visão do produto. Essas duas visões priorizam o papel do usuário/cliente cientes deque 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 deum software capazes de satisfazer às necessidades implícitas e explicitas do usuário. Nocaso, neste trabalho, através do grau de satisfação dos usuários, avaliaremos a qualidadede softwares voltados para aplicações em robótica educacional, que são destinados a doistipos diferentes de usuários: professores e alunos. Esse novo método é composto porduas 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 (deforma 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 é compostopor perguntas adequadas aos avaliados. Os questionários propostos na metodologia estãodivididos 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 dasnecessidades, 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 funcionalidadesapresentadas 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 ounã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 umespaço destinado aos comentários sobre o software avaliado.

O questionário disponível para os alunos sofre algumas modificações, se comparadoao 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 alunosapresenta dez questões sobre as funcionalidades do software que devem ser respondidasmarcando sim, não ou mais ou menos. Os outros dois quesitos são discursivos e abordamquestõ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 encontradosonline 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 emuma 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 ea 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étodono software para robótica educacional Lego Mindstorms NXT. Esse software foi escolhidopor ser o mais utilizado entre os professores e alunos em que aplicamos o método, sendoeste 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ênciade 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áriosaprovam o software fornecido pela Lego para programação do kit LEGO MindstormsNXT, 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, sendode 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çãodiante 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 deforma 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 entrealunos e professores em relação aos questionamentos realizados nos questionários quetiveram de ser respondidos obedecendo a escala de 0 a 10. Os quesitos cujos resultadosestã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 significativaentre 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ãoapresentaram conhecimento do que são diferentes tipos de robôs. Para eles, montar umrobô de forma diferente configura outro tipo de hardware, o que não é verdade. Apesarda discrepância de nota apresentadas neste quesito os dados não são excluídos da médiafinal, visto que a filosofia do método EducAval prima por fazer uma avaliação qualitativaa partir dos seus dois tipos de usuários.

O questionário dos professores difere do questionário dos alunos por apresentar umaseçã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 estesquesitos médias 9,0 e 9,09 respectivamente, 54% dos professores inferiram também queo 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çãoindicativa 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 foiuma média de classificação indicativa entre 7,64 a 16 anos. Os testes foram aplicados aalunos com média de idade de 14,35 anos.

Durante o processo de avaliação, como mencionado, os professores também deveminferir quais as funcionalidades presentes no software. O gráfico da Figura 5.3 apresentano eixo das ordenadas as possíveis funcionalidades do software e no eixo das abscissaso 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 eambiente de programação gráfica obtendo 82% e 73% de indicação, respectivamente. Deacordo com os desenvolvedores do software esses quesitos realmente existem, validandoassim 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 apesarda convergência entre as notas de quesitos individuais, houve uma convergência na médiafinal 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 baixandoos 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óticossimples 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 ensinosuperior.

O primeiro kit desenvolvido foi o LabsRia, descrito na Seção 6.1, que utiliza comobase 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 deutilizar materiais reciclados, enquanto que o primeiro teve sua base escolhida pensandono seu baixo custo. Ambos os kits podem ser programados nas linguagens R-Educ ou Cutilizando o ambiente W-Educ.

6.1 LabsRia

No kit para robótica LabsRia utilizamos como base de sua montagem um flutuador dotipo espaguete (Figura 6.1), conhecido popularmente como macarrão. A ideia principaldo projeto deste kit foi a utilização de materiais de baixo custo em sua estrutura. Cadamacarrão tem tamanho aproximado de 1,65 metros e pode ser encontrado em qualquerloja de artigos para piscinas (valores a partir de R$ 6,90, atualmente). Este deve sercortado em pedaços de aproximadamente 15 a 20 centímetros. Dessa forma, o custo dabase é de aproximadamente R$0,86 por robô. Esse tipo de base foi escolhido pelo seubaixo peso e custo, e por possuir modelos que tem um furo central o qual será útil paraa passagem de fios. Além disso, por possuir um material de polietileno, é possível fazerencaixes 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 quaispermitem 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, compartimentopara pilhas e uma mini-matriz de contato para montagem dos circuitos. O custo finalaproximado 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çãopara 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 citadoacima. Neste primeiro protótipo, utilizamos um flutuador com um furo central, issofacilita 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 doflutuador 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 mesmotamanho 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, sendoconectados 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 posicionamosas pilhas e uma placa de prototipagem mini para montagem do circuito. Neste modeloespecí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 emescolas 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 ambientaiscausados pelo descarte indevido de embalagens de garrafa plástica (pet).

A estrutura principal do PetBot é uma garrafa pet. No entanto, o kit conta com outroscomponentes 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 paraserem 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 estruturaprincipal do robô na garrafa pet. Nela, são marcadas as posições de cada componente eem seguida deve ser cortada e perfurada. A Figura 6.4 apresenta uma garrafa pet marcadae 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 umaplaca 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 dosensor 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 aosmotores e a roda solta é posicionada (todas com cola quente), obtendo o robô completodo 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 daferramenta proposta nesta tese através de diagramas referentes à estrutura proposta parao ambiente. Descrevemos ainda como é realizada a conversão de linguagens através dotradutor 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 pararobó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]. Nessemodelo é realizado o desenvolvimento de protótipos. Ele foi escolhido, pois nem todos osrequisitos 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ésde 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. Umservidor é o responsável pelo processamento dos dados, armazenamento de conteúdo deusuários e pelo retorno de informação. Os usuários podem se conectar ao servidor atravésda internet ou de qualquer meio de comunicação, guiado ou não guiado, utilizando umdispositivo computacional com navegador web. Os usuários, caso estejam utilizando umdispositivo computacional capaz de trocar dados com o robô, podem efetuar o envio doprograma 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 usoas principais funcionalidades da ferramenta e a interação dessas funcionalidades com cadatipo de usuário. Esse diagrama, mostrado na Figura 7.2, apresenta as principais tarefaspara o usuário do tipo Aluno. É possível ao aluno: solicitar um professor, sendo, paratal, 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, paraisso, é necessário consultar a lista de linguagens disponíveis; e é possível enviar o códigocompilado 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 podecadastrar uma linguagem de programação, editar uma linguagem previamente cadastradae 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ívelrealizar todas as tarefas disponíveis ao usuário do tipo Professor, além de ser possívelgraduar 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 apenasum 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 ouqualquer outra linguagem cadastrada. Caso o usuário inicie a programação no modelo deR-Educ selecionado, o seu código fonte é traduzido, através do tradutor universal, para arespectiva 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 tradutoruniversal, eliminando uma etapa do processo.

7.2 Tradutor Universal

A principal contribuição desta tese é o tradutor universal de linguagens. A estrutura dotradutor é 1:N, dessa forma a partir de uma única linguagem de programação será possívelrealizar 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 umare-implementação da linguagem a fim de acrescentar novos atributos além dos descritosno 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 unidadesindivisíveis, fichas) da linguagem. Em seguida é chamada uma função de mapeamentoque 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álisesintática. Neste ponto, é realizada a checagem da corretude das sentenças escritas pelousuário, cada sentença escrita de forma correta será traduzida em um código na linguagemalvo selecionada. Se a análise não apresentar erros será feita uma chamada ao compiladorespecí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 ousuá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, foinecessá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-Educcomo 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 dearrastar e soltar, utilizando ícones que representam as direções de movimentaçãodo 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-Educinicio fimtarefa sesenao entaoenquanto fareirepita paravez vezesteste numerotexto booleanosair verdadeirofalso

• 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 deuma reimplementação do tradutor em Java e inclusão do uso de chaves para representar oinício e fim de uma sequência de comandos. Nesta tese realizamos uma nova modificaçãoda linguagem R-Educ e seu tradutor incluindo controle, ordenação de tipos de erros, usode definições e operações aritméticas, visto que este tipo de operação é imprescindívelpara programação de dispositivos robóticos e está presente em todas as linguagens deprogramaçã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. Destaforma, 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 linguagemR-Educ quanto necessárias. O nível de abstração alcançado não depende mais do sistemae 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. Notrabalho 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 pararobótica. Dessa forma, o formulário de cadastro necessário para o registro de linguagensfoi 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 oprograma em baixo nível, envio do programa, extensão dos arquivos da linguageme 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 linguagemcorrespondente. 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çõessã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 terminacada 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 linguagemNXC específica para programação de robôs Lego Mindstorms NXT. Observe que as pa-lavras comandos, comandos1, comandos2, condicao, variavel, valor1 e valor2 devemaparecer 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 dalinguagem.

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 eo 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 tipoString. No exemplo da estrutura de controle de fluxo WHILE, o resultado da chamada daclasse mapeamento retornará uma lista com 3 dados do tipo String, uma que percorre doinício dos dados fornecidos até a palavra condicao, outra que percorre de após a palavracondicao 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 cadasentenç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íficasda 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 tiposde dados, por exemplo, funções específicas para robótica, como configuração de pinagemou movimentação de motores. Além de funções herdadas de algum arquivo inserido nocabeçalho, sequência de comandos definidos no momento do cadastro e chamadas defunçõ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çãoe seu código fonte. De fato, quando um usuário realiza o cadastro de uma função emR-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 ouString.

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 varseguido pelo número do parâmetro, acrescido do tipo do parâmetro entre parênteses. Porexemplo: var1(int), var2(String), var3(boolean), var4(float), var5(double).

Algoritmo 1: Algoritmo para seguir linha em R-Educiniciodefinircor(1)definircor(2)enquanto (1=1) farei {

seguirlinha(1,2)}fimO 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, umafunção simples definircor e outra com alto grau de abstração seguirlinha. A primeirafunçã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 doissensores de cor, cuja porta ao qual está conectado são especificadas por parâmetros, possaseguir uma linha preta em uma superfície branca.

Tabela 7.2: Funções CadastradasFunção Parâmetro

definircor Portaseguirlinha 1- Porta do sensor da

direita2- Porta do sensor daesquerda

Após realização da tradução o código gerado em NXC para o Algoritmo 1 escrito emR-Educ será o apresentado no Algoritmo 2. Observe que duas simples chamada de funçãoem 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 linguagemR-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 eoutras estruturas a fim de transformá-las em estruturas mais convenientes para as demaisfases do processo de compilação. O processo de análise léxica implementado realiza umpré-processamento do código escrito na linguagem R-Educ. Para tal, o analisador léxicorecebe o arquivo com o código escrito em R-Educ e realiza a identificação e separaçãode palavras, cujo primeiro passo é uma busca por símbolos específicos a fim de realizara separação de palavras processáveis pela linguagem através da inserção de espaços entreelas.

Cada palavra encontrada, sendo ela reservada ou não, é inserida em uma lista contendoo 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 tersuas duas primeiras linhas processadas pelo analisador léxico desenvolvido deve gerara estrutura apresentada na Figura 7.7 onde o valor a esquerda de cada posição indica apalavra 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 dostokens presentes no arquivo com o código fonte. Nesta etapa não são detectados erros deescrita 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 porobjetivo principal determinar se o código fonte acessado por este, apresentado atravésde um conjunto de tokens gerado pelo analisador léxico, possui sentenças válidas para alinguagem 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 desenvolvidoserá acessar o banco de dados e carregar suas variáveis com as estruturas necessáriaspara 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 doprograma 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 tabelacom os símbolos definidos na linguagem R-Educ. Essa tabela é acessada pela funçãokeyword que a cada token recebido verifica se a palavra armazenada representa algumdos 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çãodo número de tokens a serem processados. Todos os dados fornecidos no processo decadastro 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 fornecidoscomo 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, pararealizar a verificação da corretude das sentenças escritas no código fonte. O algoritmoimplementado 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áveise 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 analisadorsintático verificará a corretude da sentença até o seu fim, baseado na estrutura definida nagramática. Ao final da verificação de cada sentença, o código é traduzido acessando osdados 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 formasimilar, 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 como código traduzido para a linguagem alvo. Caso nenhum erro seja encontrado duranteo processo de análise sintática será realizada uma chamada de sistema com os dadosfornecidos 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álisede 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 dadossão disponibilizados ao usuário do tipo Aluno a fim de que este possa saber onde tem seconcentrado seus erros, e ao usuário do tipo Professor, que pode verificar seus próprioserros 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, escritade funções e estruturas de controle de fluxo. Os diferentes tipos de erros estão dispostosna 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 realizadono cadastro da linguagem no sistema e não um erro inerente a este. Caso a compilaçãoseja realizada diretamente na linguagem alvo, será fornecido ao usuário o relatório de errogerado pelo próprio compilador.

66 CAPÍTULO 7. IMPLEMENTAÇÕES

Tabela 7.3: Lista de ErrosCódigo Erro

01 INICIO não encontrado02 Não é possível declarar TAREFAS dentro da função INICIO03 Utilização de nome inválido04 Falta ’{’05 Função INICIO em duplicidade06 FIM não encontrado07 Esta declaração deve ser feita dentro do INICIO08 Está faltando um SE09 Erro nos parâmetros da função NOME_DA_FUNCAO10 Expressão inexistente11 Está faltando "12 A quantidade de parâmetros é maior do que a necessária13 Está faltando um parâmetro14 Parâmetro com valor inválido15 Está faltando ’(’16 Confira os parênteses17 Erro na condição18 ENQUANTO não encontrado19 Confira a gramática da sua expressão20 É exigido um número nesta expressão21 Erro na sintaxe do PARA22 SAIR está fora de um laço de repetição23 Expressão com valor inválido24 Falta expressão25 Está faltando ’:’26 SENAO em duplicidade27 Falta operador para comparação28 Confira a expressão anterior29 Expressão matemática incorreta30 Operador inválido31 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 comoteste 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 utilizadosno 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 porusuários do tipo Professor, implementamos um ambiente web utilizando APIS específicasdo 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 quea escrita e compilação do algoritmo pode ser realizada em qualquer dispositivo que possuaum 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 comsuas 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 qualredireciona 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 prontose sugestões de atividades. No menu presente na lateral esquerda é possível ao aluno seencaminhar 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 quemostra 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 professorindicado.

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çõesfeitas é 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áriodo 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 delinguagens é 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 alunosque solicitaram acompanhamento e estão aguardando aceitação, seus alunos com seusrespectivos 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 acessoaos dados estatísticos de seu desempenho ou do aluno selecionado. Na tabela do ladoesquerdo da Figura 8.6 é apresentado um relatório geral do usuário, incluindo o númerototal de compilações bem e mal sucessidadas, quantos programas possui no banco dedados, quantas linguagens já utilizou. No gráfico do lado direito da Figura 8.6 dadosmais concisos são apresentados. Neste gráfico são apresentados a quantidade de erroscategorizados para cada data de acesso do usuário no sistema. A partir desses dadoso usuário do tipo Professor pode acompanhar os erros mais recorrentes do aluno e suaevoluçã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 linguagemestá associada e uma breve descrição. Ao clicar em programar o usuário é redirecionadopara 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 umadessas 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áriode 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 casoNXC, 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ódigoescrito 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 mensagempessoal.

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 osnomes de funções específicas para a instância de R-Educ escolhida, quantos parâmetroscada função possui e uma breve descrição de cada uma. Esses dados dependem do nívelde completude utilizada pelo cadastrante da linguagem.

Ao ser solicitado o envio do código ao robô, é gerado no servidor um arquivo comextensã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 aodispositivo local e ao ser executado, descompacta os arquivos e executa uma chamada desistema específica para realização do envio. Ao término da execução desta chamada osarquivos 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 paraa linguagem selecionada. Um código simples, apresentado na Figura 8.11 apenas cominí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á gerarum código mais extenso e complexo, como é o caso do algoritmo apresentado na Figura8.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-Educpara 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 ensinoe 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óticano 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 alunosrealizam uma prova teórica acerca da robótica utilizando apenas os conteúdos e conceitosrelevantes 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édioou 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áticanacional 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 montageme programação dos protótipos. A ideia é que ao fim dos dois dias e meio de minicurso osestudantes possam efetuar o mesmo desafio, em proporções menores, que os participantesda 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 utilizadosos softwares proprietários que acompanhavam os kits de robótica em uso para realizar aprogramaçã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 testadatendo 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 ambienteproposto nesta tese. Para fins de avaliação e validação dos protótipos, realizamos umacompilação dos dados coletados durante os minicursos oferecidos na OBR nos anos de2014 e 2015 e apresentamos os resultados.

8.2.1 Protótipo 01

Seguindo a metodologia de engenharia de software adotada elaboramos um primeiroprotó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 entreusuários, acompanhamento de professor, solicitação de correção de código e traduçãopara 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. Dessaforma, 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óricana 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çõesbásicas de robótica e programação. Ao total o minicurso contou com 23 alunos e doisprofessores. Os kits de robótica disponíveis foram kits Lego Mindstorms EV3. Por setratar de um kit novo, este não contava ainda com uma biblioteca de programação de baixonível e os organizadores da olimpíada não possuiam a licença do software proprietárioque acompanha o kit. Dessa forma, desenvolvemos e incluímos como contribuição destetrabalho, uma biblioteca de baixo nível chamada de CV3 que permite a programação destetipo de hardware em uma linguagem baseada em C.

A partir da especificação desta biblioteca realizamos o cadastro do CV3 no ambientedesenvolvido 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 emseguida ser compilada e enviada ao robô.

A Figura 8.15 apresenta a tela de programação do Protótipo 01. A Figura 8.16 exibea tela inicial do ambiente, nela são dispostas as estatísticas e links para os documentosrelativos 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 ominicurso, 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 poderiamno 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 aorobô utilizando o ambiente W-Educ.

8.2.2 Protótipo 02

Em face dos erros e desafios encontrados no minicurso realizado em 2014, realizamosanalises 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 foireorganizado.

Em 2015, a organização da Olimpiada Brasileira de Robótica decidiu utilizar em seuminicurso 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 desafiopassou 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, eprogramá-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 cursoos 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ô, seguirlinha 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 umasuperfície branca, além de identificar e desviar de obstáculos ao longo do caminho. Aoté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 ocorreuum 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 sentiramprejudicados.

8.2.3 Avaliação Geral

Para realizar uma avaliação geral do ambiente proposto utilizamos o método avaliativoEducAval, descrito no Capítulo 5, que consiste em três partes, nas duas primeiras, cada umdos usuários, professores e alunos envolvidos no processo de ensino-aprendizagem, res-ponderam ao questionário destinado ao seu perfil. Estes determinaram as funcionalidadesdo software e o avaliaram de acordo com os aspectos técnicos e didáticos apresentados noquestioná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áriosna avaliação.

Os resultados apresentados nesta seção, foram gerados a partir de uma compilação dosresultados obtidos na aplicação de questionários após a utilização do primeiro e segundoprotótipo. Como mencionado na Seção 8.2.1 e 8.2.2, o primeiro protótipo foi utilizadopara 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 5professores. A partir da coleta e análise dos dados obtidos, observamos que houve umaconvergência de valores. Dessa forma, os resultados foram considerados válidos para aaná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áriosaprovam 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, obtevemédia de 9,84, sendo de 9,89 pelos alunos e 9,80 pelos professores, sendo esta a sua maiornota 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 foramos 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 foramobtidas 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 dispositivosrobóticos, validando assim o conceito principal da ferramenta proposta nesta tese. Para oquesito layout favorável ao uso foi obtida uma média de 9,44 pelos alunos e 9,40 pelosprofessores.

No gráfico apresentado na Figura 8.18 podemos observar a variação das notas entrealunos e professores em relação aos questionamentos realizados nos questionários, queforam respondidos obedecendo uma escala de 0 a 10. Os quesitos cujos resultados estãocompilados 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 significativaentre 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 notainferida 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 estesnão compreenderam o quesito avaliado. No entanto a variância calculada pelos valoresinferidos pelos professores foi insignificante em contraste com a dos alunos. A Figura8.19, apresenta os valores de desvio padrão calculados para as notas inferidas por alunose 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 dadosnos 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 dosvalores 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ânciasão Q4 e Q5. O quesito Q4 não apresenta uma diferença significativa entre os valoresde média, como mostrado na Figura 8.18. No entanto, tanto os professores quanto osalunos relataram problemas com o software, o problema na execução se deu devido aoproblema com a conexão da internet no local. Nesse caso,a variância dos alunos foi de7,50, bem acima dos professores que foi de 1,30, nesse quesito os alunos alegaram queforam prejudicados devido a má conexão com a internet, prejudicando seu desempenhono 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ãoDesvio Padrão Variância

Q1 0,71/3,78 0,50/14,32Q2 0,89/1,74 0,80/3,03Q3 0,45/1,44 0,20/2,07Q4 1,14/2,74 1,30/7,50Q5 0,71/3,25 0,50/10,56Q6 0,84/2,57 0,70/6,62Q7 0,89/2,19 0,80/4,80Q8 0,84/1,79 0,70/3,21Q9 0,45/0,75 0,20/0,56Q10 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 propostanesta 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 apresentardois 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 ensinoe 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 eafirmam 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édiade classificação indicativa de 7,80 a 18,00 anos.

Durante o processo de avaliação, como mencionado, os professores também deveriaminferir 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 percentualde 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édiageral do ambiente, a partir da média dos resultados de cada quesito avaliado por alunos eprofessores, a qual foi de 8,67 pelos alunos e 9,04 pelos professores. Assim, com isso, aferramenta 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 delesobservou 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 comentadapelos 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. 16anos)

Dois alunos ao serem questionados sobre que atividades poderiam ser realizadas como 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 usaro 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 comparadocom 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 ossoftwares.

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áriosdo método EducAval nas etapas regional e nacional da Olimpíada Brasileira de Robóticanos 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úmerode amostras, aplicamos o método em uma escola municipal de João Pessoa no estado daParaí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 apresentare comparar os resultados com o W-Educ. A seguir elencamos os ambientes que serãoanalisados, 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 pararobô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 deMatemá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 maisexperientes 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 encontraralunos com experiência avançada.

Os gráficos apresentados nas Figuras 8.21 e 8.22 mostram um comparativo das notasentre 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 demaissoftwares. No entanto para os alunos apenas no quesito Q1 o software se destaca frenteaos demias. De acordo com os professores e alunos, os quesitos que obtiveram maioresnotas 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 objetivosespecíficos. Há uma discrepância significativa entre os resultados do Q2, apontando umafalta 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 osque 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 professoreso software favorece o processo de ensino e aprendizagem. Analisando as notas e fazendoum comparativo com as notas dos alunos, não houve em nenhum quesito uma nota quefosse 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 seupú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 professoresas maiores notas obtidas foram em Q1 e Q6 com nota 6,83, e apesar destas serem as notasde maior destaque não podem ser consideradas como atributos relevantes do software aoser 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 necessidadedo usuário e garantindo que o software não falha durante o período de execução, do pontode 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 quesitoque obteve maior nota, garantindo que o software favorece o processo de ensino. E paraos alunos Q2 foi o melhor classificado, mostrando que o software tem boa capacidadede 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ôsMindstorms, tanto NXT quanto EV3. De acordo com os alunos, estes são consideradoshardwares distintos e pelos professores não.

Ao analisar o próximo software, denominado Legal, percebemos que existem doisquesitos 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, deacordo com os professores. Para os alunos, não existe qualquer quesito que obteve novasuperior aos demais softwares, porém o quesito Q9 foi o que obteve melhor nota, dessaforma, 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 emcinco quesitos, sendo eles Q1, Q2 Q4, Q5 e Q6. Isso mostra que o software apresentafacilidade 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, apresentaum conjunto de funcionalidades concisa o que possibilitou com que este fosse o segundosoftware mais bem avaliado com média geral de 8,38.

88 CAPÍTULO 8. EXPERIMENTOS E RESULTADOS

Tabela 8.2: Melhores Softwares por Quesitos AvalidadosQuesito 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 comnota 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. Deacordo com os alunos, o software W-Educ foi o melhor avaliado e obteve nota superioraos demais em três quesitos, Q2, Q7 e Q8. Dentre os quesitos destacados por professorese 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, entreprofessores e alunos, obtida por quesito é apresentado na Tabela 8.2. Na segunda colunada 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 destaqueem 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. Inferimosque o ambiente desenvolvido cumpriu a proposta de preencher as lacunas existentes nosambientes disponíveis para robótica educacional.

Capítulo 9

Conclusão

Neste trabalho, propomos o projeto e desenvolvimento de um ambiente voltado paraa 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 utilizandouma única linguagem de programação foi demonstrada nesta tese. Sua demonstraçãofoi possível através da utilização de uma única linguagem de programação, chamada deR-Educ, que ao ser processada por um tradutor universal, alimentado por um banco dedados, permite a geração de código compatível com múltiplas plataformas.

Para inferir quais funcionalidades deveriam ser inseridas no ambiente, foi elaboradoum 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 foidesenvolvido e validado a partir do teste de dois protótipos em minicursos de robóticaoferecidos na etapa nacional da Olimpíada Brasileira de Robótica nos anos de 2014 e2015. 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édiageral superior a todas as ferramentas avaliadas.

A nível de técnica, esta tese deixa como contribuição principal o tradutor universal delinguagens, 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 oficinasde 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 doiskits de robótica educacional de baixo custo. Todo o suporte necessário para montagem eprogramaçã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 encontradasdurante 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çarum 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 trabalhofuturo, propomos a possibilidade de programar com mais de um arquivo de código. Alémdisso, a estruturação de uma versão desktop simplificada do ambiente, ou a criação de umainstância desktop para cada linguagem cadastrada, seria uma proposta relevante devidoaos 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 realizarde 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 linguagemR-Educ presentes no ambiente. De fato, este último item já vem sendo atendido, umavez que um simulador robótico versão desktop já está sendo implementado em trabalhoparalelo, pela equipe do Laboratório Natalnet, e deve ser apenas adaptado para sua versãoweb.

Referências Bibliográficas

ABNT (2003), Engenharia de software - qualidade de produto, Relatório técnico, NBRISO/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/iec9126 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 eimplementação de um ambiente de programação visual para robótica educacionalbaseado 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-basedrobot 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 alinguagem logo em um ambiente de robótica pedagógica de baixo custo, em ‘XXSimpó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 deExtremadura, Cáceres Espanã, p. 98.

Belousov, Igor R., Ryad Chellali & Gordon Clapworthy (2001), Virtual reality tools forinternet robotics, em IEEE, ed., ‘ICRA’, pp. pp. 1878–1883.

Bredenfeld, Ansgar & Thorsten Leimbach (2010), ntl. conf. on simulation, modeling andprogramming 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 comoinstrumento de aprendizado interdisciplinar na rede pública de educação profissionale 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 junho2013.

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

Eguchi, Amy (2012), ‘Educational robotics theories and practice: Tips for how to do itright’.

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 emrobótica educacional utilizando simuladores e kits de robótica livre, em ‘Workshopde 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 forlego 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 ‘Workshopde Qualidade de Software’, João Pessoa.

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

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

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 robotprogramming 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: 13de junho de 2016.

Lopez, D., R. Cedazo, F.M. Sanchez & J.M. Sebastian (2009), Ciclope robot: Web-basedsystem to remote program an embedded real-time system, em ‘Industrial EletronicsIEEE 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 dehardware e software de baixo custo para um kit de robótica educacional, Dissertaçãode 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 educacionalbrasileira’, 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. Acessoem: 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 programaeducacional de robótica educacional, Dissertação de mestrado, Universidade Federalde Santa Catarina, UFSC, Florianópolis, SC.

N.I. (2013a), ‘Labview’, Disponível em: http://www.ni.com/labview/pt/. Acesso em: 08de 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 dejunho de 2013.

Paul Oman, Shari Lawrence Pfleeger Paul Oman, Shari Lawrence Pfleeger Paul Oman &Shari Lawrence Pfleeger (1996), Applying Software Metrics, Wiley-IEEE ComputerSociety 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 : PrenticeHall.

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 deJaneiro - 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çãode 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 desoftware em instituições financeiras segundo a norma iso/iec 9126 na adoção daspráticas de testes do modelo cmmi, em ‘Relatórios de Pesquisa em Engenharia deProduçã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 junhode 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 environmentfor 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 roboticseducation 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 naEducação’, Minho, Portugal, pp. 263 – 267.

Schons, Claudine, Érica Primaz & Grazieli de Andrade Pozo Wirth (2004), ‘Introdução arobó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óticaEducacional, 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 deFortaleza.

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: 13de 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 softwareeducacional, 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.