Abordagem de aprendizagem intensiva STEM

Existem muitos cursos excelentes no mundo do ensino de engenharia, mas muitas vezes o currículo construído em torno deles sofre de uma falha grave – a falta de boa coerência entre vários tópicos. Alguém poderia objetar: como pode ser isso?

Na formação de um programa de treinamento, são indicados para cada curso os pré-requisitos e uma ordem clara em que as disciplinas devem ser cursadas. Por exemplo, para construir e programar um robô móvel primitivo, é necessário conhecer um pouco de mecânica para criar sua estrutura física; noções básicas de eletricidade ao nível das leis de Ohm/Kirchhoff, representação de sinais digitais e analógicos; operações com vetores e matrizes para descrever sistemas de coordenadas e movimentos do robô no espaço; noções básicas de programação ao nível da apresentação de dados, algoritmos simples e estruturas de transferência de controlo, etc. para descrever o comportamento.

Tudo isso é abordado nos cursos universitários? Claro que sim. Contudo, com as leis de Ohm/Kirchhoff obtemos a termodinâmica e a teoria de campos; além das operações com matrizes e vetores, é preciso lidar com as formas de Jordan; em programação, estude polimorfismo – tópicos que nem sempre são necessários para resolver um problema prático simples.

A educação universitária é extensa - o aluno segue uma frente ampla e muitas vezes não vê o significado e o significado prático do conhecimento que recebe. Decidimos virar o paradigma do ensino universitário em STEM (das palavras Ciência, Tecnologia, Engenharia, Matemática) e criar um programa que se baseia na coerência do conhecimento, permitindo um aumento da integralidade no futuro, ou seja, implica domínio intensivo dos assuntos.

Aprender uma nova área temática pode ser comparado a explorar uma área local. E aqui há duas opções: ou temos um mapa muito detalhado e com uma quantidade enorme de detalhes que precisam ser estudados (e isso leva muito tempo) para entender onde estão os principais marcos e como eles se relacionam entre si ; ou você pode usar um plano primitivo, no qual apenas os pontos principais e suas posições relativas são indicados - tal mapa é suficiente para começar imediatamente a se mover na direção certa, esclarecendo os detalhes à medida que avança.

Testamos a abordagem intensiva de aprendizagem STEM em uma escola de inverno, que realizamos junto com alunos do MIT com o apoio de Pesquisa JetBrains.

Preparação de material


A primeira parte do programa escolar foi uma semana de aulas nas principais áreas, que incluíam álgebra, circuitos elétricos, arquitetura de computadores, programação Python e introdução ao ROS (Robot Operating System).

As direções não foram escolhidas por acaso: complementando-se, deveriam ajudar os alunos a ver a conexão entre coisas aparentemente diferentes à primeira vista - matemática, eletrônica e programação.

É claro que o objetivo principal não era ministrar muitas palestras, mas sim dar aos alunos a oportunidade de aplicar eles próprios os conhecimentos recém-adquiridos na prática.

Na seção de álgebra, os alunos puderam praticar operações matriciais e resolver sistemas de equações, que foram úteis no estudo de circuitos elétricos. Tendo aprendido sobre a estrutura de um transistor e os elementos lógicos construídos em sua base, os alunos puderam ver seu uso em um dispositivo processador e, após aprenderem o básico da linguagem Python, escrever nele um programa para um robô real.

Abordagem de aprendizagem intensiva STEM

Cidade de Duckie


Um dos objetivos da escola era minimizar o trabalho com simuladores sempre que possível. Para tanto, foi preparado um grande conjunto de circuitos eletrônicos, que os alunos deveriam montar em uma placa de ensaio a partir de componentes reais e testá-los na prática, e Duckietown foi escolhida como base para os projetos.

Duckietown é um projeto de código aberto que envolve pequenos robôs autônomos chamados Duckiebots e as redes de estradas pelas quais eles viajam. Duckiebot é uma plataforma com rodas equipada com um microcomputador Raspberry Pi e uma única câmera.

Com base nisso, preparamos um conjunto de tarefas possíveis, como construir um roteiro, procurar objetos e parar próximo a eles, entre outras. Os alunos também poderiam propor o seu próprio problema e não apenas escrever um programa para resolvê-lo, mas também executá-lo imediatamente em um robô real.

Ensino


Durante a palestra, os professores apresentaram o material por meio de apresentações pré-preparadas. Algumas aulas foram gravadas em vídeo para que os alunos pudessem assisti-las em casa. Durante as aulas, os alunos utilizaram materiais em seus computadores, fizeram perguntas e resolveram problemas juntos e de forma independente, às vezes no quadro-negro. Com base nos resultados do trabalho, a avaliação de cada aluno foi calculada separadamente nas diferentes disciplinas.

Abordagem de aprendizagem intensiva STEM

Consideremos com mais detalhes a condução das aulas em cada disciplina. A primeira matéria foi álgebra linear. Os alunos passaram um dia estudando vetores e matrizes, sistemas de equações lineares, etc. As tarefas práticas foram estruturadas de forma interativa: os problemas propostos foram resolvidos individualmente, e o professor e demais alunos forneceram comentários e dicas.

Abordagem de aprendizagem intensiva STEM

O segundo assunto é eletricidade e circuitos simples. Os alunos aprenderam os fundamentos da eletrodinâmica: tensão, corrente, resistência, lei de Ohm e leis de Kirchhoff. As tarefas práticas foram parcialmente realizadas no simulador ou concluídas na placa, mas mais tempo foi gasto na construção de circuitos reais, como circuitos lógicos, circuitos oscilantes, etc.

Abordagem de aprendizagem intensiva STEM

O próximo tópico é Arquitetura de Computadores - em certo sentido, uma ponte que conecta física e programação. Os alunos estudaram a base fundamental, cujo significado é mais teórico do que prático. Como prática, os alunos projetaram independentemente circuitos aritméticos e lógicos no simulador e receberam pontos pelas tarefas concluídas.

O quarto dia é o primeiro dia de programação. Python 2 foi escolhido como linguagem de programação por ser a usada na programação ROS. Este dia foi estruturado da seguinte forma: os professores apresentavam o material, davam exemplos de resolução de problemas, enquanto os alunos os ouviam, sentados em frente ao computador, e repetiam o que o professor escrevia no quadro ou slide. Em seguida, os alunos resolveram sozinhos problemas semelhantes e as soluções foram posteriormente avaliadas pelos professores.

O quinto dia foi dedicado ao ROS: a galera aprendeu sobre programação de robôs. Durante todo o dia escolar, os alunos ficaram sentados em frente aos computadores, executando o código do programa sobre o qual o professor falou. Eles foram capazes de operar unidades básicas de ROS por conta própria e também foram apresentados ao projeto Duckietown. Ao final deste dia, os alunos estavam prontos para iniciar a parte do projeto da escola – resolução de problemas práticos.

Abordagem de aprendizagem intensiva STEM

Descrição dos projetos selecionados

Os alunos foram convidados a formar equipes de três e escolher um tema de projeto. Como resultado, foram adotados os seguintes projetos:

1. Calibração de cores. Duckiebot precisa calibrar a câmera quando as condições de iluminação mudam, portanto há uma tarefa de calibração automática. O problema é que as gamas de cores são muito sensíveis à luz. Os participantes implementaram um utilitário que destacaria as cores necessárias em uma moldura (vermelho, branco e amarelo) e construiria intervalos para cada cor no formato HSV.

2. Táxi Pato. A ideia deste projeto é que o Duckiebot pudesse parar perto de um objeto, pegá-lo e seguir uma determinada rota. Um pato amarelo brilhante foi escolhido como objeto.

Abordagem de aprendizagem intensiva STEM

3. Construção de um gráfico rodoviário. Existe a tarefa de construir um gráfico de estradas e cruzamentos. O objetivo deste projeto é construir um gráfico rodoviário sem fornecer dados ambientais a priori ao Duckiebot, contando apenas com dados de câmeras.

4. Carro patrulha. Este projeto foi inventado pelos próprios alunos. Eles propuseram ensinar um Duckiebot, uma “patrulha”, a perseguir outro, um “violador”. Para tanto, foi utilizado o mecanismo de reconhecimento de alvo utilizando o marcador ArUco. Assim que o reconhecimento for concluído, um sinal é enviado ao “intruso” para concluir o trabalho.

Abordagem de aprendizagem intensiva STEM

Calibração de cores

O objetivo do projeto Color Calibration era ajustar a gama de cores de marcação reconhecíveis às novas condições de iluminação. Sem esses ajustes, o reconhecimento de linhas de paragem, separadores de faixas e limites de estradas tornou-se incorreto. Os participantes propuseram uma solução baseada no pré-processamento de padrões de cores de marcação: vermelho, amarelo e branco.

Cada uma dessas cores possui uma faixa predefinida de valores HSV ou RGB. Usando esta faixa, todas as áreas do quadro contendo cores adequadas são encontradas e a maior delas é selecionada. Esta área é considerada a cor que precisa ser lembrada. Fórmulas estatísticas, como cálculo da média e desvio padrão, são então usadas para estimar a nova faixa de cores.

Esse intervalo é registrado nos arquivos de configuração da câmera do Duckiebot e pode ser usado posteriormente. A abordagem descrita foi aplicada a todas as três cores, formando intervalos para cada uma das cores de marcação.

Os testes mostraram um reconhecimento quase perfeito das linhas de marcação, exceto nos casos em que os materiais de marcação utilizavam fita brilhante, que reflete as fontes de luz com tanta força que, do ângulo de visão da câmera, as marcações pareciam brancas, independentemente da cor original.

Abordagem de aprendizagem intensiva STEM

Pato Táxi

O projeto Duck Taxi envolveu a construção de um algoritmo para procurar um passageiro pato na cidade e, em seguida, transportá-lo até o ponto desejado. Os participantes dividiram este problema em dois: detecção e movimento ao longo do gráfico.

Os alunos realizaram a detecção de patos presumindo que um pato é qualquer área do quadro que pode ser reconhecida como amarela, com um triângulo vermelho (bico). Assim que tal área for detectada no próximo quadro, o robô deverá se aproximar dela e então parar por alguns segundos, simulando o pouso de um passageiro.

Então, tendo o gráfico rodoviário de toda a duckietown e a posição do bot armazenados antecipadamente na memória, e também recebendo o destino como entrada, os participantes constroem um caminho do ponto de partida ao ponto de chegada, usando o algoritmo de Dijkstra para encontrar caminhos no gráfico . A saída é apresentada como um conjunto de comandos – curvas em cada uma das seguintes interseções.

Abordagem de aprendizagem intensiva STEM

Gráfico de estradas

O objetivo deste projeto era construir um gráfico – uma rede de estradas em Duckietown. Os nós do gráfico resultante são interseções e os arcos são estradas. Para isso, Duckiebot deve explorar a cidade e analisar seu percurso.

Durante o trabalho do projeto, a ideia de criar um grafo ponderado foi considerada, mas depois descartada, em que o custo de uma aresta é determinado pela distância (tempo de deslocamento) entre as interseções. A implementação desta ideia revelou-se demasiado trabalhosa e não houve tempo suficiente para isso dentro da escola.

Quando Duckiebot chega ao próximo cruzamento, ele escolhe a estrada que sai do cruzamento que ainda não percorreu. Quando todas as estradas em todos os cruzamentos forem ultrapassadas, a lista gerada de adjacências de cruzamentos permanece na memória do bot, que é convertida em uma imagem usando a biblioteca Graphviz.

O algoritmo proposto pelos participantes não era adequado para uma Duckietown aleatória, mas funcionou bem para uma pequena cidade de quatro cruzamentos usados ​​dentro da escola. A ideia era adicionar um marcador ArUco a cada interseção contendo um identificador de interseção para rastrear a ordem em que as interseções foram conduzidas.
O diagrama do algoritmo desenvolvido pelos participantes é mostrado na figura.

Abordagem de aprendizagem intensiva STEM

Carro-patrulha

O objetivo deste projeto é procurar, perseguir e deter um bot violador na cidade de Duckietown. Um robô patrulha deve se mover ao longo do anel externo de uma estrada da cidade, procurando por um robô intruso conhecido. Depois de detectar um intruso, o robô patrulha deve segui-lo e forçá-lo a parar.

O trabalho começou com a busca de uma ideia para detectar um bot em um quadro e reconhecer nele um intruso. A equipe propôs equipar cada bot da cidade com um marcador exclusivo na parte traseira – assim como os carros reais têm números de registro estaduais. Os marcadores ArUco foram escolhidos para esse fim. Eles foram usados ​​​​anteriormente em duckietown porque são fáceis de trabalhar e permitem determinar a orientação do marcador no espaço e a distância até ele.

Em seguida, era necessário garantir que o robô patrulha se movesse estritamente no círculo externo, sem parar nos cruzamentos. Por padrão, o Duckiebot se move em uma pista e para na linha de parada. Em seguida, com a ajuda da sinalização rodoviária, ele determina a configuração do cruzamento e faz uma escolha sobre o sentido de passagem do cruzamento. Para cada uma das etapas descritas, um dos estados da máquina de estados finitos do robô é responsável. Para se livrar das paradas no cruzamento, a equipe alterou a máquina de estado para que, ao se aproximar da linha de parada, o bot mudasse imediatamente para o estado de dirigir direto pelo cruzamento.

O próximo passo foi resolver o problema de parar o bot intruso. A equipe partiu do pressuposto de que o bot patrulha poderia ter acesso SSH a cada um dos bots da cidade, ou seja, ter algumas informações sobre quais dados de autorização e qual id cada bot possui. Assim, após detectar o intruso, o bot de patrulha começou a se conectar via SSH ao bot intruso e a desligar seu sistema.

Depois de confirmar que o comando de desligamento foi concluído, o bot de patrulha também parou.
O algoritmo de operação de um robô patrulha pode ser representado como o seguinte diagrama:

Abordagem de aprendizagem intensiva STEM

Trabalhando em projetos

O trabalho foi organizado em formato semelhante ao Scrum: todas as manhãs os alunos planejavam as tarefas do dia atual e à noite relatavam o trabalho realizado.

No primeiro e no último dia, os alunos prepararam apresentações descrevendo a tarefa e como resolvê-la. Para ajudar os alunos a seguir os planos escolhidos, professores da Rússia e da América estiveram constantemente presentes nas salas onde aconteciam os projetos, respondendo a perguntas. A comunicação ocorreu principalmente em inglês.

Resultados e sua demonstração

O trabalho nos projetos durou uma semana, após a qual os alunos apresentaram seus resultados. Todos prepararam apresentações nas quais falaram sobre o que aprenderam nesta escola, quais foram as lições mais importantes que aprenderam, o que gostaram ou não gostaram. Depois disso, cada equipe apresentou seu projeto. Todas as equipes completaram suas tarefas.

A equipe que implementou a calibração de cores concluiu o projeto mais rapidamente do que outras, portanto também teve tempo para preparar a documentação do programa. E a equipe que trabalhou no gráfico rodoviário, ainda no último dia antes da demonstração do projeto, tentou refinar e corrigir seus algoritmos.

Abordagem de aprendizagem intensiva STEM

Conclusão

Após a conclusão da escola, pedimos aos alunos que avaliassem as atividades anteriores e respondessem a perguntas sobre até que ponto a escola atendeu às suas expectativas, quais habilidades adquiriram, etc. Todos os alunos notaram que aprenderam a trabalhar em equipe, distribuir tarefas e planejar seu tempo.

Os alunos também foram solicitados a avaliar a utilidade e a dificuldade dos cursos que realizaram. E aqui se formaram dois grupos de avaliações: para alguns os cursos não apresentavam muita dificuldade, outros os avaliaram como extremamente difíceis.

Isso significa que a escola assumiu a posição correta ao permanecer acessível aos iniciantes em uma determinada área, mas também ao fornecer materiais para repetição e consolidação por alunos experientes. De referir que o curso de programação (Python) foi apontado por quase todos como descomplicado mas útil. Segundo os alunos, o curso mais difícil foi “Arquitetura de Computadores”.

Quando os alunos foram questionados sobre os pontos fortes e fracos da escola, muitos responderam que gostaram do estilo de ensino escolhido, no qual os professores prestavam assistência rápida e pessoal e respondiam às perguntas.

Os alunos também notaram que gostaram de trabalhar na modalidade de planejamento diário de suas tarefas e definição de prazos próprios. Como desvantagens, os alunos apontaram a falta de conhecimentos fornecidos, necessários ao trabalhar com o bot: ao conectar, compreender os fundamentos e princípios de seu funcionamento.

Quase todos os alunos notaram que a escola superou as suas expectativas, o que indica o rumo certo para a organização da escola. Assim, os princípios gerais deverão ser mantidos na organização da próxima escola, tendo em conta e, se possível, eliminando as deficiências constatadas pelos alunos e professores, alterando eventualmente a lista de cursos ou o calendário da sua lecionação.

Autores do artigo: equipe laboratório de algoritmos de robôs móveis в Pesquisa JetBrains.

PS Nosso blog corporativo tem um novo nome. Agora será dedicado aos projetos educacionais da JetBrains.

Fonte: habr.com

Adicionar um comentário