Pular para o conteúdo

B.1 · Pensamento computacional

International Baccalaureate · IB Diploma · Computer Science · SL · Tópico 5

Ver Slides Treinar
5.1

Escopo e pré-requisitos

Foco SL suportado. Primeiro avaliação 2027 meta; PDF oficial retorna 403; breve antigo adquirido é avaliação final 2026. Guia restante, avaliação e requisitos práticos mantêm seus retenções registradas.

Pré-requisitos: leia as quantidades e unidades declaradas, use aritmética e as condições do modelo abaixo. Cada lição desenvolve seu próprio método antes da transferência independente.

Estes são exemplos didáticos originais ou explicitamente fictícios, não medições reais ou investigações avaliadas concluídas por aprendizes.

5.2

Algoritmos, traços e evidências de correção

O que explicaria esta observação?

  • Um algoritmo pode funcionar para um exemplo e falhar em uma fronteira. Os testes devem ser projetados a partir da especificação, não apenas do caminho feliz.
  • Comece com uma previsão. Especifique as quantidades ou características que você compararia, depois decida quais evidências poderiam distinguir duas explicações.

Construa o modelo

  • Um algoritmo é um procedimento finito e inequívoco para uma tarefa. Um rastro registra mudanças de estado. Um invariante de laço descreve uma propriedade preservada por cada iteração e ajuda a justificar a correção.
  • algoritmo: Procedimento finito que resolve uma tarefa declarada; teste de fronteira: Teste em um limite da faixa de entrada permitida.
Algoritmos, rastros e evidências de correção: diagrama original com exemplo resolvido

Escolha evidências que possam testá-lo

  • Defina condições de entrada e saídas esperadas. Use casos de fronteira, coleções vazias quando permitido, duplicatas e valores inválidos. Distinga um algoritmo errado de uma implementação errada ou de um requisito incompleto.
  • Rastreie uma busca em uma pequena lista fictícia ordenada. Especifique a convenção de indexação. Para a busca binária, atualize os limites para que o intervalo restante diminua e rejeite entrada não ordenada, a menos que a ordenação faça parte da tarefa.

Trabalhe a partir de quantidades conhecidas

  • Indique os valores conhecidos e suas unidades. Escolha a relação porque suas premissas se adequam a este caso, então reorganize antes de substituir.
  • Conhecido: uma busca linear em uma lista de oito itens pode exigir oito comparações quando o item procurado está na última posição ou ausente. Dobrar o comprimento da lista dobra a contagem máxima de comparações sob este modelo. A busca binária reduz o intervalo pela metade aproximadamente a cada etapa, mas requer uma estrutura ordenada adequada.

Exemplo:

Uma busca linear varre todos 14 itens sem encontrar correspondência. Quantas comparações de itens ocorrem? Use a mesma sequência: quantidades conhecidas → modelo → relação → substituição → unidade e interpretação.


Verifique a conclusão e seus limites

  • Um teste de amostra bem-sucedido não prova a correção para todas as entradas válidas. Não importe sintaxe de pseudocódigo específica de Cambridge em um curso IB sem uma fonte do curso.
  • Retorne à observação original. Explique o que o resultado apoia, quais condições ele assume e uma maneira de testar uma explicação concorrente.

Atenção:

Um teste de amostra bem-sucedido prova que um algoritmo está correto para toda entrada válida. Esta afirmação é falsa: Um teste de amostra bem-sucedido não prova a correção para todas as entradas válidas. Não importe sintaxe de pseudocódigo específica de Cambridge em um curso IB sem uma fonte do curso.

Chave:

Algoritmos, rastreamentos e evidências de correção: Especifique condições de entrada e saídas esperadas. Use casos limite, coleções vazias quando permitido, duplicatas e valores inválidos. Distinga um algoritmo incorreto de uma implementação incorreta ou de um requisito incompleto.

Rastreio executável e limite

def first_index(values, target):
    for index, value in enumerate(values):
        if value == target:
            return index
    return -1
print(first_index([4, 7, 4], 4))
print(first_index([4, 7, 4], 9))
print(first_index([], 4))

Saída esperada:

0
-1
-1

O laço testa índice 0 primeiro, para em uma correspondência e retorna −1 apenas após esgotar a lista. Duplicatas retornam, portanto, o primeiro índice. Lista vazia executa nenhum corpo de laço.

Vocabulário Treinar
English Português
algorithm/ˈælɡərɪθəm/ algoritmo
boundary test/ˈbaʊndəri test/ teste de fronteira

Mais tópicos em International Baccalaureate · IB Diploma · Computer Science · SL

Entrar ou criar conta

IGCSE, A-Level & AP