[Projetos] Lógica de programação para jovens e crianças - #1 ensino adaptado

Contexto


A primeira questão que vêm a nossa mente quando pensamos no ensino de lógica de programação para jovens e crianças é se é realmente possível. Atualmente o ensino nas escolas brasileiras apresenta uma grande carência de iniciativas que levem ao ensino técnico. 

Alguns anos atrás o governo federal lançou projetos como os Institutos Federais de ensino técnico e também bolsas de apoio como o PRONATEC. Porém, a situação atual não é muito animadora. Vemos com frequência a falta de recursos destes projetos e até mesmo das instituições. 

As universidades hoje desempenham um papel super importante que é a formação de adultos.  No entanto, muitas delas desenvolvem projetos paralelos de incentivo ao ensino de disciplinas que não estão na grade curricular normal. 

A lógica de programação é algo muito amplo que pode ser utilizado em muitas áreas. Mesmo que um aluno não utilize a lógica aprendida para "programar", esta atividade ativa a capacidade dos alunos em pensar e solucionar problemas complexos. Aprender a programar mostra as pessoas que ao resolver um problema complexo precisamos seguir uma sequência de passos. Apesar de parecer trivial, esta prática pode auxiliar as pessoas a lidar com outros desafios de outras áreas.


Uso de Técnicas adaptadas [Mindstorms]


A seguir apresentaremos um artigo publicado na Informations Systems and Tecnologies (CISTI), no ano de 2015 pela aluna da UTFPR Valéria Banachi Barreto. Este artigo trata de um projeto de iniciação científica que retrata como é possível usar os robôs da lego para ensinar lógica de programação. 

Este artigo está acessível na IEEE no seguinte link:



Introdução 


A construção de algoritmos e programas e uma tarefa difícil para os iniciantes, pois exige uma percepção de que as acoes do dia a dia podem ser enumeradas, sequenciadas e estruturadas [1].

Vários estudos mostram que o numero de reprovações nas disciplinas de logica de programação e preocupante. Os cursos do Departamento de Computação (Analise e Desenvolvimento de Sistemas, Engenharia de Software e Engenharia da Computação) da Universidade Tecnológica Federal do Parana - Campus Cornélio Procópio, colaboram com estes estudos. Cerca de 55% (em um universo de 120 por semestre) dos alunos matriculados nas series iniciais dos cursos do Departamento reprovam nas disciplinas de Lógica de Programação, Algoritmos e Estrutura de Dados.

De posse deste contexto, este artigo tem como objetivo propor a inserção de alunos do Ensino Médio (os quais ainda não ingressaram na Universidade) em ambientes lúdicos que possibilitem a aprendizagem de logica de programação para promover o ensino de algoritmos e estrutura de dados. o ambiente proposto utiliza o kit de robótica Lego Mindstorms NXT 2.0, modelo 8547 como meio de ensino e aprendizagem.

De acordo com Maisonnette [2] a robótica expande o ambiente de aprendizagem, disponibiliza mais ferramentas, aumenta a gama de atividades e promove a interação de diversas disciplinas, na medida em que os alunos vivenciam, na pratica, o método cientifico.

Para verificar a viabilidade desta proposta realizou-se experimentos com quatro alunas do Ensino Médio do Colégio Monteiro Lobato, da cidade de Cornélio Procópio, Parana - Brasil.

Apos a realização dos experimentos as alunas foram submetidas a uma avaliação e os resultados alcançados mostraram-se satisfatórios.

O texto deste trabalho esta organizado da seguinte forma: Na seo 2 e apresentada o objeto de ensino e aprendizagem. Na seção 3 são apresentados os trabalhos relacionados. A seção 4 descreve métodos e procedimentos utilizados no desenvolvimento da proposta. A seção 5 apresenta os resultados obtidos. E, por fim, a seção 6 traz as conclusões do trabalho.


Robô Lego Mindstorms NXT 2.0


O Lego Mindstorms NXT 2.0, modelo 8547, e um brinquedo de cunho lúdico e pedagógico, desenvolvido pela empresa Lego e lançado em Julho de 2006, voltado para a educação tecnológica.

O Mindstorms constitui-se como um kit de robótica equipado com um microcomputador de 32 bits, software proprietário, três servo-motores, e sensores de toque, cor e ultrassom, os quais permitem a programação e montagem de robôs com noções de distancia, capazes de reagir a obstáculos e cores, e de executar movimentos com certo grau de precisão,

Alem da questão estrutural, o kit permite a programação de comportamentos, resultando em modelos interativos ligados aos conceitos de ciência e engenharia.

Uma visão do Robô Lego pode ser verificada por meio da Fig. 1.



Trabalhos relacionados



Atualmente, o emprego didático do Robô Lego, abrange as áreas de automação, controle, robótica, física, matemática, programação e projetos. Este trabalho apresenta um levantamento bibliográfico de alguns trabalhos.

Os autores [3] utilizaram o robô Lego Mindstorms no ensino de programação as turmas das series iniciais do Departamento de Computação, Engenharia e Tecnologia da Universidade de Sunderland, Reino Unido. A iniciativa teve como objetivo avaliar o uso potencial de robes no ensino de programação em Java. Os autores concluíram que o robô possibilitou a execução pratica do código, os alunos mostraram-se focados na resolução das atividades, obtendo, deste modo, um conhecimento satisfatório.

Brandt e Colton [4] utilizam o Mindstorms para o ensino de programação, mecânica e controle para as turmas das series iniciais do Departamento de Engenharia Mecânica da Universidade de Brigham. o trabalho desenvolveu estudos sobre a interface e sensoriamento ligado a toque. Os autores concluem que o Robô Lego e uma plataforma versátil que produz um grande apreço aos estudantes. Com a utilização do Robô, os autores melhoram o aprendizado de mecânica, calibração de sensores, linguagem de programação e princípios de física.

Uma proposta para sistematizar o processo de ensino e aprendizagem de robótica, com a utilizacao do Mindstorms, foi desenvolvida na Universidade Federal de Campina Grande em 2008. No trabalho os autores [5] apresentam o vies técnico que permeia sua proposta.

Tester [6], utilizou Mindstorms para o desenvolvimento de habilidades ligadas a inovação e gestão de comunicação, o trabalho foi desenvolvido com 70 estudantes em curso de pos-graduação na Northern Arizona University. Os resultados foram colhidos pelo autor por meio da observação direta do comportamento dos estudantes. o autor conclui que a maioria teve um ganho considerável de conhecimento na área de gestão de comunicação.

O Mindstorms também e utilizado por Schumacher, Welch, Raymond [7] no ensino de programação nas series iniciais dos cursos de engenharia elétrica e computação na Academia Militar dos Estados Unidos. Os autores relatam que a utilização do Mindstorms dinamizou e proporcionou um maior grau de exatidão na solução de problemas complexos por parte dos alunos.

Caci eD’ Amico [8] utilizam o Robô Lego para desenvolver habilidades cognitivas em crianças. Os autores trabalham com os princípios cognitivos focando a inteligencia não verbal, comunicação visual, logica e programação de robôs. Os autores trabalharam com 10 alunos de 11 anos de idade, divididos em 2 grupos com 5 alunos cada. Os grupos trabalharam a construção física do robô e desenvolveram, em 12 encontros presenciais, um projeto logico utilizando conceitos ligados a programação. Após o desenvolvimento do trabalho, os autores concluem que as habilidades cognitivas sofrem uma melhora sensível.

Pesquisadores da Universidade de Dresden e da Universidade de Malaga desenvolveram 3 experimentos, em nível de pós-graduação, utilizando o Robô Lego Mindstorms [9]. Habilidades ligadas ao projeto e desenvolvimento de software foram delineadas junto aos estudantes que utilizaram o referido robô, Os autores propuseram uma competição utilizando o Mindstorms, nesta competição os estudantes tinham que desenvolver um software na qual o robô pudesse sair de qualquer labirinto. Os autores concluirão que a aplicação da técnica melhorou questões ligadas ao desenvolvimento de programas estruturados, o entendimento e o trabalho com sensores e atuadores.

Outro trabalho interessante desenvolvido pelos autores [10] na Universidade Nacional de Ciência e Tecnologia, NUST, Paquistão, refere-se ao ensino de programação com o Lego Mindstorms através de um jogo de futebol. Para este fim, os autores relatam o uso da linguagem Java e métodos de processamento de imagens. o objetivo geral foi conduzir o aluno a elaboração de estrategias de programa<;ao. Os autores ressaltam que deste modo, a atividade contribui para o aprendizado de forma lúdica, possibilitando a resolução de problemas do mundo real.

Calvo e Parianaze [11] realizaram um estudo sobre a aplicação do Lego Mindstorms aos alunos de Engenharia Eletrônica da Universidade de Engenharia de Vitoria-Gasteiz, Espanha. O objetivo foi introduzir solidas competências da informatica industrial e para tanto, utilizaram a metodologia PBL (Problem Based Learning). Alem disso, realizaram estudos e comparações entre outras plataformas como: Fischertechik, Arduino, Parallax e Robotis Bioloid. No entanto, concluirão O trabalho ressaltando a plataforma Lego como a ferramenta mais apropriada para O objetivo, pois esta possibilita a utilização de diversas linguagens de alto nível de programação.


Métodos e Procedimentos


Apresentado uma visão geral do Mindstorms NXT e dos trabalhos relacionados, esta seção tem como objetivo apresentar os métodos e procedimentos para utilizar O kit de robótica Lego Mindstorms NXT 2.0, modelo 8547, na promoção do ensino de logica de programação. Os métodos e procedimentos realizados dividem-se em 6 fases:

A. Seleção Dos Alunos do Ensino Médio e do Objetivo de Ensino e Aprendizagem


O estudo decorreu com quatro alunas do Ensino Médio, matriculadas no Colégio Estadual Monteiro Lobato, na cidade de Cornélio Procópio, PR.A seleção das participantes efetuou-se pela professora de Física do Colégio citado, a qual presenciou os encontros. As aulas de programação ocorreram na Universidade Tecnológica Federal do Parana (UTFPR), com duração de duas horas, periodicidade semanal as quartas-feiras a tarde. Totalizaram-se trinta e seis horas de aulas ministradas.
A utilização do kit Lego Mindstorms vai alem de sua função lúdica, por meio dele, buscou-se desenvolver atividades baseadas no contexto do mundo real, em consonância com os conceitos de programação, Desta forma, exigiu-se O esforço do grupo na resolução das atividades, visando atingir seus potenciais criativos, permitindo, desta forma, O aprendizado concreto.

B. Introdução Dos Conceitos de Programação de Computadores

O conceito de logica, fundamental em programação, tem-se destacado com O avanço da ciência e da tecnologia. Pode-se dizer que a lógica e a arte de pensar corretamente.
Ao inserir as atividades com O Robô Lego Mindstorms fez-se necessário compreender conceitos básicos de programação, como: algoritmos, variáveis, comando de entrada e saída, estrutura de repetição e estrutura de decisão.
Nos parágrafos subsequentes apresentam-se os conceitos de lógica de programação que fundamentam O trabalho.
Segundo [12] “Algoritmo e a descrição de uma sequencia de passos que deve ser seguida para a realização de uma tarefa”. Desta forma, tem-se que algoritmos estão presentes no cotidiano humano e voltado para a programação, auxiliam na execução das tarefas, na investigação de soluções e no raciocínio lógico.
Um algoritmo geralmente manipula uma variável. Conforme estabelecido por [13] uma variável e caracterizada por um “objeto identificado por um nome fantasia que contem um valor, O qual pode ser consultado ou modificado tantas vezes quanto necessário ao longo da computação do programa.” Ao criar variáveis, um espaço de memoria e reservado, e esta pode acomodar qualquer valor do tipo declarado.
Ascencio e Campos [12] destacam que os tipos de dados mais utilizados são: numéricos, lógicos e literais. Os dados números podem ser divididos em inteiros e reais, negativos e positivos. Os dados lógicos, booleanos, assumem os valores de verdadeiro ou falso, habitualmente utilizados para avaliar um determinado comando. Por fim, os dados literais, ou caracteres, recebem letras maiúsculas e minusculas, números, desde que não utilizados para cálculos, entre outros caracteres especiais.
Os comandos de entrada são responsáveis por receber as informações fornecidas pelo usuário, os quais passam a ser armazenados em variáveis. Já os comandos de saída, expressam os resultados alcançados na execução do programa.
Sebesta [14] diz que para tornar um programa flexível e bem executável, meios de selecionar e de repetir instruções devem ser utilizados. Para este fim, trata-se neste trabalho, as estruturas de decisão e estruturas de repetição.
Estruturas de decisão, de acordo com Mizrahi [15] “[…] permitem determinar qual e a ação a ser tomada com base no resultado de uma expressão condicional.” Isso significa que na execução de um programa pode-se selecionar entre comandos alternativos, conforme finalidade.
As estruturas de decisão classificam-se de acordo com O numero de condições testadas. Saliba [16] refere-se a dois tipos de estruturas condicionais: (se) e (escolha). No tipo (se) uma unica condição e avaliada. Caso O resultado dessa avaliação seja verdadeiro, uma determinada sequencia de comandos e executada, caso não seja, um comando distinto sera. O tipo (escolha) pode testar uma ou mais condições, e este possui um comando composto diferente associado a cada uma delas.
Os autores [12] esclarecem que as estruturas de repetição são empregadas quando, parte ou todo O algoritmo precisa ser reproduzido. O numero de repetições pode ser fixo ou estar atrelado a uma condição, Nas estruturas com numero definido de repetições emprega-se a estrutura (para). Janas estruturas com numero indefinido de repetições analisa-se uma condição para controlar a execução do programa, enquanto a condição for verdadeira, O trecho selecionado e reproduzido.
A fim de abordar os conteúdos de programação de modo assimilativo pelas alunas, este trabalho foi dividido em duas etapas, em um primeiro momento trabalhou-se com a linguagem Logo e posteriormente inseriu-se O robô Lego Mindstorms.

C. A Utilização do Logo Para Fixação Dos Conceitos de Programação de Computadores

Logo e uma linguagem de programação desenvolvida no Massachusetts Institute of Technology (MIT), Boston, EUA, por Seymor Papert e colaboradores. Consiste em uma plataforma em que O usuário movimenta um cursor gráfico (tartaruga) através de comandos básicos, como: ParaFrente n° (PF n), ParaTras n° (PT n°), ParaDireita (PD n), ParaEsquerda (PE n), Os numeros subsequentes aos comandos representam o valor em que a tartaruga deve movimentar-se.
A linguagem Logo também permite a criação de comandos técnicos de programação, como o uso de estrutura de repetição, comando Repita n° [acoes], ilustrado na fig. 2 e a criação de procedimentos, rotinas de programas capazes de executar uma tarefa, vide fig. 3. A utilização desses comandos permitem a elaboração de códigos legíveis e melhor estruturados.



Figure 2. Comando repita


Figure 3. Procedimento

A fim de estimular a execução de algoritmos e o pensamento logico, foi proposto diversos exercícios de programação Logo. Dentre eles, destaca-se o Jogo do Labirinto. Esta atividade teve como finalidade explorar diversos comandos e estruturas. Consiste na programação de passos que devem resultar em um labirinto valido para ser resolvido. Um exemplo da atividade pode ser encontrado na fig. 4.

Figure 4. Labirinto em logo


A utilização do Logo buscou introduzir as alunas do Ensino Médio a programação, Desta forma, atingiu-se noções de sequencia, algoritmos, estruturas de repetição, procedimentos e logica.

D. Apresentação do Ambiente de Programação Robô Lego Mindstorms

A programação com o Robô Lego Mindstorms efetivou-se através da plataforma Lego Mindstorms Education NXT, desenvolvida pela empresa LabVIEW software da National Instruments.
A plataforma oferece uma linguagem de programação em blocos, no qual os comandos são clicados e arrastados para a área de trabalho. Esta linguagem permiti instruções computacionais, comuns nos cursos de algoritmos, como estruturas de seleção e repetição, criação de números randômicos, operações logicas e numéricas, entre outras.
A fig. 5 ilustra o ambiente de programação da Lego Mindstorms Education NXT. No exemplo pode-se observar a utilização do bloco de seleção, este condicionado pelo sensor de toque, e do bloco de repetição, com duração infinita. Enquanto a condição for falsa, o robô executara o comando inferior, andando ilimitadamente. Caso o sensor de toque seja pressionado, o robô executara os comandos superiores, assim desviara do objeto que o acionou. o comando de repetição presente faz-se necessário na medida em que avalia constantemente a condição, permitindo ser verdadeira ou falsa, ilimitadas vezes.


Figure 5. Tela lego mindstorms education nxt


A utilização da plataforma Lego consolidou os conhecimentos em programação, Paralelamente, o robô Mindstorms possibilitou a execução pratica dos algoritmos, superando os conceitos abstratos e desta forma, tornando a aprendizagem lúdica, estimulante e desafiadora.

E. Programando o Mindstorms

O trabalho com o Robo Lego Mindstorms iniciou com a apresentacao de seus componentes, processador, motores e sensores. Em seguida, introduziu-se a programacao com a plataforma Lego.
Para melhorar o aprendizado foram desenvolvidos diversos exercícios de fixação. Totalizaram-se trinta e seis horas de orientação a programação. Sendo destas, dez horas de programação em linguagem Logo e vinte e seis horas em Lego Mindstorms.
Vale salientar que ao inserir as alunas no universo de programação, comitantemente, desenvolvia-se os conhecimentos relacionados a Física e a Matemática, na medida em que fez-se necessário relembrar e utilizar os conceitos de direção, inércia, coordenadas, ângulos, comprimento, espaço e geometria.

F. Desenvolvimento Dos Trabalhos

Com o intuito de aprimorar e avaliar o aprendizado das alunas foram desenvolvidos tres desafios os quais englobaram todos os conteudos apresentados em sala de aula.
O primeiro desafio denominado Circuito Cidade (vide Fig. 6) consistiu-se em um trajeto no qual o robô deveria, em um primeiro momento, locomover-se na parte externa demarcada ate o final do primeiro quarteirão, apos, girar um angulo reto e movimentar-se ilimitado ate o sensor de cor ser acionado, este condicionado pela cor vermelha. Em sequencia deveria evitar a inercia do movimento, emitir um som e prosseguir ilimitado ate, desta vez, o sensor de toque ser ativado. o exercício concluiu-se com o robô localizado na posição de chegada.

Figure 6. Desafio circuito cidade


O segundo desafio denominado Guarda-roupa (vide Fig. 7) consistiu-se em programar o robô para realizar leituras dos vestuários disponíveis no exercício, condicionado por cores. Posteriormente devia-se escolher uma entre todas as opções, emitir um som ao encontrar a peca escolhida e retornar ao inicio do trajeto.

Figure 7. Desafio guarda-roupa

O terceiro desafio denominado Zoológico (vide Fig. 8) buscou o desenvolvimento de uma implementação que utiliza-se todos os sensores. Constitui-se em um circuito representando uma cidade e fez-se da necessidade de resgatar todos os animais que haviam escapado do zoológico. o robô lego mindstorms não deveria percorrer ruas repetidas, como também não ultrapassar os limites. No total foram três animais perdidos e diversos obstáculos no caminho, com o intuito de promover a utilização dos sensores. o exercício finalizou-se apenas com o robô novamente no local de partida.

Figure 8. Desafio zoológico


Durante o desenvolvimento dos desafios os autores mapearam o tempo de programação utilizado e o numero de intervenções necessárias para a correta conclusão dos desafios. Tais dados serão apresentados na próxima seção.


Resultados Obtidos


A fim de validar os conhecimentos adquiridos com o Robo Lego Mindstorms, no ensino de logica de programação, as alunas do Ensino Médio foram submetidas a três desafios. o primeiro denominou-se Circuito Cidade e envolvia a utilização dos motores, do sensor de cor e do sensor de toque. o segundo denominou-se Guarda-roupa, no qual o objetivo era encontrar um determinado vestuário condicionado pela cor. Já com o terceiro pretendeu-se envolver todos os conhecimentos explanados, portanto, o desafio Zoológico exigiu a utilização de varies sensores e estruturas de programação.
Na tabela I encontram-se os valores coletados em cada desafio, sendo eles analisados pelo: tempo de programação, numero de intervenção necessária para a correta realização, minutos de programação por intervenção e o nível de dificuldade do desafio, em uma escala de zero a dez.


Tabela I Resultados por desafio


E importante salientar que o nível de dificuldade dos desafios mapeados na tabela I define-se pelos autores deste trabalho.
De acordo com os dados acima, observa-se que o desafio Circuito Cidade, apresenta apenas uma intervenção para a sua concretização, mas deve-se salientar que o nível de dificuldade e considerado baixo em relação aos demais.
No desafio Guarda-roupa e no desafio Zoológico o valor de intervenção aumenta, assim como o nível de dificuldade. Entretanto, se dividirmos o tempo de programação utilizado pelo valor de intervenção, e levando em conta a discrepância no nível de dificuldade, obtemos valores muito próximos.
Assim sendo, os dados coletas revelam que as aulas ministradas atingiram o objetivo de inserir as alunas do Ensino Médio a logica de programação. Partindo do principio que embora o numero de intervenção tenha aumentado e o grau de dificuldade também, os valores de minutos por intervenção mantiveram-se rentes.


Conclusão


A tecnologia Lego Mindstorms possibilitou a inserção de alunos do Ensino Médio ao ambiente de programação, promovendo novos conhecimentos e desenvolvendo a logica computacional. Alem disso, viabilizou a pratica dos conteúdos pertencentes ao Ensino Médio, em especial geometria e mecânica, levando o conhecimento para alem da sala de aula.
Portanto, o ensino de programação com a kit de robótica resulta em um aprendizado lúdico e de alto nível intelectual, sendo um meio recomendável de ensino.
Pretende-se expandir este projeto para outros alunos do Ensino Médio por meio de oficinas de ensino, como também a comunidade universitária, alem de divulgar e incentivar a proposta em palestras, feiras e eventos.

Referências

1. A. Vahldick, F. B. V. Benitti, D. L. Urban, M. L. Krueger and A. Halma
“Using Lego Mindstorms in support of Computer Programming Education”
[medium:online] Available:
http://www.lbd.dcc.ufmg.br/colecoes/wei/2009/018.pdf
2. R. Maisonnette
“The use of computer resources from a relationship inventive with the machine”
[medium:online] Available:
http://www.proinfo.gov.br/upload/biblioteca.cgd/192.pdf
“The use of lego mindstorms nxt robots in the teaching of introductory java programming to undergraduate students”
Brazilian Congress on Engineering Education, 2010, Fortaleza
“Toys in the Classroom: LEGO MindStorms as an Educational Haptics Platform”
Haptic interfaces for virtual environment and teleoperator systems, pp. 389-395, 2008
“MaeRobot: An Open Source Test Platform for Prototyping Robots”
Robotic Symposium, 2008. LARS '08. IEEE Latin American, pp. 196-201
“Management of a large team-design and robotics-oriented sophomore design class”
Frontiers in Education Conference, 2008. FIE 2008. 38th Annual, pp. T3B-24-T3B-29
“Teaching introductory programming, problem solving and information technology with robots at West Point”
Frontiers in Education Conference, 2001. 31st Annual, vol. 2, pp. F1B-2-7
“Children's cognitive abilities in construction and programming robots”
Robot and Human Interactive Communication, 2002. Proceedings. 11th IEEE International Workshop on, pp. 189-191
“Using LEGO NXT Mobile Robots With LabVIEW for Undergraduate Courses on Mechatronics”
Education, IEEE Transactions on, vol. 54, no. 1, pp. 41-47, 2011
“Robot soccer framework for lerning”
Multitopic Conference (INMIC), 2011 IEEE 14th International, pp. 50-55
“Joint use of lego mindstorms nxt platform and methodologies problem based learning in industrial computers”
p. 1300147, 2014
“Fundamentals of Computer Programming”
3., 2012, Pearson Education do Brazil, Paulo
“Principles of Programming Languages”
1., p. 97, 2003, Edgard Blucher, Sao Paulo
“Concepts of Programming Languages”
5., p. 294, 2003, Artmed, Porto Alegre
“Training in Language C”
2., p. 84, 2008, Pearson Prentice Hall, London
“Programming Techniques”
1992, Makron, McGraw-Hill, São Paulo
[Projetos] Lógica de programação para jovens e crianças - #1 ensino adaptado [Projetos] Lógica de programação para jovens e crianças - #1 ensino adaptado Reviewed by Vinicius Santos on 03:29:00 Rating: 5

Nenhum comentário

Escreve ai sua opinião!