Files
decoda/docs/edu/fundamentos-programacao/conceitos-basicos/algoritmos.md
ruimoraes 3da7d323e8 desenvolvimento pre-lancamento
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>
2026-05-26 18:01:50 -03:00

10 KiB

sidebar_position, title
sidebar_position title
1 Algoritmos

Algoritmos - O Passo a Passo de uma Solução

Algoritmos são como receitas detalhadas que ensinam como resolver um problema passo a passo. É a arte de quebrar um problema grande em pequenos passos organizados!

O que são Algoritmos?

Um algoritmo é uma sequência finita de instruções bem definidas que, quando seguidas, resolvem um problema ou executam uma tarefa específica.

Analogia: Receita de Bolo

ALGORITMO: Fazer Bolo de Chocolate

1. Preaqueça o forno a 180°C
2. Em uma tigela, misture farinha, açúcar e cacau
3. Em outra tigela, bata ovos com leite
4. Combine as duas misturas
5. Despeje na forma untada
6. Asse por 30 minutos
7. Deixe esfriar antes de desenformar

Cada passo é claro, específico e deve ser seguido na ordem certa!

Características de um Bom Algoritmo

1. Clareza

  • Cada instrução deve ser compreensível
  • Sem ambiguidade: "vire à direita" em vez de "vire"

2. Sequência Lógica

  • Passos na ordem correta
  • Um passo depende do anterior

3. Finitude

  • Deve terminar em algum momento
  • Não pode ser infinito

4. Eficácia

  • Deve resolver o problema proposto
  • Resultado esperado sempre que executado

5. Eficiência

  • Usar o menor número de passos possível
  • Otimizar tempo e recursos

Atividades Desplugadas

1. Encontrar o Tesouro

Material: Mapa da sala, tesouro escondido

Como fazer:

  1. Estudante cria algoritmo: "5 passos para frente, vire à direita, 3 passos..."
  2. Outro estudante segue exatamente as instruções
  3. Se não encontrar o tesouro, o algoritmo precisa ser melhorado!

2. Sanduíche Robótico

Material: Ingredientes para sanduíche

Como fazer:

  1. Estudante escreve algoritmo para fazer sanduíche
  2. Educador segue literalmente cada instrução
  3. "Pegue o pão" → pega pão inteiro (não fatia!)
  4. Algoritmo deve ser cada vez mais específico

3. Organizar a Turma

Material: Estudantes da sala

Como fazer:

  1. Problema: Organizar turma por altura
  2. Cada equipe cria um algoritmo diferente
  3. Testam qual é mais rápido e eficiente
  4. Descobrem diferentes "algoritmos de ordenação"

Tipos Comuns de Algoritmos

1. Busca

Encontrar algo específico numa lista

Exemplo: Procurar contato no celular

  1. Abra lista de contatos
  2. SE a pessoa começar com A-M, vá para primeira metade
  3. SENÃO, vá para segunda metade
  4. REPITA até encontrar

2. Ordenação

Colocar itens em ordem

Exemplo: Organizar livros por altura

  1. Compare primeiro livro com segundo
  2. SE primeiro for maior, troque posições
  3. Passe para próximo par
  4. REPITA até todos estarem ordenados

3. Matemáticos

Realizar cálculos complexos

Exemplo: Calcular média da turma

  1. Some todas as notas
  2. Conte quantos estudantes há
  3. Divida soma pelo número de estudantes
  4. O resultado é a média

4. Navegação

Encontrar caminhos

Exemplo: Ir de casa à escola

  1. Saia de casa e vire à direita
  2. Ande até o semáforo
  3. SE semáforo verde, atravesse
  4. Continue até encontrar a escola

Algoritmos no Cotidiano

Manhã

  • Acordar: Desligar alarme → levantar → ir ao banheiro
  • Café: Ferver água → adicionar pó → mexer → servir
  • Ir ao trabalho: Sair de casa → pegar transporte → chegar ao destino

Tecnologia

  • Conectar WiFi: Procurar redes → selecionar → inserir senha → conectar
  • Comprar online: Escolher produto → adicionar carrinho → pagar → aguardar entrega
  • GPS: Calcular rota → considerar trânsito → dar instruções → recalcular se necessário

Jogos

  • Xadrez: Avaliar posições → considerar movimentos → escolher melhor jogada
  • Jogo da velha: Verificar possibilidade de vitória → bloquear oponente → fazer jogada estratégica

Na Programação Visual

Construindo Algoritmos com Blocos

No Decoda, algoritmos são construídos conectando blocos em sequência:

ALGORITMO: Desenhar Quadrado
1. [INÍCIO]
2. [REPETIR 4 vezes]
   - [Andar 100 passos]
   - [Virar 90 graus direita]
3. [FIM]

Exemplo: Algoritmo do Semáforo

ALGORITMO: Controlar Semáforo
1. [INÍCIO]
2. [Acender luz verde]
3. [ESPERAR 30 segundos]
4. [Acender luz amarela]
5. [ESPERAR 5 segundos]
6. [Acender luz vermelha]
7. [ESPERAR 25 segundos]
8. [VOLTAR ao passo 2]

Ferramentas para Criar Algoritmos

1. Fluxograma

Diagrama visual com símbolos:

  • Círculo: Início/Fim
  • Retângulo: Ação
  • Losango: Decisão
  • Setas: Fluxo

2. Pseudocódigo

Linguagem simples que mistura português com lógica:

INÍCIO
   ESCREVA "Qual seu nome?"
   LEIA nome
   ESCREVA "Olá, " + nome
FIM

3. Programação Visual

Blocos que representam algoritmos graficamente (como no Decoda)

Erros Comuns em Algoritmos

1. Passos Fora de Ordem

  • Problema: "Bata os ovos" antes de "quebre os ovos"
  • Solução: Revisar sequência lógica

2. Instruções Ambíguas

  • Problema: "Adicione um pouco de sal"
  • Solução: Ser específico: "Adicione 1 colher de chá de sal"

3. Loop Infinito

  • Problema: Condição que nunca muda
  • Solução: Garantir que a condição pode se tornar falsa

4. Passo Faltando

  • Problema: Esquecer um passo importante
  • Solução: Testar o algoritmo passo a passo

Dicas para Educadores

Como Ensinar

  1. Comece com exemplos familiares: Receitas, rotinas diárias
  2. Use atividades físicas: Deixe estudantes "serem" o computador
  3. Celebre os erros: Cada erro é uma oportunidade de aprendizado
  4. Trabalhe em grupos: Diferentes perspectivas melhoram algoritmos

Observar nos Estudantes

  • Conseguem quebrar problema em passos pequenos
  • Instruções são claras e específicas
  • Testam e melhoram seus algoritmos
  • Identificam algoritmos em situações cotidianas

Sinais de Sucesso

  • Estudantes explicam algoritmos com próprias palavras
  • Criam algoritmos originais para problemas novos
  • Identificam e corrigem erros em algoritmos
  • Otimizam algoritmos para serem mais eficientes

Pensamento Computacional

Decomposição

  • Quebrar problemas grandes em partes menores
  • Cada parte vira um passo do algoritmo

Reconhecimento de Padrões

  • Identificar passos que se repetem
  • Usar loops para otimizar

Abstração

  • Focar no essencial, ignorar detalhes irrelevantes
  • Criar algoritmos genéricos que funcionam em várias situações

Algoritmos

  • Criar sequências lógicas eficientes
  • Otimizar soluções

Objetivos de Aprendizagem

Ao final desta seção, estudantes devem conseguir:

  • Identificar algoritmos em atividades cotidianas
  • Criar algoritmos claros e sequenciais
  • Testar e melhorar algoritmos através de tentativa e erro
  • Aplicar diferentes tipos de algoritmos para diferentes problemas
  • Traduzir algoritmos para blocos visuais

Atividades de Fixação

1. Algoritmo Pessoal

Escreva algoritmo para:

  • Escovar os dentes
  • Fazer seu lanche favorito
  • Chegar da escola em casa

2. Encontre o Erro

Encontre problemas nestes algoritmos:

  • "Faça café: ferva água, adicione açúcar, adicione café"
  • "Atravesse rua: olhe para direita, atravesse, olhe para esquerda"

3. Desafio de Otimização

  • Crie algoritmo para encontrar maior número numa lista
  • Depois tente melhorar para ser mais rápido

Referências e Recursos

Sites Educativos

Vídeos Explicativos

Jogos e Simuladores

Literatura

  • Cormen, T. (2009). Introduction to Algorithms. MIT Press
  • Sedgewick, R. (2011). Algorithms. Addison-Wesley
  • Knuth, D. (1997). The Art of Computer Programming. Addison-Wesley

Ferramentas de Diagramação


Próximo: Explore Variáveis para aprender como armazenar e manipular informações nos algoritmos!