Pular para o conteúdo
Progresso — 0/13 módulos (0 exercícios)0%
Aprenda com prática, sem vídeos

Aprenda Lógica de Programação na Prática

Estude os fundamentos da programação através de explicações simples e exercícios interativos em diversas linguagens.

Módulos
13
Exercícios
39
Linguagens
8
algoritmo.py
# Primeiro algoritmo
def saudacao(nome):
    if nome:
        return "Olá, " + nome
    return "Olá, mundo!"

for n in ["Ana", "Bob"]:
    print(saudacao(n))
> Olá, Ana > Olá, Bob
Como funciona

Um ciclo simples que fixa o conteúdo

Explicação, resumo, exercício e feedback imediato — tudo no mesmo lugar.

Etapa 1

Aprenda

Leia uma explicação simples e objetiva do conceito.

Etapa 2

Entenda

Veja um resumo com os pontos principais para fixar.

Etapa 3

Pratique

Resolva um exercício para ganhar XP.

Escolha sua linguagem

Aprenda os mesmos conceitos, na sintaxe que você prefere

Todos os exemplos e exercícios se adaptam automaticamente à linguagem escolhida. O conteúdo teórico permanece o mesmo.

Módulo 01 / 13

🚀Introdução à Programação

O que é programar, algoritmo e lógica

📖 Explicação

Programar é escrever instruções que o computador executa para resolver um problema. Um algoritmo é uma sequência finita de passos e a lógica de programação é a forma de pensar para montar esses passos de forma clara e correta.

Objetivo

Entender a base do que significa programar antes de aprender qualquer linguagem específica.

Quando utilizar

Sempre. Toda vez que você transforma uma ideia em código, você usa lógica e algoritmos.

Exemplo do dia a dia

Uma receita de bolo é um algoritmo: passos ordenados que, se seguidos, produzem um resultado.

Curiosidade

A palavra 'algoritmo' vem do matemático persa Al-Khwarizmi, do século IX.

🧠 Em poucas palavras

Programar = escrever instruções. Algoritmo = passos ordenados. Lógica = raciocínio para montar esses passos.

Exemplo
python
# "Olá, mundo" em Python
print("Olá, mundo")
🎯 Pratique (3 exercícios)
💻 Exercício 1Fácil +10 XP

Qual é a melhor definição de algoritmo?

💻 Exercício 2Intermediário +10 XP

Todas as linguagens de programação usam exatamente a mesma sintaxe.

💻 Exercício 3Desafio +10 XP

Qual das opções descreve melhor a diferença entre 'lógica' e 'linguagem de programação'?

Módulo 02 / 13

🧭Algoritmos e Fluxogramas

Planejando a solução antes do código

📖 Explicação

Antes de escrever código, é comum planejar em passos ou desenhar um fluxograma. Fluxogramas usam formas padrão: retângulo para ação, losango para decisão, paralelogramo para entrada/saída e círculo para início/fim.

Objetivo

Aprender a pensar em passos claros antes de programar.

Quando utilizar

Sempre que precisar organizar a solução de um problema antes de implementar.

Exemplo do dia a dia

Fazer login em um app: digitar usuário → digitar senha → verificar → entrar ou mostrar erro.

Curiosidade

Os primeiros algoritmos escritos para máquinas foram criados por Ada Lovelace no século XIX.

🧠 Em poucas palavras

Um algoritmo é uma sequência ordenada de passos. Fluxogramas ajudam a visualizá-los.

Exemplo
python
# Algoritmo: somar dois números
a = 5
b = 3
soma = a + b
print(soma)
🎯 Pratique (3 exercícios)
💻 Exercício 1Fácil +10 XP

A ordem dos passos em um algoritmo pode alterar o resultado final.

💻 Exercício 2Intermediário +10 XP

Em um fluxograma, qual figura representa uma decisão?

💻 Exercício 3Desafio +10 XP

Qual característica é essencial para um bom algoritmo?

Módulo 03 / 13

📦Variáveis e Tipos de Dados

Armazenando informação

📖 Explicação

Uma variável é um espaço na memória com um nome, que guarda um valor. Cada valor tem um tipo: inteiro, decimal (float), texto (string), booleano (true/false). Algumas linguagens deduzem o tipo automaticamente, outras exigem que você declare.

Objetivo

Armazenar e reutilizar informações no programa.

Quando utilizar

Sempre que precisar guardar algo: um nome digitado, o resultado de um cálculo, um total.

Exemplo do dia a dia

É como uma caixa etiquetada: você escreve 'idade' na etiqueta e coloca o valor 25 dentro.

Curiosidade

Em Python o tipo é dinâmico; em Java, C e Go você declara o tipo antes de usar.

🧠 Em poucas palavras

Variáveis guardam informações. Tipos definem o que pode ser guardado (número, texto, verdadeiro/falso).

Exemplo
python
nome = "Maria"
idade = 25
altura = 1.68
ativo = True
print(nome, idade, altura, ativo)
🎯 Pratique (3 exercícios)
💻 Exercício 1Fácil +10 XP

Para que serve uma variável?

💻 Exercício 2Intermediário +10 XP

Qual o tipo mais adequado para armazenar o valor 3.14?

💻 Exercício 3Desafio +10 XP

O que este código imprime?

x = 10
x = x + 5
x = x * 2
print(x)
Módulo 04 / 13

🎤Entrada e Saída de Dados

Comunicação com o usuário

📖 Explicação

Programas recebem dados (entrada) e mostram resultados (saída). A entrada pode vir do teclado, de um arquivo ou de uma API. A saída pode ir para a tela, arquivo ou rede.

Objetivo

Tornar o programa interativo e útil.

Quando utilizar

Sempre que o programa precisar receber algo do usuário ou apresentar um resultado.

Exemplo do dia a dia

Digitar em um formulário (entrada) e ver a mensagem de confirmação na tela (saída).

Curiosidade

O primeiro dispositivo de saída dos computadores modernos era uma impressora, não uma tela.

🧠 Em poucas palavras

Entrada é o que o programa recebe; saída é o que ele devolve. Todo programa útil faz as duas coisas.

Exemplo
python
nome = input("Qual seu nome? ")
print("Olá,", nome)
🎯 Pratique (3 exercícios)
💻 Exercício 1Fácil +10 XP

Um programa útil geralmente produz algum tipo de saída.

💻 Exercício 2Intermediário +10 XP

Em Python, qual instrução lê um valor digitado pelo usuário?

💻 Exercício 3Desafio +10 XP

Ao ler um número com input() em Python, qual é o tipo do valor retornado?

Módulo 05 / 13

Operadores

Matemáticos, relacionais e lógicos

📖 Explicação

Operadores realizam operações com valores. Matemáticos (+, -, *, /, %) fazem cálculos. Relacionais (>, <, ==, !=) comparam valores e devolvem verdadeiro ou falso. Lógicos (&&, ||, !) combinam condições.

Objetivo

Fazer cálculos e tomar decisões com base em comparações.

Quando utilizar

Em qualquer cálculo, comparação ou condição composta.

Exemplo do dia a dia

Verificar se 'idade >= 18 E possuiCarteira == true' antes de deixar alguém dirigir.

Curiosidade

'=' é atribuição e '==' é comparação. Trocar os dois é um dos erros mais comuns de iniciantes.

🧠 Em poucas palavras

Operadores fazem cálculos, comparam valores e combinam condições para tomar decisões.

Exemplo
python
a = 10
b = 3
print(a + b)   # 13
print(a % b)   # 1 (resto)
print(a > b)   # True
print(a > 0 and b > 0)  # True
🎯 Pratique (3 exercícios)
💻 Exercício 1Fácil +10 XP

Qual é o resultado de 10 % 3 (resto da divisão)?

💻 Exercício 2Intermediário +10 XP

Qual é o resultado de (5 > 2) && (3 < 1)?

💻 Exercício 3Desafio +10 XP

O que este código imprime?

a = 7
b = 2
print(a // b, a % b)
Módulo 06 / 13

🔀Estruturas Condicionais

if, else, else if e switch

📖 Explicação

Estruturas condicionais permitem que o programa siga caminhos diferentes conforme uma condição. 'if' executa quando é verdadeira, 'else' quando é falsa, e 'else if' testa alternativas em sequência.

Objetivo

Tomar decisões durante a execução do programa.

Quando utilizar

Sempre que o comportamento depender de uma condição: idade, valor, resposta do usuário.

Exemplo do dia a dia

Se está chovendo, leve guarda-chuva; senão, leve óculos escuros.

Curiosidade

'switch' costuma ser mais legível que vários 'else if' quando você compara a mesma variável com valores fixos.

🧠 Em poucas palavras

Condicionais escolhem qual bloco de código executar com base em condições verdadeiro/falso.

Exemplo
python
idade = 20
if idade >= 18:
    print("Adulto")
else:
    print("Menor")
🎯 Pratique (3 exercícios)
💻 Exercício 1Fácil +10 XP

O que este código imprime quando idade = 20?

idade = 20
if idade >= 18:
    print("Adulto")
else:
    print("Menor")
💻 Exercício 2Intermediário +10 XP

O que este código imprime quando idade = 15?

idade = 15
if idade >= 18:
    print("Adulto")
elif idade >= 12:
    print("Adolescente")
else:
    print("Criança")
💻 Exercício 3Desafio +10 XP

Quando o 'switch' (ou 'match') é mais recomendado que vários 'else if'?

Módulo 07 / 13

🔁Estruturas de Repetição

for, while e do while

📖 Explicação

Loops repetem um bloco várias vezes. Use 'for' quando você sabe quantas vezes vai repetir, 'while' quando repete enquanto uma condição for verdadeira, e 'do while' quando precisa executar pelo menos uma vez.

Objetivo

Executar tarefas repetitivas sem duplicar código.

Quando utilizar

Percorrer listas, aplicar uma ação N vezes, esperar até algo acontecer.

Exemplo do dia a dia

Enquanto o balde não estiver cheio, continuar despejando água.

Curiosidade

Loops infinitos (que nunca terminam) são um dos bugs mais famosos e podem travar programas inteiros.

🧠 Em poucas palavras

Loops repetem instruções. Escolha entre for, while e do while conforme o caso.

Exemplo
python
for i in range(3):
    print(i)
🎯 Pratique (3 exercícios)
💻 Exercício 1Fácil +10 XP

Quantas vezes 'oi' é impresso?

for i in range(5):
    print("oi")
💻 Exercício 2Intermediário +10 XP

Qual o valor final de 'soma'?

soma = 0
for i in range(1, 5):
    soma = soma + i
print(soma)
💻 Exercício 3Desafio +10 XP

Qual estrutura garante que o bloco execute pelo menos uma vez, mesmo que a condição seja falsa desde o início?

Módulo 08 / 13

🗂️Vetores e Listas

Coleções unidimensionais

📖 Explicação

Vetores (também chamados de arrays ou listas) armazenam vários valores em uma única estrutura. Cada valor é acessado por um índice numérico. Na maioria das linguagens, o primeiro índice é 0.

Objetivo

Agrupar dados relacionados para manipular vários valores de uma vez.

Quando utilizar

Lista de alunos, notas de uma prova, itens de um carrinho, coordenadas em um jogo.

Exemplo do dia a dia

Uma prateleira numerada onde você acessa o item pela posição.

Curiosidade

Em Python, listas podem crescer dinamicamente. Em C, o tamanho geralmente é fixo.

🧠 Em poucas palavras

Vetores guardam vários valores organizados por índices numéricos, começando em 0.

Exemplo
python
nums = [10, 20, 30]
print(nums[0])    # 10
print(len(nums))  # 3
🎯 Pratique (3 exercícios)
💻 Exercício 1Fácil +10 XP

Qual é o índice do primeiro elemento em um array na maioria das linguagens?

💻 Exercício 2Intermediário +10 XP

O que este código imprime?

nums = [5, 10, 15, 20]
print(nums[2])
💻 Exercício 3Desafio +10 XP

Se um vetor tem 5 elementos, qual é o índice do último elemento?

Módulo 09 / 13

🧮Matrizes

Estruturas de duas dimensões

📖 Explicação

Matrizes são coleções organizadas em linhas e colunas — como uma tabela. Cada elemento é acessado por dois índices: [linha][coluna]. Podem ser usadas para tabuleiros de jogos, planilhas ou imagens.

Objetivo

Trabalhar com dados organizados em linhas e colunas.

Quando utilizar

Tabuleiros (xadrez, jogo da velha), tabelas, matrizes matemáticas, pixels de uma imagem.

Exemplo do dia a dia

Uma planilha do Excel: as células são acessadas pela linha e coluna.

Curiosidade

Uma imagem digital nada mais é do que uma matriz de pixels — cada célula tem uma cor.

🧠 Em poucas palavras

Matrizes são vetores de vetores, acessados por dois índices: linha e coluna.

Exemplo
python
matriz = [
    [1, 2, 3],
    [4, 5, 6],
]
print(matriz[1][2])  # 6
🎯 Pratique (3 exercícios)
💻 Exercício 1Fácil +10 XP

Uma matriz é normalmente organizada em:

💻 Exercício 2Intermediário +10 XP

Dada a matriz {{1,2,3},{4,5,6},{7,8,9}}, o que retorna matriz[2][0]?

matriz = [[1,2,3],[4,5,6],[7,8,9]]
print(matriz[2][0])
💻 Exercício 3Desafio +10 XP

Toda matriz precisa ser quadrada (mesmo número de linhas e colunas).

Módulo 10 / 13

🔤Strings

Trabalhando com texto

📖 Explicação

String é uma sequência de caracteres — palavras, frases, textos. Você pode concatenar, medir o tamanho, acessar caracteres por índice e comparar strings.

Objetivo

Manipular textos: nomes, mensagens, conteúdos digitados.

Quando utilizar

Formulários, mensagens, nomes de arquivos, respostas do usuário.

Exemplo do dia a dia

Compor uma mensagem juntando 'Olá, ' + nomeDoUsuário para saudar alguém.

Curiosidade

Em muitas linguagens, strings são imutáveis: cada modificação cria uma nova string na memória.

🧠 Em poucas palavras

Strings guardam texto. Você pode concatenar, medir e acessar caracteres por índice.

Exemplo
python
nome = "Prometeu"
print(len(nome))       # 8
print(nome.upper())    # PROMETEU
print(nome + " Code")
🎯 Pratique (3 exercícios)
💻 Exercício 1Fácil +10 XP

O que é uma string em programação?

💻 Exercício 2Intermediário +10 XP

O que este código imprime?

s = "Prometeu"
print(len(s))
💻 Exercício 3Desafio +10 XP

Qual operação combina duas strings em uma só (ex: 'Olá' + 'Mundo')?

Módulo 11 / 13

🧩Funções

Parâmetros, retorno e escopo

📖 Explicação

Funções são blocos de código reutilizáveis. Podem receber parâmetros (entradas) e retornar um valor (saída). Variáveis criadas dentro de uma função pertencem ao escopo local — não existem fora dela.

Objetivo

Organizar o código em blocos pequenos, reutilizáveis e fáceis de testar.

Quando utilizar

Sempre que uma lógica se repete ou representa uma tarefa bem definida.

Exemplo do dia a dia

Uma máquina de café: você coloca água e café (parâmetros) e recebe o café pronto (retorno).

Curiosidade

Uma boa função faz uma única coisa bem feita. Se está fazendo várias, provavelmente deveriam ser várias funções.

🧠 Em poucas palavras

Funções recebem entradas, executam uma tarefa e podem devolver um resultado.

Exemplo
python
def somar(a, b):
    return a + b

print(somar(2, 3))
🎯 Pratique (3 exercícios)
💻 Exercício 1Fácil +10 XP

Uma variável declarada dentro de uma função pode ser acessada livremente fora dela.

💻 Exercício 2Intermediário +10 XP

O que este código imprime?

def dobro(x):
    return x * 2

print(dobro(5))
💻 Exercício 3Desafio +10 XP

Qual afirmação sobre funções está correta?

Módulo 12 / 13

🛠️Boas Práticas e Depuração

Escrever código legível e caçar bugs

📖 Explicação

Bons programadores escrevem código claro: nomes descritivos, funções pequenas e comentários quando necessário. Depurar (debug) é o ato de encontrar e corrigir erros — usando prints, breakpoints ou ferramentas de debug.

Objetivo

Escrever código que outras pessoas (e você no futuro) consigam entender e corrigir com facilidade.

Quando utilizar

Sempre. Cada linha escrita será lida muitas vezes — priorize clareza.

Exemplo do dia a dia

Escrever uma receita com passos numerados e ingredientes bem separados, em vez de um texto corrido.

Curiosidade

O termo 'bug' começou literalmente com um inseto preso em um computador da década de 1940.

🧠 Em poucas palavras

Escreva código legível e aprenda a depurar — encontrar bugs faz parte do trabalho.

Exemplo
python
# Ruim: nomes obscuros
x = 60
y = x * 60

# Bom: nomes descritivos
segundos_por_minuto = 60
segundos_em_uma_hora = segundos_por_minuto * 60
print(segundos_em_uma_hora)
🎯 Pratique (3 exercícios)
💻 Exercício 1Fácil +10 XP

Usar nomes descritivos em variáveis ajuda outras pessoas a entender o código.

💻 Exercício 2Intermediário +10 XP

O que significa 'depurar' (debug) um programa?

💻 Exercício 3Desafio +10 XP

Qual é uma técnica útil quando um programa está apresentando comportamento inesperado?

Módulo 13 / 13

🏆Desafios Integradores

Colocando tudo em prática

📖 Explicação

Chegou a hora de juntar variáveis, condicionais, loops e funções em um mesmo problema. Esses desafios simulam o que você faz no dia a dia: combinar conceitos simples para resolver algo maior.

Objetivo

Consolidar todos os fundamentos vistos até aqui em problemas integrados.

Quando utilizar

Como diagnóstico do que você já domina e do que ainda vale revisar.

Exemplo do dia a dia

Passar em uma prova prática depois de estudar cada tópico.

Curiosidade

Programar bem é combinar poucos conceitos fundamentais de maneiras poderosas.

🧠 Em poucas palavras

Junte variáveis, decisões, loops e funções para resolver problemas reais.

Exemplo
python
def eh_par(n):
    return n % 2 == 0

for i in range(1, 6):
    if eh_par(i):
        print(i, "par")
    else:
        print(i, "ímpar")
🎯 Pratique (3 exercícios)
💻 Exercício 1Fácil +10 XP

Qual saída este código produz para os números de 1 a 5?

for i in range(1, 6):
    if i % 2 == 0:
        print(i, "par")
    else:
        print(i, "ímpar")
💻 Exercício 2Intermediário +10 XP

Você precisa somar todos os números de 1 até N. Qual combinação faz sentido?

💻 Exercício 3Desafio +10 XP

O que a função retorna para contarPares([1, 2, 3, 4, 5, 6])?

def contarPares(nums):
    total = 0
    for n in nums:
        if n % 2 == 0:
            total += 1
    return total

print(contarPares([1,2,3,4,5,6]))
🎯

Continue estudando

Conclua todos os 13 módulos para desbloquear sua Conquista Prometeu Code. Você já respondeu 0 de 39 exercícios.

Perguntas frequentes

FAQ