Suporte ao Professor
Preparar
• Certifique-se de que os hubs SPIKE Prime estejam carregados, especialmente se estiverem conectados por Bluetooth.
Material do Aluno
------------
Envolver
( Discussão em grupo, 5 minutos )
Discuta com os alunos como identificar se o problema está no hardware (modelo) ou no programa.
Na lição Protótipos de teste, os alunos identificaram maneiras de testar e iterar em seu modelo para encontrar uma solução final. No entanto, não havia nenhum elemento de programação envolvido na construção da ponte. Agora os alunos precisarão encontrar maneiras de identificar se os problemas estão no design do modelo ou no programa.
Assista ao vídeo da modelo dançarina de break dançando para ter uma ideia de como a modelo deve se mover.
ESPAÇO RESERVADO PARA VÍDEO
Discuta com os alunos as diferentes maneiras pelas quais o dançarino pode se mover. Faça perguntas aos alunos como:
• Quais partes do modelo estavam se movendo?
• Como você pode replicar esse movimento com o modelo?
• Se algo der errado, como você saberá se é o modelo ou o programa?
Perguntas para investigar
• Como os engenheiros de software identificam e corrigem bugs em um programa?
--
Explorar
( Pequenos Grupos, 20 minutos )
Os alunos construirão um modelo de dançarino de break para investigar a identificação de bugs e corrigi-los.
Direcione os alunos para a seção BUILD no aplicativo SPIKE. Aqui os alunos podem acessar as instruções de construção do modelo Break Dancer. Peça aos alunos que construam o modelo. As instruções de construção também estão disponíveis em https://education.lego.com/en-us/support/spike-prime/building-instructions .
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.
Testar o modelo
Os alunos identificarão se há erros no programa ao experimentar o código de exemplo.
Peça aos alunos que examinem seu modelo de perto para identificar como ele deve se mover. Os alunos devem tentar mover os motores e outras partes do modelo para ver se ele se moverá de maneira semelhante ao vídeo com base na discussão na seção de engajamento.
Dê tempo aos alunos para investigar como o modelo se move sem criar um programa. Faça perguntas aos alunos como:
• O modelo se moveu de maneira semelhante ao vídeo?
• Algo no modelo parece não estar funcionando corretamente?
Teste o programa
Peça aos alunos que digitem este programa na tela de programação. Peça aos alunos que executem o programa.
do spike import ColorSensor, Motor
do spike.control import wait_for_seconds
leg_motor=Motor('F')
arm_motor=Motor('D')
color_sensor=ColorSensor('B')
leg_motor.set_default_speed(-40)
arm_motor.set_default_speed(-60)
\# Set the legs to the starting position.
leg_motor.run_to_position(0)
arm_motor.run_to_position(0)
wait_for_seconds(1)
\# Repeat arm and leg movement 10 times.
for x in range(10)
leg_motor.start()
arm_motor.run_for_rotations(1)
leg_motor.stop()
wait_for_seconds(1)
Permita que os alunos executem o programa. Observe que uma mensagem de erro foi recebida.
Discuta com os alunos que a mensagem de erro mostra que há um bug no programa. Os alunos precisarão verificar as linhas de código cuidadosamente para encontrar e corrigir o bug. Este processo é conhecido como depuração de um programa.
Os alunos devem identificar que a primeira forma de identificar se algo está errado com um programa é que uma mensagem de erro será recebida. Veja a mensagem de erro juntos:
File "programrunner/__init__.py", line 1, in start_program
File "./projects/23262.py", line 16
SyntaxError: invalid syntax
O erro aponta os alunos para a linha para verificar a mensagem. Dê tempo aos alunos para tentar solucionar esse erro.
Nota: dois pontos: são necessários no final da linha para ler o código associado ao loop for.
--
Explicar
( Grupo inteiro, 5 minutos )
Discuta o programa com os alunos e por que ele parece não estar funcionando corretamente.
Faça perguntas aos alunos como:
• O que significa depurar um programa?
• Como a mensagem de erro é útil?
• Por que foi importante testar o modelo antes de executar o programa?
• O que significa “erro de sintaxe”?
Discuta os tipos de erros com os alunos:
• Erros de sintaxe são erros de gramática em nosso código. O código é escrito de forma que a máquina possa entendê-lo. Erros de digitação e uso indevido de pontuação ou parênteses são bons exemplos de motivos pelos quais você receberá um erro de sintaxe.
• Erros lógicos são encontrados durante a execução de um programa e são o resultado de não receber a saída esperada. O código será executado, mas não produzirá o resultado esperado ou será executado conforme o esperado.
• Ocorrem erros de tempo de execução durante a execução do programa. O programa geralmente funcionará bem por algum tempo até encontrar o problema e, em seguida, terminar com um erro.
--
Elaborar
( Pequenos Grupos, 10 minutos )
Dê aos alunos mais tempo para explorar os tipos de erros.
Explique aos alunos que normalmente eles se esforçariam para não ter bugs em seu programa. No entanto, o próximo desafio será tentar encontrar diferentes bugs que podem ocorrer. Desafie os alunos a mudarem seu programa da fase de exploração para ver que tipos de erros eles podem encontrar. Veja se eles podem replicar todos os três tipos.
Erros de exemplo:
Exemplo 1:
Change the line color_sensor=ColorSensor('B')
To read color_sensor=ColorSensor('A')
Os alunos receberão uma mensagem de erro de tempo de execução. O programa não percebe que há um problema até que comece a ser executado. Então ele percebe que não há um sensor de cor conectado à porta A.
File "programrunner/__init__.py", line 1, in start_program
File "./projects/41475.py", line 6
File "_api/colorsensor.py", line 1, in __init__
RuntimeError: There is not a color sensor connected to port A
Exemplo 2:
Change the line for x in range(10):
To read for x in range():
Os alunos receberão uma mensagem de erro de tipo, que é um tipo de erro de sintaxe, que indica que há uma função ausente. O loop for requer um número para indicar quantas vezes ele deve repetir.
File "programrunner/__init__.py", line 1, in start_program
File "./projects/52757.py", line 15
TypeError: function missing 1 required positional arguments
Nota: Existem maneiras de alterar os números para obter um resultado inesperado neste programa. No entanto, o console não o mostrará como um erro lógico porque o programa não especificou um resultado pretendido para medi-lo.
--
Avaliar
( Exercício em grupo, 5 minutos )
Observação do Professor:
Discuta o programa com os alunos. Faça perguntas aos alunos como:
• Como o teste ajuda a identificar erros em seu programa?
• Como você pode identificar a necessidade de solucionar problemas de hardware e não do programa?
• Quais são os tipos de erros que você pode receber? Como você pode usá-los para consertar seu programa?
Autoavaliação
Peça aos alunos que respondam o seguinte em seus diários:
• O que você aprendeu hoje sobre identificação e correção de bugs?
• 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.