Pular para o conteúdo
Matérias

International Baccalaureate · IB Diploma · Computer Science · HL

  • 1

    A.1 · Fundamentos de computação

    1.1

    Escopo e pré-requisitos

    Foco HL 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.

    Vocabulário Treinar
    English Português
    authentication/ɔːˌθentɪˈkeɪʃn/ autenticação
    authorization/ˌɔːθəraɪˈzeɪʃn/ autorização
    1.2

    Sistemas de computação, redes e requisitos

    O que explicaria esta observação?

    • Um sistema de reservas escolar pode calcular corretamente e ainda falhar se os usuários perderem o acesso ou os registros forem divulgados. O sucesso inclui o contexto do sistema.
    • 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 sistema computacional combina hardware, software, dados e pessoas. Uma rede permite comunicação usando protocolos. Os requisitos devem distinguir função de restrições como disponibilidade, segurança e acessibilidade.
    • autenticação: Verificação de uma identidade afirmada; autorização: Determinação de ações permitidas.
    Sistemas computacionais, redes e requisitos: diagrama de caso resolvido original

    Escolha evidências que possam testá-lo

    • Separe autenticação de autorização. A autenticação verifica a identidade; a autorização determina as ações permitidas. Um modelo de ameaça conecta um ativo valioso, um possível ataque e um controle adequado.
    • Use um conjunto de dados fictício de escola para definir usuários e permissões. Desenhe fluxos de dados, compare validação e verificação, e especifique testes para entrada normal, limite e inválida. Não use credenciais reais ou registros de alunos nos exercícios.

    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: um arquivo contém 12 megabytes, onde este exemplo define um megabyte como um milhão de bytes. Bits = bytes×8 = 12×1,000,000×8 = 96,000,000 bits. A 8,000,000 bits por segundo, tempo ideal = tamanho/taxa = 12 s, excluindo sobrecarga.

    Exemplo:

    Um arquivo de 40 milhões de bits transfere a 5 milhões de bits por segundo. Encontre o tempo ideal. Use a mesma sequência: quantidades conhecidas → modelo → relação → substituição → unidade e interpretação.


    Verifique a conclusão e seus limites

    • Largura de banda não é throughput real de ponta a ponta. Criptografia não garante por si só autorização correta nem elimina todos os riscos de segurança.
    • 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:

    A criptografia garante que cada usuário tenha permissões de acesso adequadas. Esta afirmação é falsa: a largura de banda não é a taxa real de transmissão de ponta a ponta. A criptografia, por si só, não assegura a autorização correta nem elimina todos os riscos de segurança.

    Chave:

    Sistemas computacionais, redes e requisitos: Separe a autenticação da autorização. A autenticação verifica a identidade; a autorização determina as ações permitidas. Um modelo de ameaça conecta um ativo valioso, um possível ataque e um controle adequado.

    Rastreio executável e limite

    size_MB, rate_Mbps = 20, 10
    bits = size_MB * 1_000_000 * 8
    if rate_Mbps <= 0:
        raise ValueError("Rate must be positive")
    seconds = bits / (rate_Mbps * 1_000_000)
    print(seconds)
    print(0 / (rate_Mbps * 1_000_000))
    

    Saída esperada:

    16.0
    0.0
    

    MB decimal significa um milhão de bytes; multiplique por oito antes de dividir por bits por segundo. Zero dados têm zero duração ideal de transmissão. Taxa não positiva é rejeitada; sobrecarga real está fora deste modelo aritmético.

  • 2

    A.2 · Redes

    2.1

    Escopo e pré-requisitos

    Foco HL 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.

    2.2

    Redes: latência, throughput e entrega em camadas

    O que explicaria esta observação?

    • Uma mensagem pequena pode chegar atrasada em uma conexão de alta largura de banda. Capacidade e atraso medem propriedades diferentes.
    • 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

    • Os pacotes transportam dados endereçados através de uma rede. Um modelo em camadas separa responsabilidades como significado da aplicação, entrega do transporte e roteamento de rede. A largura de banda descreve capacidade; throughput é a taxa de dados alcançada; latência é o atraso.
    • taxa de transferência: Taxa alcançada de transferência útil de dados; latência: Atraso experimentado na comunicação.
    Redes: latência, throughput e entrega em camadas: diagrama original de exemplo resolvido

    Escolha evidências que possam testá-lo

    • O tempo de transmissão depende do tamanho dos dados e da taxa. O atraso total pode incluir propagação, processamento e enfileiramento. A criptografia protege o conteúdo sob suas premissas, mas não elimina congestionamentos nem toda a exposição de metadados.
    • Rastrear a rota de uma mensagem usando um modelo local documentado. Registrar o tamanho da carga útil, unidades e tempo medido. Usar redes aprovadas pela escola e mensagens sintéticas; não escanear ou interceptar tráfego de outro usuário.

    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: Um arquivo de 8 megabits cruza um enlace de 2 megabits/s. Tempo ideal de transmissão = tamanho/taxa = 8/2 = 4 s. Sobrecarga de protocolo, outros usuários e latência podem tornar a conclusão observada mais lenta.

    Exemplo:

    Um arquivo de 12 megabits cruza uma conexão de 3 megabit/s. Calcule o tempo ideal de transmissão. Use a mesma sequência: quantidades conhecidas → modelo → relação → substituição → unidade e interpretação.


    Verifique a conclusão e seus limites

    • Um megabyte equivale a oito megabits antes de considerar a sobrecarga. Uma conexão com classificação mais rápida não garante baixa latência ou pontos finais seguros.
    • 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:

    Uma conexão de alta largura de banda garante zero latência. Esta afirmação é falsa: um megabyte equivale a oito megabits antes de considerar a sobrecarga. Uma conexão com classificação mais rápida não garante baixa latência ou pontos finais seguros.

    Chave:

    Redes: latência, throughput e entrega em camadas: O tempo de transmissão depende do tamanho dos dados e da taxa. O atraso total pode incluir propagação, processamento e enfileiramento. A criptografia protege o conteúdo sob suas premissas, mas não elimina congestionamentos nem toda a exposição de metadados.

    Rastreio executável e limite

    size_Mb, rate_Mbps, propagation_s = 12, 3, 0.10
    for rate in [rate_Mbps, 2 * rate_Mbps]:
        transmission_s = size_Mb / rate
        print(round(transmission_s + propagation_s, 2))
    

    Saída esperada:

    4.1
    2.1
    

    Meça desde o início da transmissão até a chegada do último bit. Tempo de transmissão serial e atraso de propagação somam-se sob este modelo ideal. Aumentar a largura de banda altera apenas o primeiro termo; saltos store-and-forward e enfileiramento adicionariam termos adicionais.

    Vocabulário Treinar
    English Português
    throughput/ˈθruːpʊt/ taxa de transferência
    latency/ˈleɪtənsi/ latência
  • 3

    A.3 · Bancos de dados

    3.1

    Escopo e pré-requisitos

    Foco HL 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.

    3.2

    Bases de dados relacionais: uma chave e um relacionamento

    O que explicaria esta observação?

    • Duplicationar o endereço de um usuário em cada pedido pode gerar registros conflitantes quando o endereço muda.
    • 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

    • Uma tabela relacional contém linhas e atributos. Uma chave primária identifica uma linha; uma chave estrangeira se liga a uma chave referenciada em outra tabela. A normalização pode reduzir duplicações evitáveis e anomalias de atualização, preservando relações significativas.
    • chave primária: Conjunto de atributos que identifica unicamente uma linha de tabela; chave estrangeira: Conjunto de atributos que referencia uma chave em outra tabela.
    Bancos de dados relacionais: uma chave e um relacionamento: diagrama original de caso resolvido

    Escolha evidências que possam testá-lo

    • Um join combina linhas conforme uma condição especificada. A contagem de resultados depende da cardinalidade do relacionamento e dos filtros. Uma restrição de chave estrangeira impõe uma regra de relacionamento; ela não criptografa automaticamente dados pessoais.
    • Projetar um pequeno conjunto de dados sintético de usuário-pedido sem informações pessoais reais. Declarar chaves, testar inserções duplicadas e de referência ausente, depois verificar o resultado de uma consulta contra uma tabela esperada trabalhada manualmente.

    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: quatro clientes têm respectivamente 2, 0, 3 e 1 pedidos. Um inner join de cliente para pedido retorna 2+0+3+1 = 6 linhas. Um left join também retém o cliente sem pedido como uma linha combinada nula, resultando em 7 aqui.

    Exemplo:

    Três clientes têm 1, 3 e 2 pedidos. Quantas linhas a junção interna de cliente-pedido retorna? Use a mesma sequência: quantidades conhecidas → modelo → relação → substituição → unidade e interpretação.


    Verifique a conclusão e seus limites

    • Uma chave primária não precisa ser um nome de pessoa. Uma junção não é uma simples concatenação de tabelas. Use consultas parametrizadas para dados não confiáveis em vez de construir SQL a partir de strings brutas.
    • 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:

    Uma chave estrangeira criptografa automaticamente cada linha. Esta afirmação é falsa: Uma chave primária não precisa ser um nome de pessoa. Uma junção não é uma simples concatenação de tabelas. Use consultas parametrizadas para dados não confiáveis em vez de construir SQL a partir de strings brutas.

    Chave:

    Bancos de dados relacionais: uma chave e um relacionamento: Uma junção combina linhas conforme uma condição especificada. A contagem do resultado depende da cardinalidade do relacionamento e dos filtros. Uma restrição de chave estrangeira aplica uma regra de relacionamento; ela não criptografa automaticamente dados pessoais.

    Rastreio executável e limite

    import sqlite3
    db = sqlite3.connect(":memory:")
    db.executescript("""CREATE TABLE c(id INTEGER PRIMARY KEY);
    CREATE TABLE o(id INTEGER PRIMARY KEY, cid INTEGER);
    INSERT INTO c VALUES(1),(2),(3);
    INSERT INTO o VALUES(10,1),(11,1),(12,3);""")
    for kind in ["INNER", "LEFT"]:
        sql = f"SELECT COUNT(*),COUNT(o.id) FROM c {kind} JOIN o ON c.id=o.cid"
        print(kind, db.execute(sql).fetchone())
    db.close()
    

    Saída esperada:

    INNER (3, 3)
    LEFT (4, 3)
    

    O left join retém cliente 2 com campos de pedido nulos. COUNT(*) inclui essa linha, enquanto COUNT(o.id) exclui nulo. Chaves primárias distinguem registros; contagem de clientes não é contagem de pedidos. A palavra-chave de junção interpolada vem de uma lista interna fixa, não de entrada do usuário.

    Vocabulário Treinar
    English Português
    primary key/ˈpraɪməri kiː/ chave primária
    foreign key/ˈfɒrən kiː/ chave estrangeira
  • 4

    A.4 · Aprendizado de máquina

    4.1

    Escopo e pré-requisitos

    Foco HL 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.

    Vocabulário Treinar
    English Português
    primary key/ˈpraɪməri kiː/ chave primária
    data leakage/ˈdeɪtə ˈliːkɪdʒ/ vazamento de dados
    4.2

    Modelos de dados e aprendizado de máquina responsável

    O que explicaria esta observação?

    • Um modelo pode obter boa pontuação aprendendo atalhos nos dados de treinamento. A avaliação deve testar a tarefa pretendida em exemplos não vistos apropriados.
    • 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 banco de dados relacional usa tabelas, chaves e relacionamentos para organizar dados. O aprendizado de máquina estima padrões a partir de dados. Os dados de treinamento e avaliação desempenham papéis diferentes.
    • chave primária: Conjunto de atributos que identifica unicamente um registro; vazamento de dados: Uso de informações indisponíveis no momento da previsão pretendida.
    Modelos de dados e aprendizado de máquina responsável: diagrama original com exemplo resolvido

    Escolha evidências que possam testá-lo

    • Uma chave primária identifica unicamente um registro; uma chave estrangeira relaciona registros. Na predição, o vazamento pode expor informações indisponíveis no momento real da decisão. A precisão sozinha pode ocultar uma distribuição desequilibrada do alvo.
    • Use registros fictícios de reserva para identificar entidades, atributos e relacionamentos. Para um exercício de aprendizado, use um conjunto de dados público e não sensível, separe os dados de treinamento e teste, e descreva quem pode ser afetado por erros. O escopo atual do objetivo CS 2027 aguarda o guia adquirido.

    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: um classificador faz 90 previsões corretas entre 100 casos. Precisão = correto/total×100 = 90%. Se 90 casos pertencem a uma classe, prever sempre essa classe resulta na mesma precisão e ainda pode falhar em todos os casos da classe minoritária.

    Exemplo:

    Um modelo faz 72 previsões corretas de 80. Encontre a porcentagem de precisão. Use a mesma sequência: quantidades conhecidas → modelo → relação → substituição → unidade e interpretação.


    Verifique a conclusão e seus limites

    • Alta precisão não é evidência de equidade ou compreensão causal. Uma chave primária de banco de dados não é simplesmente qualquer campo que pareça importante.
    • 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 classificador com 90% de precisão deve tratar todas as classes igualmente bem. Esta afirmação é falsa: Alta precisão não é evidência de equidade ou compreensão causal. Uma chave primária de banco de dados não é simplesmente qualquer campo que pareça importante.

    Chave:

    Modelos de dados e aprendizado de máquina responsável: Uma chave primária identifica unicamente um registro; uma chave estrangeira relaciona registros. Na predição, o vazamento pode expor informações indisponíveis no momento real da decisão. A precisão sozinha pode ocultar uma distribuição desequilibrada do alvo.

    Rastreio executável e limite

    tp, fn, fp, tn = 4, 1, 10, 85
    total = tp + fn + fp + tn
    accuracy = (tp + tn) / total
    recall = tp / (tp + fn) if tp + fn else None
    print(accuracy, recall)
    positives = 0
    print(0 / positives if positives else "UNDEFINED")
    

    Saída esperada:

    0.89 0.8
    UNDEFINED
    

    Precisão divide previsões corretas por todos os casos; recall positivo divide verdadeiros positivos por reais positivos. Sem casos positivos, o recall é indefinido, não zero. O conjunto de dados é fictício, sem modelo treinado ou dados pessoais.

  • 5

    B.1 · Pensamento computacional

    5.1

    Escopo e pré-requisitos

    Foco HL 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
  • 6

    B.2 · Programação

    Programa de aprendizado em breve

  • 7

    B.3 · Programação orientada a objetos

    7.1

    Escopo e pré-requisitos

    Foco HL 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.

    Vocabulário Treinar
    English Português
    instance/ˈɪnstəns/ instância
    encapsulation/ɪnˌkæpsjʊˈleɪʃn/ encapsulamento
    7.2

    Objetos: estado, comportamento e interface

    O que explicaria esta observação?

    • Dois objetos de modelo de conta bancária podem responder à mesma operação de depósito enquanto mantêm saldos diferentes.
    • 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

    • Uma classe define um tipo com estado e comportamento. Um objeto é uma instância. Encapsulamento controla o acesso através de uma interface para que operações possam preservar invariantes. Herança modela uma relação de tipo adequada; composição modela um objeto contendo ou usando outro objeto.
    • encapsulamento: Controle de acesso ao estado através de uma interface; instância: Objeto individual de uma classe.
    Objetos: estado, comportamento e uma interface: diagrama de exemplo original

    Escolha evidências que possam testá-lo

    • Uma chamada de método atua sobre uma instância particular. Alterações de estado devem satisfazer pré-condições e pós-condições. Polimorfismo permite que o código use uma interface comum com diferentes implementações quando o contrato é respeitado.
    • Implemente um modelo sintético pequeno de conta ou inventário. Teste duas instâncias independentes, rejeite operações inválidas e valores limite. Mantenha o modelo distante de contas financeiras reais e credenciais.

    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: o objeto A começa em 40 unidades e recebe 15; o objeto B começa em 20 e recebe 5. Os saldos finais são 55 e 25. Sua soma total é 80, mas nenhum saldo de objeto individual é 80.

    Exemplo:

    Uma instância começa em 12 unidades, adiciona 8 e remove 3. Encontre seu valor final. Use a mesma sequência: quantidades conhecidas → modelo → relação → substituição → unidade e interpretação.


    Verifique a conclusão e seus limites

    • Uma classe não é a mesma coisa que uma instância. Herança não é automaticamente melhor que composição. Mero ocultar um campo não prova que todas as operações preservam estado válido.
    • 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:

    Duas instâncias de uma classe devem sempre compartilhar um único saldo. Esta afirmação é falsa: Uma classe não é a mesma coisa que uma instância. Herança não é automaticamente melhor que composição. Mero ocultar um campo não prova que todas as operações preservam estado válido.

    Chave:

    Objetos: estado, comportamento e uma interface: Uma chamada de método atua sobre uma instância particular. Alterações de estado devem satisfazer pré-condições e pós-condições. Polimorfismo permite que o código use uma interface comum com diferentes implementações quando o contrato é respeitado.

    Rastreio executável e limite

    class Account:
        def __init__(self, balance):
            self.balance = balance
        def withdraw(self, amount):
            if amount < 0 or amount > self.balance:
                return False
            self.balance -= amount
            return True
    a, b = Account(15), Account(20)
    print(a.withdraw(30), a.balance, b.balance)
    print(a.withdraw(15), a.balance, b.balance)
    

    Saída esperada:

    False 15 20
    True 0 20
    

    Rejeição ocorre antes da mutação. Com saldos iniciais não negativos, saques validados preservam saldo≥0. Esta pequena classe didática expõe atributos; um design de produção deve controlar todos os caminhos de mutação, não assumir que o método sozinho garante encapsulamento.

  • 8

    B.4 · Tipos abstratos de dados (apenas HL)

    8.1

    Escopo e pré-requisitos

    Foco HL 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.

    8.2

    Tipos de dados abstratos: um contrato de operação

    O que explicaria esta observação?

    • Uma simulação de fila de espera precisa do item pendente mais antigo primeiro. Uma pilha fornece o item mais recente primeiro, então o contrato de operação importa.
    • 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 tipo de dado abstrato especifica valores e operações independentemente de uma implementação particular. Uma pilha é último a entrar, primeiro a sair; uma fila é primeiro a entrar, primeiro a sair. Uma interface de coleção precisa de comportamento definido para operações vazias e inválidas.
    • pilha: Tipo abstrato de dados último a entrar, primeiro a sair; fila: Tipo abstrato de dados primeiro a entrar, primeiro a sair.
    Tipos de dados abstratos: um contrato de operação: diagrama de caso resolvido original

    Escolha evidências que possam testá-lo

    • Escolha a estrutura para o padrão de acesso necessário. A complexidade depende da implementação e das premissas: remover o primeiro item de um array deslizante difere de avançar um ponteiro de cabeça em uma fila.
    • Rastreie sequências de operações manualmente, depois compare um programa com os estados esperados. Teste operações vazias, singulares e repetidas. Descreva o comportamento de transbordamento se a capacidade for fixa.

    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: enfileirar A, B e C, depois desenfileirar duas vezes. A e B saem; C permanece. Após enfileirar D, há dois itens pendentes, C então D. As mesmas empilhamentos em uma pilha removeriam C então B.

    Exemplo:

    Uma fila começa vazia, recebe 7 itens e remove 4. Encontre o número restante. Use a mesma sequência: quantidades conhecidas → modelo → relação → substituição → unidade e interpretação.


    Verifique a conclusão e seus limites

    • Um TDA não é um layout de memória específico. Uma fila não ordena por prioridade a menos que seu contrato defina uma fila de prioridade.
    • 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:

    Toda fila ordena automaticamente os itens por prioridade. Esta afirmação é falsa: Um TDA não é um layout de memória específico. Uma fila não ordena por prioridade a menos que seu contrato defina uma fila de prioridade.

    Chave:

    Tipos de dados abstratos: um contrato de operação: Escolha a estrutura para o padrão de acesso necessário. A complexidade depende da implementação e das premissas: remover o primeiro item de um array deslizante difere de avançar um ponteiro de cabeça em uma fila.

    Rastreio executável e limite

    from collections import deque
    queue = deque()
    queue.extend(["A", "B"])
    print(queue.popleft())
    queue.append("C")
    print(queue.popleft())
    print(list(queue))
    queue.clear()
    print(queue.popleft() if queue else "EMPTY")
    

    Saída esperada:

    A
    B
    ['C']
    EMPTY
    

    Remover da esquerda implementa FIFO. A guarda explícita de lista vazia define o resultado de limite; deque.popleft sem ela levantaria IndexError. Uma pilha remove da direita.

    Vocabulário Treinar
    English Português
    stack/stæk/ pilha
    queue/kjuː/ fila
  • 9

    Estudo de caso · Estudo de caso

    9.1

    Escopo e pré-requisitos

    Foco HL 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.

    9.2

    Análise de caso em computação: avalie um sistema proposto

    O que explicaria esta observação?

    • Um sistema de reservas escolar proposto parece eficiente, mas sua recomendação depende de usuários, restrições e evidências. Um termo técnico plausível isoladamente não justifica uma decisão.
    • 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 estudo de caso contextualiza escolhas computacionais dentro de um cenário declarado. Identifique partes interessadas, requisitos, evidências disponíveis e restrições antes de recomendar uma arquitetura ou algoritmo. Distinga um fato de cenário de uma suposição e uma previsão. Compromissos podem envolver desempenho, confiabilidade, acessibilidade, privacidade, manutenção e custo.
    • taxa de transferência: Trabalho concluído por unidade de tempo sob uma carga de trabalho declarada; teste de aceitação: Teste de se um requisito de usuário especificado é atendido.
    Análise de casos em informática: avaliar um sistema proposto: diagrama original de caso resolvido

    Escolha evidências que possam testá-lo

    • Uma recomendação deve conectar um requisito a um mecanismo e a um teste observável. Por exemplo, um problema de concorrência exige uma estratégia que previna atualizações conflitantes, mais testes demonstrando o invariante. Uma afirmação sobre resposta mais rápida exige medições de carga de trabalho comparáveis em vez de apenas uma etiqueta de complexidade. Avalie alternativas sob as mesmas condições declaradas.
    • Use um cenário original aprovado pela escola e dados sintéticos. Construa uma matriz de afirmação, evidências do cenário de suporte, explicação técnica, limitação e teste de aceitação. Marque fatos ausentes explicitamente e mostre como a recomendação mudaria se uma premissa falhasse. Isso prepara o raciocínio baseado em casos sem reproduzir um estudo de caso de avaliação IB indisponível ou inventar sua rubrica de exame.

    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: um protótipo fictício processa 120 solicitações bem-sucedidas durante uma observação de 30-segundos. A taxa de transferência é 120/30=4 solicitações/s bem-sucedidas. Um segundo protótipo processa 150 em 30 segundos, ou 5/s. O segundo tem 25% maior taxa de transferência registrada, mas nenhuma conclusão sobre latência, taxa de falha ou desempenho sob carga de trabalho maior segue sem essas medições.

    Exemplo:

    Um sistema fictivo processa com sucesso 210 solicitações em 30 s. Calcule a taxa de transferência. Use a mesma sequência: quantidades conhecidas → modelo → relação → substituição → unidade e interpretação.


    Verifique a conclusão e seus limites

    • Taxa de transferência não é tempo de resposta. Uma forte recomendação declara as condições nas quais se espera que funcione e as evidências que poderiam desconfirmá-la. Os requisitos oficiais atuais de estudo de caso de CI devem ser verificados contra a versão de avaliação aplicável.
    • 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:

    Taxa de transferência observada mais alta prova automaticamente tempo de resposta mais baixo para cada solicitação. Esta afirmação é falsa: Taxa de transferência não é tempo de resposta. Uma forte recomendação declara as condições nas quais se espera que funcione e as evidências que poderiam desconfirmá-la. Os requisitos oficiais atuais de estudo de caso de CI devem ser verificados contra a versão de avaliação aplicável.

    Chave:

    Análise de caso de computação: avalie um sistema proposto: Uma recomendação deve conectar um requisito a um mecanismo e a um teste observável. Por exemplo, um problema de concorrência exige uma estratégia que previna atualizações conflitantes, mais testes demonstrando o invariante. Uma afirmação sobre resposta mais rápida exige medições de carga de trabalho comparáveis em vez de apenas uma etiqueta de complexidade. Avalie alternativas sob as mesmas condições declaradas.

    Rastreio executável e limite

    for successful, attempted, seconds in [(240, 300, 30), (270, 300, 30)]:
        if seconds <= 0 or attempted <= 0:
            raise ValueError("Positive exposure required")
        throughput = successful / seconds
        failure_fraction = (attempted - successful) / attempted
        print(throughput, failure_fraction)
    

    Saída esperada:

    8.0 0.2
    9.0 0.1
    

    Taxa de sucesso e fração de falha usam denominadores diferentes. Tempo zero ou tentativas zero não suportam essas taxas. Esses resumos fictícios não fornecem evidências de latência, custo ou carga representativa.

    Vocabulário Treinar
    English Português
    throughput/ˈθruːpʊt/ taxa de transferência
    acceptance test/əkˈseptəns test/ teste de aceitação
  • 10

    IA · Solução computacional

    Programa de aprendizado em breve

Entrar ou criar conta

IGCSE, A-Level & AP