Laboratório — Pensar logicamente antes de programar

Laboratório integrador do módulo 01: Pensar logicamente antes de programar.

Laboratório 01 — Oficina de lógica: Pensar logicamente antes de programar

Propósito

Este laboratório transforma as cinco aulas do módulo em uma investigação prática. Você não deve apenas “fazer rodar”. A entrega precisa mostrar previsões, traços, casos de fronteira e justificativas.

Conceitos trabalhados

Problema, objetivo e restrições, Entrada, estado, processamento e saída, Decomposição: quebrando o grande em partes pequenas, Precisão, ambiguidades e casos escondidos, Traçado manual: prever antes de executar

Cenário

Você recebeu a tarefa de construir uma pequena regra de classificação para um sistema escolar fictício. A especificação inicial está propositalmente incompleta: o trabalho começa fazendo perguntas, definindo entradas e limites e só depois escrevendo a solução.

Etapa 1 — especificação

  1. Escreva o objetivo em uma frase que possa ser verificada.
  2. Liste entradas, saídas, restrições e casos de fronteira.
  3. Separe o problema em etapas menores.
  4. Escreva pelo menos cinco exemplos com resultado esperado antes de criar código.

Etapa 2 — representação

Escolha a representação mais adequada ao conteúdo do módulo: pseudocódigo, tabela de decisão, tabela de traçado, lista de estados ou fluxograma textual. Explique por que essa representação ajuda neste caso.

Etapa 3 — implementação de verificação

casos = [
    {"valor": 5, "esperado": "baixo"},
    {"valor": 7, "esperado": "medio"},
    {"valor": 9, "esperado": "alto"},
]

def classificar(valor):
    if valor >= 9:
        return "alto"
    if valor >= 7:
        return "medio"
    return "baixo"

for caso in casos:
    obtido = classificar(caso["valor"])
    print(caso["valor"], obtido, obtido == caso["esperado"])

O código acima é apenas uma estrutura de teste. Adapte as regras ao problema que você especificou. O ponto principal é manter lado a lado entrada, resultado esperado e resultado obtido.

Etapa 4 — casos obrigatórios

  • um caso normal de cada caminho relevante;
  • um caso exatamente em cada fronteira;
  • um caso imediatamente abaixo e acima de pelo menos uma fronteira;
  • um caso inválido ou fora da pré-condição;
  • um caso escolhido para tentar quebrar sua própria regra.

Etapa 5 — explicação

Escreva um parágrafo respondendo: qual era a parte mais ambígua do problema? qual regra resolveu a ambiguidade? qual teste trouxe mais informação? o que mudaria se uma restrição fosse alterada?

Critério de conclusão

O laboratório está concluído quando outra pessoa consegue ler sua especificação, reproduzir os casos e obter as mesmas decisões sem precisar perguntar o que você “quis dizer”.

Avaliação opcional

Avaliação com validação humana

Receba nota e feedback individual sobre esta atividade. Este serviço é opcional e não é necessário para concluir o curso ou receber o certificado gratuito.

Entrar para solicitar