Skip to main content

Avaliar e Explicar

Ícone da Caixa de Ferramentas do Professor Caixa de Ferramentas do Professor - Apresentando a Eficiência do Código

Agora que os alunos praticaram a escrita de sequências de código para realizar uma tarefa específica, eles serão solicitados a aplicar essas habilidades para ler sequências de código e avaliá-las. Nesta atividade, os alunos receberão um mapa semelhante ao da seção Brincar e serão solicitados a analisar 3 sequências de código para escolher a solução preferida. Para cada sequência, os alunos responderão a 3 perguntas:

  • Este código realiza a tarefa?

  • Se funcionar, quais são as vantagens deste código sobre os outros?

  • Quais são as desvantagens deste código em relação aos outros?

Em seguida, olhando para todas as sequências, os alunos serão apresentados à ideia de eficiência de código e perguntados qual é sua solução preferida - com base na eficiência e em suas próprias preferências - e para explicar o porquê. Este pode ser um trampolim para toda uma discussão em classe sobre eficiência e precisão na codificação.

Leitura de sequências de código para escolher uma solução preferida

À medida que sua turma trabalhava na seção Reproduzir, você provavelmente notou que havia muitas soluções diferentes para o mesmo problema que foi apresentado. Isso é algo que acontece com frequência no mundo da programação. Embora possa haver maneiras diferentes de fazer algo, todos terão um método ou solução preferida, e isso pode ser baseado em vários fatores. Nesta atividade, seu grupo analisará 3 possíveis soluções de blocos de código para um problema, descobrirá se elas funcionam da maneira pretendida e, em seguida, escolherá uma solução preferida do grupo e explicará por que você a escolheu.

O problema: crie uma sequência que, quando o robô começar no Início, entrará e sairá de todas as 3 salas de aula (em qualquer ordem) e retornará ao ponto final. O robô deve navegar ao redor das escadas e pode passar pelas portas marcadas pelos pequenos retângulos na imagem do mapa.

Layout esboçado mostrando o Início no canto inferior esquerdo e o Fim no canto inferior direito. Acima da Partida está a Sala A com uma porta voltada para a partida e uma para a direita, voltada para as escadas no centro. Diretamente à direita das escadas estão a Sala B e a Sala C empilhadas acima da Extremidade. Há portas para as Salas B e C de frente para as escadas, e uma que liga as duas.

  • Para cada solução abaixo, responda a estas 3 perguntas em seu caderno de engenharia:
    • Este código realiza a tarefa? Por que sim ou por que não?
    • Se funcionar, quais são as vantagens deste código sobre os outros?
    • Quais são as desvantagens deste código em relação aos outros?
  • Na maioria das vezes, a programação é avaliada quanto à sua eficiência, e a solução preferida é aquela que cumpre a meta da maneira mais eficiente possível.

Clique nas soluções abaixo para ver uma imagem maior.

Exemplo de solução para o desafio que consiste em 19 Drive to e Turn for blocks conectados ao bloco When Started. Em ordem, os blocos farão com que o robô vire à direita 90 graus, avance 10 polegadas, vire à esquerda 90 graus, avance 3 polegadas, depois inverta 6 polegadas, depois vire à esquerda 90 graus, avance 10 polegadas. Em seguida, vire à direita 90 graus, avance 8 polegadas e inverta 4 polegadas, vire à direita 90 graus, avance 10 polegadas. Em seguida, vire à esquerda 90 graus, dirija para frente 1 polegada, vire à direita 90 graus, dirija para frente 3 polegadas e para trás 4, depois vire à direita 90 graus e dirija para frente 5 polegadas.
Solução A (polegadas)

Uma solução de exemplo com 11 Drive for e Turn for blocks conectados a um bloco When started. Para que os blocos façam com que o robô avance 10 polegadas, vire à esquerda 90 graus, avance 1 polegada, vire à esquerda 90 graus, avance 1 polegada, vire à direita 90 graus, avance 10 polegadas, vire à direita 90 graus, depois avance 5 polegadas, vire à direita 90 graus e avance 10 polegadas.
Solução B (polegadas)
Uma solução de exemplo com 10 Drive for e Turn for blocks conectados ao bloco When started. Em ordem, os blocos farão com que o robô avance 8 polegadas e depois 4 polegadas, vire à direita 90 graus, avance 13 polegadas, vire à esquerda 90 graus, avance 8 polegadas, vire à esquerda 90 graus, avance 4 polegadas, vire à direita 90 graus e avance 5 polegadas.
Solução C (polegadas)
Exemplo de solução para o desafio que consiste em 19 Drive to e Turn for blocks conectados ao bloco When Started. Em ordem, os blocos farão o robô virar à direita 90 graus, avançar 254 mm, virar à esquerda 90 graus, avançar 76 mm, depois inverter 152 mm, depois virar à esquerda 90 graus, avançar 254 mm. Em seguida, vire à direita 90 graus, dirija para frente 203 mm e para trás 101 mm, vire à direita 90 graus, dirija para frente 254 mm. Em seguida, vire à esquerda 90 graus, dirija para frente 25 mm, vire à direita 90 graus, dirija para frente 76 mm e para trás 101 mm, depois vire à direita 90 graus e dirija para frente 127 mm.
Solução A (métrica)
Uma solução de exemplo com 11 Drive for e Turn for blocks conectados a um bloco When started. Para que os blocos façam com que o robô avance 254 mm, vire à esquerda 90 graus, avance 25 mm, vire à esquerda 90 graus, avance 25 mm, vire à direita 90 graus, avance 254 mm, vire à direita 90 graus, depois avance 127 mm, vire à direita 90 graus e avance 254 mm.
Solução B (métrica)
Uma solução de exemplo com 10 Drive for e Turn for blocks conectados ao bloco When started. Em ordem, os blocos farão com que o robô avance 203 mm e 101 mm, vire à direita 90 graus, avance 330 mm, vire à esquerda 90 graus, avance 203 mm, vire à esquerda 90 graus, avance 10 mm, vire à direita 90 graus e avance 127 mm.
Solução C (métrica)

O que é eficiência de código?

Se precisasse de comprar 3 coisas na sua cozinha, provavelmente compraria todas as 3 coisas numa única viagem, em vez de fazer 3 viagens separadas. Porquê? Porque seria mais eficiente. Eficiente significa "alcançar a máxima produtividade com o mínimo de esforço ou despesa desperdiçados". Então, como isso se conecta à programação? Eficiência de

código significa que um programa é escrito para funcionar bem e rapidamente, usando a menor quantidade de trabalho, ou etapas, corretamente, enquanto ainda faz seu trabalho. É importante porque reduz o risco de um programa não funcionar bem e, por sua vez, causar problemas para outras partes de um programa que estão sendo executadas em torno dele. A eficiência de um código pode ser uma medida de qualidade e, quando escrevemos projetos no bloco VEXcode IQ, muitas vezes procuramos o projeto mais "eficiente" como a solução preferida.

Basicamente, a eficiência do código é um princípio que significa que você deseja escrever um código que atinja sua meta usando o menor número de comandos, ou blocos, possível.

Em seu Caderno de Engenharia, responda às seguintes perguntas:

  • Com a eficiência do código em mente, qual é a sua solução preferida e por quê?
  • Você acha que essa é a melhor solução, por que ou por que não?

Ícone da Caixa de Ferramentas do Professor Caixa de Ferramentas do Professor - Respostas

As respostas podem variar, uma vez que as dimensões não específicas foram dadas acima para criar uma sequência para navegar em torno de três salas.
Clique aqui para um possível exemplo de solução.

Ícone Motivar Discussão Motivar a discussão

Embora a eficiência seja útil, muitas vezes temos outras considerações sobre como ou por que fazemos as coisas de uma determinada maneira. Peça aos alunos que compartilhem suas respostas em seu Caderno de Engenharia e/ou use esta pergunta para estruturar uma discussão sobre o equilíbrio entre eficiência e ações.
P: Na programação, a eficiência é geralmente a metodologia preferida; você consegue pensar em uma razão pela qual esse é o caso?
R: As respostas variam, mas algumas incluem:

  • A edição de projetos para que eles sejam mais eficientes ajuda aqueles no futuro que poderiam estar trabalhando com o mesmo projeto. Por exemplo, se trabalhar num projeto e, alguns dias depois, pedir ao seu amigo para atualizar o projeto e adicionar mais alguns itens para aumentar a funcionalidade, será mais fácil para o seu amigo ler e trabalhar se o projeto for escrito de forma eficiente.

  • Os projetos são sempre suscetíveis a erros. Quanto mais eficiente um projeto é escrito, menor a probabilidade de um erro ser cometido.

  • Indivíduos que usam a programação para manobrar robôs industriais contam com a eficiência desses projetos para economizar tempo, energia e recursos da empresa.