Bem-vindo ao Material Didático Completo de Scratch 3.0 e Pensamento Computacional. Este material foi desenvolvido com rigor técnico e engenharia pedagógica para fundamentar os conceitos essenciais da Ciência da Computação através da programação visual em blocos, servindo como ponte cognitiva definitiva para a programação textual clássica.


🗺️ Trilha Pedagógica do Capítulo

flowchart TD
    M1["📍 MÓDULO 1: Fundamentos & Anatomia do Palco Cartesiano\n(Espaço bidimensional, coordenadas, ângulos e eliminação de erros)"]
    M2["🧩 MÓDULO 2: Tipologia & Anatomia dos Blocos Scratch\n(Hat, Stack, Reporter, Boolean e C-Blocks)"]
    M3["⚙️ MÓDULO 3: Os Pilares da Lógica no Scratch\n(Sequenciamento, Decisão Condicional, Loops e Variáveis)"]
    M4["🚀 MÓDULO 4: Projetos Práticos Passo a Passo (Hands-On)\n(Projeto A: Validador de Acesso | Projeto B: Game Loop Coletor)"]
    M5["🔍 MÓDULO 5: Guia Prático de Depuração (Debugging)\n(Diagnóstico de bugs, loops travados e rastreamento de estado)"]
    M6["📝 MÓDULO 6: Caderno de Exercícios & Avaliação\n(Questões teóricas, desafios práticos e rubrica)"]

    M1 --> M2 --> M3 --> M4 --> M5 --> M6

    style M1 fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
    style M2 fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
    style M3 fill:#fff3e0,stroke:#ff9800,stroke-width:2px
    style M4 fill:#fce4ec,stroke:#e91e63,stroke-width:2px
    style M5 fill:#ede7f6,stroke:#673ab7,stroke-width:2px
    style M6 fill:#eceff1,stroke:#607d8b,stroke-width:2px

📍 MÓDULO 1: Fundamentos e Anatomia do Palco (Stage)

1.1. O Algoritmo e a Eliminação do Atrito Sintático

Um algoritmo é uma sequência finita, ordenada e não ambígua de instruções para solucionar um problema computacional. Em linguagens puramente textuais (como C, Java ou Python), estudantes iniciantes frequentemente enfrentam barreiras causadas por erros tipográficos: esquecimento de ponto-e-vírgula (;), chaves desbalanceadas ({ }) ou erros de indentação.

O Scratch 3.0 (desenvolvido pelo MIT Media Lab) elimina completamente essa barreira sintática ao transformar instruções em blocos com encaixes físicos geométricos:

  • Gramática Visual: Instruções só se conectam se a combinação fizer sentido lógico e operacional.
  • Modelo IPO em Tempo Real: Entrada (Input), Processamento (Process) e Saída (Output) tornam-se imediatamente visíveis e auditivos.
  • Semântica por Cores: Cada domínio funcional (movimento, controle, sensores, variáveis) possui uma identidade cromática padronizada.

1.2. O Sistema de Coordenadas Cartisianas do Palco

O ambiente visual onde os atores (sprites) interagem e executam suas instruções é o Palco (Stage). O palco é uma grade bidimensional baseada no plano cartesiano clássico:

  • Dimensões Totais: Largura de $480\text{ pixels}$ (Eixo X de $-240$ a $+240$) e Altura de $360\text{ pixels}$ (Eixo Y de $-180$ a $+180$).
  • Origem Cartesiana: O centro exato da tela possui as coordenadas $(X=0, Y=0)$.
  • Convenção de Direções e Ângulos (Scratch Heading):
    • $0^\circ$ = Apontar para Cima (Norte / $Y+$)
    • $90^\circ$ = Apontar para a Direita (Leste / $X+$) — Padrão inicial de todo ator
    • $180^\circ$ = Apontar para Baixo (Sul / $Y-$)
    • $-90^\circ$ ($270^\circ$) = Apontar para a Esquerda (Oeste / $X-$)

🎨 SVG 1: O Palco Cartesiano do Scratch 3.0

1º Quadrante (+X, +Y) 2º Quadrante (-X, +Y) 3º Quadrante (-X, -Y) 4º Quadrante (+X, -Y) +X -X +Y -Y -180 -90 +90 +180 X: -240 X: +240 +90 -90 Y: +180 Y: -180 (0, 0) 0° (Cima) 90° (Direita) 180° (Baixo) -90° (Esquerda) Plano Cartesiano do Palco (Stage) — Resolução: 480 × 360 px

🧩 MÓDULO 2: Tipologia e Anatomia dos Blocos

No ecossistema do Scratch 3.0, a forma visual do bloco comunica diretamente o seu papel computacional. Existem cinco tipos estruturais universais:

flowchart LR
    A["1. Hat Block\n(Disparador de Evento)"] --> B["2. Stack Block\n(Comando Imperativo)"]
    B --> C["3. Reporter Block\n(Função com Retorno / Dado)"]
    C --> D["4. Boolean Block\n(Predicado Lógico 0 ou 1)"]
    D --> E["5. C-Block\n(Controle de Fluxo / Laço)"]

    style A fill:#fff9c4,stroke:#fbc02d,stroke-width:1.5px
    style B fill:#e1f5fe,stroke:#03a9f4,stroke-width:1.5px
    style C fill:#ffe0b2,stroke:#ff9800,stroke-width:1.5px
    style D fill:#e8f8f5,stroke:#2ecc71,stroke-width:1.5px
    style E fill:#fce4ec,stroke:#e91e63,stroke-width:1.5px

🎨 SVG 2: As 5 Formas Anatômicas dos Blocos Scratch 3.0

Anatomia Funcional das 5 Formas de Blocos no Scratch 3.0 quando ⚑ for clicado 1. Bloco Chapéu (Hat Block) Sem encaixe no topo. Dispara a execução quando ocorre um evento assíncrono. mova ( 10 ) passos 2. Bloco de Comando (Stack Block) Possui entalhe superior e aba inferior. Executa uma instrução imperativa sequencial. ( (base) * (altura) ) 3. Bloco Repórter / Valor (Reporter Block) Bordas arredondadas (oval). Retorna números ou textos para alimentar parâmetros. < (pontos) > [ 50 ] > 4. Bloco Booleano (Boolean Block) Formato hexagonal/diamante. Avalia uma condição lógica, retornando True ou False. repita ( 10 ) vezes 5. Bloco em C (C-Block / Wrap Block) Possui uma "boca" interna (mouth) para envelopar outros blocos em laços e decisões.

⚙️ MÓDULO 3: Os Pilares da Lógica no Scratch

3.1. Sequenciamento Linear

No modelo de arquitetura de von Neumann, a CPU executa instruções de forma estritamente sequencial (de cima para baixo), a menos que um desvio de controle explícito ocorra. No Scratch, a pilha de blocos conectados verticalmente representa exatamente esse fluxo de execução síncrono.


3.2. Estruturas Condicionais (Decisão)

As estruturas condicionais permitem que o algoritmo tome caminhos distintos dependendo da avaliação de uma expressão lógica booleana:

  1. Condicional Simples (se <condição> então): Executa o bloco interno apenas se a proposição for verdadeira.
  2. Condicional Composta (se <condição> então ... senão ...): Fornece dois caminhos mutuamente exclusivos — um para resultado verdadeiro e outro para falso.
flowchart TD
    Inicio(["Início da Decisão"]) --> Teste{"A condição é VERDADEIRA?"}
    Teste -- Sim --> RamoVerdadeiro["Executa Bloco Interno 1\n(Caminho 'Então')"]
    Teste -- Não --> RamoFalso["Executa Bloco Interno 2\n(Caminho 'Senão')"]
    RamoVerdadeiro --> FimDecisao(["Fim da Estrutura Condicional"])
    RamoFalso --> FimDecisao

    style Inicio fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
    style Teste fill:#fff3e0,stroke:#ff9800,stroke-width:2px
    style RamoVerdadeiro fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
    style RamoFalso fill:#fce4ec,stroke:#e91e63,stroke-width:2px
    style FimDecisao fill:#eceff1,stroke:#607d8b,stroke-width:2px

🎨 SVG 3: Estrutura do Bloco Se ... Senão (C-Block)

se idade >= 18 então diga Acesso Liberado! Bem-vindo. por 2 segundos senão diga Acesso Negado! Idade insuficiente. por 2 segundos

3.3. Estruturas de Repetição (Laços / Loops)

O Scratch disponibiliza três categorias fundamentais de iteração:

flowchart LR
    subgraph L1["1. Laço Determinado (Contador)"]
        direction TB
        F1["repita (N) vezes"] --> F2["Executa exatamente N vezes"]
    end

    subgraph L2["2. Laço Condicional (Until)"]
        direction TB
        C1["repita até que <condição>"] --> C2["Repete enquanto a condição for FALSA\nPara quando se torna VERDADEIRA"]
    end

    subgraph L3["3. Laço Infinito (Game Loop)"]
        direction TB
        I1["sempre"] --> I2["Executa continuamente a 30 FPS\nBase para jogos e simulações"]
    end

    style L1 fill:#e8f5e9,stroke:#4caf50,stroke-width:1.5px
    style L2 fill:#fff3e0,stroke:#ff9800,stroke-width:1.5px
    style L3 fill:#e1f5fe,stroke:#03a9f4,stroke-width:1.5px

3.4. Variáveis e Operações Lógicas

  • Declaração e Escopo: No Scratch, uma variável pode ser global (“Para todos os atores”) ou local (“Apenas para este ator”).
  • Atribuição: mude [var ▾] para (valor) equivale ao operador = ou <-.
  • Acumulador / Incremento: adicione (1) a [var ▾] equivale a var = var + 1.
  • Operadores Booleanos:
    • < <cond1> e <cond2> > (Conjunção lógica $AND$)
    • < <cond1> ou <cond2> > (Disjunção lógica $OR$)
    • < não <cond> > (Negação lógica $NOT$)

🚀 MÓDULO 4: Projetos Práticos Passo a Passo (Hands-On)

Abaixo, apresentamos dois projetos completos e funcionais com suas regras de negócio, diagramação lógica, representação SVG e correlação comparativa tripla.


🔒 Projeto A: Sistema Validador de Senha e Controle de Acesso

Regras de Negócio:

  1. Ao clicar na bandeira verde, o sistema solicita a senha de segurança do usuário.
  2. A resposta é armazenada na variável senha_digitada.
  3. Se senha_digitada == "1234":
    • O sistema exibe “Acesso Autorizado! Bem-vindo.” e toca o som Coin.
  4. Caso contrário:
    • O sistema exibe “Senha Incorreta! Acesso Bloqueado.” e toca o som Buzz.

Diagrama de Fluxo Lógico (Mermaid):

flowchart TD
    Start(["⚑ Início"]) --> In[/"Perguntar 'Digite sua senha:'"/]
    In --> Read["senha_digitada = resposta"]
    Read --> Cond{"senha_digitada == '1234' ?"}
    Cond -- Sim --> OutOk[/"Dizer 'Acesso Autorizado!' + Som Coin"/]
    Cond -- Não --> OutFail[/"Dizer 'Senha Incorreta!' + Som Buzz"/]
    OutOk --> EndNode(["Fim do Script"])
    OutFail --> EndNode

    style Start fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
    style Cond fill:#fff3e0,stroke:#ff9800,stroke-width:2px
    style OutOk fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
    style OutFail fill:#fce4ec,stroke:#e91e63,stroke-width:2px
    style EndNode fill:#eceff1,stroke:#607d8b,stroke-width:2px

🎨 SVG 4: Pilha de Blocos do Projeto A (Validador de Acesso)

quando ⚑ for clicado pergunte Digite sua senha de acesso: e espere mude senha_digitada ▾ para resposta se senha_digitada = 1234 então diga [ Acesso Autorizado! Bem-vindo. ] por ( 3 ) segs toque o som [ Coin ▾ ] até o fim senão diga [ Senha Incorreta! Acesso Bloqueado. ] por ( 3 ) segs toque o som [ Buzz ▾ ] até o fim

📊 Tabela Comparativa Tripla (Projeto A)

Etapa Lógica Scratch 3.0 Portugol / VisualG Python 3
1. Entrada pergunte [Senha:] e espere
mude [senha ▾] para (resposta)
escreva("Digite a senha: ")
leia(senha)
senha = input("Digite a senha: ")
2. Decisão se <(senha) = [1234]> então
...
senão
...
se (senha = "1234") entao
...
senao
...
fimse
if senha == "1234":
...
else:
...
3. Feedback OK diga [Acesso Autorizado!] por (3) segs escreval("Acesso Autorizado!") print("Acesso Autorizado!")
4. Feedback Erro diga [Senha Incorreta!] por (3) segs escreval("Senha Incorreta!") print("Senha Incorreta!")

🎮 Projeto B: Game Loop “Coletor de Estrelas Interativo”

Regras de Negócio:

  1. Inicializar a pontuação em 0 e posicionar o jogador no chão do palco $(X=0, Y=-140)$.
  2. Executar um laço infinito (sempre) para garantir a taxa de atualização contínua do jogo (Game Loop):
    • Se a Seta para Direita estiver pressionada: adiciona $+10$ à coordenada $X$.
    • Se a Seta para Esquerda estiver pressionada: adiciona $-10$ à coordenada $X$.
    • Se o jogador tocar na Estrela: incrementa a pontuação em $+1$ e reposiciona a estrela em uma coordenada $X$ aleatória entre $-200$ e $+200$ no topo da tela $(Y=160)$.

Diagrama de Fluxo do Game Loop (Mermaid):

flowchart TD
    Init["⚑ Início: pontuação = 0\nPosição Inicial: (0, -140)"] --> Loop{"Game Loop (sempre)"}
    Loop --> KeyRight{"Seta Direita Pressionada?"}
    KeyRight -- Sim --> MoveRight["X = X + 10"]
    KeyRight -- Não --> KeyLeft{"Seta Esquerda Pressionada?"}
    MoveRight --> KeyLeft
    KeyLeft -- Sim --> MoveLeft["X = X - 10"]
    KeyLeft -- Não --> Colisao{"Tocando em 'Estrela'?"}
    MoveLeft --> Colisao
    Colisao -- Sim --> Score["pontuação = pontuação + 1\nReposiciona Estrela em X aleatório"]
    Colisao -- Não --> Loop
    Score --> Loop

    style Init fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
    style Loop fill:#fff3e0,stroke:#ff9800,stroke-width:2px
    style Score fill:#e8f5e9,stroke:#4caf50,stroke-width:2px

🎨 SVG 5: Pilha de Blocos do Projeto B (Game Loop)

quando ⚑ for clicado mude [ pontuação ▾ ] para [ 0 ] vá para x: ( 0 ) y: ( -140 ) sempre se < tecla [ seta para a direita ▾ ] pressionada? > então adicione ( 10 ) a x se < tecla [ seta para a esquerda ▾ ] pressionada? > então adicione ( -10 ) a x se < tocando em [ Estrela ▾ ]? > então adicione ( 1 ) a [ pontuação ▾ ] vá para x: ( número aleatório entre -200 e 200 ) y: ( 160 )

📊 Tabela Comparativa Tripla (Projeto B)

Lógica do Game Loop Scratch 3.0 Portugol / Pseudocódigo Python 3 (Pygame)
Inicialização mude [pontos ▾] para [0]
vá para x:(0) y:(-140)
pontos <- 0
pos_x <- 0; pos_y <- -140
pontos = 0
player_x, player_y = 0, -140
Loop Principal sempre { ... } enquanto (verdadeiro) faca while running:
Entrada Contínua se <tecla [dir ▾] pressionada?>
adicione (10) a x
se (tecla_pressionada(DIR)) entao
pos_x <- pos_x + 10
if keys[pygame.K_RIGHT]:
player_x += 10
Tratamento de Colisão se <tocando em [Item ▾]?>
adicione (1) a [pontos ▾]
se (detectou_colisao()) entao
pontos <- pontos + 1
if player_rect.colliderect(star):
pontos += 1

🔍 MÓDULO 5: Guia Prático de Depuração (Debugging)

Depurar (debug) é a habilidade de identificar, rastrear e corrigir falhas lógicas em um programa. Abaixo estão os quatro erros mais comuns cometidos por programadores no Scratch e como solucioná-los.


Tabela Diagnóstica: Sintoma → Causa → Solução

Sintoma do Bug Causa Lógica Raiz Como Corrigir no Scratch
1. Animação travada / Ator teletransporta instantaneamente Uso de laço de repetição (repita) sem temporizador entre os quadros. O computador processa os ciclos em microssegundos. Insira o bloco espere (0.05) segundos (🟨 Controle) dentro do laço para permitir a renderização visual fluida.
2. Variável acumula valores da execução anterior Esquecimento de resetar o estado da variável ao iniciar o programa. Encaixe mude [minha_variavel ▾] para [0] logo abaixo de quando ⚑ for clicado.
3. Ator anda na vertical quando deveria andar na horizontal Inversão dos blocos adicione a x com adicione a y. Lembre-se: $X$ é horizontal (esquerda/direita) e $Y$ é vertical (cima/baixo).
4. Comportamentos concorrentes imprevisíveis Ter múltiplos blocos quando ⚑ for clicado no mesmo ator alterando a mesma variável simultaneamente (Race Condition). Centralize o fluxo principal em um único script estruturado ou utilize mensagens com transmita [mensagem ▾] e espere.

📝 MÓDULO 6: Caderno de Exercícios e Avaliação


🧠 Parte 1: Questões Teóricas e Leitura de Código

Questão 1 (Interpretação de Variáveis):

Considere que a variável total inicia em 10. Em seguida, o Scratch executa o bloco repita (4) vezes, contendo internamente a instrução adicione (5) a [total ▾]. Qual será o valor final de total após a execução do laço?

  • A) 10
  • B) 20
  • C) 30
  • D) 50

Questão 2 (Avaliação Booleana):

Dadas as variáveis idade = 16 e autorizacao_pais = VERDADEIRO. A expressão lógica < < (idade) >= [18] > ou < (autorizacao_pais) = [VERDADEIRO] > > resultará em:

  • A) Falso, pois a idade é menor que 18.
  • B) Verdadeiro, pois o operador lógico OU requer que apenas uma das condições seja verdadeira.
  • C) Erro de compilação.
  • D) Nulo.

Questão 3 (Coordenadas Cartesianas):

Se um ator está na posição $(X=100, Y=-50)$ e executa os blocos:

  1. adicione (-40) a x
  2. mude y para [100]

Quais serão suas coordenadas finais no Palco?

  • A) $(X=60, Y=100)$
  • B) $(X=140, Y=50)$
  • C) $(X=60, Y=-50)$
  • D) $(X=-40, Y=100)$

🛠️ Parte 2: Desafios Práticos de Programação

Desafio 1: Conversor de Temperatura Interativo

  • Objetivo: Criar um programa que pergunte a temperatura em graus Celsius ($^\circ C$), calcule o valor equivalente em Fahrenheit ($^\circ F$) usando a fórmula $F = (C \times 1.8) + 32$, e faça o ator dizer o resultado formatado.
  • Critérios de Aceitação:
    1. Uso correto do sensor pergunte ... e espere.
    2. Criação de variáveis celsius e fahrenheit.
    3. Aninhamento correto dos operadores matemáticos de multiplicação e soma.

Desafio 2: Tabuada Automatizada

  • Objetivo: O usuário digita um número inteiro (ex: $7$) e o ator recita a tabuada daquele número de $1$ a $10$ utilizando um laço repita (10) vezes e uma variável contadora.
  • Critérios de Aceitação:
    1. Inicialização do contador em 1.
    2. Multiplicação numero * contador a cada iteração.
    3. Incremento do contador em $+1$ ao final de cada volta do laço.

Desafio 3: Radar de Velocidade com Penalidade

  • Objetivo: O programa pergunta a velocidade de um veículo em km/h. Se a velocidade for maior que $80$, calcula a multa ($R$ 7,00$ para cada km/h acima de 80) e exibe: “Multado! Valor: R$ [valor]”. Se for $\le 80$, exibe: “Velocidade Permitida. Boa viagem!”.
  • Critérios de Aceitação:
    1. Uso do bloco condicional composto se ... então ... senão.
    2. Cálculo correto da diferença (velocidade - 80) * 7.

🔑 Gabarito Oficial e Rubrica de Avaliação

Respostas das Questões Teóricas:

  • Questão 1: C) 30 (Cálculo: $10 + (4 \times 5) = 10 + 20 = 30$).
  • Questão 2: B) Verdadeiro (A primeira condição $16 \ge 18$ é Falsa, mas a segunda é Verdadeira. No operador OU, $F \lor V = V$).
  • Questão 3: A) (X=60, Y=100) (Novo $X = 100 - 40 = 60$; $Y$ foi redefinido diretamente para $100$).

📋 Rubrica de Avaliação dos Desafios Práticos (Pontuação Máxima: 100 pts)

Critério de Engenharia Pedagógica Excelente (100% dos pts) Regular (70% dos pts) Insuficiente (0-40% dos pts)
1. Correção Lógica e Modelo IPO (40 pts) O algoritmo atende 100% das regras de negócio, sem erros de cálculo ou desvios indevidos. O algoritmo executa, mas apresenta pequenas falhas de arredondamento ou precedência. Não realiza o cálculo solicitado ou entra em loop infinito.
2. Uso Adequado de Variáveis (30 pts) Variáveis bem nomeadas, inicializadas no início do script com escopo correto. Variáveis funcionais, porém sem inicialização explícita na bandeira verde. Falta de variáveis; sobrescrita acidental de dados.
3. Interface e Feedback ao Usuário (30 pts) Mensagens claras, uso de temporizadores adequados nos balões e formatação legível. O programa emite respostas, mas os balões somem rápido demais para leitura. Não exibe resposta de saída para o usuário.

🔗 Recursos Pedagógicos do Capítulo

Recurso Descrição Acesso Direto
📊 Slides de Aula Apresentação visual estruturada com diagramas Ver Slides
🧠 Quiz Formativo Teste de fixação com feedback imediato por alternativa Fazer Quiz
💻 Exemplos Práticos Código executável e simulações do Scratch Ver Exemplos
🧩 Exercícios Progressivos Lista de atividades práticas em 4 níveis Resolver Exercícios

🧭 Navegação do Capítulo: ⬅️ Capítulo Anterior · 📚 Sumário do Módulo · ➡️ Próximo Capítulo