Ciência da Computação IGCSE (0478) tem dez tópicos em dois papéis: representação de dados, transmissão de dados, hardware, software, internet, tecnologias automatizadas e emergentes, design de algoritmos, programação, bases de dados e lógica Booleana.
O Papel 1 é teoria, marcado em vocabulário preciso — a diferença entre RAM e ROM, um compilador e um interpretador, validação e verificação. Estas são marcas de definição, e uma paráfrase geralmente falha nelas.
O Papel 2 é resolução de problemas e programação, onde as marcas vão para um método funcional: tabelas de rastreio, pseudocódigo e código que realmente funcionaria. Garante as bases numéricas e a aritmética binária primeiro — aparecem por conta própria e novamente dentro de transmissão de dados, lógica e hardware.
Um computador só pode trabalhar com dois estados: ligado e desligado. Você escreve esses como 1 e 0. Um sistema que usa apenas dois dígitos 数字 é chamado binário 二进制 (base 2).
Computadores representam todos os dados — números, texto, som e imagens — como sequências binárias de 0s e 1s
Todo tipo de dado 数据 — números, texto, som e imagens — deve ser convertido para binário antes que um computador possa usá-lo. O computador processa esse binário usando portas lógicas 逻辑门 e armazena em registros 寄存器 (pequenos e rápidos armazenamentos dentro do processador 处理器).
Um microprocessador contém milhões de transistores minúsculos, cada um sendo um interruptor ligado (1) ou desligado (0) — a base física do binário
1 Entenda como e por que os computadores usam binário para representar todas as formas de dados
• Qualquer forma de dados precisa ser convertida para binário para ser processada por um computador • Dados são processados usando portas lógicas e armazenados em registradores
2 (a) Entenda os sistemas numéricos decimal, binário e hexadecimal (b) Converta entre (i) decimal positivo e binário positivo (ii) decimal positivo e hexadecimal positivo (iii) hexadecimal positivo e binário positivo
• Decimal é um sistema base 10 • Binário é um sistema base 2 • Hexadecimal é um sistema base 16 • Valores usados serão apenas inteiros • Conversões em ambas as direções, ex.: decimal para binário ou binário para decimal • Comprimento máximo do número binário de 16 bits
3 Entenda como e por que o hexadecimal é usado como um método benéfico de representação de dados
• As áreas dentro da ciência da computação onde o hexadecimal é usado devem ser identificadas • O hexadecimal é mais fácil para humanos entenderem do que o binário, pois é uma representação mais curta do binário
4 (a) Some dois inteiros binários positivos de 8 bits (b) Entenda o conceito de transbordamento e por que ocorre na adição binária
• Um erro de transbordamento ocorrerá se o valor for maior que 255 em um registrador de 8 bits • Um computador ou dispositivo tem um limite predefinido que pode representar ou armazenar, por exemplo 16 bits • Um erro de transbordamento ocorre quando um valor fora desse limite deve ser retornado
5 Realize um deslocamento binário lógico em um inteiro binário positivo de 8 bits e entenda o efeito disso no inteiro binário positivo
• Realize deslocamentos lógicos para a esquerda • Realize deslocamentos lógicos para a direita • Realize múltiplos deslocamentos • Bits deslocados do final do registrador são perdidos e zeros são deslocados para o extremo oposto do registrador • O inteiro binário positivo é multiplicado ou dividido de acordo com o deslocamento realizado • Os bit(s) mais significativo(s) ou menos significativo(s) são perdidos
6 Use o sistema numérico complemento de dois para representar inteiros binários de 8 bits positivos e negativos
• Converta um inteiro binário ou decimal positivo para um inteiro de complemento de dois de 8 bits e vice-versa • Converta um inteiro binário ou decimal negativo para um inteiro de complemento de dois de 8 bits e vice-versa
Fonte: Programa Cambridge International
Contagem em binário: 0 a 15
Um sistema numérico 数制 é uma maneira de escrever números usando um conjunto fixo de dígitos. Você precisa de três deles.
Sistema
Base
Dígitos usados
Decimal
10
0–9
Binário
2
0 e 1
Hexadecimal
16
0–9 depois A–F
decimal 十进制 é o sistema normal de contagem (também chamado decimal).
binário usa apenas 0 e 1.
hexadecimal 十六进制 (hex) usa dezesseis dígitos: 0–9, depois A, B, C, D, E, F representam 10, 11, 12, 13, 14, 15.
A base 基数 diz quantos dígitos diferentes um sistema usa.
Valor posicional
Cada coluna em um número tem um valor posicional 位值. No binário, os valores dobram da direita para a esquerda. Para um número de 8 bits eles são:
128 64 32 16 8 4 2 1
Um quadro de valor posicional de 8 bits: os 1 ficam sob os valores que somam 150
Um bit 位 é um único 0 ou 1. Oito bits fazem um byte 字节. Quatro bits (metade de um byte) é um nibble 半字节.
Conversão entre sistemas numéricos
Decimal → Binário. Escreva os valores posicionais. Coloque um 1 sob cada valor necessário para somar seu número; coloque 0 nos demais.
Cada dígito hex mapeia para seu próprio nibble de 4 bits — F08 = 1111 0000 1000
Binário → Hexadecimal. Agrupe os bits em nibbles de 4, começando da direita. Converta cada nibble para um dígito hex.
Decimal → Hexadecimal. A maneira fácil é mudar para binário primeiro, depois binário para hex.
Esta tabela ajuda com as letras hex:
Decimal
Binário
Hex
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F
Questões da Cambridge usam números binários de até 16 bits de comprimento.
Exemplo resolvido. Converta decimal 100 para binário de 8 bits, depois para hexadecimal.
$100 = 64 + 32 + 4$, então o binário é 01100100. Dividindo em nibbles, 01100100$= 6$ e $4$, então o hexadecimal é 64.
Por que hexadecimal é usado
Hex é mais curto que binário e mais fácil para pessoas lerem e escreverem. Um dígito hex substitui 4 dígitos binários, assim você comete menos erros. O valor não muda — hex é apenas uma forma mais curta de mostrar o mesmo binário.
Cientistas da computação usam hex para:
Endereços MAC e endereços IPv6
Códigos de cores em HTML (por exemplo, #FF0000 é vermelho)
endereços de memória 内存地址 e códigos de erro
Mostrar o conteúdo da memória (um "voltagem de memória")
Explorar
Binário, decimal e hexadecimal
Digite um número e veja-o em binário, decimal e hexadecimal — e como as posições posicionais o constituem.
Somando coluna por coluna; os carregamentos se propagam para a esquerda. 118 + 48 = 166
Transbordamento
Um registrador de 8 bits pode armazenar valores decimais de 0 a 255 apenas. Se uma adição resultar em um valor acima de 255, a resposta precisará de um 9º bit. O registrador não consegue armazenar esse bit extra, então ele é perdido. Isso é chamado de overflow 溢出 (um erro de overflow). Isso acontece quando um valor sai do limite que o registrador pode armazenar.
Exemplo: 11001000 (200) $+$01001000 (72) $= 272$. Em binário isso é 1 00010000, que precisa de 9 bits. O 1 inicial não caberá em 8 bits, então a resposta armazenada estará errada.
Adicionar 200 e 72 precisa de 9 bits, mas um registrador de 8 bits descarta o nono, então a resposta está errada
Um deslocamento binário lógico 逻辑二进制移位 move todos os bits para a esquerda ou para a direita por um certo número de posições.
Bits que saem da extremidade do registrador são perdidos.
Zeros são adicionados na extremidade vazia.
Um deslocamento à esquerda multiplica o número por 2 para cada posição movida. Um deslocamento à direita divide-o por 2 para cada posição; os bits mais à direita (os bits menos significativos 最低有效位) são perdidos.
Exemplo: deslocar à esquerda 00110101 (53) em 2 posições.
Deslocamento à esquerda de 2: cada bit se move 2 posições para a esquerda, os bits superiores são perdidos e zeros preenchem a direita
O resultado é 11010100 (212), que é $53 \times 4$. Os dois bits mais à esquerda foram perdidos e dois zeros entraram pela direita. Se um 1 for empurrado para fora, essa informação está perdida para sempre.
1.1
Complemento de dois
Até agora os números eram positivos. O complemento de dois 补码 permite que um registrador de 8 bits armazene também números negativos.
No complemento de dois, o bit mais à esquerda (o bit mais significativo 最高有效位, ou MSB) tem um valor posicional negativo:
-128 64 32 16 8 4 2 1
Se o MSB for 0, o número é positivo.
Se o MSB for 1, o número é negativo.
Para tornar um número positivo negativo: escreva o binário positivo, inverter cada bit (0↔1), depois some 1.
Exemplo: tornar $-40$ negativo.
$+40$ = 00101000
inverter os bits = 11010111
somar 1 = 11011000
Então $-40$ = 11011000. Verifique somando os valores posicionais: $-128 + 64 + 16 + 8 = -40$.
O bit mais significativo vale −128, então 11011000 = −128 + 64 + 16 + 8 = −40
Para ler um número no complemento de dois negativo, basta somar os valores posicionais (o MSB conta como $-128$). A faixa de um número de complemento de dois de 8 bits é de $-128$ a $+127$.
1.2
Representação de texto
Programa
Os candidatos devem ser capazes de:
Notas e orientações
1 Entenda como e por que um computador representa texto e o uso de conjuntos de caracteres, incluindo código americano padrão para intercâmbio de informações (ASCII) e Unicode
• O texto é convertido em binário para ser processado por um computador • O Unicode permite uma gama maior de caracteres e símbolos do que o ASCII, incluindo diferentes idiomas e emojis • O Unicode requer mais bits por caractere do que o ASCII
2 Entenda como e por que um computador representa som, incluindo os efeitos da taxa de amostragem e resolução de amostragem
• Uma onda sonora é amostrada para que o som seja convertido em binário, que é processado por um computador • A taxa de amostragem é o número de amostras coletadas em um segundo • A resolução de amostragem é o número de bits por amostra • A precisão da gravação e o tamanho do arquivo aumentam à medida que a taxa de amostragem e a resolução aumentam
3 Entenda como e por que um computador representa uma imagem, incluindo os efeitos da resolução e profundidade de cor
• Uma imagem é uma série de pixels que são convertidos em binário, que é processado por um computador • A resolução é o número de pixels na imagem • A profundidade de cor é o número de bits usados para representar cada cor • O tamanho do arquivo e a qualidade da imagem aumentam à medida que a resolução e a profundidade de cor aumentam
Fonte: Programa Cambridge International
Os computadores armazenam texto atribuindo um número a cada caractere e, em seguida, armazenando esse número em binário. O conjunto de caracteres que um computador pode usar, junto com seus números, é um conjunto de caracteres 字符集.
ASCII usa 7 bits por caractere, portanto possui 128 caracteres diferentes. Isso é suficiente para letras, dígitos e símbolos comuns do inglês.
Unicode usa mais bits por caractere. Pode representar muitos mais caracteres — muitas línguas, além de símbolos e emoji 表情符号.
Como o Unicode tem mais caracteres, ele precisa de mais bits por caractere que o ASCII, então o mesmo texto ocupa mais espaço de armazenamento 存储。
ASCII usa 7 bits para 128 caracteres; Unicode usa mais bits para muito mais caracteres, mas requer mais armazenamento
Uma onda sonora 声波 é suave e está sempre mudando. Para armazená-la, o computador mede a altura da onda em momentos regulares. Isso é chamado de amostragem 采样, e cada medição é uma amostra.
A amostragem registra a altura da onda (amplitude) em momentos regulares
taxa de amostragem 采样率 é o número de amostras coletadas por segundo (medido em Hz).
resolução de amostragem 采样分辨率 é o número de bits usados para cada amostra. A altura da onda em um ponto de amostragem é sua amplitude 振幅。
Uma taxa de amostragem maior e uma resolução de amostragem maior fornecem uma gravação mais precisa, mas resultam em um arquivo maior.
Explorar
Representando som
y = a sin(bt + c)
Som é uma onda; amostragem registra sua altura várias vezes por segundo.
• Incluindo: – bit – nibble – byte – kibibyte (KiB) – mebibyte (MiB) – gibibyte (GiB) – tebibyte (TiB) – pebibyte (PiB) – exbibyte (EiB) • A quantidade da denominação anterior presente no tamanho do armazenamento de dados, ex.: – 8 bits em um byte – 1024 mebibytes em um gibibyte
2 Calcule o tamanho de arquivo de uma imagem e de um áudio, usando informações fornecidas
• As respostas devem ser dadas nas unidades especificadas na questão. Os cálculos devem usar a medida de 1024 e não 1000 • As informações fornecidas podem incluir: – resolução e profundidade de cor da imagem – taxa de amostragem, resolução e duração da faixa de áudio
3 Entenda o propósito e a necessidade de compressão de dados
• A compressão existe para reduzir o tamanho do arquivo • O impacto disso, ex.: – menor largura de banda necessária – menos espaço de armazenamento necessário – tempo de transmissão mais curto
4 Entenda como os arquivos são comprimidos usando métodos de compressão com perda e sem perda
• A compressão com perda reduz o tamanho do arquivo removendo permanentemente dados, ex.: reduzindo a resolução ou profundidade de cor, reduzindo a taxa ou resolução de amostragem • A compressão sem perda reduz o tamanho do arquivo sem perda permanente de dados, ex.: codificação por comprimento de sequência (RLE)
Fonte: Programa Cambridge International
O armazenamento de dados é medido nas unidades abaixo. Um nibble tem 4 bits e um byte tem 8 bits; a partir do kibibyte para cima, cada unidade é 1024 vezes a anterior (porque $1024 = 2^{10}$, que se encaixa no binário).
Unidade
Equivale a
bit
um único 0 ou 1
nibble
4 bits
byte
8 bits
kibibyte (KiB)
1024 bytes
mebibyte (MiB)
1024 KiB
gibibyte (GiB)
1024 MiB
tebibyte (TiB)
1024 GiB
pebibyte (PiB)
1024 TiB
exbibyte (EiB)
1024 PiB
Platos de disco rígido: o armazenamento é medido em bytes — saber o tamanho do arquivo exige largura × altura × profundidade de cor para imagens
Tamanho do arquivo de som (em bits) $=$ taxa de amostragem $\times$ resolução de amostragem $\times$ duração em segundos.
Sempre divida por 1024 (não 1000) para converter para KiB, MiB e assim por diante. Dê sua resposta na unidade solicitada pela questão.
Exemplo resolvido. Um som é gravado por 30 segundos a uma taxa de amostragem de 8,000 Hz com uma resolução de amostra de 16 bits. Encontre o tamanho do arquivo em kibibytes (KiB).
Compactação 压缩 torna um arquivo menor. Um arquivo menor:
ocupa menos espaço de armazenamento,
precisa de menos largura de banda 带宽 (a quantidade de dados que uma conexão pode transportar),
leva menos tempo para ser enviado (um tempo de transmissão 传输 mais curto).
Existem dois tipos.
Compactação sem perdas
Compactação sem perdas 无损 torna o arquivo menor com nenhuma perda permanente de dados. O arquivo original pode ser reconstruído exatamente.
Um método é codificação por comprimento de corrida 行程编码 (RLE). Ela substitui uma sequência de valores repetidos por uma cópia do valor e uma contagem de quantas vezes ele se repete. Por exemplo, WWWWWWWW (8 brancos) é armazenado como "8 W". Isso funciona bem quando os dados têm muitas repetições.
A codificação por comprimento de corrida armazena cada corrida uma única vez como uma contagem e um valor
Compactação com perdas
Compactação com perdas 有损 torna o arquivo muito menor ao remover permanentemente alguns dados. Os dados removidos não podem ser recuperados. Por exemplo:
reduzir a resolução ou profundidade de cor de uma imagem,
reduzir a taxa de amostragem ou a resolução de amostragem de um som.
Use compactação sem perdas quando você precisar manter cada detalhe (arquivos de texto e programas). Use compactação com perdas para fotos, música e vídeo, onde uma pequena perda de qualidade vale um arquivo muito menor.
Explorar
Codificação por comprimento de corrida
Observe símbolos repetidos serem comprimidos numa contagem — compressão sem perdas simples.
1.3
Dicas de prova
Converta decimal → binário subtraindo os valores posicionais (128, 64, 32 …); binário → decimal somando os valores posicionais que contêm um 1.
Para converter para hexadecimal, agrupe o binário em nibbles de 4 bits da direita; cada nibble corresponde exatamente a um dígito hexadecimal.
Overflow acontece quando um resultado precisa de mais bits do que o registrador tem (um registrador de 8 bits armazena apenas 0–255), então o bit extra é perdido.
Tamanho do arquivo em bits: para uma imagem, largura × altura × profundidade de cor; para som, taxa de amostragem × resolução × segundos. Divida por 8 para bytes, depois por 1024 para cada unidade maior.
Compactação sem perdas mantém todos os bits (texto; codificação por comprimento de corrida); compactação com perdas remove dados permanentemente (fotos, música) para um arquivo muito menor.
Transmissão de dados 数据传输 significa mover dados de um lugar para outro — por exemplo, do seu computador para um site, ou de um telefone para uma impressora.
Os dados frequentemente viajam por um cabo. Dois exemplos comuns são mostrados abaixo.
Um cabo Ethernet com conector RJ45, usado frequentemente para transmitir dados em redes cabeadasUm cabo de fibra óptica transporta dados como pulsos de luz ao longo de finas fibras de vidro
Antes de ser enviado, os dados são divididos em pequenas peças de tamanho igual chamadas pacotes 数据包. Cada pacote viaja separadamente e são reunidos na outra ponta.
O uso de pacotes tem benefícios:
se um pacote for perdido ou danificado, apenas aquele pacote é reenviado, não todo o arquivo;
os pacotes podem tomar rotas diferentes, evitando assim rotas congestionadas ou quebradas;
muitos usuários podem compartilhar a mesma conexão ao mesmo tempo.
2.1
A estrutura de um pacote
Programa
Os candidatos devem ser capazes de:
Notas e orientações
1 (a) Entenda que os dados são divididos em pacotes para serem transmitidos
(b) Descreva a estrutura de um pacote
• Um pacote de dados contém um: – cabeçalho do pacote – payload – trailer • O cabeçalho do pacote inclui o: – endereço de destino – número do pacote – endereço do remetente
(c) Descreva o processo de comutação por pacotes
• Os dados são divididos em pacotes • Cada pacote pode seguir uma rota diferente • Um roteador controla a rota que um pacote segue • Os pacotes podem chegar fora de ordem • Assim que o último pacote chegar, os pacotes são reordenados
2 (a) Descreva como os dados são transmitidos de um dispositivo para outro usando diferentes métodos de transmissão de dados
(b) Explique a adequação de cada método de transmissão de dados, para um cenário dado
• Incluindo as vantagens e desvantagens de cada método
3 Entenda a interface bus serial universal (USB) e explique como ela é usada para transmitir dados
• Incluindo os benefícios e desvantagens da interface
Fonte: Programa Cambridge International
Cada pacote tem três partes.
Um pacote possui um cabeçalho, um corpo (os dados) e um rodapé; o cabeçalho contém os endereços e o número do pacote
Parte
O que contém
cabeçalho do pacote 包头
informações de controle (veja abaixo)
corpo 有效载荷
os próprios dados sendo transportados
rodapé 尾部
indica onde o pacote termina, além de uma verificação de erro
O cabeçalho do pacote armazena:
o endereço IP do remetente 地址 (de onde o pacote veio),
o endereço IP do destinatário (para onde está indo),
o número do pacote (para que os pacotes possam ser reorganizados na ordem correta).
2.1
Comutação por pacotes
Comutação por pacotes 数据包交换 é a forma como os pacotes são enviados através de uma rede.
Os roteadores encaminham pacotes, e diferentes pacotes podem seguir rotas distintas até o mesmo destinatário
Dispositivos especiais chamados roteadores 路由器 leem o cabeçalho de cada pacote e escolhem a melhor rota para ele.
Cada pacote pode seguir seu próprio caminho, então os pacotes podem viajar por caminhos diferentes.
Os pacotes podem chegar fora de ordem.
Quando o último pacote chegar, os pacotes serão reorganizados usando seus números de pacote.
Explorar
Como os dados viajam em pacotes
Passe por etapas com comutação de pacotes. Dividir um arquivo em pacotes endereçados é por que um pacote perdido só precisa ser reenviado, e por que muitos usuários podem compartilhar a mesma linha.
os bits podem chegar em momentos ligeiramente diferentes em fios longos
Serial envia um bit após o outro ao longo de um único fio. Paralelo envia vários bits ao mesmo tempo ao longo de vários fios, sendo mais rápido em curtas distâncias.
Serial envia um bit por vez por um único fio; paralelo envia vários bits ao mesmo tempo por vários fios
Simplex, meia-duplex e full-duplex
Estes descrevem a direção pela qual os dados podem viajar.
Simplex é apenas uma via; half-duplex é ambas as vias, mas uma de cada vez; full-duplex é ambas as vias ao mesmo tempo
Método
Direção
simplex 单工
apenas uma direção (ex.: computador → impressora)
half-duplex 半双工
ambas as direções, mas apenas uma de cada vez (ex.: walkie-talkie)
full-duplex 全双工
ambas as direções ao mesmo tempo (ex.: chamada telefônica)
Escolhendo um método
A escolha depende da distância, da velocidade necessária, do custo e se os dados precisam viajar em ambas as direções ao mesmo tempo.
1 Entenda a necessidade de verificar erros após a transmissão de dados e como esses erros podem ocorrer
• Erros podem ocorrer durante a transmissão de dados devido a interferências, ex.: perda de dados, ganho de dados e alteração de dados
2 Descreva os processos envolvidos em cada um dos seguintes métodos de detecção de erros para detectar erros nos dados após a transmissão: verificação de paridade (ímpar e par), soma de verificação e verificação por eco
• Incluindo verificação de byte de paridade e bloco de paridade
3 Descreva como um dígito de verificação é usado para detectar erros na entrada de dados e identifique exemplos de quando um dígito de verificação é usado, incluindo números internacionais padronizados de livros (ISBN) e códigos de barras
4 Descreva como uma solicitação de repetição automática (ARQ) pode ser usada para estabelecer que os dados foram recebidos sem erros
• Incluindo o uso de: – confirmações positivas/negativas – timeout
Fonte: Programa Cambridge International
Enquanto os dados viajam, interferência 干扰 pode alterá-los. Três coisas podem dar errado:
perda de dados — alguns bits não chegam;
ganho de dados — bits extras são adicionados;
alteração de dados — alguns bits são invertidos.
Assim, o destinatário verifica se os dados chegaram corretamente.
Uma verificação de paridade 奇偶校验 adiciona um bit extra, o bit de paridade 奇偶校验位, a cada byte. Existem dois tipos:
Um bit de paridade é adicionado para tornar o número de 1s par (ou ímpar)
paridade par — o número total de 1s no byte (incluindo o bit de paridade) deve ser par;
paridade ímpar — o número total de 1s deve ser ímpar.
Exemplo (paridade par): os dados 1011001 têm quatro 1s, que já é par, então o bit de paridade é 0:
parity bit + data
0 1011001
Para encontrar um erro: o destinatário conta os 1s. Se foi acordada paridade par, mas um byte chega com um número ímpar de 1s, ocorreu um erro durante a transmissão.
Uma verificação de paridade não consegue detectar todos os erros. Se dois bits forem invertidos, a contagem ainda pode parecer correta.
Exemplo resolvido. Um único bit de paridade informa que um erro aconteceu, mas não onde. Um bloco de paridade 奇偶校验 block pode localizar o bit exato. Vários bytes são enviados juntos, cada um com um bit de paridade de linha, e um byte de paridade extra parity byte 奇偶校验字节 na parte inferior contém um bit de paridade para cada coluna. A paridade par é usada abaixo, e um bit foi invertido durante a transmissão. Encontre-o.
A linha byte 3 viola a paridade par, e a coluna b3 também viola a paridade par. O bit invertido está onde elas se cruzam: byte 3, bit b3. Alterá-lo de volta de 1 para 0 corrige os dados. Um único bit de paridade apenas diz que um erro aconteceu; um bloco de paridade diz exatamente onde, permitindo que o destinatário até repare o erro.
Soma de verificação
Uma soma de verificação 校验和 é um valor calculado a partir de todos os dados antes do envio. O destinatário recalcula a soma de verificação a partir dos dados recebidos. Se os dois valores não coincidirem, ocorreu um erro e os dados são reenviados.
Verificação por eco
Em uma verificação por eco 回送校验, o destinatário reenvia os dados ao remetente. O remetente os compara com o original. Se diferirem, ocorreu um erro. (Isso exige que os dados sejam enviados duas vezes, sendo lento.)
Automatic Repeat reQuest (ARQ)
Automatic Repeat reQuest 自动重传请求 (ARQ) usa mensagens chamadas acknowledgements 确认.
O destinatário envia um acknowledgement positivo se um pacote chegou corretamente, ou um acknowledgement negativo se não chegou.
O remetente inicia um temporizador de timeout 超时. Se nenhum acknowledgement positivo retornar a tempo, o remetente reenvia o pacote.
Dígito verificador
Um dígito verificador 校验码 é um dígito extra colocado no final de um número, calculado a partir dos outros dígitos. É usado para encontrar erros quando um número é digitado.
Quando o número é inserido, o dígito verificador é recalculado e comparado. Pode capturar:
um dígito incorreto digitado,
um erro de transposição 换位错误 (dois dígitos trocados, ex.: 21 digitado como 12),
um dígito omitido ou um dígito extra adicionado,
um erro fonético (um dígito que soa similar, ex.: 13 e 30).
Dígitos verificadores são usados em códigos de barras 条形码 e ISBNs (números de livros).
Explorar
Laboratório de conceitos de computação
Classifique exemplos concretos pelo conceito de computação que eles demonstram.
1 Entenda a necessidade e o propósito da criptografia ao transmitir dados
2 Entenda como os dados são criptografados usando criptografia simétrica e assimétrica
• A criptografia assimétrica inclui o uso de chaves pública e privada
Fonte: Programa Cambridge International
Por que precisamos de criptografia
Criptografia 加密 embaralha os dados para que não possam ser compreendidos se forem interceptados 拦截 (capturados) por pessoa errada. Os dados legíveis são chamados de texto claro 明文; após a criptografia tornam-se texto cifrado 密文.
A criptografia não impede que os dados sejam interceptados. Ela apenas impede que os dados sejam compreendidos.
Criptografia simétrica
Criptografia simétrica 对称加密 usa uma única chave 密钥 tanto para criptografar quanto para descriptografar os dados. O remetente e o destinatário devem compartilhar essa mesma chave secreta. O risco é que a própria chave possa ser roubada durante o compartilhamento.
Criptografia assimétrica
Criptografia assimétrica 非对称加密 usa duas chaves diferentes:
uma chave pública 公钥 que qualquer um pode ter, usada para criptografar;
uma chave privada 私钥 que é mantida em segredo, usada para descriptografar.
Dados criptografados com a chave pública só podem ser descriptografados com a chave privada correspondente, portanto a chave nunca precisa ser compartilhada. Isso é mais seguro do que compartilhar uma única chave secreta.
Simétrica usa uma chave compartilhada; assimétrica usa uma chave pública para criptografar e uma privada para descriptografar
Explorar
A cifra de César
Desloque cada letra para encriptar uma mensagem — a ideia mais simples de uma cifra e a sua chave.
Os dados são enviados em pacotes (um cabeçalho com os endereços e número do pacote, um payload e um trailer). Os pacotes podem seguir rotas diferentes e chegar fora de ordem, sendo depois reordenados pelos seus números de pacote.
Corresponda os tipos de transmissão: serial (um bit por vez, bom para longas distâncias) vs paralelo (vários bits ao mesmo tempo, curtas distâncias); simplex / half-duplex / full-duplex descrevem a direção.
Um único bit de paridade mostra apenas que um erro aconteceu; um bloco de paridade localiza o bit exato errado — a linha e a coluna que falham.
Aprenda os métodos de detecção de erros e o que cada um faz: verificação de paridade, soma de verificação, verificação por eco, ARQ e dígito verificador (para números digitados).
Simétrica usa uma chave compartilhada; assimétrica usa uma chave pública para criptografar e uma chave privada para descriptografar, evitando o compartilhamento de chaves secretas.
1 (a) Entenda o papel da unidade central de processamento (CPU) em um computador
• A CPU processa instruções e dados que são inseridos no computador para que o resultado possa ser exibido
(b) Entenda o que se entende por microprocessador
• Um microprocessador é um tipo de circuito integrado em um único chip
2 (a) Entenda o propósito dos componentes em uma CPU, em um computador que tem uma arquitetura Von Neumann
• Incluindo: – unidades: unidade aritmética e lógica (ALU) e unidade de controle (CU) – registradores: contador de programa (PC), registrador de endereço de memória (MAR), registrador de dados de memória (MDR), registrador de instrução corrente (CIR) e acumulador (ACC) – barramentos: barramento de endereços, barramento de dados e barramento de controle
(b) Descreva o processo do ciclo busca–decodificação–execução (FDE), incluindo o papel de cada componente no processo
• Como instruções e dados são buscados da memória de acesso aleatório (RAM) para dentro da CPU, como eles são processados usando cada componente e como são então executados • Armazenando dados e endereços em registradores específicos • Usando barramentos para transmitir dados, endereços e sinais • Usando unidades para buscar, decodificar e executar dados e instruções
3 Entenda o que se entende por núcleo, cache e relógio em uma CPU e explique como eles podem afetar o desempenho de uma CPU
• O número de núcleos, tamanho do cache e velocidade do relógio podem afetar o desempenho de uma CPU
4 Entenda o propósito e o uso de um conjunto de instruções para uma CPU
• Um conjunto de instruções é uma lista de todos os comandos que podem ser processados por uma CPU, e os comandos são código de máquina
5 Descreva o propósito e as características de um sistema embarcado e identifique dispositivos em que eles são comumente usados
• Um sistema embarcado é usado para realizar funções dedicadas. Por exemplo, em eletrodomésticos, carros, sistemas de segurança, sistemas de iluminação ou máquinas expendedoras. Isso é diferente de um computador de propósito geral que é usado para realizar muitas funções diferentes. Por exemplo, em um computador pessoal (PC) ou laptop
Fonte: Programa Cambridge International
O ciclo fetch-decode-execute
A unidade central de processamento 中央处理器 (CPU) é a parte do computador que processa dados e executa instruções 指令. Ela roda programas repetindo um ciclo, milhões de vezes a cada segundo.
Unidade central de processamento (CPU): o chip que processa dados e executa instruções
Componentes da CPU
Componente
O que faz
unidade aritmética e lógica 算术逻辑单元 (ALU)
realiza cálculos (soma, subtração) e operações lógicas (comparação)
unidade de controle 控制单元 (CU)
envia sinais de controle para gerenciar todas as partes e dizer o que fazer
registros 寄存器
armazenamentos muito pequenos e rápidos que seguram uma peça de dados por vez
Os componentes são conectados por barramentos 总线 — conjuntos de fios que transportam informações:
o barramento de endereços 地址总线 carrega endereços de memória (uma direção);
o barramento de dados 数据总线 carrega dados e instruções (ambas as direções);
o barramento de controle 控制总线 carrega sinais de controle.
A CPU contém a unidade de controle, a ALU e os registros; três barramentos a ligam à memória principal
Registros especiais
Esses registros são usados durante o ciclo de busca-execução.
Registro
Finalidade
contador de programa 程序计数器 (PC)
segura o endereço da próxima instrução
registro de endereço de memória 内存地址寄存器 (MAR)
segura o endereço para leitura ou gravação
registro de dados de memória 内存数据寄存器 (MDR)
segura o dado ou instrução recém-buscado
registro de instrução atual 当前指令寄存器 (CIR)
segura a instrução sendo executada agora
acumulador 累加器 (ACC)
segura o resultado dos cálculos da ALU
O ciclo de busca-execução
O ciclo de busca-execução 取指执行周期 tem três etapas, repetidas sucessivamente:
Busca — a instrução é copiada da memória 内存 para a CPU (usando PC, MAR e MDR). O PC então aumenta em 1.
Decodificação — a unidade de controle determina o significado da instrução.
Execução — a instrução é realizada (a ALU pode fazer um cálculo, com o resultado indo para o acumulador).
O processador repete três etapas: buscar a instrução, decodificá-la e, em seguida, executá-la
Memória cache
Cache 高速缓存 é uma pequena quantidade de memória muito rápida dentro ou próxima à CPU. Ela armazena dados e instruções que a CPU usa frequentemente. A CPU pode ler da cache muito mais rápido do que da memória principal, fazendo com que o computador funcione mais rápido.
O que afeta o desempenho da CPU
Característica
Efeito
número de núcleos 核心
cada núcleo pode executar instruções sozinho, então mais núcleos podem realizar mais trabalho ao mesmo tempo
tamanho do cache
um cache maior armazena mais dados prontos para a CPU, reduzindo as esperas
velocidade de clock 时钟速度
número de ciclos por segundo; velocidade de clock mais alta executa mais instruções por segundo
Exemplo resolvido. Dois computadores são idênticos, exceto que o A tem uma CPU single-core de 3.0 GHz com 2 MB de cache, e o B tem uma CPU quad-core de 2.4 GHz com 8 MB de cache. Qual é melhor para edição de vídeo, e por quê? A edição de vídeo divide-se em muitas tarefas que podem ser executadas simultaneamente, então os quatro núcleos do B podem processar vários fluxos em paralelo enquanto o A só pode trabalhar em um por vez. O cache maior do B também mantém mais dados frequentemente usados próximos à CPU, reduzindo a frequência de buscas na RAM. O B é a melhor escolha, mesmo com a menor velocidade de clock do A. Nunca responda apenas pela velocidade de clock: avalie núcleos, cache e velocidade de clock juntos, vinculando cada um à tarefa sendo realizada.
Sistemas embarcados
Um sistema embarcado 嵌入式系统 é um pequeno computador construído dentro de um dispositivo maior para realizar uma tarefa fixa. Ele é dedicado a essa tarefa, geralmente é pequeno e de baixo custo, e não possui sistema operacional geral. Exemplos: máquina de lavar, micro-ondas, set-top box.
A placa-mãe dentro de um GPS: um sistema embarcado é um pequeno computador dedicado como este, integrado a um dispositivo para realizar uma tarefa fixa
Explorar
O ciclo fetch-execute
Gire em torno do loop que a CPU repete bilhões de vezes por segundo — busque a instrução, decodifique o que ela significa, execute-a, e faça tudo novamente.
1 Entenda o que se entende por um dispositivo de entrada e por que ele é necessário
• Incluindo: – leitor de código de barras – câmera digital – teclado – microfone – mouse óptico – leitor de código QR – tela sensível ao toque (ressistiva, capacitiva e infravermelho) – scanners bidimensionais (2D) e tridimensionais (3D)
2 Entenda o que se entende por um dispositivo de saída e por que ele é necessário
• Incluindo: – atuador – projetor DLP (digital light processing) – impressora jato de tinta – impressora a laser – tela LED (light emitting diode) – projetor LCD (liquid crystal display) – tela LCD – alto-falante – impressora 3D
3 (a) Entenda o que se entende por um sensor e os propósitos dos sensores
• Limitado a: – acústico – acelerômetro – fluxo – gás – umidade – infravermelho – nível – luz – campo magnético – umidade do solo – pH – pressão – proximidade – temperatura
(b) Identifique o tipo de dados capturados por cada sensor e entenda quando cada sensor seria usado, incluindo a seleção do sensor mais adequado para um contexto dado
Fonte: Programa Cambridge International
Um dispositivo de entrada envia dados para dentro do computador.
Dispositivo
Como funciona
leitor de código de barras 条形码扫描器
projeta luz sobre as barras e lê o padrão refletido de volta
leitor de código QR 二维码扫描器
uma câmera lê um padrão quadrado de blocos preto e branco
teclado
pressionar uma tecla envia um código para aquele caractere
mouse óptico 光电鼠标
uma luz e um sensor rastreiam o movimento sobre uma superfície
microfone
converte ondas sonoras em sinal elétrico
câmera digital
uma lente foca a luz em um sensor que registra pixels
sensores 传感器
medem uma grandeza física (como temperatura ou luz) e a enviam como dados
tela sensível ao toque 触摸屏
detecta onde seu dedo toca a tela
Um teclado: cada pressionamento de tecla envia um código para aquele caractereUm mouse óptico: uma luz e um sensor rastreiam seu movimento na mesaUm scanner de mesa plana: ele projeta luz sobre uma página para copiá-la para o computadorUm leitor de código de barras lê o padrão de barras e o envia para o computadorUma câmera digital: uma lente foca a luz sobre um sensor que registra os pixelsUm microfone converte ondas sonoras em um sinal elétricoUm sensor mede uma grandeza física (neste caso, temperatura) e a envia como dados
Uma tela sensível ao toque pode funcionar de três maneiras:
resistiva 电阻式 — duas camadas são pressionadas juntas onde você toca;
capacitiva 电容式 — ela感知 o微小电荷 do seu dedo;
infra-vermelha 红外线 — seu dedo interrompe uma grade de raios de luz.
Uma tela sensível ao toque detecta onde seu dedo a toca
Explorar
Laboratório de Dispositivos e Armazenamento
Classifique exemplos de computação pelo que eles fazem em um sistema.
Um dispositivo de saída envia dados para fora do computador para o usuário.
Dispositivo
Como funciona
atuador 执行器
converte um sinal elétrico em movimento (ex.: motor ou válvula)
tela LCD/LED
mostra imagens usando uma grade de pontos coloridos minúsculos
projetor 投影仪
projeta uma imagem ampliada em uma parede ou tela
impressora jato de tinta 喷墨打印机
pulveriza pequenas gotas de tinta sobre papel
impressora laser 激光打印机
usa um laser e pó (toner) fixado no papel por calor
impressora 3D
constrói um objeto sólido camada por camada
alto-falante 扬声器
converte um sinal elétrico em som
Uma impressora jato de tinta pulveriza pequenas gotas de tinta no papelUma impressora a laser usa um laser e pó (toner) fixado no papel por calorUma impressora 3D constrói um objeto sólido camada por camadaUm monitor LCD/LED mostra imagens usando uma grade de pontos coloridos minúsculosUm alto-falante converte um sinal elétrico em somFones de ouvido convertem um sinal elétrico em som para um ouvinteUm atuador, como um motor, converte um sinal elétrico em movimento
1 Entenda o que se entende por armazenamento primário
• O armazenamento primário é acessado diretamente pela CPU • Incluindo o papel de: – memória de acesso aleatório (RAM) – memória apenas leitura (ROM) • Incluindo por que um computador precisa tanto de RAM quanto de ROM, e a diferença entre eles
2 Entenda o que se entende por armazenamento secundário
• O armazenamento secundário não é acessado diretamente pela CPU e é necessário para o armazenamento mais permanente de dados
3 Descreva o funcionamento do armazenamento magnético, óptico e de estado sólido (memória flash) e dê exemplos de cada um
• O armazenamento magnético usa pratos divididos em trilhas e setores. Os dados são lidos e gravados usando eletromagnetos. Incluindo disco rígido (HDD) • O armazenamento óptico usa lasers para criar e ler pits e lands. Inclui: CD, DVD e Blu-ray • O estado sólido (memória flash) usa tecnologia NAND ou NOR. Transistores são usados como portas de controle e portas flutuantes. Inclui: unidade de estado sólido (SSD), cartão SD e drive USB
4 Descreva o que se entende por memória virtual, como ela é criada e utilizada e por que é necessária
• Páginas de dados são transferidas entre RAM e memória virtual conforme necessário
5 Compreenda o que se entende por armazenamento em nuvem
• O armazenamento em nuvem pode ser acessado remotamente, em comparação ao armazenamento de dados localmente
6 Explique as vantagens e desvantagens de armazenar dados na nuvem em comparação com o armazenamento local
• Servidores físicos e armazenamento são necessários para armazenar dados no armazenamento em nuvem
Fonte: Programa Cambridge International
Armazenamento primário 主存储器 é memória que a CPU pode usar diretamente. Existem dois tipos.
A RAM é volátil e guarda programas em execução; a ROM é não volátil e de leitura única
RAM
ROM
Nome completo
memória de acesso aleatório 随机存取存储器
memória de leitura única 只读存储器
Leitura/escrita
leitura e gravação
leitura única
Mantém dados sem energia?
não — é volátil 易失性
sim — é não volátil 非易失性
Guarda
programas e dados em uso agora
instruções de inicialização (como iniciar o computador)
Ambos são necessários: a ROM diz ao computador como iniciar, e a RAM guarda os programas que você executa.
Um pente de RAM (memória de acesso aleatório): ele guarda os programas e dados em uso agora
Armazenamento secundário 辅助存储器 mantém dados permanentemente, mesmo quando a energia está desligada. É não volátil e usado para armazenamento de longo prazo. Existem três tipos.
Tipo
Como armazena dados
Exemplos
armazenamento magnético 磁存储
dados são armazenados como pontos magnetizados em discos giratórios
disco rígido (HDD), fita magnética
armazenamento óptico 光存储
dados são armazenados como marcas lidas por um laser
CD, DVD, Blu-ray
armazenamento de estado sólido 固态存储
dados são armazenados em memória flash 闪存, sem peças móveis
SSD, pendrive, cartão de memória
Interior de um disco rígido (HDD): o disco brilhante gira e o braço lê os dados magnetizadosA fita magnética armazena dados em uma longa faixa magnética; é barata para grandes backupsUm disco óptico como um CD ou DVD: um laser lê as marcas em sua superfície brilhanteUma unidade de estado sólido (SSD) armazena dados em chips de memória flash e não possui peças móveisUm pendrive armazena dados em memória flash e não possui peças móveisO armazenamento forma uma hierarquia: registradores e cache são os mais rápidos, mas menores; o armazenamento secundário é o mais lento, mas maior
Explorar
Laboratório de Dispositivos e Armazenamento
Classifique exemplos de computação pelo que eles fazem em um sistema.
Quando a RAM fica cheia, o computador pode usar parte do armazenamento secundário como memória extra, falsa. Isso é chamado de memória virtual 虚拟内存.
Dados que não são necessários agora são movidos da RAM para o disco, o que libera espaço na RAM para outros programas. Isso permite que você execute mais programas do que a RAM sozinha poderia armazenar. É mais lento, porque o armazenamento secundário é muito mais lento que a RAM.
Quando a RAM está cheia, dados não utilizados são movidos para o disco para liberar RAM — mais lento, mas permite que mais programas rodem
1 Entenda o que se entende por armazenamento primário
• O armazenamento primário é acessado diretamente pela CPU • Incluindo o papel de: – memória de acesso aleatório (RAM) – memória apenas leitura (ROM) • Incluindo por que um computador precisa tanto de RAM quanto de ROM, e a diferença entre eles
2 Entenda o que se entende por armazenamento secundário
• O armazenamento secundário não é acessado diretamente pela CPU e é necessário para o armazenamento mais permanente de dados
3 Descreva o funcionamento do armazenamento magnético, óptico e de estado sólido (memória flash) e dê exemplos de cada um
• O armazenamento magnético usa pratos divididos em trilhas e setores. Os dados são lidos e gravados usando eletromagnetos. Incluindo disco rígido (HDD) • O armazenamento óptico usa lasers para criar e ler pits e lands. Inclui: CD, DVD e Blu-ray • O estado sólido (memória flash) usa tecnologia NAND ou NOR. Transistores são usados como portas de controle e portas flutuantes. Inclui: unidade de estado sólido (SSD), cartão SD e drive USB
4 Descreva o que se entende por memória virtual, como ela é criada e utilizada e por que é necessária
• Páginas de dados são transferidas entre RAM e memória virtual conforme necessário
5 Compreenda o que se entende por armazenamento em nuvem
• O armazenamento em nuvem pode ser acessado remotamente, em comparação ao armazenamento de dados localmente
6 Explique as vantagens e desvantagens de armazenar dados na nuvem em comparação com o armazenamento local
• Servidores físicos e armazenamento são necessários para armazenar dados no armazenamento em nuvem
Fonte: Programa Cambridge International
Armazenamento em nuvem 云存储 mantém seus dados em servidores físicos remotos, acessados pela internet, em vez de no seu próprio dispositivo.
Vantagens: acesso de qualquer lugar em qualquer dispositivo; nenhum hardware de armazenamento local para comprar ou manter; fácil de compartilhar arquivos e fazer backup automaticamente.
Desvantagens: precisa de uma conexão com a internet funcionando; custo de assinatura recorrente; segurança e privacidade dependem do provedor; você depende desse provedor permanecer disponível e em funcionamento.
Gabinetes de servidores de data center: o armazenamento em nuvem mantém seus arquivos em servidores remotos aos quais você acessa pela rede
1 Entenda que um computador precisa de uma placa de interface de rede (NIC) para acessar uma rede
2 Compreenda o que se entende por, e a finalidade de, um endereço de controle de acesso de mídia (MAC), incluindo sua estrutura
• Uma placa de interface de rede recebe um endereço MAC no momento da fabricação • Endereços MAC geralmente são escritos em hexadecimal • Endereços MAC são criados usando o código do fabricante e o código de série
3 (a) Compreenda o que se entende por, e a finalidade de, um endereço de protocolo de internet (IP) (b) Entenda que existem diferentes tipos de endereço IP
• Um endereço IP é atribuído pela rede e pode ser estático ou dinâmico • Incluindo as características e diferenças entre IPv4 e IPv6
4 Descreva o papel de um roteador em uma rede
• Um roteador envia dados para um destino específico em uma rede • Um roteador pode atribuir endereços IP • Um roteador pode conectar uma rede local à internet
Fonte: Programa Cambridge International
Placa de interface de rede (NIC)
Uma placa de interface de rede 网络接口卡 (NIC) é o hardware que permite que um dispositivo se conecte a uma rede e envie e receba dados. Cada NIC tem um endereço MAC embutido.
Endereço MAC e endereço IP
Um endereço MAC (media access control 介质访问控制 address) é um número que identifica um dispositivo físico. O fabricante o define, e normalmente ele não muda. Ele é escrito em hexadecimal.
Um endereço IP (internet protocol 网际协议 address) é um número que identifica um dispositivo em uma rede. Ele é atribuído pela rede e pode mudar.
Assim, um endereço MAC permanece com o dispositivo, enquanto um endereço IP depende da rede que o dispositivo está usando.
Existem duas versões de endereço IP. IPv4 é de 32 bits, escrito como quatro números decimais 0–255 (por exemplo 192.168.0.1); o mais novo IPv6 é de 128 bits, escrito como oito grupos de hexadecimais separados por dois-pontos, oferecendo imensamente mais endereços. Um endereço também pode ser estático 静态 (fixo, definido manualmente e nunca mudando) ou dinâmico 动态 (entregue pelo roteador/rede cada vez que o dispositivo se conecta, então pode mudar).
Roteador
Um roteador 路由器 conecta diferentes redes entre si — por exemplo, sua rede doméstica à internet. Ele lê o endereço IP em cada pacote e o encaminha para a rede correta.
Um roteador Wi-Fi: hardware de rede encaminha pacotes entre dispositivos e a Internet mais ampla
Explorar
Laboratório de roteamento de rede
Siga os dados de um dispositivo através do hardware de rede e protocolos.
Aprenda o ciclo busca-decodificação-execução e os registradores especiais: o program counter segura o endereço da próxima instrução, o MAR/MDR carregam o endereço/dado, e o accumulator segura o resultado da ALU.
O desempenho da CPU melhora com mais cores, um cache maior e uma clock speed mais alta.
RAM é volátil (perde seus dados sem energia) e guarda programas em uso; ROM é não volátil e apenas-leitura (as instruções de inicialização).
Combine os tipos de armazenamento secundário: magnético (HDD, fita), óptico (CD/DVD, lido por laser), estado sólido (SSD, USB, flash — sem partes móveis).
Um endereço MAC identifica o dispositivo físico e normalmente não muda; um endereço IP é dado pela rede e pode mudar.
Um sistema computacional é composto por duas partes que trabalham juntas.
Hardware são as partes físicas; software são os programas
Hardware 硬件 é as partes físicas 物理的 do computador — as partes que você pode tocar. Exemplos: a CPU, memória, teclado, tela e disco rígido.
Software 软件 são os programas 程序 que controlam o computador e dizem ao hardware o que fazer.
O hardware não pode fazer nada útil sozinho. O software precisa de hardware para rodar. Ambos são necessários.
A placa-mãe e as peças conectadas a ela são hardware — as partes físicas que você pode tocarUm sistema operacional é software — os programas que dizem ao hardware o que fazer
1 Descreva a diferença entre software de sistema e software de aplicação e forneça exemplos de cada um
• Software de sistema fornece os serviços de que o computador necessita, incluindo sistema operacional e software utilitário • Software de aplicação fornece os serviços de que o usuário necessita
2 Descreva o papel e as funções básicas de um sistema operacional
• Incluindo: – gerenciamento de arquivos – tratamento de interrupções – fornecimento de interface – gerenciamento de periféricos e drivers – gerenciamento de memória – gerenciamento de multitarefa – fornecimento de plataforma para execução de aplicativos – fornecimento de segurança do sistema – gerenciamento de contas de usuários
3 Entenda como hardware, firmware e um sistema operacional são necessários para executar software de aplicação
• Aplicativos são executados no sistema operacional • O sistema operacional é executado no firmware • O bootloader (firmware) é executado no hardware
4 Descreva o papel e a operação de interrupções
• Incluindo: – como uma interrupção é gerada – como ela é tratada usando uma rotina de serviço de interrupção – o que acontece como resultado das interrupções • Interrupções de software incluem divisão por zero e dois processos tentando acessar o mesmo local de memória • Interrupções de hardware incluem pressionar uma tecla no teclado e mover o mouse
Fonte: Programa Cambridge International
O software é dividido em dois tipos.
O software divide-se em software de sistema (faz o computador rodar) e software de aplicação (permite que o usuário realize uma tarefa)
Software de sistema
Software de sistema 系统软件 controla o próprio computador e fornece uma base para outros programas rodarem. Exemplos:
sistema operacional 操作系统 (veja abaixo);
compilador 编译器 e linker 链接器 (ferramentas que transformam programas em uma forma que o computador pode executar);
driver de dispositivo 设备驱动程序 — software que permite que o sistema operacional controle um pedaço de hardware;
software utilitário 实用程序 — ferramentas pequenas que cuidam do computador (por exemplo antivírus, backup, limpeza de disco).
Abaixo do sistema operacional está o firmware 固件 – software armazenado permanentemente em ROM ou flash que roda no momento em que o computador é ligado. O BIOS e o bootloader 引导程序 são firmware: eles testam o hardware e depois carregam o sistema operacional. Assim, as camadas se empilham hardware → firmware → sistema operacional → software de aplicação, cada uma rodando na camada abaixo.
Software de aplicação
Software de aplicação 应用软件 permite que o usuário realize uma tarefa útil. Exemplos:
processamento de texto 文字处理 software (escrever documentos);
planilha 电子表格 software (trabalhar com números em uma grade);
sistema de gerenciamento de banco de dados 数据库管理系统 (armazenar e buscar dados);
providing a user interface/prəˈvaɪdɪŋ ə ˈjuːzə ˈɪntəfeɪs/
用户界面
yòng hù jiè miàn
managing peripherals/ˈmænɪdʒɪŋ pəˈrɪfərəlz/
外围设备
wài wéi shè bèi
managing multitasking/ˈmænɪdʒɪŋ ˈmʌltitæskɪŋ/
多任务处理
duō rèn wù chǔ lǐ
providing a platform/prəˈvaɪdɪŋ ə ˈplætfɔːm/
平台
píng tái
4.1
O sistema operacional
Um sistema operacional (SO) é o principal software de sistema. Ele controla todo o computador e permite que o hardware, o software de aplicação e o usuário trabalhem juntos. Sem um SO, o computador é muito difícil de usar.
O sistema operacional fica entre o hardware e o software de aplicação e usuário, permitindo que trabalhem juntos
O SO tem muitas funções:
gerenciando arquivos — salvar, abrir, nomear, mover e excluir arquivos;
lidando com interrupções (veja abaixo);
fornecendo uma interface do usuário 用户界面 para que o usuário controle o computador;
gerenciando memória — decidindo o que é mantido na RAM e onde;
gerenciando periféricos 外围设备和 seus drivers — controlando dispositivos como impressoras;
gerenciando multitarefa 多任务处理 — permitindo que vários programas rodem ao mesmo tempo;
fornecendo uma plataforma 平台 para executar software de aplicação;
gerenciando segurança — contas de usuários, senhas e direitos de acesso.
4.1
Interrupts
Uma interrupção 中断 é um sinal enviado ao processador 处理器 para avisá-lo que algo precisa de atenção agora.
Uma interrupção pode vir de três fontes:
hardware — por exemplo, uma tecla é pressionada, ou uma impressora acaba de papel;
software — por exemplo, um programa tenta dividir por zero;
o usuário — por exemplo, o usuário pressiona uma tecla "cancelar".
Quando uma interrupção chega, o processador para o que está fazendo, salva seu local e atende (lida com) a interrupção. Quando isso estiver feito, ele volta ao que estava fazendo antes. Isso permite que o computador reaja rapidamente a eventos importantes.
Em uma interrupção a CPU salva seu local, executa a rotina de serviço de interrupção, depois restaura seu local e continua
Explorar
Como a CPU trata uma interrupção
Passo a passo de uma interrupção. A CPU pausa o que está fazendo, lida com o evento urgente e continua exatamente onde parou — assim um único processador gerencia teclado, impressora e timer simultaneamente.
central processing unit/ˈsentrəl ˈprəʊsesɪŋ ˈjuːnɪt/
中央处理器
zhōng yāng chǔ lǐ qì
programming language/ˈprəʊɡræmɪŋ ˈlæŋɡwɪdʒ/
编程语言
biān chéng yǔ yán
high-level language/haɪ ˈlevl ˈlæŋɡwɪdʒ/
高级语言
gāo jí yǔ yán
low-level language/ləʊ ˈlevl ˈlæŋɡwɪdʒ/
低级语言
dī jí yǔ yán
machine code/məˈʃiːn kəʊd/
机器码
jī qì mǎ
assembly language/əˈsemblɪ ˈlæŋɡwɪdʒ/
汇编语言
huì biān yǔ yán
specific/spəˈsɪfɪk/
特定的
tè dìng de
translator/trænˈsleɪtə/
翻译程序
fān yì chéng xù
4.2
Linguagens de programação
Programa
Os candidatos devem ser capazes de:
Notas e orientações
1 Explique o que se entende por uma linguagem de alto nível e uma linguagem de baixo nível, incluindo as vantagens e desvantagens de cada uma
• Vantagens e desvantagens incluem: – facilidade de leitura e escrita de código, ex.: baixo nível é difícil de ler – facilidade de depuração de código – independência de máquina – manipulação direta do hardware
2 Entenda que a linguagem assembly é uma forma de linguagem de baixo nível que usa mnemônicos, e que um ensamblador é necessário para traduzir um programa em linguagem assembly em código de máquina
3 Descreva a operação de um compilador e um intérprete, incluindo como o código de alto nível é traduzido por cada um e como os erros são relatados
• Um compilador traduz todo o código de uma vez antes de executá-lo, produzindo um arquivo executável • Um intérprete traduz e executa o código linha por linha • Um compilador fornece um relatório de erros para todo o código se erros forem detectados • Um intérprete interrompe a execução quando um erro é encontrado
4 Explique as vantagens e desvantagens de um compilador e um intérprete
• Incluindo a compreensão de que um intérprete é usado principalmente durante o desenvolvimento de um programa e um compilador é usado para traduzir o programa final
5 Explique o papel de um IDE na escrita de código de programas e as funções comuns que IDEs fornecem
• Incluindo: – editores de código – ambiente de tempo de execução – tradutores – diagnósticos de erro – autocompletar – autocorrigir – formatação automática
Fonte: Programa Cambridge International
Todos os computadores processam dados usando a unidade central de processamento 中央处理器 (CPU). Para fazer a CPU realizar trabalho, pessoas escrevem programas em uma linguagem de programação 编程语言. Existem dois tipos.
Linguagens de alto nível
Uma linguagem de alto nível 高级语言 é escrita em palavras que se assemelham um pouco ao inglês (por exemplo Python). Ela é:
fácil para pessoas lerem, escreverem e corrigirem;
independente do computador — o mesmo programa pode rodar em diferentes tipos de computadores.
Linguagens de baixo nível
Uma linguagem de baixo nível 低级语言 está próxima do que o hardware realmente usa. Ela inclui:
código de máquina 机器码 — instruções escritas em binário (0s e 1s), que a CPU executa diretamente;
linguagem ensambladora 汇编语言 — código de máquina escrito com códigos de palavras curtas (mnemônicos) em vez de binário.
Uma linguagem de baixo nível relaciona-se a um tipo de CPU específico 特定的, então um programa escrito para uma CPU pode não rodar em outra. É usada quando o programador precisa de controle total do hardware ou de código muito rápido e pequeno.
Linguagens de alto nível estão próximas da linguagem humana e rodam em qualquer computador; linguagens de baixo nível (ensambladora e código de máquina) estão próximas do hardware e vinculadas a um único tipo de CPU
Explorar
Laboratório de conceitos de computação
Classifique exemplos concretos pelo conceito de computação que eles demonstram.
A CPU só pode executar código de máquina. Um programa de alto nível deve primeiro ser convertido em código de máquina. O software que faz isso é um tradutor 翻译程序. Existem três tipos: um compilador e um interpretador (para código de alto nível), e um ensamblador (para código de baixo nível).
Compilador
Um compilador traduz o todo programa em código de máquina antes de ser executado. Após a tradução, o código de máquina pode ser executado várias vezes sem precisar traduzir novamente.
a tradução ocorre uma única vez, em sua totalidade;
ele relata todos os erros juntos, no final da tradução;
o programa finalizado roda rápido e não precisa do compilador para funcionar.
Interpretador
Um interpretador 解释器 traduz e executa o programa linha por linha.
ele para no primeiro erro que encontra, o que ajuda durante os testes;
o programa roda mais devagar, pois é traduzido toda vez que é executado;
o interpretador deve estar presente toda vez que o programa for executado.
Compilador
Interpretador
Traduz
todo o programa de uma vez
linha por linha
Erros
todos relatados no final
para no primeiro erro
Velocidade do programa final
mais rápido
mais lento
Necessário para rodar depois?
não
sim
Use um compilador quando quiser compartilhar um programa finalizado rápido. Use um interpretador quando estiver escrevendo e testando um programa e quiser encontrar erros facilmente.
Montador
Um ensamblador 汇编器 traduz um programa de linguagem ensambladora de baixo nível (escrito em mnemônicos como LDA, ADD) em código de máquina. Cada mnemônico torna-se uma instrução de máquina — uma tradução direta de um para um, diferentemente de um compilador ou interpretador, que trabalham com código de alto nível.
Um compilador traduz todo o programa uma vez em código de máquina; um interpretador traduz e executa linha por linha
Exemplo resolvido. Uma equipe está escrevendo um programa. Durante o desenvolvimento, eles querem encontrar e corrigir erros rapidamente; quando o lançarem, querem que os clientes o executem rápido sem ver o código-fonte. Qual tradutor se adequa a cada etapa? Durante o desenvolvimento, use um interpretador: ele traduz e executa linha por linha e para no primeiro erro, então um erro é fácil de localizar. Para lançar, use um compilador: ele traduz todo o programa uma vez em código de máquina, que então roda rapidamente sem tradutor presente, e o cliente recebe apenas o executável e não o código-fonte. Os dois não são rivais - nomeie a etapa e dê a razão, porque "um compilador é mais rápido" sozinho não rende pontos.
integrated development environment/ˈɪntɪɡreɪtɪd dɪˈveləpmənt enˈvaɪrənmənt/
集成开发环境
jí chéng kāi fā huán jìng
code editor/kəʊd ˈedɪtə/
代码编辑器
dài mǎ biān jí qì
run time environment/rʌn taɪm enˈvaɪrənmənt/
运行时环境
yùn xíng shí huán jìng
error diagnostics/ˈerə ˌdaɪəɡˈnɒstɪks/
错误诊断
cuò wù zhěn duàn
auto-completion/ˈɔːtəʊ kəmˈpliːʃn/
自动补全
zì dòng bǔ quán
auto-correction/ˈɔːtəʊ kəˈrekʃn/
自动纠错
zì dòng jiū cuò
prettyprinting/ˈpretɪprɪntɪŋ/
美化打印
měi huà dǎ yìn
user interface/ˈjuːzə ˈɪntəfeɪs/
用户界面
yòng hù jiè miàn
peripherals/pəˈrɪfərəlz/
外围设备
wài wéi shè bèi
multitasking/ˈmʌltitæskɪŋ/
多任务处理
duō rèn wù chǔ lǐ
platform/ˈplætfɔːm/
平台
píng tái
4.2
Ambiente de desenvolvimento integrado (IDE)
Um ambiente de desenvolvimento integrado 集成开发环境 (IDE) é um software que ajuda você a escrever programas. Ele coloca muitas ferramentas úteis em um só lugar:
um editor de código 代码编辑器 — para digitar seu programa;
um ambiente de execução 运行时环境 — para executar o programa e testá-lo;
um tradutor — um compilador ou interpretador para converter seu código em código de máquina;
diagnóstico de erros 错误诊断 — mensagens que ajudam você a encontrar e entender erros;
autocompletar 自动补全 e autocorrigir 自动纠错 — o IDE completa ou corrige o código à medida que você digita;
formatagem estética 美化打印 — organizar o código de forma organizada com cores e recuos para facilitar a leitura.
Código-fonte em um editor: um IDE combina editor, depurador e ferramentas de execução em um só lugar
4.2
Dicas de prova
Hardware é as partes físicas; software são os programas. Software de sistema roda o computador (SO, drivers, utilitários); software de aplicação executa uma tarefa para o usuário.
Um compilador traduz todo o programa de uma vez (o programa finalizado roda rápido, e todos os erros são relatados no final); um interpretador traduz linha por linha (ele para no primeiro erro, roda mais devagar e é necessário toda vez).
Linguagens de alto nível estão próximas do inglês e rodam em qualquer computador; linguagens de baixo nível (ensambladora, código de máquina) estão vinculadas a um único tipo de CPU.
Uma interrupção é um sinal que faz a CPU parar, salvar seu local, atender ao evento e depois continuar onde parou.
Aprenda os papéis do sistema operacional: gerenciamento de arquivos, memória, periféricos, multitarefa, segurança e interface do usuário.
1 Entenda a diferença entre a internet e a World Wide Web
• A internet é a infraestrutura • A World Wide Web é a coleção de sites e páginas web acessadas usando a internet
2 Entenda o que se entende por um uniform resource locator (URL)
• Um URL é um endereço baseado em texto para uma página web; pode conter o protocolo, o nome de domínio e o nome da página/arquivo web
3 Descreva a finalidade e a operação do protocolo de transferência de hipertexto (HTTP) e do protocolo de transferência de hipertexto seguro (HTTPS)
4 Explique a finalidade e as funções de um navegador web
• A principal função de um navegador web é renderizar a marcação de hipertexto (HTML) e exibir páginas web • Funções incluem: – salvar marcadores e favoritos – registrar o histórico do usuário – permitir o uso de várias abas – armazenar cookies – fornecer ferramentas de navegação – fornecer uma barra de endereço
5 Descreva como as páginas web são localizadas, recuperadas e exibidas em um dispositivo quando um usuário insere um URL
• Incluindo o papel de: – o navegador web – endereços IP – o servidor de nomes de domínio (DNS) – o servidor web – HTML
6 Explique o que se entende por cookies e como eles são usados, incluindo cookies de sessão e cookies persistentes
• Cookies são usados para funções, incluindo: – salvar detalhes pessoais – rastrear preferências do usuário – manter itens em um carrinho de compras online – armazenar detalhes de login
Fonte: Programa Cambridge International
As pessoas frequentemente confundem esses dois termos, mas eles não são iguais.
A internet 互联网 é a infraestrutura 基础设施 — a enorme rede mundial de computadores e os cabos, roteadores e conexões que os unem.
A World Wide Web 万维网 (WWW) é uma coleção de sites 网站 e páginas da web que você visualiza usando a internet.
Então a internet é a rede; a web é uma das coisas que você usa nessa rede.
A internet é a rede mundial; a World Wide Web é uma das coisas que você usa nelaUm roteador conecta sua rede doméstica à internet e envia dados para o local correto
Um uniform resource locator 统一资源定位符 (URL) é um endereço baseado em texto para uma página da web. Você o digita em um navegador web 网页浏览器 para visitar uma página, por exemplo https://www.example.com/index.html.
Um URL tem três partes: o protocolo, o nome de domínio e o caminho para a página no servidor
Um navegador web é o programa que você usa para visualizar páginas da web. Seu papel inclui:
renderizar 渲染 a linguagem de marcação de hipertexto 超文本标记语言 (HTML) — transformar o código da página no que você vê;
exibir páginas da web na tela;
gerenciar como uma página da web é apresentada — seu layout, texto e imagens.
5.1
Como uma página da web chega até você
Quando você digita um URL e pressiona Enter, vários passos ocorrem:
O navegador precisa do endereço IP 网际协议地址 do site, mas um URL usa um nome, não um número.
O navegador pergunta a um serviço de nome de domínio 域名服务 (DNS) — um sistema que armazena o endereço IP para cada endereço web.
O DNS encontra o endereço IP correspondente e o envia de volta ao navegador.
O navegador usa o endereço IP para entrar em contato com o servidor web 网页服务器 que armazena a página.
O servidor web envia o HTML da página de volta ao navegador.
O navegador transforma o HTML na página e a exibe.
*O navegador pede ao DNS o endereço IP do site, depois solicita a página do servidor web, que retorna o HTML
Se o DNS não tiver o endereço, ele pergunta a outro servidor DNS até que o endereço seja encontrado.
Um centro de dados cheio de servidores: computadores poderosos que armazenam sites e os enviam para você
Exemplo resolvido. Decomponha o URL https://www.example.com/books/index.html. https é o protocolo, o conjunto de regras usado para transferir a página (o s significa que a transferência está criptografada). www.example.com é o nome de domínio, que identifica o servidor web e que um servidor DNS converte em um endereço IP. /books/index.html é o caminho do arquivo e nome do arquivo do recurso armazenado naquele servidor. Nomeie cada parte junto com seu papel: uma resposta que diz "a primeira parte" e "a última parte" descreve o URL sem nunca explicá-lo.
Explorar
O que acontece ao carregar uma página web
Passo a passo. O endereço web é apenas um nome — o DNS o converte em um endereço IP antes do navegador pedir a página ao servidor certo.
5.1
Cookies
Um cookie é um pequeno arquivo de texto que um site armazena no seu dispositivo. Ele permite que o site lembre coisas sobre você. Existem dois tipos.
Um cookie é um pequeno arquivo de texto armazenado no seu computador
Tipo
Mantido ao fechar o navegador?
Usado para
cookie de sessão 会话
não — excluído ao fechar o navegador
dados de curto prazo, p.ex., itens em uma cesta de compras
cookie persistente 持久
sim — salvo no dispositivo
lembrar de você entre visitas
Cookies são usados para:
salvar detalhes pessoais para que você não precise digitá-los novamente (como login ou endereço);
rastrear preferências do usuário 用户偏好, como seu idioma ou coisas que você gosta, para que o site possa sugerir conteúdo.
1 Entenda o conceito de moeda digital e como as moedas digitais são usadas
• Uma moeda digital é aquela que existe apenas eletronicamente
2 Entenda o processo de blockchain e como ele é usado para rastrear transações de moeda digital
• Blockchain, em sua forma básica, é um livro-razão digital, ou seja, uma série cronologicamente ordenada de registros que não podem ser alterados
Fonte: Programa Cambridge International
Uma moeda digital 数字货币 é dinheiro que existe apenas em forma eletrônica 电子形式. Não há moedas ou notas. É armazenado e movido entre pessoas usando computadores, e pode ser usado para pagar coisas online.
Um problema com o dinheiro digital é a confiança: como evitar que alguém gaste o mesmo dinheiro duas vezes, ou altere os registros? Blockchain resolve isso.
Uma blockchain 区块链 é um digital ledger 数字账本 — um registro compartilhado de todas as transactions 交易. O registro é copiado em muitos computadores, de modo que nenhuma pessoa única o controla e é muito difícil alterá-lo.
As transações são mantidas em blocos conectados em uma cadeia. Cada bloco contém:
os dados da transação (quem pagou a quem e quanto);
um timestamp 时间戳 (data e hora);
um hash value 哈希值 — um código especial calculado a partir do conteúdo do bloco.
Cada bloco também armazena o hash do bloco anterior. Se alguém alterar um bloco antigo, seu hash muda, deixando de corresponder ao próximo bloco. Isso quebra a cadeia e a alteração é detectada imediatamente. É assim que a blockchain rastreia transações com segurança.
Cada bloco armazena o hash do bloco anterior, encadeando os blocos; alterar um bloco quebra a cadeia
Explorar
Hashing por trás de um blockchain
Um hash é unidirecional e uma pequena mudança na entrada inverte muito da saída — um blockchain encadeia esses hashes para que qualquer adulteração seja óbvia.
1 Descreva os processos envolvidos e o objetivo de realizar uma gama de ameaças à segurança cibernética
• Incluindo: – ataque de força bruta – interceptação de dados – ataque de negação de serviço distribuído (DDoS) – hacking – malware (vírus, worm, cavalo de troia, spyware, adware, ransomware) – pharming – phishing – engenharia social
2 Explique como uma gama de soluções são usadas para ajudar a manter os dados seguros contra ameaças de segurança
• Incluindo: – níveis de acesso – anti-malware, incluindo antivírus e anti-spyware – autenticação (nome de usuário e senha, biometria, verificação em duas etapas) – automatização de atualizações de software – verificação da ortografia e tom das comunicações – verificação do URL anexado a um link – firewalls – configurações de privacidade – servidores proxy – protocolo de segurança de camada de sockets seguros (SSL)
Fonte: Programa Cambridge International
Segurança cibernética 网络安全 significa manter computadores, redes e dados seguros contra ataques. Você deve conhecer essas ameaças.
Threat
What it is
brute force attack 暴力破解
tentar muitas senhas rapidamente até encontrar a correta
data interception 数据拦截
"espiar" para roubar dados enquanto viajam por uma rede
distributed denial of service 分布式拒绝服务 (DDoS) attack
inundar um servidor com tantas solicitações que ele não consegue responder, fazendo o site cair
hacking 黑客攻击
obter acesso a um sistema de computador sem permissão
malware 恶意软件
software nocivo (veja a tabela abaixo)
pharming 域名欺骗
um código secreto te redireciona para um site falso mesmo quando digita o endereço correto
phishing 网络钓鱼
e-mails ou mensagens falsas que enganam você para revelar detalhes privados
social engineering 社会工程
enganar uma pessoa (não um computador) para violar a segurança, p.ex., fingindo ser o chefe
Tipos de malware
Malware é qualquer software feito para prejudicar um computador. Os principais tipos são:
Malware
O que faz
virus 病毒
anexa-se a um arquivo e copia-se quando o arquivo é aberto; pode excluir ou danificar dados
worm 蠕虫
copia-se pela rede sozinho, sem precisar que um arquivo seja aberto
Trojan horse 特洛伊木马
finge ser um software útil, mas prejudica o computador após ser instalado
spyware 间谍软件
registra secretamente o que você faz, como as teclas pressionadas
adware 广告软件
inunda você com anúncios indesejados
ransomware 勒索软件
bloqueia seus arquivos e exige pagamento para desbloqueá-los
Impacto das ameaças
Esses ataques podem roubar dados pessoais, excluir ou alterar arquivos, impedir que um serviço funcione, custar dinheiro e fazer usuários perderem a confiança em uma empresa. Por exemplo, um ataque DDoS pode tornar uma loja online inutilizável, causando perda de vendas.
Um cadeado: a cibersegurança protege dados e sistemas contra malware, phishing e acesso não autorizado
access levels 访问权限 — cada usuário só pode ver ou alterar os dados que precisa, nada mais.
anti-malware 反恶意软件 software, incluindo anti-virus 杀毒软件 e anti-spyware 反间谍软件 — verifica e remove software nocivo.
authentication 身份验证 — provar quem você é antes de ter acesso. Métodos incluem:
biometrics 生物识别 (impressão digital ou rosto),
uma senha 密码,
two-step verification 两步验证 (um código enviado ao seu celular além da senha).
automating software updates — atualizações corrigem pontos fracos (bugs) no software automaticamente.
checking the spelling and tone of messages — ortografia ruim ou tom estranho/urgente pode indicar que uma mensagem é falsa (phishing).
checking the URL attached to a link — um endereço web errado ou estranho avisa que o link é inseguro.
firewall 防火墙 — verifica dados entrando e saindo de uma rede e bloqueia anything not allowed.
privacy settings 隐私设置 — controlam quem pode ver suas informações online.
Um firewall fica entre a internet externa e sua rede, verificando cada conexão e bloqueando qualquer tráfego não autorizado
proxy server 代理服务器 — fica entre o usuário e a internet, ocultando o IP do usuário e filtrando conteúdo inseguro.
Explorar
Criptografia com uma chave
Mude o deslocamento — essa é a chave. Cada letra desliza esse tanto de posições para criar texto cifrado, e a mesma chave o devolve. Essa é criptografia simétrica.
A internet é a rede mundial (a infraestrutura); a world wide web são as páginas que você visualiza nela — não confunda as duas.
Aprenda como uma página carrega: o navegador pede o IP do site a um DNS, depois solicita a página ao web server, que devolve o HTML.
Combine os tipos de malware: virus (se anexa a um arquivo), worm (se espalha sozinho pela rede), Trojan horse (finge ser útil), spyware, ransomware.
Combine cada ameaça com uma defesa: phishing/pharming → verificar a URL; brute force → senhas fortes + two-step verification; interception → criptografia; hacking/DDoS → um firewall.
Um cookie session é excluído quando você fecha o navegador; um cookie persistent é salvo para lembrá-lo entre visitas.
1 Descreva como sensores, microprocessadores e atuadores podem ser usados em colaboração para criar sistemas automatizados
2 Descreva as vantagens e desvantagens de um sistema automatizado usado para um cenário dado
• Incluindo cenários de: – indústria – transporte – agricultura – clima – jogos – iluminação – ciência
Fonte: Programa Cambridge International
Um automated system 自动化系统是软件和硬件的混合体,能够感知并响应其环境 环境中的数据,无需human intervention 人工干预。换句话说,它自行工作。
Exemplos de sistemas automatizados:
um sistema de aquecimento central 中央供暖;
um processo químico 化学过程 em uma fábrica;
uma greenhouse 温室 (para cultivar plantas);
uma barreira de estacionamento 停车场道闸.
Sensores, microprocessadores e atuadores
Três partes funcionam juntas em um sistema automatizado.
Parte
Função
sensor 传感器
mede uma quantidade física (como temperatura ou luz) e envia os dados
microprocessor 微处理器
compara os dados com valores armazenados e toma decisões
actuator 执行器
recebe um sinal e causa movimento ou ação (como abrir uma válvula)
O ciclo funciona assim:
O sensor envia dados ao microprocessador.
O microprocessador compara esses dados com stored values 存储值 e toma uma decisão.
O microprocessador envia sinais aos atuadores para tomar medidas.
Por exemplo, em uma estufa: um sensor de temperatura lê o calor; o microprocessador compara com o valor desejado; se estiver muito quente, o microprocessador sinaliza um atuador para abrir uma janela.
Um sensor alimenta o microprocessador, que compara a leitura com um valor armazenado e sinaliza um atuador; o loop então se repete
O programa escolar cita vários sensor types 传感器类型, cada um lendo uma quantidade física específica — por exemplo, um accelerometer 加速度计 (movimento ou inclinação), um sensor de humidity 湿度 (umidade no ar) e um sensor de proximity 接近 (um objeto próximo):
Sensor
Measures
Typical use
temperatura
calor
fornos, estufas, aquecimento
luz
brightness
luzes automáticas, câmeras
pressão
force on a surface
tapetes de alarme, touchscreens
infra-red / proximity
a nearby object
portas automáticas, sensores de estacionamento
acoustic (sound)
sound level
monitores de ruído
humidity / moisture
water in air or soil
estufas, irrigação
gás
a gas being present
alarmes de fumaça e CO
pH
acidez
piscinas, aquários
accelerometer
movement or tilt
telefones, acionamento de airbags
magnetic field
magnetism
contato de portas, bússolas
flow / level
fluid flow or depth
tubulações, tanques
Para escolher um sensor para um cenário, selecione aquele que lê a right physical quantity: um aquário precisa de sensores de pH e temperatura; uma porta automática precisa de um sensor infra-vermelho / de proximidade.
Vantagens e desvantagens
Sistemas automatizados são usados em muitas situações, como indústria, transporte, agricultura 农业 (agricultura), clima (coleta de dados), jogos e iluminação.
As vantagens e desvantagens dos sistemas automatizadosUm drone de câmera: pode voar sozinho ao longo de uma rota definida para coletar dados
Vantagens
Desvantagens
trabalha o dia todo e a noite toda, sem descanso
custa muito para comprar e configurar
mais rápido e mais consistente consistentes do que pessoas
pode falhar e precisar de reparo especializado
pode trabalhar em lugares inseguros para pessoas
pode substituir empregos das pessoas
menos erros humanos
não pode reagir facilmente a uma situação para a qual não foi construído
Exemplo resolvido. Descreva como uma estufa automática mantém a temperatura em 25 °C. Um sensor de temperatura mede continuamente a temperatura e envia sua leitura, convertida para digital por um conversor analógico-digital (ADC), ao microprocessador. O microprocessador compara a leitura com o valor armazenado de 25 °C. Se a temperatura estiver acima dele, o microprocessador sinaliza a um atuador para abrir uma janela ou ligar um ventilador; se estiver abaixo, ele liga um aquecedor. Todo o ciclo então se repete continuamente. Duas marks quase sempre estão nas palavras "compares with a stored (pre-set) value" e "the process repeats" - a descrição que para em "o sensor diz ao computador" as deixa para trás.
Explorar
Um laço de controle automatizado
Gire ao redor do laço. Um sistema automatizado sente, compara contra um alvo, então age — e como a ação muda o que ele sente, ele continua se corrigindo sem necessidade humana.
• Robótica é um ramo da ciência da computação que incorpora o projeto, construção e operação de robôs • Exemplos incluem equipamentos de fábrica, robôs domésticos e drones
2 Descreva as características de um robô
• Incluindo: – uma estrutura mecânica ou estrutura – componentes elétricos, como sensores, microprocessadores e atuadores – programável
3 Entenda os papéis que os robôs podem desempenhar e descreva as vantagens e desvantagens de seu uso
• Robôs podem ser usados em áreas incluindo: – indústria – transporte – agricultura – medicina – ambientes domésticos – entretenimento
Fonte: Programa Cambridge International
Robótica 机器人技术 é o ramo da tecnologia que trata do projeto, construção e operação de robôs 机器人.
Um robô tem estas características:
uma estrutura física 物理结构 (um corpo mecânico 机械的, como braços);
componentes elétricos 电子元件 (motores, sensores e fiação);
instruções programáveis 可编程指令 — ele segue um programa que pode ser alterado.
O que os robôs fazem
Os robôs podem desempenhar muitos papéis, por exemplo:
eletrodomésticos 家用电器 — como um aspirador de pó robótico vacuum cleaner 吸尘器.
Um braço robótico industrial. Segue um programa e pode ser reprogramado para fazer um novo trabalho.Um aspirador de pó robô: um robô doméstico que se move sozinho para limpar o chão
Vantagens
Desvantagens
faz trabalhos monótonos ou perigosos
caro para comprar e manter
trabalha rápido e com precisão
pode substituir trabalhadores humanos
não cansa nem se entedia
um robô tem uma falta de tomada de decisão independente 缺乏独立决策 — ele só faz o que foi programado para fazer
Uma limitação chave de um robô é que ele não pode pensar por si mesmo. Ele não pode tomar suas próprias escolhas quando algo inesperado acontece.
Explorar
Laboratório de conceitos de computação
Classifique exemplos concretos pelo conceito de computação que eles demonstram.
1 Entenda o que se entende por inteligência artificial (IA)
• IA é um ramo da ciência da computação que trata da simulação de comportamentos inteligentes por computadores
2 Descreva as principais características da IA como a coleta de dados e as regras para usar esses dados, a capacidade de raciocinar, e pode incluir a capacidade de aprender e adaptar-se
3 Explique a operação básica e os componentes dos sistemas de IA para simular comportamento inteligente
• Limitado a: – sistemas especialistas – aprendizado de máquina • Sistemas especialistas têm uma base de conhecimento, uma base de regras, um motor de inferência e uma interface • Aprendizado de máquina é quando um programa tem a capacidade de adaptar automaticamente seus próprios processos e/ou dados
Fonte: Programa Cambridge International
Inteligência artificial 人工智能 (IA) é a simulação 模拟 da inteligência humana por sistemas computacionais. Isso significa um computador realizando tarefas que normalmente exigem pensamento humano.
Características da IA
Sistemas de IA geralmente têm estes recursos:
eles coletam dados e as regras 规则 para usar esses dados;
eles têm a capacidade de raciocinar 推理 (resolver problemas usando as regras);
eles têm a capacidade de tirar conclusões 得出结论, que podem ser aproximadas 近似的 (uma melhor aposta) ou definitivas 确定的 (certas);
eles têm a capacidade de aprender 学习 a partir dos dados;
eles têm a capacidade de se adaptar 适应 — de alterar seu comportamento à medida que recebem novos dados.
Um sistema de IA coleta dados, aplica regras, age, depois aprende e melhora
Exemplos de IA
sistemas especialistas 专家系统 — software que dá conselhos como um especialista humano (por exemplo, ajudando um médico com um diagnóstico);
processamento de linguagem natural 自然语言处理 — compreender fala ou texto humano;
carros autônomos 自动驾驶汽车.
Um carro autônomo: sensores no veículo permitem que um computador o pilote sem condutor
Dentro de um sistema especialista
Um sistema especialista armazena a experiência humana e raciocina a partir dela. Ele tem quatro partes:
uma base de conhecimento 知识库 – os fatos armazenados sobre o assunto;
uma base de regras 规则库 – as regras "se... então..." que um especialista humano aplicaria;
um motor de inferência 推理引擎 – aplica as regras aos fatos para chegar a uma conclusão;
uma interface do usuário 用户界面 – faz perguntas ao usuário e mostra o resultado.
A interface coleta fatos do usuário; o motor de inferência executa a base de regras contra a base de conhecimento; e o sistema emite um diagnóstico ou uma probabilidade – usado para ajudar um médico a diagnosticar uma doença ou encontrar uma falha em um carro.
Aprendizado de máquina
Aprendizado de máquina 机器学习 é um programa que melhora seu próprio desempenho através de experiência, sem ser explicitamente reprogramado. Ele encontra padrões nos dados e se adapta: um mecanismo de busca fica melhor em classificar resultados, um assistente de voz reconhece comandos falados com mais precisão, e um aspirador de pó robótico gradualmente aprende o layout de um quarto.
IA restrita, geral e forte
IA restrita faz uma tarefa (toda IA atual); IA geral poderia fazer qualquer tarefa humana; IA forte seria autoconsciente — nenhuma delas existe ainda
Tipo
O que significa
IA restrita 弱人工智能
pode fazer apenas uma tarefa ou um pequeno conjunto de tarefas (por exemplo, um programa de xadrez). Toda IA atual é IA restrita.
IA geral 通用人工智能
poderia fazer qualquer tarefa que um humano possa fazer, alternando entre muitas tarefas diferentes.
IA forte 强人工智能
pensaria e seria consciente como uma mente humana real. Isso ainda não existe.
Explorar
Laboratório de conceitos de computação
Classifique exemplos concretos pelo conceito de computação que eles demonstram.
Aprenda o ciclo de controle: um sensor mede uma quantidade → o microprocessador compara com um valor armazenado → um atuador toma ação; então o ciclo se repete.
Não confunda as partes: um sensor envia dados para dentro; um atuador causa movimento para fora.
Um robô segue instruções programáveis e não pode tomar suas próprias decisões quando algo inesperado acontece.
IA simula o pensamento humano: coleta dados e regras, raciocina, tira conclusões e pode aprender e se adaptar.
Conheça os níveis de IA: restrita (uma tarefa; toda IA atual), geral (qualquer tarefa humana), forte (autoconsciente; não existe ainda).
1 Entenda o ciclo de vida do desenvolvimento de programas, limitado a: análise, projeto, codificação e testes
• Incluindo identificar cada etapa e realizar essas tarefas para cada etapa: – análise: abstração, decomposição do problema, identificação do problema e requisitos – projeto: decomposição, diagramas de estrutura, fluxogramas, pseudocódigo – codificação: escrita de código de programa e testes iterativos – testes: teste de código de programa com o uso de dados de teste
2 (a) Entenda que todo sistema computacional é composto por sub-sistemas, que são compostos por outros sub-sistemas (b) Entenda como um problema pode ser decomposto em suas partes componentes
(c) Use diferentes métodos para projetar e construir uma solução para um problema
• Incluindo: – diagramas de estrutura – fluxogramas – pseudocódigo
3 Explique a finalidade de um algoritmo dado
• Incluindo: – stating the purpose of an algorithm – describing the processes involved in an algorithm
4 Entenda métodos padrão de solução
• Limitado a: – busca linear – ordenação bolha – totalização – contagem – encontrar valores máximo, mínimo e médio
5 (a) Entenda a necessidade de verificações de validação serem feitas nos dados de entrada e os diferentes tipos de verificação de validação
• Incluindo: – verificação de intervalo – verificação de comprimento – verificação de tipo – verificação de presença – verificação de formato – dígito verificador
(b) Compreender a necessidade de checks de verificação nos dados de entrada e os diferentes tipos de checks de verificação
• Incluindo: – check visual – check de entrada dupla
6 Sugerir e aplicar dados de teste adequados
• Limitado a: – normal – anormal – extremo – limite • Dados extremos são o maior/menor valor aceitável • Dados de limite são o maior/menor valor aceitável e o correspondente menor/maior valor rejeitado
7 Preencher uma tabela de traçagem para documentar um dry-run de um algoritmo
• Incluindo, em cada etapa do algoritmo: – variáveis – saídas – prompts ao usuário
8 Identificar erros em algoritmos fornecidos e sugerir formas de corrigi-los
9 Escrever e alterar algoritmos para problemas ou cenários dados, usando: pseudocódigo, código de programa e fluxogramas
• Precisão é necessária ao escrever algoritmos, ex: x > y é aceitável, mas x is greater than y não é aceitável • Veja seção 4 para símbolos de fluxograma • Veja seção 4 para pseudocódigo
Fonte: Programa Cambridge International
7.1
Ciclo de vida do desenvolvimento de programas
O ciclo de vida do desenvolvimento de programas 程序开发生命周期 é o conjunto de etapas usadas para criar um programa. Existem quatro etapas.
O software é escrito por programadores, que seguem o ciclo de desenvolvimento
Etapa
O que você faz
análise 分析
estudar o problema e descobrir o que é necessário
projeto 设计
planejar como o programa funcionará
codificação 编码
escrever o código do programa e testá-lo conforme avança
testes 测试
executar o programa finalizado com dados de teste para encontrar erros
As quatro etapas do desenvolvimento de programas; testes retroalimentam para corrigir e refinar o projetoUm fluxograma de programa detalha os passos e decisões de um programa durante a etapa de projeto
Análise
Na análise você entende o problema. Duas habilidades-chave ajudam:
abstração 抽象 — manter apenas os detalhes importantes e ignorar o resto;
decomposição 分解 — dividir um grande problema em partes menores e mais fáceis.
Projeto
No projeto você planeja a solução, frequentemente usando decomposição. Você pode mostrar as partes como sub-sistemas 子系统 em um diagrama estrutural 结构图 (um gráfico que divide um sistema em caixas menores).
Codificação e testes
Na codificação você escreve o código do programa. Você usa testes iterativos 迭代测试 — testa pequenas partes repetidamente à medida que as constrói. Nos testes você executa todo o programa com dados de teste 测试数据 para verificar se funciona.
Você pode planejar uma solução de três maneiras principais.
um diagrama estrutural — mostra as partes de um sistema e como elas se encaixam;
um fluxograma 流程图 — um diagrama usando caixas e setas para mostrar os passos em ordem;
pseudocódigo 伪代码 — passos escritos em inglês simples, similar a código (não uma linguagem real).
Um fluxograma para o algoritmo de soma, usando os símbolos padrão (início/fim, entrada/saída, processo, decisão)
7.3
Algoritmos
Ordenação bolha, passo a passo
Um algoritmo 算法 é um conjunto de passos, na ordem correta, que resolve um problema. Todo algoritmo pode ser dividido em três partes:
entrada 输入 — os dados que entram;
processamento 处理 — o trabalho realizado nos dados;
saída 输出 — o resultado que sai.
Isso é chamado de decomposição em entradas, processos e saídas. Por exemplo, para "encontrar a média de três notas": as entradas são as três notas; o processamento é somá-las e dividir por 3; a saída é a média.
Todo algoritmo se decompõe em entrada, processamento e saída — aqui, encontrando a média de três notas
7.4
Validação e verificação
Quando os dados são inseridos, você os verifica para reduzir erros.
Validação 验证 verifica se os dados são razoáveis e seguem as regras. Ela não pode verificar se os dados são verdadeiros, apenas se são permitidos.
Verificação de validação
O que ela verifica
verificação de intervalo 范围检查
o valor está entre um valor mínimo e máximo permitido
verificação de comprimento 长度检查
o número de caracteres é permitido (ex: uma senha ≥ 8)
verificação de tipo 类型检查
o dado é do tipo correto (ex: um número, não letras)
verificação de presença 存在性检查
algo foi realmente inserido (não deixado em branco)
format check 格式检查
os dados estão no padrão correto (ex.: data como dd/mm/yyyy)
check digit 校验码
um dígito extra confirma que um número foi inserido corretamente
Verification 核实 verifica que os dados foram copiados ou inseridos corretamente (sem erros ao digitar). Dois métodos:
visual check 目视检查 — uma pessoa compara os dados digitados com o original;
double entry 双重输入 — os dados são inseridos duas vezes e as duas cópias são comparadas.
Uma trace table 追踪表 registra o valor de cada variável conforme um algoritmo é executado, passo a passo. Ela ajuda você a:
Uma tabela de rastreamento registra o valor de cada variável enquanto o programa executa
verificar se um algoritmo funciona corretamente;
descobrir o que um algoritmo faz seguindo-o com dados fornecidos.
Exemplo: faça a traça deste algoritmo com a entrada 5.
INPUT N
Total ← 0
FOR I ← 1 TO N
Total ← Total + I
NEXT I
OUTPUT Total
i
total
OUTPUT
1
1
2
3
3
6
4
10
5
15
15
A traça mostra que o algoritmo soma de 1 até n. Com entrada 5, a saída é 15.
Worked example. Faça a traça deste algoritmo e dê a saída.
X ← 20
Count ← 0
WHILE X > 1
X ← DIV(X, 2)
Count ← Count + 1
ENDWHILE
OUTPUT Count
DIV retorna apenas a parte inteira de uma divisão. Faça uma linha por passagem: x torna-se 10 (count 1), depois 5 (count 2), depois 2 (count 3), depois 1 (count 4). Agora x > 1 é falso, então o loop para e a saída é 4. Dois hábitos protegem essas marcas: teste a condição antes de cada passagem em vez de depois, e escreva uma nova linha para cada passagem — tentar guardar os valores na cabeça é o que causa erros nas traces.
Explorar
Uma tabela de traçado
Passe pela iteração e preencha a tabela de traçado, uma linha por passagem.
Uma busca linear 线性查找 verifica cada item de uma lista, um por um, até encontrar o valor desejado ou chegar ao final.
Found ← FALSE
FOR I ← 0 TO 9
IF List[I] = SearchValue
THEN
Found ← TRUE
ENDIF
NEXT I
OUTPUT Found
Linear search verifica cada item em sequência do início até encontrar o valor
Bubble sort (Ordenação por bolha)
Um bubble sort 冒泡排序 coloca uma lista em ordem. Ele compara cada par de itens adjacentes e os troca se estiverem na ordem errada. Isso se repete até que nenhuma mais troca seja necessária.
FOR I ← 0 TO 8
IF List[I] > List[I + 1]
THEN
Temp ← List[I]
List[I] ← List[I + 1]
List[I + 1] ← Temp
ENDIF
NEXT I
Bubble sort compara cada par adjacente e os troca se estiverem fora de ordem, repetindo até ordenar
Somatório e contagem
totalling 求和 — continuar somando valores a um total acumulado (Total ← Total + Value).
counting 计数 — adicionar 1 a um contador cada vez que algo acontece (Count ← Count + 1).
Maximum, minimum and average
para encontrar o maximum 最大值: manter o maior valor visto até agora.
para encontrar o minimum 最小值: manter o menor valor visto até agora.
para encontrar o average 平均值: dividir o total pela quantidade de valores.
Total ← 0
FOR I ← 0 TO 9
Total ← Total + List[I]
NEXT I
Average ← Total / 10
OUTPUT Average
Aprenda as quatro etapas do ciclo de vida: análise → design → codificação → teste. Abstraction mantém apenas os detalhes importantes; decomposition divide um problema em partes menores.
Validação verifica se os dados são sensatos (verificações de faixa, comprimento, tipo, presença, formato); verification verifica se foram copiados corretamente (uma verificação visual ou entrada dupla).
Aprenda os quatro tipos de dados de teste: normal (aceito), abnormal (rejeitado), extreme (os maiores/menores ainda permitidos), boundary (os valores de ambos os lados de um limite).
Para descobrir o que um algoritmo faz, preencha uma trace table — anote o valor de cada variável em cada etapa.
Conheça os algoritmos padrão: busca linear (verifique cada item em sequência) e bubble sort (troque pares adjacentes até que nenhuma troca seja necessária).
• Incluindo: – laços controlados por contagem – laços de pré-condição – laços de pós-condição
(d) Compreender e usar os conceitos de somatório e contagem
(e) Compreender e usar o conceito de manipulação de strings
• Incluindo: – comprimento – substring – upper – lower • O primeiro caractere da string pode ser posição zero ou um
(f) Compreender e utilizar operadores aritméticos, relacionais e lógicos
• Aritméticos, limitados a: – + – – – / – * – ^ (elevado à potência) – MOD – DIV • Relacionais, limitados a: – = – < – <= – > – >= – <> (diferente de) • Lógicos, limitados a: – AND – OR – NOT
5 Compreender e usar instruções aninhadas
• Incluindo seleção e iteração aninhadas • Os candidatos não serão exigidos a escrever mais de três níveis de instruções aninhadas
6 (a) Compreender o significado de procedimentos, funções e parâmetros (b) Definir e usar procedimentos e funções, com ou sem parâmetros (c) Compreender e usar variáveis locais e globais
• Procedimentos e funções podem ter até três parâmetros
7 Compreender e usar rotinas de biblioteca
• Incluindo: – MOD – DIV – ROUND – RANDOM
8 Compreender como criar um programa mantensível
• Incluindo uso adequado de: – identificadores significativos – recurso de comentários fornecido pela linguagem de programação – procedimentos e funções – comentários relevantes e apropriados da sintaxe • Use identificadores significativos para: – variáveis – constantes – arrays – procedimentos e funções
Fonte: Programa Cambridge International
Uma variable 变量 é um armazém nomeado que segura um valor que pode mudar enquanto o programa executa. Uma constante 常量 é um armazém nomeado cujo valor é fixo e não muda.
Uma variável é um armazém nomeado cujo valor pode mudarVariables and constants são armazéns nomeados para valores, definidos no código do programa
Você deve declare 声明 eles (dizer seu nome e tipo) antes do uso:
DECLARE Score : INTEGER
DECLARE Name : STRING
CONSTANT Pi ← 3.142
Enquanto um programa executa, suas variáveis são mantidas na memória do computador (RAM)
Use uma constante para um valor que nunca muda (como Pi), para que seja definido em um único lugar e fácil de ler.
Explorar
Variáveis e atribuição
Passe pelas linhas e observe cada variável assumir o seu novo valor.
Todo programa é construído a partir de três estruturas de controle.
As três estruturas de controle: sequence执行步骤按顺序,selection选择分支,iteration重复主体
Sequência
Sequência 顺序 significa que as etapas são executadas uma após a outra, em ordem, de cima para baixo.
INPUT Length
INPUT Width
Area ← Length * Width
OUTPUT Area
Seleção
Seleção 选择 escolhe quais etapas executar, baseado em uma condição. Use uma instrução IF, ou uma instrução CASE quando houver muitas opções.
IF Score >= 50
THEN
OUTPUT "Pass"
ELSE
OUTPUT "Fail"
ENDIF
CASE OF Grade
'A' : OUTPUT "Excellent"
'B' : OUTPUT "Good"
OTHERWISE OUTPUT "Keep trying"
ENDCASE
Iteração
Iteração 迭代 (um loop 循环) repete etapas. Existem três tipos.
Um count-controlled loop 计数循环 repete um número fixo de vezes:
FOR I ← 1 TO 5
OUTPUT "Hello"
NEXT I
Um pre-condition loop 前测循环 verifica a condição antes de cada repetição, então pode executar zero vezes:
WHILE Answer <> "stop" DO
INPUT Answer
ENDWHILE
Um post-condition loop 后测循环 verifica a condição depois de cada repetição, então sempre executa pelo menos uma vez:
REPEAT
INPUT Password
UNTIL Password = "secret"
Um loop pre-condition (WHILE) testa antes do corpo, então pode executar zero vezes; um loop post-condition (REPEAT) testa depois, então executa pelo menos uma vez
Explorar
Como uma escada IF … ELSE IF decide
As condições são testadas de cima para baixo; a PRIMEIRA que for verdadeira executa e as outras são puladas. Deslize a pontuação e observe qual ramificação acende.
Explorar
Seleção
Altere o valor e observe qual ramo é executado — seleção em ação.
totalling 求和 — continuar somando valores a um total acumulado: Total ← Total + Value.
counting 计数 — adicionar 1 a um contador cada vez: Count ← Count + 1.
Um contador conta até 1; um total constrói uma soma acumulada
*A trace table segue um loop de totalling e counting passo a passo
Total ← 0
FOR I ← 1 TO 10
INPUT Mark
Total ← Total + Mark
NEXT I
OUTPUT Total
Worked example. Um programa deve ler 5 notas, depois exibir o total e a média.
Total ← 0
FOR I ← 1 TO 5
INPUT Mark
Total ← Total + Mark
NEXT I
Average ← Total / 5
OUTPUT Total, Average
Duas linhas transportam as notas. Total ← 0 deve ficar antes do loop: coloque-o dentro e o total será reiniciado em cada passagem, então o programa exibirá apenas a última nota. E Average ← Total / 5 deve ficar depois do loop, porque o total não está completo até que todas as notas tenham sido somadas. Inicialize antes, calcule depois — essa ordem é o que a questão realmente testa.
(O primeiro caractere pode ser contado como posição 0 ou posição 1, dependendo da linguagem.)
Explorar
SUBSTRING: pegar parte de uma string
O primeiro caractere está na posição 1. SUBSTRING(Palavra, Início, Comprimento) pega Caracteres Length começando em Início — arraste as duas alças e leia a chamada que ela constrói.
Um array 2D é uma tabela; cada valor é encontrado por dois índices, [linha, coluna]
Você lê um array 2D com um loop dentro de outro loop (iteração aninhada).
Explorar
Matrizes
Escolha uma linha e uma coluna para ler uma célula. Os arrays da Cambridge contam a partir de 1, e um elemento 2D é escrito com UM par de parênteses — Grid[2, 3].
1 Compreender o propósito de armazenar dados em um arquivo para uso por um programa
2 Abrir, fechar e usar um arquivo para leitura e escrita
• Incluindo: – ler e escrever itens únicos de dados – ler e escrever uma linha de texto
Fonte: Programa Cambridge International
Um programa pode armazenar dados em um arquivo 文件 (arquivo) para que ele seja mantido após o programa parar. Você deve abrir o arquivo, usá-lo e depois fechá-lo.
OPENFILE "data.txt" FOR WRITE
WRITEFILE "data.txt", "Hello"
CLOSEFILE "data.txt"
OPENFILE "data.txt" FOR READ
READFILE "data.txt", Line
CLOSEFILE "data.txt"
Você pode ler e escrever itens individuais de dados ou uma linha inteira de texto. Sempre feche um arquivo quando terminar de usá-lo.
Uma variable (variável) pode mudar enquanto o programa roda; uma constante (constante) é fixa. Aprenda os cinco tipos de dados: integer, real, char, string, Boolean.
Todo programa é construído a partir de três estruturas: sequence (sequência), selection (seleção - IF / CASE) e iteration (iteração - loops).
Um loop WHILE testa antes do corpo, então pode rodar zero vezes; um loop REPEAT … UNTIL testa depois, então sempre roda pelo menos uma vez.
MOD dá o resto e DIV a parte inteira de uma divisão: 17 MOD 5 é 2, 17 DIV 5 é 3.
Uma função retorna um valor; uma procedure não. Uma variável local funciona apenas dentro do seu bloco; uma global funciona em qualquer lugar.
1 Definir um banco de dados de tabela única a partir de requisitos de armazenamento de dados dados
• Incluindo: – campos – registros – validação
2 Sugerir tipos de dados básicos adequados
• Incluindo: – texto/alfanumérico – character – Booleano – inteiro – real – data/hora
3 Compreender o propósito de uma chave primária e identificar uma chave primária adequada para uma tabela de banco de dados dada
4 Ler, compreender e completar scripts de linguagem de consulta estruturada (SQL) para consultar dados armazenados em uma única tabela de banco de dados
• Limitado a: – SELECT – FROM – WHERE – ORDER BY DESCENDENTE – ORDER BY ASCENDENTE – SUM – COUNT – AND – OR • Identificar a saída fornecida por uma instrução SQL que consultará o conteúdo dado de uma tabela de banco de dados
Fonte: Programa Cambridge International
9.1
O que é um banco de dados?
Um database 数据库 (banco de dados) é um repositório organizado de dados, mantido para facilitar a pesquisa, ordenação e atualização. No IGCSE você trabalha com um single-table database 单表数据库 (banco de dados de tabela única) — todos os dados estão em uma única tabela.
Um catálogo de cartões de biblioteca é um banco de dados em papel — registros que você pode pesquisar e ordenar por índiceGrandes bancos de dados modernos são armazenados em servidores em data centers
Uma primary key 主键 (chave primária) é um campo que armazena um valor unique 唯一 (único) para cada record. Nenhum dois records podem ter a mesma chave primária, então ela permite selecionar exatamente um record.
Na tabela acima, StudentID é uma boa primary key porque cada aluno tem um número diferente. Um campo como FormClass seria uma má primary key, porque muitos alunos compartilham a mesma classe.
Quando dados são inseridos em um banco de dados, as verificações de validation 验证 (validação) garantem que sejam sensatas — por exemplo, uma verificação de intervalo num campo de idade, ou uma verificação de presença para garantir que um campo não fique vazio. (Você viu essas verificações no tópico 7.)
Um check de intervalo aceita valores sensatos e rejeita os restantes
Structured Query Language 结构化查询语言 (SQL) é uma linguagem usada para query 查询 (consultar) um banco de dados — para extrair os records que você deseja. Você deve entender e completar scripts SQL.
SELECT, FROM e WHERE
SELECT diz quais fields mostrar.
FROM diz qual table usar.
WHERE fornece uma condition 条件 (condição), para que apenas os records correspondentes sejam mostrados.
SELECT escolhe campos, FROM nomeia a tabela, WHERE define a condição
SELECT FirstName, FormClass
FROM Student
WHERE FeesPaid = TRUE;
Isso mostra o primeiro nome e a classe de cada aluno que pagou as taxas.
Use * para selecionar todos os fields:
SELECT *
FROM Student
WHERE FormClass = '10A';
ORDER BY
ORDER BY ordena os resultados. Use ASC para ascendente 升序 (crescente, menor primeiro, A→Z) ou DESC para descendente 降序 (decrescente, maior primeiro, Z→A).
SELECT FirstName, DateOfBirth
FROM Student
ORDER BY DateOfBirth ASC;
AND e OR
Junte condições com AND (ambas devem ser verdadeiras) ou OR (pelo menos uma deve ser verdadeira).
SELECT FirstName
FROM Student
WHERE FormClass = '10A' AND FeesPaid = FALSE;
SUM e COUNT
SUM soma os valores num campo numérico.
COUNT conta quantos records correspondem.
SELECT COUNT(StudentID)
FROM Student
WHERE FeesPaid = FALSE;
Isso conta quantos alunos não pagaram. SUM funciona da mesma forma, mas soma um campo numérico em vez de contar linhas.
Calculando a saída
Para encontrar a saída de um script SQL, leia-o nesta ordem:
FROM — qual table;
WHERE — manter apenas os records que correspondem à condição;
SELECT — mostrar apenas os fields escolhidos;
ORDER BY — colocar os resultados em ordem.
Leia uma consulta SQL nesta ordem: FROM (qual table), WHERE (quais linhas), SELECT (quais fields), ORDER BY (ordenar)
Seguindo esses passos, você pode escrever exatamente quais linhas e colunas a consulta retornará.
Exemplo resolvido. Uma table Book tem os fields Title, Author, Price e InStock. Escreva uma query mostrando o título e o preço de cada livro de Orwell que está em estoque, do mais barato ao mais caro.
SELECT Title, Price
FROM Book
WHERE Author = 'Orwell' AND InStock = TRUE
ORDER BY Price ASC;
Construa na ordem de leitura: FROM nomeia a table; WHERE mantém apenas os records correspondentes, e como há duas condições elas precisam de AND; SELECT mostra apenas os dois fields pedidos; ORDER BY … ASC os ordena. Valores de texto vão entre aspas, e apenas os fields que a pergunta pede pertencem em SELECT - adicionar Author apenas porque você filtrou por ele é a maneira mais comum de perder pontos aqui.
Explorar
SELECT … WHERE
Passe por uma consulta: WHERE filtra linhas, SELECT escolhe colunas.
1 Identifique e use os símbolos padrão para portas lógicas
• Veja a seção 4 para símbolos de portas lógicas
2 Defina e entenda as funções das portas lógicas
• Incluindo: – NÃO (NOT) – E (AND) – OU (OR) – NAND – NOR – XOR (EOR) – a saída binária produzida a partir de todas as entradas binárias possíveis • NÃO é uma porta de entrada única • Todas as outras portas são limitadas a duas entradas
3 (a) Use portas lógicas para criar circuits lógicos dados a partir de: (i) enunciado de problema (ii) expressão lógica (iii) tabela-verdade (b) Complete uma tabela-verdade a partir de: (i) enunciado de problema (ii) expressão lógica (iii) circuito lógico
• Os circuitos devem ser desenhados para o enunciado dado, sem simplificação • Os circuitos lógicos serão limitados a um máximo de três entradas e uma saída • Um exemplo de tabela-verdade com três entradas, para completar: A B C Saída | 0 0 0 | 0 0 1 | 0 1 0 | 0 1 1 | 1 0 0 | 1 0 1 | 1 1 0 | 1 1 1
(c) Escreva uma expressão lógica a partir de: (i) enunciado de problema (ii) circuito lógico (iii) tabela-verdade
Fonte: Programa Cambridge International
10.1
O que é lógica booleana?
Lógica booleana 布尔逻辑 (lógica booleana) opera com valores que são true (verdadeiro) ou false (falso). Em eletrônica, estes são representados como 1 (verdadeiro) e 0 (falso). Uma logic gate 逻辑门 (porta lógica) recebe uma ou mais dessas entradas e produz uma saída, seguindo uma regra fixa.
Uma tabela-verdade 真值表 lista todos os conjuntos possíveis de entradas e a saída para cada uma. Você a constrói escrevendo todas as combinações de entrada.
Portas lógicas são construídas a partir de circuitos eletrônicos como este, onde cada porta ativa 1s e 0s
Você precisa conhecer seis portas. NOT tem uma entrada; todas as outras têm duas entradas (A e B).
As seis portas lógicas. Um pequeno círculo na saída indica que o resultado é invertido (NOT, NAND, NOR)Um chip lógico real: internamente contém portas lógicas como as desta página
Porta NOT
A porta NOT 非门 inverte a entrada. A saída é 1 quando a entrada é 0.
A
Saída
0
1
1
0
Porta AND
A porta AND 与门 dá saída 1 apenas quando ambas as entradas são 1.
AND outputa 1 apenas quando ambas as entradas são 1
A
B
Saída
0
0
0
0
1
0
1
0
0
1
1
1
Porta OR
A porta OR 或门 dá saída 1 quando pelo menos uma entrada é 1.
OR outputa 1 quando qualquer entrada é 1
A
B
Saída
0
0
0
0
1
1
1
0
1
1
1
1
Porta NAND
A porta NAND 与非门 é AND seguida por NOT. A saída é o oposto de AND.
A
B
Saída
0
0
1
0
1
1
1
0
1
1
1
0
Porta NOR
A porta NOR 或非门 é OR seguida por NOT. A saída é o oposto de OR.
A
B
Saída
0
0
1
0
1
0
1
0
0
1
1
0
Porta XOR
A porta XOR 异或门 (OR exclusivo) dá saída 1 quando as entradas são diferentes.
A
B
Saída
0
0
0
0
1
1
1
0
1
1
1
0
Explorar
As portas lógicas
Alterne as entradas e escolha uma porta para ver a sua saída — AND, OR, NOT, NAND, NOR, XOR.
Uma expressão lógica 逻辑表达式 escreve um circuito usando letras e palavras das portas. A forma usual de escrever as portas:
Porta
Em palavras
NÃO A
NÃO A
A E B
A E B
A OU B
A OU B
Por exemplo, a expressão (A AND B) OR (NOT C) significa: faça A E B, faça NÃO C, depois OUE os dois resultados juntos.
A expressão X = (A E B) OU (NÃO C) desenhada como um circuito lógico
Explorar
Tabelas-verdade
Construa a tabela da verdade para AND, OR, XOR e NOT — a lógica por trás de cada expressão.
10.4
Circuitos lógicos
Um circuito lógico 逻辑电路 junta portas para executar uma tarefa. A saída de uma porta pode se tornar a entrada de outra. No IGCSE, um circuito tem até três entradas e uma saída.
Construindo o circuito para X = (A E B) OU C — a saída da porta AND alimenta a porta OR
Você deve ser capaz de transitar entre quatro formas:
uma enunciado do problema 问题陈述 (uma descrição em palavras),
uma expressão lógica,
um circuito lógico,
uma tabela-verdade.
De um enunciado do problema para um circuito
Leia o enunciado e identifique as condições e as palavras lógicas (e, ou, não). Por exemplo:
Um alarme (X) soa quando a porta está aberta (A) E o sistema está ligado (B).
Isso é X = A AND B, então você desenha uma porta AND com entradas A e B.
Completando uma tabela-verdade a partir de um circuito ou expressão
Para preencher uma tabela-verdade:
Escreva todas as combinações de entrada. Para três entradas, há 8 linhas (000 até 111).
Calcule a saída de cada porta em ordem, uma coluna por vez.
A última coluna é a saída final.
Três entradas dão oito linhas: cada combinação contada em binário
A
B
C
A E B
(A E B) OU C
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
Adicionar uma coluna intermediária de "cálculo" para cada porta facilita preencher a saída final. Sempre desenhe o circuito exatamente como o enunciado diz, sem simplificá-lo.
Exemplo resolvido. Complete a tabela-verdade para X = (A AND B) OR (NOT C) na linha A = 1, B = 0, C = 0. Calcule para fora dos parênteses, porta por porta. Primeiro A AND B = 1 E 0 = 0, porque AND precisa que ambas as entradas sejam 1. Depois NOT C = NÃO 0 = 1. Finalmente OUE os dois resultados: 0 OU 1 = 1. Então X = 1. Dê a cada porta intermediária sua própria coluna em vez de tentar fazer toda a expressão de uma vez: com três entradas existem $2^3 = 8$ linhas, e essas colunas intermediárias são onde os pontos do método estão localizados mesmo se a resposta final estiver errada.
Aprenda todas as seis portas e suas tabelas-verdade: NOT, AND, OR, NAND (NÃO E), NOR (NÃO OU), XOR (saída 1 quando as entradas são diferentes).
Construa uma tabela-verdade com todas as linhas de entrada (2 entradas → 4 linhas, 3 entradas → 8), contando em binário, e adicione uma coluna de cálculo para cada porta.
Converta um enunciado do problema em uma expressão lógica identificando as palavras E / OU / NÃO, depois desenhe-a exatamente como escrita — não simplifique.
NAND e NOR dão a saída oposta à AND e OR; um pequeno círculo na saída de uma porta significa que o resultado é invertido.