Commit inicial - add do repo privado para o repo NT style: changes header's logo and colors style: changes home page first session layout feat: creates about us home page section chore: creates home page section for whom chore: creates student materails home page section chore: creates teachers materials home page section chore: creates teacher materials home page section style: changes primary color style: changes color at activities page style: changes about page color style: changes name to Decoda fix: changes route to about page at footer fix: changes background color style: changes game page header colors style: changes footer colors chore: adds home page sections title style: changes main font family to Lato style: adds title font fix: changes sizes to be more responsive for mobile ajuste no build vercel atualiza regras envio homol Adiciona instrucoes de uso add JupyterLite fix solucao turtle Add Mole Mash e Modal de Falhas Add Progress Bar na pagina de Atividades fix game name chore: atualiza lockfile removendo vercel analytics inclusão de efeito ao mudar de fase add mecanismo de solução de fases em debug vite config test add BaseGame e refator do MoleMash refatoração turtle refatoração automato refatoração automato add tag bug 1 e 2 automato mostrar apenas games em homologação na pagina de atividades aumentar timeout das fases finais do Turtle fix bug scroll add video refactor semaforo arrumar ordem das cores add build docs update vercel update vercel update vercel update vercel update vercel add vercel jupyter add vercel jupyter fix deploy Vercel fix deploy Vercel fix deploy Vercel add cripto add cripto refatoração fix tour Mole Mash . remover arquivos de controle chore: adds development tag for activity card remover arquivos de status indevidamente versionados atualizar cores nas atividades add Quebra Cabeças add Quebra Cabeças add iniciativas add Iniciativas alteração de fotos pesadas fix menu mobile fix menu mobile fix menu mobile add Aspirador update icons update identidade visual documentação update jupyter add kernel python local add kernel python local add kernel python local feat: add health check feat: add primeiros passos add letramento mover letramento de lugar update path games update path games fix: ajuste clique rapido no botão executar remover dead code fix: refactor: extract shared utilities for storage, phase unlock and mobile detection stabilize context references and fix stale closure extrair GameProgressContext do GameStateContext (SRP) refactor(game): extrair usePhaser e useGameModals de GameBase + corrigir bugs descobertos refactor(game): remove todos os aliases PT/EN duplicados Remover aliases PT/EN da camada de modais refactor + tests security: add CodeSanitizer and integrate into GameInterpreter - CodeSanitizer.js: 4 built-in rules (max_length, infinite_while, infinite_for, excessive_nesting) with pluggable extra rules - GameInterpreter.executeCode: calls sanitizeCode() before js-interpreter, differentiates CodeSanitizationError (warn) from other errors (error) - 21 unit tests for CodeSanitizer (100% coverage) - 4 integration tests in GameInterpreter for sanitization paths add CodeSanitizer fix: fase 10 aspirador fix: bug semaforo teste feat: add version Ajusta a landing page para ficar mais próxima ao protótipo ajusta raio da borda do botão de Acesse nosso Laboratório pequenos ajustes de layout na página de iniciativas atualiza tabela de jogos educativos com os jogos disponíveis atualmente ajustados pequenos detalhes e informações do jogos na seção de guias pedagógicos troca nome playground para laboratório e adiciona imagens do lab adiciona documentação de conceitos básicos de programação ajustado pequenos erros de digitação adiciona tooltip com conceitos escondidos em hover na tag +N de conceitos update docs dev desativar tour setup matriz MoleMash setup matriz MoleMash fix: link update version update docs update docs mudou o layout de quem somos mudei as imgs dos icons e baixei o botao centraliza titulo com imagem e ajusta sessão com gradiente vermelho-rosa adiciona responsividade para a pagina quem somos ajusta botão de conheça nossa história ajustes ajustes na home + add. teclado update version security security feat: add tapume para telas pequenas v1.1.0 feat: decoda offline feat: doc offline offline fix: ajustes para release fix: navbar; config ordenação; versão fix: rotas docs e jupyter para pwa delete private files Co-authored-by: Indra Araujo <indra.araujo.santos@gmail.com> Co-authored-by: solange dos santos <sollangelive71@gmail.com>
55 lines
4.3 KiB
Markdown
55 lines
4.3 KiB
Markdown
---
|
|
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
|