--- marp: true theme: apostila paginate: true title: "Como criamos instruções que funcionam?" description: "Apresentação didática do capítulo 3: Como criamos instruções que funcionam?" workbook: "pensamento-computacional-6-ano" chapter: 3 order: 3 tone: "amber" image: "/images/exploring/oven-flowchart.png" footer: "Pensamento Computacional · 6º Ano" --- # Como criamos instruções que funcionam? ## Capítulo 3 --- # Ao final, você entenderá melhor… - Algoritmos do cotidiano - sequência de passos - clareza - objetivo - ordem - instruções ambíguas e instruções precisas - condições para começar, resultados esperados e testes --- # Uma situação para observar Imagine pedir a alguém: “Faça um sanduíche”. Qual pão? Quantas fatias? O recheio vai antes ou depois? Para uma pessoa, essas dúvidas podem ser resolvidas com experiência. Para um computador, instruções vagas são como um mapa sem nomes de ruas. Um algoritmo é uma sequência organizada de passos para alcançar um objetivo. Ele pode aparecer em uma receita, em uma brincadeira, em um caminho ou em um programa. Quanto mais clara for a instrução, maior a chance de outra pessoa — ou máquina — executá-la como planejado. --- # Antes de seguir, pense nisso > **Ponto de partida:** Duas pessoas podem interpretar a mesma frase de modos diferentes. Antes de escrever passos, identifique o executor e o que ele já sabe fazer. Uma instrução adequada para um colega pode ser insuficiente para um robô com poucos comandos disponíveis. --- ![bg contain Fluxograma para assar pão em um forno a lenha, com uma decisão sobre o forno estar aceso](/images/exploring/oven-flowchart.png) --- # Observe e teste a explicação Uma instrução precisa usar ações que o executor conhece. Para um robô que só entende avançar, girar e parar, o comando “vá até a porta” ainda precisa ser decomposto. O conjunto de ações disponíveis forma o **vocabulário do algoritmo**. Também é necessário declarar as condições iniciais e saber quando o processo termina. Fazer um teste de mesa significa executar mentalmente cada passo, registrar o que mudou e verificar se o resultado atende ao objetivo antes de entregar o algoritmo a uma máquina. --- # Organize o caminho - Cada passo pode ser executado sem adivinhação? - A sequência funciona para casos diferentes, não apenas para um exemplo? - Existe uma condição clara para encerrar a execução? --- # Conecte as descobertas Algoritmos precisam considerar **pré-condições**: fatos que devem ser verdadeiros antes do primeiro passo. “Abra o arquivo” pressupõe que o arquivo existe e que o executor sabe onde encontrá-lo. Também podem existir **pós-condições**, que descrevem o resultado esperado ao terminar. Escrever essas condições ajuda a criar *casos de teste*, incluindo situações comuns e exceções, como faltar um material ou surgir uma entrada diferente da prevista. --- # A mesma ideia em outros contextos Uma partitura organiza notas no tempo; uma receita organiza ações e quantidades; uma jogada ensaiada organiza movimentos da equipe. Todos são exemplos de instruções que precisam ser compreendidas e executadas. --- # Ideias em construção - **Objetivo** Todo algoritmo precisa dizer onde queremos chegar. “Organizar a mochila para a aula” é um objetivo; “mochila” sozinha não é. - **Passos claros** Cada etapa deve indicar uma ação observável. Verbos como pegar, mover, comparar, abrir e registrar são mais claros do que expressões como “faça direito”. - **Sequência e fim** Os passos têm uma ordem e precisam terminar. Um algoritmo que nunca alcança o resultado deve ser revisto. --- # Ideias em construção · continuação - **Ambiguidade** Uma instrução é ambígua quando permite interpretações diferentes. Informações de posição, quantidade e condição ajudam a torná-la precisa. - **Pré-condições e casos de teste** Uma pré-condição descreve o estado necessário para começar; uma pós-condição descreve o que deve ser verdadeiro no final. Entre as duas, cada comando precisa produzir uma mudança observável. Testar apenas o caso ideal pode esconder ambiguidades. Um algoritmo mais confiável também prevê limites e exceções, informando o que fazer quando uma condição necessária não é atendida. --- # Uma história que amplia a ideia Em 1843, **Ada Lovelace** publicou notas sobre a Máquina Analítica imaginada por Charles Babbage. A máquina seria mecânica, movida por engrenagens e preparada com cartões inspirados nos teares de Jacquard. Embora não tenha sido concluída naquela época, seu projeto já separava memória, operações e formas de entrada e saída. Em uma de suas notas, Ada descreveu uma sequência para calcular *números de Bernoulli*. O exemplo é lembrado como um dos primeiros algoritmos publicados para ser executado por uma máquina. O mais curioso é que ela percebeu algo além do cálculo: se símbolos pudessem ser representados por regras, máquinas talvez trabalhassem com música ou outras informações. A previsão reforça que um algoritmo precisa de **objetivo, vocabulário conhecido e passos sem ambiguidade**. --- # Leve esta ideia com você > Ao estudar, transforme uma tarefa grande em um checklist de verbos: ler, sublinhar, resumir, revisar. Marcar cada passo reduz esquecimentos e deixa o progresso visível. --- # Agora explique com suas palavras 1. Defina algoritmo e dê um exemplo que não use computador. 2. Organize em ordem lógica: guardar o material; abrir a mochila; colocar o material na mochila. > Responda em voz alta, escute outra explicação e complete sua ideia com um exemplo.