pyModo HistóriaCap. 1
Nível 1
0 XP

← Prof JH · Disciplinas

Capítulo 1 de 12

Pensar antesde programar

Pensamento computacional, algoritmos e o primeiro contato com Python. Antes de escrever código, você aprende a pensar como quem vai ser obedecido ao pé da letra.

🎮Tutorial 🧠Fase 1 🐍Fase 2 🤖Boss
EtapaConteúdoTempo
Fase 1: O Robô LiteralAlgoritmos e suas propriedades, os 4 pilares do pensamento computacional, pseudocódigo e fluxograma~90 min
Fase 2: Despertar da SerpenteNíveis de linguagem, compilação e interpretação, ambiente Python, print, operadores e os três tipos de erro~90 min
Boss BattleLabirinto do Robô Literal, com correção automática~45 min

Tutorial: como jogar

▶ EditoresPython de verdade no navegador. Altere e rode sem medo.
✓ TestarNas missões, seu código enfrenta casos de teste automáticos.
🐛 Alertas de bugOs erros que derrubam iniciantes e veteranos.
🧊 Quebra-geloUm problema real antes da teoria.

Aperte ▶ Rodar (ou Ctrl + Enter dentro do editor). Depois troque o texto entre aspas e rode de novo.

1
Pensamento computacional e algoritmos

O Robô Literal

algoritmos4 pilarespseudocódigo e fluxograma~90 min

🧊 Desafio quebra-gelo

Você pede a um robô: "pegue o pão e passe manteiga". Ele obedece exatamente o que foi dito, nada além. O que pode dar errado?

Tudo. Ele pode passar manteiga no saco do pão, porque ninguém mandou abrir. Pode usar a mão, porque ninguém falou em faca. Pode passar a manteiga inteira, porque ninguém disse quanto. 🧈

Humanos preenchem lacunas com contexto. Computadores não. Programar é, antes de tudo, aprender a dar ordens sem lacunas.

O que é um algoritmo

Um algoritmo é uma sequência finita de instruções precisas que, executadas a partir de uma entrada, produzem uma saída e terminam. A palavra vem de al-Khwarizmi, matemático persa do século IX. Algoritmos são muito mais antigos que computadores: o de Euclides, para o máximo divisor comum, tem cerca de 2.300 anos e continua em uso, por exemplo, em criptografia.

As cinco propriedades (Knuth)

Donald Knuth, em The Art of Computer Programming, caracteriza um algoritmo por cinco propriedades. Uma receita de bolo é um bom contraexemplo para quase todas:

PropriedadeSignificaViolação na receita
FinitudeTermina após um número finito de passos"Bata até ficar bom"
DefiniçãoCada passo é preciso, sem ambiguidade"Sal a gosto"
EntradaZero ou mais dados fornecidos no inícioIngredientes sem quantidade
SaídaUm ou mais resultados relacionados à entrada"Sirva como preferir"
EfetividadeCada passo é executável de fato, com os recursos disponíveis"Use o forno a 1.000 °C"

Os quatro pilares do pensamento computacional

Pensamento computacional é a forma de formular problemas para que suas soluções possam ser executadas por uma máquina, ou por uma pessoa seguindo regras. Ele se apoia em quatro habilidades complementares:

PilarO que éExemplo: gerar o boletim da turma
DecomposiçãoDividir um problema grande em subproblemas tratáveisColetar notas, calcular médias, verificar frequência, decidir situação, publicar
Reconhecimento de padrõesIdentificar semelhanças entre problemas ou partes delesA média de toda disciplina segue a mesma fórmula, só mudam os pesos
AbstraçãoManter o essencial e descartar o irrelevantePara a média, importam as notas e os pesos, não o nome do professor nem a sala
AlgoritmoEscrever a sequência precisa de passos da soluçãoPara cada aluno: some nota × peso, divida pela soma dos pesos, compare com 7

💡 Os pilares não são etapas em ordem fixa: você decompõe, percebe um padrão, abstrai, volta a decompor. O algoritmo é o produto final desse vai e vem.

Representando algoritmos

A linguagem natural é ambígua. "Vi o homem no parque com o binóculo": quem estava com o binóculo? Por isso, antes do código, usamos representações intermediárias, mais precisas que o português e menos exigentes que uma linguagem de programação.

Pseudocódigo

Português estruturado, com convenções de linguagem de programação. O símbolo ← significa "recebe o valor de". O algoritmo de Euclides fica assim:

Algoritmo MDC
  Leia a, b
  Enquanto b ≠ 0, faça:
      resto ← a mod b
      a ← b
      b ← resto
  Escreva a
Fim

Fluxograma

O mesmo algoritmo como diagrama. Cada forma tem um significado padronizado:

Início Leia a, b b ≠ 0 ? simnão resto ← a mod b a ← b b ← resto Escreva a Fim
Fluxograma de Euclides. A seta que sobe pela esquerda é a repetição.
FormaSignificado
Elipse (terminal)Início ou fim do algoritmo
ParalelogramoEntrada ou saída de dados
RetânguloProcessamento: cálculo ou atribuição
LosangoDecisão: uma condição, com saídas "sim" e "não"
SetasFluxo de execução

O robô literal, versão Python

Hora de dar ordens a uma máquina de verdade. O robô abaixo conhece só três comandos e não interpreta intenções: ele executa uma linha de cada vez, de cima para baixo. Complete o programa para levá-lo até a 🏁. Se ele bater, o mapa mostra onde.

💡 Repare que frente(2) é uma abstração: um comando com parâmetro substitui dois comandos iguais. Você vai precisar disso no Boss.

🎯 Missão prática 1

Engenharia de algoritmos

Recompensa: até +210 XP

Três desafios sem código: ordenar passos até não sobrar ambiguidade e reconhecer os pilares em situações reais. Use ↑ e ↓ para mover os itens e depois verifique.

A) Saque no caixa eletrônico

Regra: a senha é validada antes de qualquer operação, e o cartão é devolvido ao final.

B) Pseudocódigo de Euclides

A indentação já está nos itens. Pense em qual valor cada variável precisa ter no momento em que é usada.

C) Qual pilar?

    🏁 Resumão da Fase 1

    🔒

    Fase 2 bloqueada

    Responda o quiz da Fase 1 para liberar.

    Ir para o quiz
    2
    Linguagens, ambiente e primeiros programas

    Despertar da Serpente

    compilação e interpretaçãoprint e operadorestipos de erro~90 min

    🧊 Desafio quebra-gelo

    O processador do seu computador só entende sequências de 0 e 1. Então como print("Olá"), um texto em inglês, vira algo que ele executa?

    Por camadas de tradução. Programas tradutores (compiladores e interpretadores) convertem linguagens próximas do humano em instruções de máquina. Cada camada esconde a complexidade da anterior. É abstração, o pilar da Fase 1, aplicada à própria computação.

    Níveis de linguagem

    A mesma operação, somar dois valores e guardar o resultado, em quatro níveis de abstração:

    NívelExemploQuem lê bem
    Alto nível (Python)total = a + bHumanos
    Alto nível (C)int total = a + b;Humanos, com mais detalhes de máquina
    Assembly (x86)mov eax, [a] / add eax, [b] / mov [total], eaxEspecialistas
    Código de máquina10001011 01000101 11111000 …O processador

    Compilação e interpretação

    CompilaçãoInterpretação
    Quando traduzTudo antes de executar, gerando um executávelDurante a execução, instrução por instrução
    Pontos fortesDesempenho; erros de tipo detectados cedoCiclo rápido de testar e ajustar; portabilidade
    ExemplosC, C++, Rust, GoJavaScript, Ruby e, na prática, Python

    Na verdade, a fronteira é difusa. O CPython, a implementação padrão, primeiro compila o código-fonte para bytecode, uma linguagem intermediária guardada em arquivos .pyc. Depois, a máquina virtual do Python (PVM) interpreta esse bytecode. Java faz algo parecido com a JVM. E esta apostila usa um terceiro caminho: o Skulpt, que traduz Python para JavaScript, a linguagem que o navegador executa.

    Por que Python?

    • Legibilidade: a sintaxe é próxima do pseudocódigo, e a indentação faz parte da linguagem.
    • Ecossistema: é a linguagem dominante em ciência de dados, inteligência artificial e automação, além de ser forte em web e computação científica.
    • O custo: é mais lenta que C ou Rust em processamento intenso. Por isso as bibliotecas mais pesadas, como numpy, são escritas em C por baixo.

    💡 O Zen do Python (PEP 20), filosofia da linguagem, em quatro linhas: bonito é melhor que feio. Explícito é melhor que implícito. Simples é melhor que complexo. Legibilidade conta. No seu Python local, digite import this para ler o resto.

    Preparando o ambiente

    Aqui você programa no navegador. Na disciplina, vai precisar do Python instalado:

    1. Baixe o Python 3 em python.org. No Windows, marque a opção "Add python.exe to PATH" no instalador. Esquecer isso é o problema número 1 dos iniciantes.
    2. Confirme a instalação no terminal: python --version (no Windows, também funciona py --version). Deve aparecer algo como Python 3.12.
    3. Escolha um editor. O Thonny é feito para iniciantes e já vem com Python. O VS Code com a extensão Python é o padrão de mercado.
    4. Conheça os dois modos. No modo interativo (REPL), você digita python e vê o prompt >>>: cada linha roda na hora, ótimo para experimentar. No modo script, você salva um arquivo .py e roda com python arquivo.py: é assim que se fazem programas.

    Seu primeiro programa

    print() é uma função: um comando com nome, seguido de parênteses com os valores que ele recebe. Texto entre aspas é uma string. Tudo depois de # é comentário, ignorado pelo Python e escrito para humanos.

    O programa é executado em sequência, de cima para baixo. É a primeira das três estruturas de controle (sequência, decisão e repetição). As outras duas você vê no Capítulo 3.

    Controlando a saída: sep, end e caracteres de escape

    print aceita vários valores separados por vírgula. O parâmetro sep define o que vai entre eles (padrão: espaço), e end define o que vai no final (padrão: quebra de linha). Dentro de strings, \n quebra a linha e \t insere uma tabulação.

    Python como calculadora

    OperadorOperaçãoExemploResultado
    + - *Soma, subtração, multiplicação7 + 3 * 213
    /Divisão real (sempre float)7 / 23.5
    //Divisão inteira (quociente)7 // 23
    %Resto da divisão (o mod de Euclides)7 % 21
    **Potência2 ** 101024

    A precedência segue a matemática: potência, depois multiplicação e divisões, depois soma e subtração. Parênteses mudam a ordem. No Capítulo 2, isso vira expressões com variáveis e tipos.

    Os três tipos de erro

    Errar é parte do processo, e cada tipo de erro aparece em um momento diferente:

    TipoQuando apareceQuem avisa
    SintaxeAntes de executar: o código não segue a gramática da linguagemO Python, e nada roda
    Execução (exceção)Durante a execução: uma operação impossívelO Python, e o programa para naquele ponto
    LógicaNunca: o programa roda e entrega a resposta erradaNinguém. Só testes e atenção pegam

    Lendo um traceback

    No terminal, um erro de execução vem como um traceback. Leia de baixo para cima: a última linha diz o quê, as anteriores dizem onde.

    Traceback (most recent call last):
      File "notas.py", line 3, in <module>       ← onde: arquivo e linha
        print("Média por aluno:", 100 / total)    ← a linha que falhou
    ZeroDivisionError: division by zero           ← o quê: tipo e mensagem
    🎯 Missão prática 2

    Diagnóstico: o crachá quebrado

    Recompensa: até +230 XP e a insígnia Depurador

    O programa do crachá tem quatro bugs de tipos diferentes, e uma das linhas suspeitas está correta. Conserte, e ao lado de cada correção escreva um comentário classificando o bug: # sintaxe, # execução ou # lógica. O ✓ Testar compara sua saída com a especificação, caractere por caractere.

      💡 Dica

      Conserte um erro por vez e rode de novo: o Python só mostra o primeiro erro de sintaxe que encontra. Quando o programa rodar inteiro, compare a média com a especificação. 8 + 9 / 2 e (8 + 9) / 2 não são a mesma coisa.

      🔓 Gabarito
      
            
          

      🏁 Resumão da Fase 2

      • Linguagens de alto nível são traduzidas para código de máquina. O CPython compila para bytecode e o interpreta na PVM.
      • print exibe valores; sep e end controlam o formato. /, //, % e ** completam a calculadora.
      • Erros de sintaxe impedem a execução, de execução a interrompem e de lógica passam despercebidos.
      • Traceback se lê de baixo para cima.
      🤖

      O robô ainda está desligado

      Responda o quiz da Fase 2 para ligá-lo.

      Ir para o quiz
      ☠
      Desafio final integrador

      Boss Battle: O Labirinto do Robô Literal

      Decomposição + abstração + sequência~45 min+500 XP e insígnia

      O Robô Literal

      Eu faço exatamente o que você mandar. Nem mais, nem menos. Pegue a chave, abra a porta, chegue à saída. Cada critério cumprido me arranca um pedaço da teimosia.

      O labirinto é maior e tem um detalhe a mais: a 🚪 está trancada, e a 🔑 fica em um corredor sem saída. Os comandos agora incluem pegar() e abrir(), que só funciona com a porta logo à frente e a chave na mão. Rode o código inicial para ver o mapa.

      Estratégia: use os pilares

      • Decomposição: divida o trajeto em trechos: até a chave, da chave até a porta, da porta até a saída.
      • Reconhecimento de padrões: não existe comando de meia-volta. Que combinação de giros produz o mesmo efeito?
      • Abstração: frente(n) substitui vários passos. A solução ótima tem 13 comandos.
      • Algoritmo: escreva a sequência final e teste.
        💡 Dica nível 1: o primeiro trecho

        Do início, o caminho até a chave é: dois para a direita, dois para baixo, dois para a direita e dois para cima. Cada mudança de direção é um giro.

        💡 Dica nível 2: a porta

        Depois de pegar a chave, o robô está virado para o Norte. Duas chamadas de direita() o deixam virado para o Sul. Desça até ficar logo antes da porta, use abrir() e continue.

        🔓 Gabarito do Boss
        
            
          

        🔥 Modo Hard (XP bônus)

        Desafios abertos, sem correção automática. Fez? Marque e ganhe o bônus.

          🏆

          Sua sala de troféus

          Tudo que você conquistar neste capítulo aparece aqui.

          0XP total
          1Nível
          0/6Insígnias

          Esse capítulo foi…

          Próximo capítulo: Variáveis, Tipos e Expressões. O robô vai ganhar memória. 🧠

          Python: Modo História · Prof. JH. O Python roda no navegador pelo Skulpt (licença MIT). Seu progresso fica salvo só neste navegador.

          Conteúdo produzido com apoio de IA e validado por Jonas Henrique Mendonça · Protocolo de validação · Voltar ao site