Suporte ao Professor
Preparar
• Certifique-se de que os hubs SPIKE Prime estejam carregados, especialmente se estiverem conectados por Bluetooth.
• Certifique-se de que os alunos construíram o modelo Coach, que foi usado na aula Dance Loop com Coach.
Material do Aluno
---------------
Envolver
( Discussão em grupo, 10 minutos )
Envolva os alunos em uma conversa sobre como definir as condições.
Peça aos alunos que pensem em exemplos de quando eles precisam atender a certas condições. Exemplos fáceis podem incluir decidir comer apenas quando estiver com fome ou limpar o quarto apenas quando alguém mandar. Peça aos alunos que citem as condições em cada caso.
Em seguida, desafie os alunos a encontrar um exemplo de um momento em que uma condição é sempre verdadeira. Os alunos devem debater ideias de uma condição que poderia ser definida e que não deixaria de ser verdadeira (nenhuma falsa para a condição). Um exemplo pode incluir o nascer do sol todos os dias. Peça aos alunos que escrevam uma declaração que define o nascer do sol como uma condição. Exemplo: Se o sol nascer, verei a luz lá fora. Isso é verdade todos os dias porque o sol nasce todos os dias.
Explique aos alunos que um loop com uma condição sempre verdadeira é um loop infinito. Loops infinitos são loops while que nunca podem se tornar falsos.
Perguntas para investigar
• Como você pode criar loops onde as condições sempre são verdadeiras?
--
Explorar
( Pequenos Grupos, 45 minutos )
Os alunos explorarão a programação do modelo Coach para se mover usando um loop infinito.
Oriente os alunos a abrir um novo projeto na tela de programação Python. Peça aos alunos para apagar qualquer código que já esteja na área de programação. Os alunos devem conectar seu hub.
Explique aos alunos que o treinador quer nos levar em uma longa caminhada agora que estamos todos aquecidos. Discuta com os alunos como podemos incluir um loop para mover o modelo Coach usando um loop while que define uma condição para o movimento, mas a condição é criada de forma que seja sempre verdadeira (não pode ser falsa).
Peça aos alunos que revisem seu programa da lição Setting Condition for Yoga. Peça aos alunos que pensem em maneiras de definir as condições para que o loop while seja sempre verdadeiro e, portanto, não termine.
Exemplo de programa de Setting Condition for Yoga:
from spike import Motor
\# initialize motors and sensor. Set variable names
motor_b=Motor('B')
motor_f=Motor('F')
count = 2
\# run motors when count less than 5
while count < 5:
motor_f.run_for_seconds(0.3, 40)
motor_b.run_for_seconds(0.3, 40)
motor_f.run_for_seconds(0.3, -40)
motor_b.run_for_seconds(0.3, -40)
count=count+1
Dê tempo aos alunos para tentar várias ideias diferentes para garantir que a condição seja sempre verdadeira. As soluções de amostra incluem definir a contagem como 1 e a contagem while como maior que 0. Este programa continuará a ser executado continuamente porque a condição continuará sendo verdadeira.
Lembre os alunos de observar o console em busca de erros durante a investigação.
Enquanto verdadeiro
Apresente uma nova linha de código aos alunos que lhes permitirá atingir o objetivo de criar uma condição para o loop que seja sempre verdadeira (não pode se tornar falsa).
Compartilhe esta linha de código com os alunos e pergunte a que lugar eles acham que ela pertence no programa que acabaram de criar (o que ela deve substituir).
Peça aos alunos que alterem seu programa para incluir a linha de código while True, que permitirá que o programa execute um loop infinito.
Exemplo de programa:
from spike import Motor
\# initialize motors and sensor. Set variable names
motor_b=Motor('B')
motor_f=Motor('F')
\# run motors when count less than 5
while True:
motor_f.run_for_seconds(0.3, 40)
motor_b.run_for_seconds(0.3, 40)
motor_f.run_for_seconds(0.3, -40)
motor_b.run_for_seconds(0.3, -40)
--
Explicar
( Grupo inteiro, 10 minutos )
Discuta com os alunos como o programa funcionou.
Faça perguntas aos alunos como:
• O que foi difícil neste desafio?
• Como esse loop é diferente de um loop while?
• Quando você pode querer usar um loop infinito?
--
Elaborar
( Pequenos Grupos, 15 minutos )
Desafie os alunos a adicionar um sensor de força ao modelo Coach.
Peça aos alunos para adicionar um sensor de força ao modelo, conectando o sensor na porta D. Os alunos não precisam conectar o sensor de força ao modelo.
Com o sensor conectado, peça aos alunos que atualizem seus programas para incluir o uso de um sensor no loop. O loop deve continuar sendo sempre verdadeiro, mas também incluir o uso de um sensor de força.
Exemplo de programa:
from spike import Motor, ForceSensor
from spike.control import wait_for_seconds
# initialize motors and sensor. Set variable names
motor_b=Motor('B')
motor_f=Motor('F')
force_sensor=ForceSensor('D')
# run motors when count less than 5
While True:
force_sensor.wait_until_pressed()
motor_f.run_for_seconds(0.5, 40)
wait_for_seconds(1)
motor_f.run_for_seconds(0.5, -40)
Dê tempo aos alunos para testar e modificar seu programa. Lembre os alunos de observar o console em busca de mensagens de erro.
Permite que os alunos compartilhem seus programas. Discuta as diferentes abordagens em grupo.
--
Avaliar
( Exercício em grupo, 10 minutos )
Observação do Professor:
Discuta o programa com os alunos.
Faça perguntas aos alunos como:
• O que transforma um loop while em um loop infinito?
• Qual é a coisa mais importante a ser lembrada ao criar um loop infinito?
• Como os sensores podem ser incluídos no uso de loops?
Autoavaliação:
Peça aos alunos que respondam o seguinte em seus diários:
• O que você aprendeu hoje sobre o uso de loops infinitos?
• Que características de um bom companheiro de equipe eu demonstrei hoje?
• Peça aos alunos para avaliarem a si mesmos em uma escala de 1 a 3, em sua gestão de tempo hoje.
• Peça ao aluno para avaliar a si mesmo em uma escala de 1 a 3, em seu gerenciamento de materiais (peças) hoje.