---
title: Aspirador
sidebar_position: 3
---

# Aspirador

<div style={{ display: "flex", alignItems: "flex-start", gap: "16px", flexWrap: "wrap" }}>
	<img
		src={require("@site/static/images/atividades/programacao/aspirador-thumbnail.png").default}
		alt="Thumbnail da atividade Aspirador"
		style={{ width: "280px", height: "280px", objectFit: "contain", flexShrink: 0 }}
	/>
	<div style={{ flex: 1, minWidth: "260px" }}>
		<p>O Aspirador coloca o estudante diante de um problema clássico da computação: como fazer um agente agir no ambiente com base em regras, repetição e informação vinda de sensores. A narrativa do robô aspirador é simples e familiar, mas o que ela encena é profundamente algorítmico: perceber o estado do espaço, decidir a próxima ação e repetir esse ciclo até concluir a tarefa.</p>
		<p>Ao longo das fases, a atividade sai de trajetos previsíveis e avança para situações em que o comportamento precisa se adaptar. Isso é importante porque ajuda o estudante a entender que um algoritmo não é apenas uma lista fixa de passos. Em muitos casos, ele precisa observar condições do ambiente, testar possibilidades, corrigir o rumo e manter algum critério para cobrir uma área com eficiência.</p>
	</div>
</div>

## O que esta atividade ensina sobre programação

Pedagogicamente, o Aspirador é uma atividade forte para trabalhar controle de fluxo. Nas fases iniciais, o estudante aprende a encadear ações e reconhecer padrões. Em seguida, passa a usar laços de repetição para evitar código redundante. Depois disso, entram sensores e condicionais, que introduzem a ideia de programa reativo: o comportamento muda conforme o estado detectado.

As fases mais avançadas acrescentam variáveis e padrões de cobertura, como escadas, espirais e zigue-zague. Nesse ponto, a atividade deixa de ser apenas uma introdução a blocos e se torna um exercício de estratégia algorítmica. O estudante precisa pensar em eficiência, previsibilidade e generalização, que são competências importantes tanto para programação quanto para resolução de problemas mais amplos.

## Mediação pedagógica

Nesta atividade, costuma valer a pena pedir que o estudante descreva seu algoritmo antes de executá-lo. Quando ele explica "o robô anda até bater, depois vira e continua", já começa a externalizar a lógica que está tentando implementar. Isso ajuda o professor a identificar se o problema está na ideia do algoritmo ou apenas na montagem dos blocos.

Também é útil comparar soluções. Em especial nas fases finais, duas respostas podem funcionar, mas uma ser mais legível, menor ou mais adaptável. Essa comparação abre espaço para discutir qualidade de código de forma introdutória, sem tecnicismo excessivo.

## Progressão das fases

| Fase | Nome | O que o estudante pratica |
| --- | --- | --- |
| 1 | A Linha Reta | usar um laço simples para repetir movimento até concluir a limpeza |
| 2 | A Curva no Corredor | combinar repetição com mudança de direção em um trajeto previsível |
| 3 | A Escadinha | organizar sequência de movimentos e viradas em padrão repetido |
| 4 | O Sensor de Impacto | reagir a bloqueios com estruturas se/senão baseadas em sensor |
| 5 | Modo Bordas | seguir uma estratégia estável de contorno de ambiente |
| 6 | Desvio de Obstáculo | criar uma rotina de contorno e retorno ao caminho principal |
| 7 | A Escada Crescente | usar variável para controlar crescimento progressivo do deslocamento |
| 8 | A Espiral de Limpeza | combinar laços, condição e variável em um padrão expansivo |
| 9 | O Labirinto Cego | testar alternativas de direção com decisões encadeadas |
| 10 | Zigue-Zague | construir um algoritmo de cobertura de área com alternância e espelhamento |

## Quando usar

O Aspirador é especialmente adequado quando a meta é consolidar sequência, repetição e condicionais em um mesmo contexto. Ele também funciona bem como ponte entre atividades de navegação simples e problemas mais estratégicos, nos quais o estudante já precisa pensar em comportamento geral e não apenas em trajetos específicos.

## Referências

- Google Blockly, o que é o Blockly?: https://developers.google.com/blockly/guides/get-started/what-is-blockly?hl=pt-br
- Fluxo de controle: https://pt.wikipedia.org/wiki/Fluxo_de_controle
