- Show understanding of binary magnitudes and the difference between binary prefixes and decimal prefixes
- Show understanding of different number systems
- Perform binary addition and subtraction
- Describe practical applications where Binary Coded Decimal (BCD) and Hexadecimal are used
- Show understanding of and be able to represent character data in its internal binary form, depending on the character set used
A-Level Computer Science
-
1 Information representation
1.1
Number systems
Syllabus
Source: Cambridge International syllabus
The three number systems 数制 you must use:
- denary 十进制 (decimal, base 10) — uses digits 0–9. Place values are powers of ten.
- binary 二进制 (base 2) — uses 0 and 1. Place values are powers of two. Every byte 字节 is 8 bits 位.
- hexadecimal 十六进制 (base 16) — uses 0–9 then A–F for 10–15. Each hex digit 数位 stands for exactly 4 bits.
An abacus represents numbers by place value — the same idea behind decimal, binary and hexadecimalConversions
Denary → binary: keep dividing by 2 and record the remainders, read bottom-up. Or subtract the largest place value 位值 (power of 2) that fits.
Example: $558_{10}$: $558 = 512 + 32 + 8 + 4 + 2 = 2^{9} + 2^{5} + 2^{3} + 2^{2} + 2^{1}$. In 12 bits:
0010 0010 1110.Binary → hex: group the bits into nibbles 半字节 (4 bits) from the right and convert each.
0010 0010 1110→2 2 E→22E.Hex → binary: replace each hex digit with its 4-bit pattern. Hex → denary: multiply each digit by its place value.
22E$= 2 \times 256 + 2 \times 16 + 14 = 558$.Binary vs decimal prefixes
Decimal prefixes (SI, hard-drive sizes, network speeds): kilo $= 10^{3}$, mega $= 10^{6}$, giga $= 10^{9}$, tera $= 10^{12}$.
Binary prefixes (for memory sizes, where powers of 2 are natural): kibi (Ki) $= 2^{10} = 1024$, mebi (Mi) $= 2^{20}$, gibi (Gi) $= 2^{30}$, tebi (Ti) $= 2^{40}$.
So a tebibyte (TiB) $= 2^{40}$ bytes is slightly more than a terabyte (TB) $= 10^{12}$ bytes. A "1 TB" drive holds $10^{12}$ bytes, but an operating system that reports in TiB shows a smaller number.
Vocabulary TrainEnglish Chinese Pinyin number system 数制 shù zhì denary 十进制 shí jìn zhì binary 二进制 èr jìn zhì byte 字节 zì jié bit 位 wèi hexadecimal 十六进制 shí liù jìn zhì digit 数位 shù wèi place value 位值 wèi zhí nibble 半字节 bàn zì jié 1.1
Binary arithmetic
Binary addition
Add column by column from the right, carrying as in denary:
Bit A Bit B Carry in Sum bit Carry out 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 Overflow 溢出 happens when the result needs more bits than the register 寄存器 can hold — the carry-out of the leftmost column is the overflow bit.
Binary subtraction
The usual way is two's complement 补码 addition: to do $A - B$, form the two's complement of $B$ (invert every bit and add 1), then add, and discard any final carry-out.
To subtract $00011110$ from $01100100$ (unsigned 8-bit):
- two's complement of $00011110$: invert → $11100001$, add 1 → $11100010$.
- add to $01100100$: result $1\,01000110$ (9 bits) — discard the leading 1 → $01000110 = 70_{10}$. Check: $100 - 30 = 70$. ✓
Two's complement signed integers
In an $n$-bit two's-complement number:
- the most significant bit 最高有效位 (MSB) is the sign bit 符号位: 0 = positive, 1 = negative.
- to read a negative number: invert every bit, add 1, then negate.
So $11100010$ is negative; invert → $00011101$, add 1 → $00011110 = 30$, so it is $-30$. This is a signed integer 有符号整数 (unlike an unsigned 无符号 one). The range for $n$ bits is $-2^{n-1}$ to $+2^{n-1} - 1$; for 8 bits, $-128$ ($10000000$) to $+127$ ($01111111$).
Overflow in signed arithmetic happens when the true result falls outside this range — spotted when the sign bit flips wrongly (two positives giving a negative, or two negatives giving a positive).
Vocabulary TrainEnglish Chinese Pinyin overflow 溢出 yì chū register 寄存器 jì cún qì two's complement 补码 bǔ mǎ most significant bit 最高有效位 zuì gāo yǒu xiào wèi sign bit 符号位 fú hào wèi signed integer 有符号整数 yǒu fú hào zhěng shù unsigned 无符号 wú fú hào 1.1
Binary Coded Decimal (BCD)
In BCD 二进码十进数, each denary digit is written as its own 4-bit pattern. The number $93$ is
1001 0011in BCD — not binary 93 ($01011101$). Each nibble uses only 0–9; patterns $1010$–$1111$ are invalid.BCD reading:
0010 0111 0101→ 2, 7, 5 → 275.Use: calculators, digital clocks, and devices that show denary digits — each digit drives a 7-segment display 七段显示器. Currency code often uses BCD to avoid the rounding errors of converting fractions like 0.1 to binary.
A seven-segment display shows one denary digit, often driven by BCDVocabulary TrainEnglish Chinese Pinyin BCD 二进码十进数 èr jìn mǎ shí jìn shù 7-segment display 七段显示器 qī duàn xiǎn shì qì 1.1
Hexadecimal — practical uses
Hex is a compact way to write binary (1 hex digit = 4 bits):
- memory addresses 内存地址 in low-level programming —
0x7FFE. - colour values in HTML/CSS —
#FF8800. - MAC addresses —
AC:DE:48:00:11:22.
Hex does not change the stored data — it just makes binary easier for humans.
Vocabulary TrainEnglish Chinese Pinyin memory address 内存地址 nèi cún dì zhǐ 1.1
Character codes
Computers store text as numbers; each character has a numeric code point 码点 set by a character set 字符集.
ASCII
- ASCII uses 7 bits — 128 code points. Basic Latin letters, digits, punctuation, and control codes.
- Extended ASCII uses 8 bits — 256 code points; the lower 128 match ASCII, the upper 128 vary by region.
Unicode
- Unicode is a universal character set covering almost every script, plus symbols and emoji.
- common encodings 编码: UTF-8 (1–4 bytes, ASCII-compatible), UTF-16 (2 or 4 bytes), UTF-32 (fixed 4 bytes).
Why Unicode beats ASCII
- it represents far more characters (every script, emoji); ASCII covers only basic English.
- files are portable with no code-page confusion, and allow multilingual text in one document.
- trade-off: Unicode files are usually larger for English-only text.
Vocabulary TrainEnglish Chinese Pinyin code point 码点 mǎ diǎn character set 字符集 zì fú jí encoding 编码 biān mǎ 1.2
Bitmap images
Syllabus
- Show understanding of how data for a bitmapped image are encoded
- Perform calculations to estimate the file size for a bitmap image
- Show understanding of the effects of changing elements of a bitmap image on the image quality and file size
- Show understanding of how data for a vector graphic are encoded
- Justify the use of a bitmap image or a vector graphic for a given task
- Show understanding of how sound is represented and encoded
- Show understanding of the impact of changing the sampling rate and resolution
Source: Cambridge International syllabus
A bitmap 位图 image stores the colour of every pixel 像素 in a grid.
- resolution 分辨率: width × height in pixels (e.g. 1920 × 1080).
- colour depth 颜色深度 (bit depth 位深度): bits per pixel. 1 bit → black/white; 8 bits → 256 colours; 24 bits → 16.7 million ("true colour").
The same image stored at three resolutions, from high (A) to low (C): fewer, larger pixels mean less detailFile size
$$\text{size in bits} = \text{width} \times \text{height} \times \text{bit depth}.$$Divide by 8 for bytes, by 1024 for KiB, etc. Example: a $3000 \times 2000$ image at 24 bpp is $3000 \times 2000 \times 24 = 1.44 \times 10^{8}$ bits $\approx 17.2\ \text{MiB}$.
Changing settings
- lower resolution → smaller file, less detail (looks blocky when enlarged).
- lower colour depth → smaller file, but smooth shades show banding.
- higher of either → larger file, better quality.
Vocabulary TrainEnglish Chinese Pinyin bitmap 位图 wèi tú pixel 像素 xiàng sù resolution 分辨率 fēn biàn lǜ colour depth 颜色深度 yán sè shēn dù bit depth 位深度 wèi shēn dù 1.2
Vector graphics
A vector graphic 矢量图形 stores the instructions to draw the image — geometric primitives 图元 (lines, curves, polygons, circles) with attributes like colour, fill, width and position. To show it, the program renders 渲染 the instructions at any resolution needed.
A vector image is built from labelled geometric shapes, each with attributesBitmap vs vector
Task Better choice Why Photograph Bitmap Complex pixel-level detail can't be described as shapes. Logo, icon, sign Vector Sharp edges; scales to any size without blur. Engineering drawing Vector Precise geometry and scaling. Painting, texture Bitmap Smooth tonal detail per area. Vector advantage: it scales without losing quality — a vector logo stays sharp at any size, while a bitmap blurs when enlarged. Vector disadvantage: it cannot describe arbitrary pixel detail (photographs).
Vocabulary TrainEnglish Chinese Pinyin vector graphic 矢量图形 shǐ liàng tú xíng primitive 图元 tú yuán render 渲染 xuàn rǎn 1.2
Sound
A continuous analogue sound wave is turned into digital form by sampling 采样:
- sampling rate 采样率 — samples per second (Hz). CD quality is $44.1\ \text{kHz}$.
- sample resolution 采样分辨率 (bit depth) — bits per sample's amplitude 振幅. CD quality is 16 bits.
Sampling a sound wave: its amplitude is read at each time intervalFile size
$$\text{size in bits} = \text{sampling rate} \times \text{resolution} \times \text{duration} \times \text{channels}.$$A 10-second stereo CD clip: $44100 \times 16 \times 10 \times 2 \approx 1.8\ \text{MiB}$.
Changing settings
- higher sampling rate → captures higher pitches, larger file.
- higher sample resolution → finer amplitude steps, less quantisation 量化 noise, larger file.
- lower of either → smaller file, clear quality loss.
(The sampling rate must be at least twice the highest frequency you want to keep.)
Vocabulary TrainEnglish Chinese Pinyin sampling 采样 cǎi yàng sampling rate 采样率 cǎi yàng lǜ sample resolution 采样分辨率 cǎi yàng fēn biàn lǜ amplitude 振幅 zhèn fú quantisation 量化 liàng huà 1.3
Compression
Syllabus
- Show understanding of the need for and examples of the use of compression
- Show understanding of lossy and lossless compression and justify the use of a method in a given situation
- Show understanding of how a text file, bitmap image, vector graphic and sound file can be compressed
Source: Cambridge International syllabus
Compression 压缩 reduces file size, saving storage and transmission bandwidth 带宽. Two kinds:
- lossless 无损 — the original data is recovered exactly (text, programs, ZIP/PNG).
- lossy 有损 — some detail is dropped for much smaller files (JPEG, MP3, video).
When to use which
- lossless for documents, source code, medical images — anything needing exact data.
- lossy for streaming media. Real-time video streaming uses lossy compression because it must send huge amounts of data in real time over limited bandwidth; lossless would not shrink it enough. Raw HD video is gigabytes per minute, so without compression the picture would keep freezing.
Lossless methods
- run-length encoding 行程编码 (RLE): store "the next $n$ values are $x$" instead of repeating $x$. Great for flat areas; useless for noisy data.
- dictionary methods 字典编码 (ZIP, PNG): replace repeated byte sequences with a short reference. Good for text and code.
- Huffman coding 霍夫曼编码: give short codes to common symbols and long codes to rare ones, bringing the average code length near the data's entropy 熵.
Run-length encoding of the letter F in an $8\times8$ black-and-white gridLossy methods
- images (JPEG): drop fine detail and colour differences the eye barely sees.
- sound (MP3, AAC): drop pitches we hear less well, and quiet sounds hidden by louder ones.
- video combines spatial 空间 compression (within each frame, like JPEG) with temporal 时间 compression (most frames store only the differences from the previous frame).
Compression methods: lossless versus lossy, with common examplesVocabulary TrainEnglish Chinese Pinyin compression 压缩 yā suō bandwidth 带宽 dài kuān lossless 无损 wú sǔn lossy 有损 yǒu sǔn run-length encoding 行程编码 xíng chéng biān mǎ dictionary methods 字典编码 zì diǎn biān mǎ Huffman coding 霍夫曼编码 huò fū màn biān mǎ entropy 熵 shāng spatial 空间 kōng jiān temporal 时间 shí jiān -
2 Communication
2.1
Networks: purpose and benefits
Syllabus
- Show understanding of the purpose and benefits of networking devices
- Show understanding of the characteristics of a LAN (local area network) and a WAN (wide area network)
- Explain the client-server and peer-to-peer models of networked computers
- Show understanding of thin-client and thick-client and the differences between them
- Show understanding of the bus, star, mesh and hybrid topologies
- Show understanding of cloud computing
- Show understanding of the differences between and implications of the use of wireless and wired networks
- Describe the hardware that is used to support a LAN
- Describe the role and function of a router in a network
- Show understanding of Ethernet and how collisions are detected and avoided
- Show understanding of bit streaming
- Show understanding of the differences between the World Wide Web (WWW) and the internet
- Describe the hardware that is used to support the internet
- Explain the use of IP addresses in the transmission of data over the internet, including: format of an IP address including IPv4 and IPv6, use of subnetting in a network, how an IP address is associated with a device on a network, difference between a public IP address and a private IP address and the implications for security, difference between a static IP address and a dynamic IP address
- Explain how a Uniform Resource Locator (URL) is used to locate a resource on the World Wide Web (WWW) and the role of the Domain Name Service (DNS)
Source: Cambridge International syllabus
A network 网络 is a set of computing devices connected so they can communicate and share resources. Benefits:
- sharing resources (printers, file servers, internet) — cheaper than equipping each computer.
- sharing data — many users access the same files.
- central management — install software, manage users and back up once on a server.
- communication — email, video calls, messaging.
- remote access — work from anywhere.
Vocabulary TrainEnglish Chinese Pinyin network 网络 wǎng luò 2.1
LAN vs WAN
A local area network 局域网 (LAN) covers a small area — a home, office or school, usually owned by the organisation, with high data rates and low latency 延迟.
A wide area network 广域网 (WAN) covers a large area — a city, country, or the world (the internet is the largest WAN). It uses telecom-company infrastructure, with lower data rates and higher latency. A WAN connects LANs together.
A wide-area network links many systems across a large areaVocabulary TrainEnglish Chinese Pinyin local area network 局域网 jú yù wǎng latency 延迟 yán chí wide area network 广域网 guǎng yù wǎng 2.1
Client-server and peer-to-peer
Client-server
- powerful machines act as servers 服务器, providing services (files, web pages, email).
- other machines are clients 客户端 that request services.
- central and easy to manage, but the server is a single point of failure unless backed up.
In a client-server network, clients request services from a central serverPeer-to-peer (P2P)
- all machines are equal peers; each can be both client and server (peer-to-peer 对等网络).
- resources are spread across the peers — no central server. Robust to one failure, but harder to keep secure and consistent.
In a peer-to-peer network, every node is both client and serverVocabulary TrainEnglish Chinese Pinyin server 服务器 fú wù qì client 客户端 kè hù duān peer-to-peer 对等网络 duì děng wǎng luò 2.1
Thin and thick clients
A thin client 瘦客户端 does little processing locally and relies on a powerful server (web terminals, remote desktops). A thick client 胖客户端 has strong local processing and storage and runs full applications itself (a normal desktop PC).
Feature Thin client Thick client Local processing minimal substantial Local storage minimal substantial Reliance on network high lower Server load high lower Vocabulary TrainEnglish Chinese Pinyin thin client 瘦客户端 shòu kè hù duān thick client 胖客户端 pàng kè hù duān 2.1
Network topologies
The topology 拓扑 is how the nodes and links are arranged.
- bus 总线 — all devices on one shared cable. Cheap; the whole LAN fails if the bus fails; performance drops as more devices share the bandwidth 带宽.
- star 星形 — every device connects to a central switch. One device failing does not affect others; the switch failing brings all down. Most common today.
- mesh 网状 — every device links directly to others, with many paths. Very fault-tolerant 容错 (traffic reroutes) but needs lots of cabling.
- hybrid — a mix (a star in each office, mesh links between offices).
Bus topology: all devices share one cable with a terminator at each end
Star topology: every device connects to a central hub or switch
Mesh topology: every device links directly to the others
Hybrid topology: star clusters joined by a central busVocabulary TrainEnglish Chinese Pinyin topology 拓扑 tuò pū bus 总线 zǒng xiàn bandwidth 带宽 dài kuān star 星形 xīng xíng mesh 网状 wǎng zhuàng fault-tolerant 容错 róng cuò 2.1
Cloud computing
Cloud computing 云计算 delivers computing services (servers, storage, software) over the internet, hosted by a third party. Benefits: scalability 可扩展性 (pay for what you need), lower cost, access from anywhere, and reliable redundant data centres. Drawbacks: needs internet, your data is held by a third party, and possible vendor lock-in.
Vocabulary TrainEnglish Chinese Pinyin cloud computing 云计算 yún jì suàn scalability 可扩展性 kě kuò zhǎn xìng 2.1
Wired vs wireless
- wired (Ethernet 以太网 over twisted-pair 双绞线 or fibre-optic 光纤): higher speed, lower latency, fewer errors, more secure.
- wireless (Wi-Fi, Bluetooth, cellular): no cables, devices can move, but slower, prone to interference and eavesdropping.
For the same generation, wired wins on speed and reliability; wireless wins on convenience.
Vocabulary TrainEnglish Chinese Pinyin Ethernet 以太网 yǐ tài wǎng twisted-pair 双绞线 shuāng jiǎo xiàn fibre-optic 光纤 guāng xiān 2.1
LAN hardware
- network interface card 网络接口卡 (NIC) — lets a device send and receive on the network; has a unique MAC address MAC地址 (a 48-bit hardware address).
- switch 交换机 — forwards Ethernet frames only to the port for the destination MAC address.
- hub 集线器 — a simpler device that copies traffic to all ports (now obsolete).
- wireless access point 无线接入点 (WAP) — lets wireless clients join a wired LAN.
- cabling — twisted-pair for short runs; fibre-optic for longer, faster runs.
A network switch: each device's cable plugs into one of its ports
An RJ-45 plug on a twisted-pair Ethernet cable
A switch sends each frame only to the port for its destinationVocabulary TrainEnglish Chinese Pinyin network interface card 网络接口卡 wǎng luò jiē kǒu kǎ MAC address MAC地址 MAC dì zhǐ switch 交换机 jiāo huàn jī hub 集线器 jí xiàn qì wireless access point 无线接入点 wú xiàn jiē rù diǎn 2.1
Routers
A router 路由器 connects different networks and forwards data between them — usually at the boundary of a LAN and the internet. It does:
- forwarding — reads each packet 数据包's destination IP address IP地址 and sends it out the right port, using a routing table 路由表.
- network address translation 网络地址转换 (NAT) — lets many private LAN addresses share one public IP.
- DHCP 动态主机配置协议 — hands out private IP addresses to LAN devices.
- firewall 防火墙 — blocks unwanted incoming traffic.
A router connects a LAN to the internet or another networkVocabulary TrainEnglish Chinese Pinyin router 路由器 lù yóu qì packet 数据包 shù jù bāo IP address IP地址 IP dì zhǐ routing table 路由表 lù yóu biǎo network address translation 网络地址转换 wǎng luò dì zhǐ zhuǎn huàn DHCP 动态主机配置协议 dòng tài zhǔ jī pèi zhì xié yì firewall 防火墙 fáng huǒ qiáng 2.1
Ethernet and CSMA/CD
Ethernet is the main wired LAN technology. On shared media a collision 冲突 can happen when two devices send at once. The protocol is CSMA/CD 载波侦听多路访问 (Carrier Sense Multiple Access with Collision Detection):
- carrier sense — listen before sending; wait if the cable is busy.
- multiple access — many devices share the medium.
- collision detection — keep listening while sending; a clash is a collision.
- on a collision, both stop, send a brief "jam" signal, then wait a random backoff time before retrying.
Modern switched Ethernet uses full-duplex 全双工 point-to-point links, so collisions no longer happen.
The CSMA/CD process for handling collisions on shared mediaVocabulary TrainEnglish Chinese Pinyin collision 冲突 chōng tū CSMA/CD 载波侦听多路访问 zài bō zhēn tīng duō lù fǎng wèn full-duplex 全双工 quán shuāng gōng 2.1
Bit streaming
Bit streaming 流式传输 sends multimedia as a continuous stream that the receiver plays as it arrives, instead of downloading the whole file first.
- real-time (live): captured and streamed as it happens (live sport, video calls). You cannot rewind; low latency is vital.
- on-demand: pre-recorded on a server (YouTube, Netflix). You can pause and rewind; the server can buffer 缓冲 ahead.
Real-time streaming samples/captures the source, encodes it into a compression 压缩-reduced stream, sends it in packets, and the receiver buffers a little then plays in real time, dropping late packets. Lossy 有损 compression is used because moving pictures hide small losses and the data must fit the bandwidth.
Data streams from the server into a buffer before the media player reads itVocabulary TrainEnglish Chinese Pinyin bit streaming 流式传输 liú shì chuán shū buffer 缓冲 huǎn chōng compression 压缩 yā suō lossy 有损 yǒu sǔn 2.1
The internet and the World Wide Web
The internet 互联网 is a global network of networks using a common protocol 协议 suite (TCP/IP). The World Wide Web 万维网 (WWW) is a service that runs over it: hyperlinked documents identified by URLs, viewed in browsers via HTTP/HTTPS. Email and file transfer are other internet services that are not part of the WWW.
Vocabulary TrainEnglish Chinese Pinyin internet 互联网 hù lián wǎng protocol 协议 xié yì World Wide Web 万维网 wàn wéi wǎng 2.1
IP addresses
An IP address uniquely identifies a device.
- IPv4 — 32-bit, four denary numbers 0–255 (
192.168.1.10); about $4.3 \times 10^{9}$ addresses (now exhausted). - IPv6 — 128-bit, eight groups of four hex digits; about $3.4 \times 10^{38}$ addresses.
Subnetting
A network can be split into subnets 子网. The IP address splits into a network part and a host part, given by a subnet mask 子网掩码 (e.g.
255.255.255.0= first 24 bits are network). Subnetting improves management, cuts broadcast traffic, and improves security.
Splitting a network into subnets, one netID per departmentPublic vs private addresses
- private addresses are used within a LAN and are not routable on the internet (e.g.
192.168.0.0/16). - public addresses are globally unique and routable, assigned by an ISP 互联网服务提供商.
Devices behind NAT with private addresses are not directly reachable from the internet, giving some protection.
Static vs dynamic
- static — fixed; used for servers that must be found at a known address.
- dynamic — assigned by DHCP and may change; easier for client devices and uses a limited address pool efficiently.
Vocabulary TrainEnglish Chinese Pinyin subnets 子网 zi wǎng subnet mask 子网掩码 zi wǎng yǎn mǎ ISP 互联网服务提供商 hù lián wǎng fú wù tí gōng shāng 2.1
URL and DNS
A URL 统一资源定位符 locates a resource on the WWW:
https://www.example.com/about/contact.html protocol domain name path- protocol:
http,https, etc. - domain name 域名: a readable server address.
- path: the resource on that server.
The Domain Name System 域名系统 (DNS) is a distributed set of servers that turns domain names into IP addresses. When you type a URL, the browser asks a DNS resolver for the IP, which queries DNS servers (root → top-level → authoritative) until it finds it; the browser then connects to that IP and requests the path. DNS saves humans from memorising IP addresses and lets a site change server without changing its name.
How DNS finds a website's IP address before the browser connectsVocabulary TrainEnglish Chinese Pinyin URL 统一资源定位符 tǒng yī zī yuán dìng wèi fú domain name 域名 yù míng Domain Name System 域名系统 yù míng xì tǒng -
3 Hardware
3.1
Computers and their components
Syllabus
- Show understanding of the need for input, output, primary memory and secondary (including removable) storage
- Show understanding of embedded systems, including: benefits and drawbacks of embedded systems
- Describe the principal operations of hardware devices, including: Laser printer, 3D printer, microphone, speakers, magnetic hard disk, solid state (flash) memory, optical disc reader/writer, touchscreen, virtual reality headset
- Show understanding of the use of buffers
- Explain the differences between Random Access Memory (RAM) and Read Only Memory (ROM), including their use in a range of devices and systems
- Explain the differences between Static RAM (SRAM) and Dynamic RAM (DRAM), including the use of SRAM and DRAM in a range of devices and systems and the reasons for using one instead of the other depending on the device and its use
- Explain the difference between Programmable ROM (PROM), Erasable Programmable ROM (EPROM) and Electrically Erasable Programmable ROM (EEPROM)
- Show an understanding of monitoring and control systems, including: difference between monitoring and control, use of sensors (including temperature, pressure, infra-red, sound) and actuators, importance of feedback
Source: Cambridge International syllabus
A general-purpose computer has four building blocks:
- input devices 输入设备 — get data in (keyboard, mouse, microphone, scanner, sensors).
- output devices 输出设备 — give results out (monitor, speakers, printer, actuators).
- primary memory 主存储器 — fast memory the processor 处理器 (CPU) reaches directly (RAM and ROM). Holds the running program and its data.
- secondary storage 辅助存储器 — slower, larger, keeps programs and data when not in use (hard disk, SSD, optical disc, USB stick).
A keyboard: a common input device for typing text and commands
A mouse: a pointing input device
A flatbed scanner: an input device that turns a paper page into a digital image
A monitor: a common output device that displays the screen imageVocabulary TrainEnglish Chinese Pinyin input devices 输入设备 shū rù shè bèi output devices 输出设备 shū chū shè bèi primary memory 主存储器 zhǔ cún chǔ qì processor 处理器 chǔ lǐ qì secondary storage 辅助存储器 fǔ zhù cún chǔ qì 3.1
Embedded systems
An embedded system 嵌入式系统 is a computer built into another device to do one fixed job (washing machine, microwave, car engine unit, thermostat).
- benefits: optimised for one task (low power, small, cheap); reliable; fast to start; cheap in volume.
- drawbacks: limited to its one task; hard to update (its firmware 固件 may need special tools); often not repairable; sometimes weak security.
Vocabulary TrainEnglish Chinese Pinyin embedded system 嵌入式系统 qiàn rù shì xì tǒng firmware 固件 gù jiàn 3.1
Principal hardware devices
Laser printer
A laser printer 激光打印机 scans the page image onto a charged photosensitive drum 感光鼓. Toner 墨粉 sticks to the charged areas, transfers to the paper, and is melted on by a fuser. Fast, sharp, high-volume.
A laser printer: fast, sharp printing using a charged drum and toner3D printer
A 3D printer 3D打印机 builds an object layer by layer: FDM melts plastic filament through a nozzle; stereolithography cures liquid resin with a UV laser. Used for prototypes and custom medical parts.
An FDM 3D printer builds an object layer by layer by melting plastic filamentMicrophone and speakers
A microphone 麦克风 turns sound into an electrical signal (a diaphragm vibrates, changing capacitor 电容器 charge or coil position); the signal is digitised by an analogue-to-digital converter 模数转换器 (ADC). A speaker does the reverse — a varying signal drives a coil in a magnetic field, moving a cone to make sound.
A microphone turns sound into an electrical signal
Inside a microphone: sound vibrates the diaphragm and coil to produce a current
Inside a loudspeaker: a varying current in the coil moves the cone to make soundMagnetic hard disk (HDD)
A hard disk 硬盘 stores data on spinning platters coated with magnetic material. Each platter has tracks 磁道 divided into sectors 扇区. A read/write head 读写头 floats just above and magnetises tiny regions (write) or senses them (read). Cheap per gigabyte, but slower than SSDs and has moving parts.
An opened hard disk: the actuator arm carries the read/write head over a platter
Tracks and sectors on a hard disk platterSolid-state (flash) memory
A solid-state drive 固态硬盘 stores data as charge in transistors 晶体管, with no moving parts. Faster random access than HDDs, tougher, lower power, but dearer per gigabyte; each cell wears out after many writes.
Inside an SSD: data is stored in flash memory chips, with no moving parts (compare the hard disk above)Optical disc
A laser detects reflections from tiny pits on an optical disc 光盘 (CD, DVD, Blu-ray). Writing uses a stronger laser to change the surface's reflectivity.
An optical disc drive: a laser reads tiny pits on a CD, DVD or Blu-ray discTouchscreen
A touchscreen 触摸屏 senses contact. Resistive 电阻式: two conductive layers pressed together; works with anything but is less accurate. Capacitive 电容式: a finger disturbs a charge field; accurate, multi-touch, used in phones.
A touchscreen senses where a finger touches the glassVirtual reality headset
A virtual reality 虚拟现实 (VR) headset has two small displays (one per eye) and motion sensors (accelerometer 加速度计, gyroscope 陀螺仪) that track head movement so the scene shifts as you look around.
A virtual reality headset: two small displays and motion sensors track the headVocabulary TrainEnglish Chinese Pinyin laser printer 激光打印机 jī guāng dǎ yìn jī drum 感光鼓 gǎn guāng gǔ toner 墨粉 mò fěn 3D printer 3D打印机 3D dǎ yìn jī microphone 麦克风 mài kè fēng capacitor 电容器 diàn róng qì analogue-to-digital converter 模数转换器 mó shù zhuǎn huàn qì hard disk 硬盘 yìng pán tracks 磁道 cí dào sectors 扇区 shàn qū read/write head 读写头 dú xiě tóu solid-state drive 固态硬盘 gù tài yìng pán transistors 晶体管 jīng tǐ guǎn optical disc 光盘 guāng pán touchscreen 触摸屏 chù mō píng resistive 电阻式 diàn zǔ shì capacitive 电容式 diàn róng shì virtual reality 虚拟现实 xū nǐ xiàn shí accelerometer 加速度计 jiā sù dù jì gyroscope 陀螺仪 tuó luó yí 3.1
Buffers
A buffer 缓冲 is memory that holds data temporarily while it moves between devices of different speeds. Example: the CPU writes a document to a printer buffer quickly, then is free to do other work while the printer prints from the buffer at its own pace. Buffers stop the fast device waiting for the slow one (also used in streaming, the keyboard, and disk access).
Vocabulary TrainEnglish Chinese Pinyin buffer 缓冲 huǎn chōng 3.1
RAM and ROM
- RAM 随机存取存储器 (Random Access Memory) — volatile 易失性 (loses data without power). Holds the OS, running programs and their data; read and written constantly.
- ROM 只读存储器 (Read-Only Memory) — non-volatile 非易失性 (keeps data without power). Usually written once; holds firmware needed at start-up (the BIOS / boot loader).
ROM starts the system; RAM then holds the active work.
A RAM module (DIMM) plugs into the motherboard as the computer's fast main memoryVocabulary TrainEnglish Chinese Pinyin RAM 随机存取存储器 suí jī cún qǔ cún chǔ qì volatile 易失性 yì shī xìng ROM 只读存储器 zhī dú cún chǔ qì non-volatile 非易失性 fēi yì shī xìng 3.1
SRAM vs DRAM
- SRAM 静态RAM stores each bit in a flip-flop 触发器 of several transistors. Fast, but expensive and not dense. Used for CPU cache 高速缓存.
- DRAM 动态RAM stores each bit as charge on a tiny capacitor. Cheaper and denser but slower, and must be refreshed 刷新 (rewritten) thousands of times a second. Used for main memory.
Use SRAM for small fast memory (cache); DRAM for large main memory.
Vocabulary TrainEnglish Chinese Pinyin SRAM 静态RAM jìng tài RAM flip-flop 触发器 chù fā qì cache 高速缓存 gāo sù huǎn cún DRAM 动态RAM dòng tài RAM refreshed 刷新 shuā xīn 3.1
PROM, EPROM and EEPROM
ROM variants you can program after manufacture:
- PROM — written once (fuses burned by a programmer); cannot be changed.
- EPROM — erased by strong UV light through a window, then rewritten (whole chip at once).
- EEPROM — erased and rewritten electrically, a byte at a time, in circuit. Flash memory is a derivative optimised for block erase.
3.1
Monitoring and control systems
Both read sensors; the difference is what they do next.
- monitoring 监控 — collects and reports data but takes no action (a weather station logging readings).
- control system 控制系统 — uses sensor data to decide and act through actuators, usually in a feedback loop (a thermostat turning a boiler on/off).
Monitoring reports data; a control system acts through a feedback loopSensors and actuators
A sensor 传感器 turns a physical quantity into a signal: temperature (a thermistor 热敏电阻 or thermocouple), pressure (strain gauge), infra-red, sound. Analogue signals need an ADC first. An actuator 执行器 does the reverse — turns a signal into an action (a motor, valve, heater, buzzer).
A thermistor: a temperature sensor whose resistance changes with heat
A small electric motor: an actuator that turns a signal into movementFeedback
In a control system the actuator changes the environment, which the sensors then re-measure — a feedback 反馈 loop. Without feedback the system cannot correct itself or know when to stop (a thermostat with no temperature feedback would heat forever).
Vocabulary TrainEnglish Chinese Pinyin monitoring 监控 jiān kòng control system 控制系统 kòng zhì xì tǒng sensor 传感器 chuán gǎn qì thermistor 热敏电阻 rè mǐn diàn zǔ actuator 执行器 zhí xíng qì feedback 反馈 fǎn kuì 3.2
Logic gates
Syllabus
- Use the following logic gate symbols: NOT, AND, OR, NAND, NOR, XOR
- Understand and define the functions of: NOT, AND, OR, NAND, NOR and XOR (EOR) gates
- Construct the truth table for each of the logic gates above
- Construct a logic circuit From: a problem statement, a logic expression, a truth table
- Construct a truth table From: a problem statement, a logic circuit, a logic expression
- Construct a logic expression From: a problem statement, a logic circuit, a truth table
Source: Cambridge International syllabus
A logic gate 逻辑门 is a small circuit that does one Boolean 布尔 operation. Inputs and outputs are 0 (false, low) or 1 (true, high). Know the symbol, function and truth table 真值表 for each gate.
The symbols for the six logic gatesNOT (inverter)
A NOT A 0 1 1 0 AND — output 1 only if all inputs are 1
A B A AND B 0 0 0 0 1 0 1 0 0 1 1 1 OR — output 1 if at least one input is 1
A B A OR B 0 0 0 0 1 1 1 0 1 1 1 1 NAND (NOT AND) — output 0 only when all inputs are 1
A B A NAND B 0 0 1 0 1 1 1 0 1 1 1 0 NOR (NOT OR) — output 1 only when all inputs are 0
A B A NOR B 0 0 1 0 1 0 1 0 0 1 1 0 XOR (Exclusive OR) — output 1 if the inputs are different
A B A XOR B 0 0 0 0 1 1 1 0 1 1 1 0 Vocabulary TrainEnglish Chinese Pinyin logic gate 逻辑门 luó jí mén Boolean 布尔 bù ěr truth table 真值表 zhēn zhí biǎo 3.2
Logic circuits
A logic circuit 逻辑电路 is a network of gates that carries out a Boolean expression. You should be able to move between a problem statement, a logic expression, a truth table, and a circuit diagram.
From expression to circuit
Draw one gate per operator and wire them up. For $X = (A \text{ AND } B) \text{ OR } (\text{NOT } C)$: a NOT gate on $C$, an AND gate on $A$ and $B$, then an OR gate on the two results.
Gates wired together to carry out a Boolean expressionFrom circuit to expression
Work forwards from the inputs, labelling each gate's output, until you reach the final output.
From circuit to truth table
For $n$ inputs there are $2^{n}$ rows. List every input combination; for each, work out the internal gates then the output.
From truth table to expression (sum of products)
For each row that outputs 1, write an AND of the inputs (with NOT on any input that is 0 in that row); OR these together. Example: a table that is 1 only on $(A=0,B=1)$ and $(A=1,B=0)$ gives $\overline{A}B + A\overline{B}$, which is $A \text{ XOR } B$.
From a problem statement
Turn the English into a Boolean expression first: "A and B" → A AND B; "A or B or both" → A OR B; "exactly one of A and B" → A XOR B; "neither A nor B" → A NOR B; "not both" → A NAND B.
Vocabulary TrainEnglish Chinese Pinyin logic circuit 逻辑电路 luó jí diàn lù -
4 Processor Fundamentals
4.1
Von Neumann architecture
Syllabus
- Show understanding of the basic Von Neumann model for a computer system and the stored program concept
- Show understanding of the purpose and role of registers, including the difference between general purpose and special purpose registers
- Show understanding of the purpose and roles of the Arithmetic and Logic Unit (ALU), Control Unit (CU) and system clock, Immediate Access Store (IAS)
- Show understanding of how data are transferred between various components of the computer system using the address bus, data bus and control bus
- Show understanding of how factors contribute to the performance of the computer system
- Understand how different ports provide connection to peripheral devices
- Describe the stages of the Fetch-Execute (F-E) cycle
- Show understanding of the purpose of interrupts
Source: Cambridge International syllabus
The Von Neumann architecture 冯·诺依曼体系结构 underlies almost every general-purpose computer:
- a single memory holds both program instructions and data (the stored program 存储程序 idea).
- a processor 处理器 (CPU) fetches instructions from memory and runs them one at a time.
- instructions run in order unless a branch changes the flow.
The stored-program idea is what makes a computer flexible: change the program and you change what it does, with no rewiring.
Vocabulary TrainEnglish Chinese Pinyin Von Neumann architecture 冯·诺依曼体系结构 féng · nuò yī màn tǐ xì jié gòu stored program 存储程序 cún chǔ chéng xù processor 处理器 chǔ lǐ qì 4.1
The CPU's main parts
All of these parts sit inside one small chip. The diagram later in this section shows how they connect; the photo below shows the real thing.
A modern CPU: the whole processor is one small chip (here seen from below, showing the contacts)
The matching CPU socket on the motherboard: the chip's contacts press onto these pinsArithmetic and Logic Unit (ALU)
The ALU 算术逻辑单元 does the arithmetic (add, subtract, …) and logic (AND, OR, comparisons). It takes operands from registers 寄存器 and puts results back in a register.
Control Unit (CU)
The control unit 控制单元 decodes each instruction and sends the control signals to carry it out — opening data paths, telling the ALU what to do, and controlling memory reads and writes.
System clock
The clock sends a steady stream of pulses that keep the CPU in step. Each instruction takes a fixed number of cycles, and the clock speed 时钟频率 (e.g. 3.8 GHz) is one factor in performance.
Registers
Registers are tiny, very fast stores inside the CPU. Special-purpose ones each have a fixed job in the cycle:
- Program Counter 程序计数器 (PC) — the address of the next instruction.
- Memory Address Register 内存地址寄存器 (MAR) — the address being read or written.
- Memory Data Register 内存数据寄存器 (MDR) — the data going to or from memory.
- Current Instruction Register 当前指令寄存器 (CIR) — the instruction being decoded.
- Accumulator 累加器 (ACC) — the value the ALU is working on.
- Status Register 状态寄存器 — holds flags 标志 (carry, zero, negative, overflow) used by branches.
- Index Register 变址寄存器 — an offset used in indexed addressing.
General-purpose registers 通用寄存器 are used by the programmer for temporary values during a calculation.
The Von Neumann CPU: registers, control unit and ALU linked by busesVocabulary TrainEnglish Chinese Pinyin arithmetic and logic unit 算术逻辑单元 suàn shù luó jí dān yuán register 寄存器 jì cún qì control unit 控制单元 kòng zhì dān yuán clock speed 时钟频率 shí zhōng pín lǜ Program Counter 程序计数器 chéng xù jì shù qì Memory Address Register 内存地址寄存器 nèi cún dì zhǐ jì cún qì Memory Data Register 内存数据寄存器 nèi cún shù jù jì cún qì Current Instruction Register 当前指令寄存器 dāng qián zhǐ lìng jì cún qì Accumulator 累加器 lěi jiā qì Status Register 状态寄存器 zhuàng tài jì cún qì flags 标志 biāo zhì Index Register 变址寄存器 biàn zhǐ jì cún qì general-purpose registers 通用寄存器 tōng yòng jì cún qì 4.1
Buses
Three internal buses 总线 (sets of parallel wires) connect the parts:
- address bus 地址总线 — carries the memory address. One-way (CPU → memory).
- data bus 数据总线 — carries the data. Two-way.
- control bus 控制总线 — carries control signals (read, write, interrupt). Two-way.
An $n$-bit address bus can reach $2^{n}$ memory locations. The data-bus width sets how many bits move per access (often the word size).
The three system buses connecting the CPU, memory and input/outputVocabulary TrainEnglish Chinese Pinyin buses 总线 zǒng xiàn address bus 地址总线 dì zhǐ zǒng xiàn data bus 数据总线 shù jù zǒng xiàn control bus 控制总线 kòng zhì zǒng xiàn 4.1
What affects performance
- clock speed — more cycles per second.
- number of cores 核心 — a multi-core CPU runs several threads at once.
- word size 字长 — a 64-bit CPU handles 64-bit chunks per cycle and can address far more memory than a 32-bit one.
- amount of RAM 随机存取存储器 — more RAM holds more of the working set; too little forces the OS to page 分页 to disk.
- cache 高速缓存 size — more cache cuts average memory access time.
- secondary storage 辅助存储器 type — an SSD loads programs far faster than an HDD.
- bus width and speed — wider/faster buses move data more quickly.
Match the specs to the workload: a quad-core beats a dual-core on parallel work, but higher per-core speed wins on single-threaded work.
Vocabulary TrainEnglish Chinese Pinyin cores 核心 hé xīn word size 字长 zì zhǎng RAM 随机存取存储器 suí jī cún qǔ cún chǔ qì page 分页 fēn yè cache 高速缓存 gāo sù huǎn cún secondary storage 辅助存储器 fǔ zhù cún chǔ qì 4.1
Ports
A port 端口 is a physical socket for connecting a peripheral 外围设备:
- USB — general-purpose (keyboards, drives, phones).
- HDMI — digital video and audio to a screen.
- Ethernet (RJ-45) — wired LAN. Audio jacks — headphones/microphone.
Different ports use different signals, so an HDMI cable will not fit a USB socket. USB-C is unusual in carrying video, data and power.
Vocabulary TrainEnglish Chinese Pinyin port 端口 duān kǒu peripheral 外围设备 wài wéi shè bèi 4.1
Fetch-Execute cycle
The CPU repeats the fetch-execute cycle 取指-执行周期, one run per machine instruction.
Fetch
- the PC's address is copied to the MAR.
- the PC is incremented to point to the next instruction.
- a read signal goes over the control bus.
- memory puts the instruction on the data bus.
- it is copied into the MDR, then into the CIR.
Decode
The CU decodes the instruction in the CIR — what operation, and which operands or addresses.
Execute
The CU carries it out: arithmetic/logic goes to the ALU (result to the ACC); a load/store moves data between memory and a register; a branch changes the PC. Then the cycle repeats.
The fetch-execute cycle, with a check for interrupts each timeVocabulary TrainEnglish Chinese Pinyin fetch-execute cycle 取指-执行周期 qǔ zhǐ - zhí xíng zhōu qī 4.1
Interrupts
An interrupt 中断 is a signal that pauses the normal cycle so the CPU can handle an urgent event (a key press, a packet arriving, a hardware fault, division by zero, the OS timer).
Handling one:
- finish the current instruction.
- save the state (PC and registers).
- load the address of the interrupt service routine 中断服务程序 (ISR) into the PC and run it.
- the ISR handles the event.
- restore the saved state and carry on.
Interrupts let the system respond promptly without the CPU constantly checking devices, and are how the OS multitasks.
How an interrupt fits into the fetch-execute cycleVocabulary TrainEnglish Chinese Pinyin interrupt 中断 zhōng duàn interrupt service routine 中断服务程序 zhōng duàn fú wù chéng xù 4.2
Assembly language and machine code
Syllabus
- Show understanding of the relationship between assembly language and machine code
- Describe the different stages of the assembly process for a two-pass assembler
- Trace a given simple assembly language program
- Show understanding that a set of instructions are grouped
- Show understanding of and be able to use different modes of addressing
Source: Cambridge International syllabus
The CPU actually runs machine code 机器码 — bit patterns, specific to one architecture. Assembly language 汇编语言 is a readable form, with one instruction per machine instruction, written using mnemonics 助记符 like
LDD,ADD,JMP. An assembler 汇编器 translates it to machine code.Two-pass assembler
A two-pass assembler reads the source twice:
- pass 1 builds a symbol table 符号表: each time a label 标签 (like
LOOP:) appears, record its address; no code yet. - pass 2 generates code: translate each instruction, and when one refers to a label (like
JMP LOOP), look up its address in the symbol table.
Two passes handle forward references 前向引用 (a jump to a label defined later).
Example instruction set
Cambridge uses a small generic set: data movement (
LDD,LDM,LDI,LDX,STO,MOV), arithmetic (ADD,SUB,INC,DEC), logic/bit (AND,OR,XOR,LSL,LSR), compare and branch (CMP,JMP,JPE,JPN), I/O (IN,OUT), andEND. The exact mnemonics are given in the paper's reference table.Vocabulary TrainEnglish Chinese Pinyin machine code 机器码 jī qì mǎ assembly language 汇编语言 huì biān yǔ yán mnemonics 助记符 zhù jì fú assembler 汇编器 huì biān qì symbol table 符号表 fú hào biǎo label 标签 biāo qiān forward references 前向引用 qián xiàng yǐn yòng 4.2
Addressing modes
The addressing mode 寻址方式 says how the CPU finds the operand:
- immediate addressing 立即寻址 — the operand is the value in the instruction.
LDM #10loads 10. - direct addressing 直接寻址 — the instruction holds an address; the operand is the value there.
LDD 200. - indirect addressing 间接寻址 — the instruction holds an address that holds another address, which is the data.
LDI 200. - indexed addressing 变址寻址 — effective address is
address + index register; used for arrays.LDX 100with IR = 5 reads address 105. - relative addressing 相对寻址 — the address is relative to the PC.
Vocabulary TrainEnglish Chinese Pinyin addressing mode 寻址方式 xún zhǐ fāng shì immediate addressing 立即寻址 lì jí xún zhǐ direct addressing 直接寻址 zhí jiē xún zhǐ indirect addressing 间接寻址 jiàn jiē xún zhǐ indexed addressing 变址寻址 biàn zhǐ xún zhǐ relative addressing 相对寻址 xiāng duì xún zhǐ 4.2
Tracing an assembly program
To trace it: make a table with columns for the PC, ACC, index register, each variable and any flags. Step through the instructions, updating the table after each; follow branches when they change the PC; stop at
END. A common pattern is a loop over an array using indexed addressing.4.3
Binary shifts
Syllabus
- Show understanding of and perform binary shifts
- Show understanding of how bit manipulation can be used to monitor/control a device
Source: Cambridge International syllabus
A logical shift 逻辑移位 moves all the bits left or right by some places, filling new positions with 0.
- left shift by 1 (
LSL #1) — bits move left, a 0 enters on the right; for an unsigned number this is × 2. - right shift by 1 (
LSR #1) — bits move right, a 0 enters on the left; for an unsigned number this is integer ÷ 2.
Shifting by $n$ places multiplies or divides by $2^{n}$. Example:
00001011(11)LSL #1→00010110(22).An arithmetic right shift keeps the sign bit so a negative signed number stays negative.
Bit manipulation for monitoring/control
Embedded devices often use one bit 位 of a register per signal (e.g. bit $n$ = LED $n$). Using a mask 掩码:
- set bit $n$:
R = R ORa mask with bit $n$ set. - clear bit $n$:
R = R ANDa mask with bit $n$ clear and the rest set. - toggle bit $n$:
R = R XORa mask with bit $n$ set. - test bit $n$:
R ANDthe mask, then check if the result is non-zero.
Bit manipulation is fast, uses little memory, and lets one byte hold up to 8 on/off states.
Vocabulary TrainEnglish Chinese Pinyin logical shift 逻辑移位 luó jí yí wèi mask 掩码 yǎn mǎ bit 位 wèi -
5 System Software
5.1
Operating systems
Syllabus
- Explain why a computer system requires an Operating System (OS)
- Explain the key management tasks carried out by the Operating System
- Show understanding of the need for typical utility software provided with an Operating System
- Show understanding of program libraries
Source: Cambridge International syllabus
Why a computer needs an OS
Hardware on its own can only fetch and run instructions — it knows nothing about files, programs, networks or users. The operating system 操作系统 (OS) is the software layer that:
- manages the hardware (processor 处理器, memory, I/O, storage) for the running programs.
- provides services (file system, network, user accounts) through a clear interface, so programs need not talk to the hardware directly.
- provides a user interface (command line, GUI, touch).
- lets several programs share the hardware safely — each gets fair CPU time and is kept out of the others' memory.
Without an OS, every program would need its own drivers, and only one program could safely run at a time.
A desktop operating system manages the screen, files and programs for the user
A smartphone runs a mobile operating system such as AndroidKey management tasks
- process management 进程管理 — load programs, schedule them on the CPU, switch between them, and kill misbehaving ones. (A running program is a process 进程.)
- memory management 内存管理 — give memory to processes, keep them apart, and use virtual memory 虚拟内存 / paging 分页 so the working set can exceed physical RAM 随机存取存储器.
- file management — organise files and folders on secondary storage 辅助存储器, control permissions, prevent write corruption.
- device management — handle I/O through device drivers 设备驱动, buffer data, manage interrupts, and give a uniform interface.
- security management — accounts, permissions, firewall, encryption.
- user interface and networking.
The main jobs the operating system manages
Memory protection keeps each application in its own block of memoryUtility software
Most OSes include utility programs 实用程序 to maintain the system:
- file / disk management — copy, move, delete; format; check disk integrity.
- disk defragmenter 碎片整理 — moves the pieces of fragmented files together on a hard disk to cut seek time (not useful on SSDs).
- backup 备份 — copies user data elsewhere so it can be recovered.
- antivirus 杀毒软件 — scans for malware and quarantines threats.
- firewall 防火墙 — filters network traffic by rules.
- compression 压缩 / archiving; system monitor; updates.
Bundling these with the OS saves the user installing each one.
Vocabulary TrainEnglish Chinese Pinyin operating system 操作系统 cāo zuò xì tǒng processor 处理器 chǔ lǐ qì process management 进程管理 jìn chéng guǎn lǐ process 进程 jìn chéng memory management 内存管理 nèi cún guǎn lǐ virtual memory 虚拟内存 xū nǐ nèi cún paging 分页 fēn yè RAM 随机存取存储器 suí jī cún qǔ cún chǔ qì secondary storage 辅助存储器 fǔ zhù cún chǔ qì device driver 设备驱动 shè bèi qū dòng utility program 实用程序 shí yòng chéng xù disk defragmenter 碎片整理 suì piàn zhěng lǐ backup 备份 bèi fèn antivirus 杀毒软件 shā dú ruǎn jiàn firewall 防火墙 fáng huǒ qiáng compression 压缩 yā suō 5.1
Program libraries
A program library 程序库 is pre-written code (subroutines 子程序, classes, modules) that programs reuse instead of writing it themselves — e.g. a maths library, a network library, a graphics library.
A new program reusing ready-made routines from librariesBenefits: saves time (off-the-shelf code), reliable (well-tested, widely used), and standardised (consistent behaviour).
- a static library 静态库 is copied into the executable at compile time (stands alone, but larger and needs rebuilding to update).
- a dynamic library 动态库 (DLL,
.so) is loaded at run time (smaller executables, shared by many programs, updated once for all).
Vocabulary TrainEnglish Chinese Pinyin program library 程序库 chéng xù kù subroutines 子程序 zi chéng xù static library 静态库 jìng tài kù dynamic library 动态库 dòng tài kù 5.2
Language translators
Syllabus
- Show understanding of the need for: assembler software for the translation of an assembly language program, a compiler for the translation of a high-level language program, an interpreter for translation and execution of a high-level language program
- Explain the benefits and drawbacks of using either a compiler or interpreter and justify the use of each
- Show awareness that high-level language programs may be partially compiled and partially interpreted, such as Java (console mode)
- Describe features found in a typical Integrated Development Environment (IDE)
Source: Cambridge International syllabus
You write source code; the computer runs machine code 机器码. A translator 翻译器 converts between them.
Assembler
An assembler 汇编器 translates assembly language 汇编语言 into machine code, one instruction per instruction. Used for low-level code (embedded systems, drivers).
Compiler
A compiler 编译器 translates a high-level program into machine code once, before it runs.
- it reports all errors at compile time; once clean, it produces a stand-alone executable 可执行文件 that runs without the compiler installed and can be run many times.
- generally faster at run time (no translation while running), but tied to one CPU/OS — recompile for each platform.
Interpreter
An interpreter 解释器 translates and runs a high-level program one line at a time, producing no executable.
- it reports an error when it reaches that line, then stops; you can fix it and continue — good for development.
- the interpreter must be installed to run the program; generally slower (each run re-translates), but easy to port across platforms.
Choosing between them
Use a compiler for maximum run-time speed, to distribute to users without dev tools, or when the program runs many times. Use an interpreter for fast development cycles, cross-platform scripts, small or run-once programs, and teaching beginners.
Hybrid: Java
Java is compiled into bytecode 字节码 (a platform-independent intermediate form), which a virtual machine 虚拟机 (the JVM) then interprets — or uses just-in-time compilation 即时编译 to turn hot parts into native code. So errors are caught early, the bytecode runs anywhere with a JVM ("write once, run anywhere"), and long-running programs reach near-native speed. C# and Python use similar designs.
Vocabulary TrainEnglish Chinese Pinyin machine code 机器码 jī qì mǎ translator 翻译器 fān yì qì assembler 汇编器 huì biān qì assembly language 汇编语言 huì biān yǔ yán compiler 编译器 biān yì qì executable 可执行文件 kě zhí xíng wén jiàn interpreter 解释器 jiě shì qì bytecode 字节码 zì jié mǎ virtual machine 虚拟机 xū nǐ jī just-in-time compilation 即时编译 jí shí biān yì 5.2
Integrated Development Environment (IDE)
An integrated development environment 集成开发环境 (IDE) brings the tools to write, test and debug code into one application:
- source code editor with syntax highlighting 语法高亮 (keywords, strings, comments in different colours), auto-indent and bracket matching.
- auto-complete 自动补全 — suggests names and shows function parameters as you type.
- translator integration — compile/run with one keystroke; errors shown inline.
- debugger 调试器 — set breakpoints 断点 to pause, step through line by line, and inspect variables.
- version control 版本控制 integration (git), project management, a help system, refactoring 重构 tools (safe renaming), and unit test 单元测试 integration.
An IDE speeds development by putting writing → running → debugging → fixing behind one interface. Common IDEs: Visual Studio, PyCharm, Eclipse, VS Code.
Vocabulary TrainEnglish Chinese Pinyin integrated development environment 集成开发环境 jí chéng kāi fā huán jìng syntax highlighting 语法高亮 yǔ fǎ gāo liàng auto-complete 自动补全 zì dòng bǔ quán debugger 调试器 tiáo shì qì breakpoints 断点 duàn diǎn version control 版本控制 bǎn běn kòng zhì refactoring 重构 zhòng gòu unit test 单元测试 dān yuán cè shì -
6 Security, privacy and data integrity
6.1
Security, privacy and integrity — three different ideas
Syllabus
- Explain the difference between the terms security, privacy and integrity of data
- Show appreciation of the need for both the security of data and the security of the computer system
- Describe security measures designed to protect computer systems, ranging from the stand-alone PC to a network of computers
- Show understanding of the threats to computer and data security posed by networks and the internet
- Describe methods that can be used to restrict the risks posed by threats
- Describe security methods designed to protect the security of data
Source: Cambridge International syllabus
These sound alike but mean different things:
- security 安全 — protecting data from unauthorised 未授权 access, change or destruction.
- privacy 隐私 — an individual's right to control who sees their personal data, with consent and a clear purpose.
- integrity 完整性 — the data being accurate and complete — not corrupted or accidentally changed.
A file can be secure (only the right people can open it) but lack integrity (a typo corrupted it); or accurate but not private (anyone can read it). All three are needed.
Vocabulary TrainEnglish Chinese Pinyin security 安全 ān quán unauthorised 未授权 wèi shòu quán privacy 隐私 yǐn sī integrity 完整性 wán zhěng xìng 6.1
Why security matters
Two things to protect: the data itself (keep it confidential, intact and available) and the computer system (a compromised system can attack others, steal credentials, or be held to ransom).
6.1
Threats from networks and the internet
- malware 恶意软件 (malicious software):
- virus 病毒 — self-copying code that attaches to other programs and spreads when they run.
- worm 蠕虫 — self-copying code that spreads over networks 网络 with no user action.
- Trojan horse 木马 — looks useful but hides malicious code.
- spyware 间谍软件 — secretly collects information (keystrokes, passwords).
- ransomware 勒索软件 — encrypts your files and demands payment.
- adware 广告软件 — pushes unwanted adverts.
- phishing 网络钓鱼 — fake emails/sites that trick users into giving credentials.
- hacking 黑客入侵 — unauthorised access, often via weak passwords or software flaws.
- denial of service 拒绝服务 (DoS/DDoS) — floods a server so real users cannot reach it.
- eavesdropping 窃听 — capturing data in transit (a risk on open Wi-Fi).
- man-in-the-middle 中间人攻击 — an attacker secretly relays or alters messages between two parties.
- social engineering 社会工程 — tricking people into giving up information.
Vocabulary TrainEnglish Chinese Pinyin malware 恶意软件 è yì ruǎn jiàn virus 病毒 bìng dú worm 蠕虫 rú chóng networks 网络 wǎng luò Trojan horse 木马 mù mǎ spyware 间谍软件 jiàn dié ruǎn jiàn ransomware 勒索软件 lè suǒ ruǎn jiàn adware 广告软件 guǎng gào ruǎn jiàn phishing 网络钓鱼 wǎng luò diào yú hacking 黑客入侵 hēi kè rù qīn denial of service 拒绝服务 jù jué fú wù eavesdropping 窃听 qiè tīng man-in-the-middle 中间人攻击 zhōng jiān rén gōng jī social engineering 社会工程 shè huì gōng chéng 6.1
Security measures
A standalone PC
- a strong password; antivirus kept up to date; prompt software updates; backup 备份 to separate media; full-disk encryption 加密; a locked screen.
A networked PC
All the above, plus a firewall 防火墙, per-user permissions (admin rights only for admins), central account management, and audit logs 审计日志 (who logged in, what they touched).
A firewall sits between the user's computer and the internetAcross the internet
- VPN 虚拟专用网 — encrypts traffic between the user and the corporate gateway.
- HTTPS / TLS — encrypt web traffic.
- intrusion detection — watches traffic for known attack patterns.
Vocabulary TrainEnglish Chinese Pinyin encryption 加密 jiā mì backup 备份 bèi fèn firewall 防火墙 fáng huǒ qiáng audit logs 审计日志 shěn jì rì zhì VPN 虚拟专用网 xū nǐ zhuān yòng wǎng 6.1
Matching measures to threats
- interception in transit → encrypt the data (HTTPS, VPN). Intercepted ciphertext is useless without the key.
- unauthorised access → strong authentication 身份验证 (long passwords; two-factor authentication 双因素认证 with a phone code or key); user authorisation 授权; lock-out after failed logins.
- malware → antivirus and real-time scanning; patching; avoid untrusted downloads.
- phishing → user training; email filtering; check the URL before entering credentials.
- internal threats → the least-privilege 最小权限 principle (give each user only what they need); auditing.
- DDoS → rate limiting and traffic filtering.
Vocabulary TrainEnglish Chinese Pinyin authentication 身份验证 shēn fèn yàn zhèng two-factor authentication 双因素认证 shuāng yīn sù rèn zhèng authorisation 授权 shòu quán least-privilege 最小权限 zuì xiǎo quán xiàn 6.1
Protecting the data itself
- encryption — turn plaintext 明文 into ciphertext 密文 with a key. Symmetric encryption 对称加密 (AES) uses one shared key; asymmetric encryption 非对称加密 (RSA) uses a public key 公钥 and a private key 私钥. Protects data at rest and in transit.
- access control 访问控制 — file permissions (read/write/execute), enforced by the OS.
- authentication — verify the user: something you know (password), have (token, phone), or are (fingerprint); strongest combined.
- backups — keep copies (some off-site) so loss or corruption is recoverable.
- physical security — locked server rooms, cable locks.
A security token shows a changing code for two-factor authentication ("something you have")
A fingerprint reader checks "something you are" — a feature of the person, not a passwordVocabulary TrainEnglish Chinese Pinyin plaintext 明文 míng wén ciphertext 密文 mì wén symmetric encryption 对称加密 duì chèn jiā mì asymmetric encryption 非对称加密 fēi duì chèn jiā mì public key 公钥 gōng yào private key 私钥 sī yào access control 访问控制 fǎng wèn kòng zhì 6.2
Data integrity
Syllabus
- Describe how data validation and data verification help protect the integrity of data
- Describe and use methods of data validation
- Describe and use methods of data verification during data entry and data transfer
Source: Cambridge International syllabus
Data has integrity when it is accurate and complete. Two techniques: validation (catch bad data before storing) and verification (confirm data was entered or transferred correctly).
Validation — does the data make sense?
Validation 验证 checks data against sensible rules, automatically:
- range check — within limits (a month is 1–12).
- length check — the right number of characters.
- type / character check — the right kind of data (a phone field allows only digits).
- format check — matches a pattern (an email must contain
@). - presence check — required fields are not empty.
- check digit 校验位 — an extra digit computed from the others (ISBN, card numbers) that spots transcription errors.
- lookup check and consistency check (e.g. delivery date ≥ order date).
Validation catches data that is wrongly formatted, but not data that is the right format yet factually wrong ("Bob" for "Bib").
Verification — was the data entered or transferred correctly?
Verification 核对 checks the data was not changed in moving from one place to another.
During entry: double entry (type it twice and compare, as for a new password) or visual check.
During transfer (bits can flip):
- parity check 奇偶校验 — an extra bit makes the number of 1s even (even parity) or odd. The receiver re-counts. Catches single-bit errors.
- checksum 校验和 — the sender sends a summary value of the data; the receiver recomputes it and compares.
- cyclic redundancy check 循环冗余校验 (CRC) — a stronger checksum using polynomial division, catching many more error types.
The parity bit is set to make the number of 1s even or odd
Working out a checksum for a block of dataVerification only proves what arrived matches what was sent — not that the data is correct, and not against deliberate tampering. Validation asks "is this sensible?"; verification asks "was this copied correctly?" — use both.
Vocabulary TrainEnglish Chinese Pinyin validation 验证 yàn zhèng check digit 校验位 jiào yàn wèi verification 核对 hé duì parity check 奇偶校验 jī ǒu jiào yàn checksum 校验和 jiào yàn hé cyclic redundancy check 循环冗余校验 xún huán rǒng yú jiào yàn -
7 Ethics and Ownership
7.1
Ethics for computing professionals
Syllabus
- Show understanding of the need for and purpose of ethics as a computing professional
- Show understanding of the need to act ethically and the impact of acting ethically or unethically for a given situation
- Show understanding of the need for copyright legislation
- Show understanding of the different types of software licencing and justify the use of a licence for a given situation
- Show understanding of Artificial Intelligence (AI)
Source: Cambridge International syllabus
A computing professional is someone whose work — software, systems, networks, data — affects other people. Because the work is technical, others often cannot judge whether it was done well or honestly. So the profession follows shared ethics 伦理 (principles for good behaviour).
Why ethics matters
- trust — users and employers trust professionals to act in their interest. Without that trust, software loses credibility.
- impact — software runs medical devices, banking, vehicles. Careless or dishonest work can hurt people.
Professional bodies (BCS, ACM, IEEE) publish codes of ethics for members.
CCTV raises privacy concerns — one of the ethical issues a computing professional must weigh
Discarded electronics (e-waste) are a growing environmental cost of computing
Software development affects the public's wellbeing in several waysTypical principles
- public interest first — protect the safety and welfare of those affected.
- honesty and competence — be honest about your skills; don't claim expertise you lack.
- confidentiality 保密性 — protect clients' and employers' private information.
- avoid conflicts of interest 利益冲突 — don't take work where your interest clashes with the client's.
- keep your skills current; respect intellectual property 知识产权 and privacy 隐私; treat colleagues fairly.
Acting ethically vs unethically
Acting ethically protects users, strengthens reputation, reduces legal risk, and builds trust. Acting unethically (skipping testing, hiding bugs, misusing data) can harm real users, lead to dismissal or legal action, damage reputation, and erode trust in technology generally.
When you face a borderline decision: identify whose interests are affected, check the code of ethics and the law, weigh the consequences, ask a trusted senior, and choose the option that protects users above short-term convenience.
Vocabulary TrainEnglish Chinese Pinyin ethics 伦理 lún lǐ confidentiality 保密性 bǎo mì xìng conflicts of interest 利益冲突 lì yì chōng tū intellectual property 知识产权 zhī shí chǎn quán privacy 隐私 yǐn sī 7.1
Copyright
Copyright 版权 is the legal right of the creator of an original work to control how it is copied, distributed, modified and performed. It applies automatically (no registration) to source code, software, documents, images, audio and video.
Without copyright, anyone could copy software freely, the developer would not be paid, and plagiarism would be legal. With copyright, developers can earn from their work (encouraging more software), users know who made it, and re-use happens on the developer's terms through licensing. Copyright lasts a long time (often 70 years after the creator's death). General ideas and algorithms are not covered by copyright but may be covered by a patent 专利.
Vocabulary TrainEnglish Chinese Pinyin copyright 版权 bǎn quán patent 专利 zhuān lì 7.1
Software licences
A software licence 软件许可证 is a contract granting permission to use software on the owner's terms.
Commercial (proprietary)
- you buy a licence; the software is used only within its terms.
- the source code is not given (a proprietary 专有 product); you cannot modify or redistribute it.
- examples: Microsoft Office, Adobe Photoshop, most games.
Used when the developer wants revenue per user and to keep control of the code.
Open-source
- the source code is public; users can read, modify and redistribute it (open-source 开源).
- permissive licences (MIT, BSD) allow almost any use; copyleft 著佐权 licences (GPL) require that modified versions are released under the same licence ("share-alike").
- examples: Linux, Python, Apache.
Used when the developer wants the software widely used and improved by the community.
Freeware and shareware
- freeware 免费软件 — free of charge, no source code, may be redistributed but not modified (Acrobat Reader, WhatsApp).
- shareware 共享软件 — free for a trial period, then you pay to keep using it; no source code.
Type Cost Source Redistribute Modify Commercial Paid No No No Open-source Free Yes Yes Often, with conditions Freeware Free No Yes No Shareware Free trial, then paid No Sometimes No To justify a licence choice, link it to the developer's goal (revenue, reach, community), the user's needs (cost, customising), and the use case.
Vocabulary TrainEnglish Chinese Pinyin software licence 软件许可证 ruǎn jiàn xǔ kě zhèng proprietary 专有 zhuān yǒu open-source 开源 kāi yuán copyleft 著佐权 zhù zuǒ quán freeware 免费软件 miǎn fèi ruǎn jiàn shareware 共享软件 gòng xiǎng ruǎn jiàn 7.1
Artificial Intelligence (AI)
Artificial intelligence 人工智能 builds systems that do tasks once thought to need human intelligence — recognising speech and images, translating, playing games, driving.
Most modern AI uses machine learning 机器学习 — algorithms that improve at a task by learning patterns from large amounts of data, instead of being programmed step by step. Deep learning 深度学习, using neural networks 神经网络 with many layers, is the leading approach today.
Everyday examples
- speech recognition 语音识别 — spoken words to text (voice assistants).
- image recognition 图像识别 — finding objects, faces or text in images.
- machine translation 机器翻译 — automatic translation between languages.
- recommendation systems 推荐系统 — suggesting products, videos or music.
- autonomous vehicles 自动驾驶汽车 and robots.
A common exam scenario: a program reads a label with a camera, translates it, and reads it aloud — using optical character recognition 光学字符识别 to find the words, machine translation to convert them, and text-to-speech 文本转语音 for the audio.
Benefits
- accessibility — speech/image AI helps users with impairments; translation helps non-native speakers.
- productivity — automating repetitive tasks frees people for creative work.
- decision support — AI spots patterns in huge datasets (medical diagnosis, fraud detection).
- always available, and personalised to each user.
Concerns
- bias 偏见 — unfair patterns in the training data become unfair AI decisions (hiring, lending).
- job displacement — AI may replace some roles.
- privacy — training often uses large amounts of personal data.
- transparency — large models are "black boxes", hard to explain.
- accountability — when AI is wrong, who is responsible: developer, user, or operator?
- misuse — deepfakes, misinformation, surveillance.
Professionals must understand the limits of the AI they build, inform users, and reduce harm.
Vocabulary TrainEnglish Chinese Pinyin artificial intelligence 人工智能 rén gōng zhì néng machine learning 机器学习 jī qì xué xí deep learning 深度学习 shēn dù xué xí neural networks 神经网络 shén jīng wǎng luò speech recognition 语音识别 yǔ yīn shí bié image recognition 图像识别 tú xiàng shí bié machine translation 机器翻译 jī qì fān yì recommendation systems 推荐系统 tuī jiàn xì tǒng autonomous vehicles 自动驾驶汽车 zì dòng jià shǐ qì chē optical character recognition 光学字符识别 guāng xué zì fú shí bié text-to-speech 文本转语音 wén běn zhuǎn yǔ yīn bias 偏见 piān jiàn -
8 Databases
8.1
File-based storage and its limits
Syllabus
- Show understanding of the limitations of using a file-based approach for the storage and retrieval of data
- Describe the features of a relational database that address the limitations of a file-based approach
- Show understanding of and use the terminology associated with a relational database model
- Use an entity-relationship (E-R) diagram to document a database design
- Show understanding of the normalisation process
- Explain why a given set of database tables are, or are not, in 3NF
- Produce a normalised database design for a description of a database, a given set of data, or a given set of tables
Source: Cambridge International syllabus
Before databases, programs stored data in flat files 平面文件 — usually one file per program. This is fine for small data but breaks down at scale.
File-based storage keeps data in separate files, like papers in a filing cabinet — hard to search and easy to duplicateLimitations
- data redundancy 数据冗余 — the same data (a customer's address) is held in several files.
- data inconsistency 数据不一致 — redundant copies updated separately get out of sync.
- data dependence — programs are tied to the file format; change the format and every program must be rewritten.
- hard to enforce integrity 完整性, hard to share safely, weak querying, and weak per-field security.
The files themselves are stored on devices such as hard disk drives
The file-based approach: each program keeps its own filesA relational database 关系数据库 fixes these by storing data in tables managed by one piece of software (the DBMS) that all programs use.
The database approach: one DBMS serves all the programsVocabulary TrainEnglish Chinese Pinyin flat files 平面文件 píng miàn wén jiàn data redundancy 数据冗余 shù jù rǒng yú data inconsistency 数据不一致 shù jù bù yī zhì integrity 完整性 wán zhěng xìng relational database 关系数据库 guān xì shù jù kù 8.1
Relational model — terms
- table 表 (relation) — a grid of rows and columns; one table per type of entity 实体 (e.g.
CUSTOMER). - record 记录 (row) — one row; one instance of the entity.
- field 字段 (column) — one column; one piece of information about each record.
- primary key 主键 — a field (or fields) that uniquely identifies each record; never null or duplicated.
- foreign key 外键 — a field whose value matches the primary key of another table, linking the two.
- composite key 复合键 — a primary key made of two or more fields together.
- candidate key 候选键 — any field(s) that could be the primary key.
- referential integrity 参照完整性 — every foreign-key value must match an existing primary key (no orphan records).
A table is written in shorthand with the primary key underlined and foreign keys noted:
CUSTOMER(CustomerID, Name, Phone) ORDER(OrderID, CustomerID, OrderDate) -- CustomerID is FK → CUSTOMERVocabulary TrainEnglish Chinese Pinyin table 表 biǎo entity 实体 shí tǐ record 记录 jì lù field 字段 zì duàn primary key 主键 zhǔ jiàn foreign key 外键 wài jiàn composite key 复合键 fù hé jiàn candidate key 候选键 hòu xuǎn jiàn referential integrity 参照完整性 cān zhào wán zhěng xìng 8.1
Entity-relationship (E-R) diagrams
An entity-relationship diagram 实体关系图 shows the structure: each entity is a rectangle, each relationship a line, with the cardinality 基数 marked at each end:
- one-to-one (1:1).
- one-to-many 一对多 (1:M) — each Customer has many Orders; each Order has one Customer.
- many-to-many (M:N) — Students take many Courses, and Courses have many Students.
An E-R diagram: one class has many students
Crow's-foot symbols for the cardinality of a relationshipA many-to-many relationship cannot be stored directly. Break it into two one-to-many relationships through a link table 连接表 holding the two foreign keys:
ENROLMENT(StudentID, CourseID, EnrolmentDate)Vocabulary TrainEnglish Chinese Pinyin entity-relationship diagram 实体关系图 shí tǐ guān xì tú cardinality 基数 jī shù one-to-many 一对多 yī duì duō link table 连接表 lián jiē biǎo 8.1
Normalisation
Normalisation 规范化 organises tables to cut redundancy and inconsistency, going through normal forms 范式 in order.
- First normal form (1NF) — every field holds a single (atomic 原子) value, with no repeating groups, and a primary key.
- Second normal form (2NF) — in 1NF, and every non-key field depends on the whole primary key (only matters for a composite key).
- Third normal form (3NF) — in 2NF, and every non-key field depends only on the primary key, not on another non-key field (no transitive dependency 传递依赖).
A 3NF design stores each fact once, so insert/update/delete anomalies disappear. The trade-off is more tables and more joins. Aim for 3NF.
To produce a 3NF design: find the entities and their attributes; choose a primary key for each; split repeating/non-atomic fields (1NF); split fields depending on part of a composite key (2NF); split fields depending transitively on the key (3NF); add foreign keys for the relationships.
Vocabulary TrainEnglish Chinese Pinyin normalisation 规范化 guī fàn huà normal forms 范式 fàn shì atomic 原子 yuán zi transitive dependency 传递依赖 chuán dì yī lài 8.2
Database Management System (DBMS)
Syllabus
- Show understanding of the features provided by a Database Management System (DBMS) that address the issues of a file based approach
- Show understanding of how software tools found within a DBMS are used in practice
Source: Cambridge International syllabus
A DBMS 数据库管理系统 manages the database centrally. Features that fix the file-based limits:
- data dictionary 数据字典 — a description of every table, field, type and key; programs query it instead of hard-coding the structure.
- redundancy/consistency control — each fact stored once.
- concurrent access 并发访问 control — locks and transactions let many users work at once.
- backup 备份 and recovery; security and per-user permissions.
- integrity rules — keys, unique and range constraints, enforced centrally.
- transactions 事务 — a group of operations that all succeed or all fail.
- views 视图 — virtual tables that show each user "their" slice of the data.
Its tools include a data-dictionary editor, a query builder, a forms builder, a report generator, user management, and an SQL editor.
Vocabulary TrainEnglish Chinese Pinyin DBMS 数据库管理系统 shù jù kù guǎn lǐ xì tǒng data dictionary 数据字典 shù jù zì diǎn concurrent access 并发访问 bìng fā fǎng wèn backup 备份 bèi fèn transactions 事务 shì wù views 视图 shì tú 8.3
DDL and DML
Syllabus
- Show understanding that the DBMS carries out all creation/modification of the database structure using its Data Definition Language (DDL)
- Show understanding that the DBMS carries out all queries and maintenance of data using its DML
- Show understanding that the industry standard for both DDL and DML is Structured Query Language (SQL)
- Understand given SQL (DDL) statements and be able to write simple SQL (DDL) statements using a sub-set of statements
- Write an SQL script to query or modify data (DML) which are stored in (at most two) database tables
Source: Cambridge International syllabus
SQL 结构化查询语言 (Structured Query Language) has two halves:
- Data Definition Language 数据定义语言 (DDL) — creates or changes the structure (tables, keys, constraints).
- Data Manipulation Language 数据操纵语言 (DML) — works with the data (insert, update, delete, query 查询).
DDL basics
CREATE TABLE CUSTOMER ( CustomerID INTEGER PRIMARY KEY, Name VARCHAR(50) NOT NULL, Phone VARCHAR(20) );Add a foreign key:
CREATE TABLE ORDER ( OrderID INTEGER PRIMARY KEY, CustomerID INTEGER, OrderDate DATE, FOREIGN KEY (CustomerID) REFERENCES CUSTOMER(CustomerID) );Modify and drop:
ALTER TABLE CUSTOMER ADD Email VARCHAR(100); DROP TABLE CUSTOMER;Common types:
INTEGER,VARCHAR(n),CHAR(n),DATE,BOOLEAN,DECIMAL(p, s).DML basics
Query with
SELECT:SELECT Name, Phone FROM CUSTOMER WHERE City = 'London' ORDER BY Name ASC;SELECTlists fields,FROMnames the table,WHEREfilters rows,ORDER BYsorts.A join 连接 combines two tables using a foreign-key relationship:
SELECT C.Name, O.OrderDate FROM CUSTOMER C INNER JOIN ORDER O ON C.CustomerID = O.CustomerID WHERE O.OrderDate >= '2024-01-01';Aggregate functions 聚合函数 (
COUNT,SUM,AVG,MIN,MAX) are often used withGROUP BY:SELECT CustomerID, COUNT(*) AS NumOrders FROM ORDER GROUP BY CustomerID;Insert, update, delete:
INSERT INTO CUSTOMER (CustomerID, Name, Phone) VALUES (101, 'Ada Lovelace', '020-1234-5678'); UPDATE CUSTOMER SET Phone = '020-9999-0000' WHERE CustomerID = 101; DELETE FROM CUSTOMER WHERE CustomerID = 101;Always put a
WHEREclause onUPDATEandDELETE, or the change hits every row.Tips for exam SQL
- use the exact table and field names from the question.
- quote strings with single quotes (
'Smith'); don't quote numbers. - comparisons:
=,<,>,<=,>=,<>. LIKE 'A%'matches anything starting with A (%= any string,_= one character);IN (1,2,3);BETWEEN 10 AND 20.- combine conditions with
AND/OR/NOT, and end each statement with a semicolon.
Vocabulary TrainEnglish Chinese Pinyin SQL 结构化查询语言 jié gòu huà chá xún yǔ yán Data Definition Language 数据定义语言 shù jù dìng yì yǔ yán Data Manipulation Language 数据操纵语言 shù jù cāo zòng yǔ yán query 查询 chá xún join 连接 lián jiē aggregate functions 聚合函数 jù hé hán shù -
9 Algorithm Design and Problem-solving
9.1
Computational thinking
Syllabus
- Show an understanding of abstraction
- Describe and use decomposition
Source: Cambridge International syllabus
Computational thinking 计算思维 is the set of mental tools for analysing a problem and designing a solution a computer can run. Two key ones are abstraction and decomposition.
Computational thinking breaks a big problem into smaller, easier parts — like solving a jigsawAbstraction
Abstraction 抽象 means keeping the essential features of a problem and ignoring the irrelevant detail, giving a simpler model.
Examples: a train-network map keeps the stations and lines but drops geography; a class in object-oriented programming keeps the few attributes and methods the system needs; a function hides a piece of work behind a name. Abstraction is essential because a full model of any real problem would be too big to reason about.
Decomposition
Decomposition 分解 means breaking a large problem into smaller sub-problems, each easier to solve and tackled one at a time.
- find the main parts of the task.
- break each into smaller sub-tasks.
- continue until each is small enough to design directly.
- solve the small tasks and combine them.
For stock control: "manage stock" → "record sales", "record deliveries", "produce reports" → ("record sales") "look up product", "decrease stock count", "save the transaction". Decomposition makes big problems manageable, lets a team divide the work, and gives modular code.
Decomposing a program into modules and sub-modulesVocabulary TrainEnglish Chinese Pinyin computational thinking 计算思维 jì suàn sī wéi abstraction 抽象 chōu xiàng decomposition 分解 fēn jiě 9.2
Algorithms
Syllabus
- Show understanding that an algorithm is a solution to a problem expressed as a sequence of defined steps
- Use suitable identifier names for the representation of data used by a problem and represent these using an identifier table
- Write pseudocode that contains input, process and output
- Write pseudocode using the three basic constructs of sequence, selection and iteration (repetition)
- Document a simple algorithm using a structured English description, a flowchart or pseudocode
- Write pseudocode from: a structured English description, a flowchart
- Draw a flowchart from: a structured English description, pseudocode
- Describe and use the process of stepwise refinement to express an algorithm to a level of detail from which the task may be programmed
- Use logic statements to define parts of an algorithm solution
Source: Cambridge International syllabus
An algorithm 算法 is a solution expressed as a sequence of defined steps. Each step is unambiguous 无歧义 (one meaning), deterministic 确定性 (same input → same output), finite (the steps end), and effective (each can be done). An algorithm says what to do, independent of the programming language used to implement it.
Vocabulary TrainEnglish Chinese Pinyin algorithm 算法 suàn fǎ unambiguous 无歧义 wú qí yì deterministic 确定性 què dìng xìng 9.2
Identifier table
When you start an algorithm, list every piece of data in an identifier table 标识符表 — its variable 变量 name, data type 数据类型, and description:
Variable name Data type Description CategorySTRINGthe product category SaleDateDATEwhen the item was sold ItemCostREALcost of the item InStockBOOLEANTRUEif in stockUse descriptive names (
ItemCost, notx); common types areINTEGER,REAL,STRING,CHAR,BOOLEAN,DATE, plus arrays. The table forces you to name every piece of data before writing code.Vocabulary TrainEnglish Chinese Pinyin identifier table 标识符表 biāo shí fú biǎo variable 变量 biàn liàng data type 数据类型 shù jù lèi xíng 9.2
Pseudocode — the three basic constructs
Pseudocode 伪代码 is a structured, language-neutral way to describe algorithms.
1. Sequence
Steps run one after another (sequence 顺序):
INPUT Name INPUT Age OUTPUT "Hello", Name2. Selection
A choice of which steps run, based on a condition (selection 选择):
IF Age >= 18 THEN OUTPUT "Adult" ELSE OUTPUT "Minor" ENDIFFor more options, use
CASE OF ... ENDCASE.3. Iteration
Repeating a block (iteration 迭代, a loop 循环):
FOR i ← 1 TO 10 OUTPUT i NEXT iA WHILE loop tests the condition before each pass (may run zero times); a REPEAT...UNTIL loop tests after each pass (always runs at least once).
Common operations
- assignment 赋值:
x ← 5(an arrow;=is for comparison). - input/output:
INPUT variable,OUTPUT expression. - comparisons
=,<>,<,>,<=,>=; logicAND,OR,NOT. - arithmetic
+ - * /, plusDIV(integer division) andMOD(remainder). - strings:
LENGTH,LEFT,RIGHT,MID, and&for concatenation 拼接 (joining).
Input → Process → Output
Every program follows this shape:
INPUT Length INPUT Width Area ← Length * Width OUTPUT "Area = ", AreaListing the inputs and outputs first makes the algorithm cleaner.
Vocabulary TrainEnglish Chinese Pinyin pseudocode 伪代码 wěi dài mǎ sequence 顺序 shùn xù selection 选择 xuǎn zé iteration 迭代 dié dài loop 循环 xún huán assignment 赋值 fù zhí concatenation 拼接 pīn jiē 9.2
Three notations
The same algorithm can be written three ways.
- structured English 结构化英语 — natural language with indentation and fixed keywords; good for a high-level description.
- flowchart 流程图 — a diagram with standard shapes:
Shape Meaning Rounded rectangle Start / Stop Parallelogram Input / Output Rectangle Process Diamond Decision Arrow Flow of control - pseudocode — the keyword notation above; closest to code.
You should be able to convert between any pair: each
IFis a decision diamond, each loop is a back-arrow, and a sequence is stacked rectangles.
A flowchart for averaging a list of numbers, using the standard shapesVocabulary TrainEnglish Chinese Pinyin structured English 结构化英语 jié gòu huà yīng yǔ flowchart 流程图 liú chéng tú 9.2
Stepwise refinement
Stepwise refinement 逐步求精 starts with a high-level outline and expands each step until it is small enough to code. For an average of $n$ numbers:
Level 1:
Read in the numbers Compute the average Output the averageLevel 2:
INPUT n total ← 0 FOR i ← 1 TO n INPUT value total ← total + value NEXT i average ← total / n OUTPUT averageEach refinement keeps the previous structure and adds detail.
Vocabulary TrainEnglish Chinese Pinyin stepwise refinement 逐步求精 zhú bù qiú jīng 9.2
Logic statements
A logic statement 逻辑语句 is a Boolean 布尔 condition that controls branching, built from comparisons (
x > 10), connectives (AND,OR,NOT) and brackets. Use it as the condition ofIF,WHILEorREPEAT...UNTIL:WHILE attempts < 3 AND NOT loggedIn DO INPUT password IF password = correctPassword THEN loggedIn ← TRUE ELSE attempts ← attempts + 1 ENDIF ENDWHILEPrecedence 优先级 (highest to lowest):
NOT, thenAND, thenOR. Use brackets when unsure. Common mistakes:a = 1 OR 2is wrong — writea = 1 OR a = 2.NOT a > 5meansNOT (a > 5), i.e.a <= 5.NOT (A AND B)is the same as(NOT A) OR (NOT B)(De Morgan's law 德摩根定律) — handy for simplifying conditions.
Vocabulary TrainEnglish Chinese Pinyin logic statement 逻辑语句 luó jí yǔ jù Boolean 布尔 bù ěr precedence 优先级 yōu xiān jí De Morgan's law 德摩根定律 dé mó gēn dìng lǜ -
10 Data Types and Structures
10.1
Choosing data types
Syllabus
- Select and use appropriate data types for a problem solution
- Show understanding of the purpose of a record structure to hold a set of data of different data types under one identifier
- Write pseudocode to define a record structure
- Write pseudocode to read data from a record structure and save data to a record structure
Source: Cambridge International syllabus
Every variable needs a data type 数据类型 — the kind of value it holds and the operations allowed:
INTEGER— a whole number (42,-7). For counts, indexes, IDs.REAL— a number with a fractional part (3.14). For money, measurements.STRING— characters in quotes ("Hello"). For text.CHAR— a single character ('A').BOOLEAN—TRUEorFALSE. For flags.DATE— a calendar date.
Pick the smallest precise type that fits:
INTEGERfor whole counts,BOOLEANfor flags (not the strings"yes"/"no").Vocabulary TrainEnglish Chinese Pinyin data type 数据类型 shù jù lèi xíng 10.1
Records
A record 记录 holds several fields of different types under one name — useful when several values describe one thing.
TYPE TStockItem DECLARE ItemID : INTEGER DECLARE Category : STRING DECLARE ItemCost : REAL DECLARE InStock : BOOLEAN ENDTYPEThis defines the type
TStockItem; declare variables of it:DECLARE Item1 : TStockItem DECLARE Items : ARRAY[1:100] OF TStockItemUse dot notation to reach each field 字段:
Item1.Category ← "Fruit" OUTPUT Item1.Category, " costs ", Item1.ItemCostUse a record when values always belong together (a customer, a stock item); use separate variables for unrelated values.
Vocabulary TrainEnglish Chinese Pinyin record 记录 jì lù field 字段 zì duàn 10.2
Arrays
Syllabus
- Use the technical terms associated with arrays
- Select a suitable data structure (1D or 2D array) to use for a given task
- Write pseudocode for 1D and 2D arrays
- Write pseudocode to process array data
Source: Cambridge International syllabus
An array 数组 is an ordered collection of items of the same type, under one name, reached by an index 索引.
- element 元素 — one item in the array.
- bounds 边界 — the lowest and highest valid indices.
- dimension 维度 — 1-D (a list), 2-D (a table), etc.
1-D arrays
DECLARE Names : ARRAY[1:5] OF STRING Names[3] ← "Cara" OUTPUT Names[3]Process every element with a
FORloop:FOR i ← 1 TO 5 OUTPUT Names[i] NEXT i
A 1-D array (a list) with indices and bounds2-D arrays
DECLARE Grid : ARRAY[1:3, 1:4] OF INTEGER Grid[2, 3] ← 99The first index is the row, the second the column. Use nested loops to visit every cell. Use 1-D for a single sequence, 2-D for two natural dimensions (a grid, rows × columns).
A 2-D array (a table) with row and column indicesCommon operations
A linear search 线性查找 checks each element until found:
FOR i ← 1 TO n IF A[i] = Target THEN OUTPUT "Found at ", i ENDIF NEXT iTo find a sum, count, maximum or minimum, set a running variable then sweep through:
Max ← A[1] FOR i ← 2 TO n IF A[i] > Max THEN Max ← A[i] NEXT iVocabulary TrainEnglish Chinese Pinyin array 数组 shù zǔ index 索引 suǒ yǐn element 元素 yuán sù bounds 边界 biān jiè dimension 维度 wéi dù linear search 线性查找 xiàn xìng chá zhǎo 10.3
Files
Syllabus
- Show understanding of why files are needed
- Write pseudocode to handle text files that consist of one or more lines
Source: Cambridge International syllabus
A file 文件 is data stored on secondary storage 辅助存储器, kept between program runs. Variables in RAM disappear when the program ends, so to save data permanently (high scores, records, settings) the program writes to a file. Files also let programs share data and restart from a saved state.
A text file 文本文件 is lines of readable characters. Open a file before use and close it after:
OPENFILE "data.txt" FOR READ // or FOR WRITE, FOR APPEND WHILE NOT EOF("data.txt") DO READFILE "data.txt", LineString OUTPUT LineString ENDWHILE CLOSEFILE "data.txt"EOFtests the end of file 文件结束 before reading. To write:OPENFILE "log.txt" FOR WRITE FOR i ← 1 TO 100 WRITEFILE "log.txt", "Event " & i NEXT i CLOSEFILE "log.txt"Always close every file — otherwise buffered writes may be lost and other programs may be locked out.
Vocabulary TrainEnglish Chinese Pinyin file 文件 wén jiàn secondary storage 辅助存储器 fǔ zhù cún chǔ qì text file 文本文件 wén běn wén jiàn end of file 文件结束 wén jiàn jié shù 10.4
Abstract Data Types (ADTs)
Syllabus
- Show understanding that an ADT is a collection of data and a set of operations on those data
- Show understanding that a stack, queue and linked list are examples of ADTs
- Use a stack, queue and linked list to store data
- Describe how a queue, stack and linked list can be implemented using arrays
Source: Cambridge International syllabus
An Abstract Data Type 抽象数据类型 (ADT) is a collection of data plus operations on it, defined by what it does, not how it is stored. The user works only through the operations; the implementation is hidden, so it can change without affecting code that uses the ADT. Know three: stack, queue, linked list.
Stack
A stack 栈 works in LIFO 后进先出 order (Last In, First Out). Operations: push 入栈 (add to the top), pop 出栈 (remove from the top), peek (look at the top), and tests for empty/full. Uses: undo history, function-call return addresses, expression parsing, backtracking.
Push and pop change the top pointer; the base pointer stays putQueue
A queue 队列 works in FIFO 先进先出 order (First In, First Out). Operations: enqueue 入队 (add to the rear), dequeue 出队 (remove from the front), and tests for empty/full. Uses: print spooling, scheduling, breadth-first search, buffering.
Enqueue adds at the rear; dequeue removes from the frontLinked list
A linked list 链表 stores data as a sequence of nodes 节点. Each node holds a value and a pointer 指针 to the next node; a head pointer marks the start, and the last node's pointer is a sentinel (e.g.
NULL). Operations: insert, delete, search, and traverse 遍历 (visit each node in order). Its advantage over an array is cheap insertion/deletion (just adjust pointers); its disadvantage is slow random access (you must follow pointers from the head).
A linked list: each node points to the nextVocabulary TrainEnglish Chinese Pinyin abstract data type 抽象数据类型 chōu xiàng shù jù lèi xíng stack 栈 zhàn LIFO 后进先出 hòu jìn xiān chū push 入栈 rù zhàn pop 出栈 chū zhàn queue 队列 duì liè FIFO 先进先出 xiān jìn xiān chū enqueue 入队 rù duì dequeue 出队 chū duì linked list 链表 liàn biǎo node 节点 jié diǎn pointer 指针 zhǐ zhēn traverse 遍历 biàn lì 10.4
Implementing ADTs using arrays
Stack using an array
Hold items in
Stack[1:MaxSize]with an integerTop(0 when empty).Push(x): ifTop = MaxSizethe stack is full (overflow 溢出); elseTop ← Top + 1;Stack[Top] ← x.Pop(): ifTop = 0the stack is empty (underflow 下溢); else returnStack[Top]andTop ← Top - 1.
Queue using a circular array
A simple queue lets
FrontandRearmarch off the end, wasting the start. The fix is a circular array 循环数组 — when a pointer reachesMaxSizeit wraps back to 1:Enqueue(x): check full; elseRear ← (Rear MOD MaxSize) + 1;Queue[Rear] ← x.Dequeue(): check empty; else returnQueue[Front]andFront ← (Front MOD MaxSize) + 1.
Track a separate count to tell empty from full.
A circular queue wraps the pointers back to the start of the arrayLinked list using an array
Use an array of records, each with a
Nextindex:TYPE TNode DECLARE Value : INTEGER DECLARE Next : INTEGER // index of the next node, or -1 for end ENDTYPE DECLARE Nodes : ARRAY[1:MaxSize] OF TNode DECLARE Head : INTEGER // index of first node, -1 if empty DECLARE FreeListHead : INTEGER // first available free nodeA free list 空闲列表 chains the unused slots, just as the data list chains its used ones. To insert: take a slot from
FreeListHead, set the new node's value andNext, and update the previous node'sNext(orHead). To delete: unlink the node and return its slot to the free list. This gives the flexibility of a linked structure with the static allocation of an array.
A linked list stored in an array: a data array and a pointer arrayVocabulary TrainEnglish Chinese Pinyin overflow 溢出 yì chū underflow 下溢 xià yì circular array 循环数组 xún huán shù zǔ free list 空闲列表 kòng xián liè biǎo -
11 Programming
11.1
Programming basics
Syllabus
- Implement and write pseudocode from a given design presented as either a program flowchart or structured English
- Write pseudocode statements for: the declaration and initialisation of constants, the declaration of variables, the assignment of values to variables, expressions involving any of the arithmetic or logical operators input from the keyboard and output to the console
- Use built-in functions and library routines
Source: Cambridge International syllabus
Programming turns a design into instructions written as code
A programmer writes the code and tests it as they goFrom design to code
You should be able to turn a design — a flowchart 流程图 or structured English 结构化英语 — into pseudocode 伪代码, and then into a real language:
- find the variables 变量 and their data types 数据类型.
- turn input/output boxes into
INPUT/OUTPUT. - turn decision diamonds into
IF...ELSE...ENDIF(orCASE). - turn loop arrows into
WHILE,REPEAT...UNTIL, orFOR. - turn process boxes into assignments or calculations.
- check by tracing a small input.
Constants and variables
A constant 常量 holds a value that never changes; a variable holds one that may change. Declare them with a type:
CONSTANT Pi ← 3.14159 DECLARE Radius : REAL DECLARE Area : REAL Radius ← 5 Area ← Pi * Radius * RadiusUse constants for fixed values that recur (
Pi,MaxScore); they make code clearer and easy to change in one place.Assignment and expressions
Use
←for assignment 赋值:Total ← Total + 1 Average ← Sum / CountExpressions use operators 运算符:
- arithmetic
+ - * /, plusDIV(integer division) andMOD(remainder):7 DIV 2 = 3;7 MOD 2 = 1. - comparisons
=,<>,<,>,<=,>=. - logic
AND,OR,NOT.
Precedence 优先级 (highest to lowest):
NOT→* / DIV MOD→+ -→ comparisons →AND→OR. Use brackets when unsure.Input and output
OUTPUT "Enter your name:" INPUT Name OUTPUT "Hello, ", NameBuilt-in functions and library routines
Many tasks have ready-made library routines 库例程, so you need not write them:
- string:
LENGTH(s),LEFT(s, n),RIGHT(s, n),MID(s, start, len),UCASE(s),LCASE(s). - numeric:
INT(x),ROUND(x),ABS(x),MOD(a, b),RANDOM(). - conversion:
STR(x)(number → string),VAL(s)(string → number).
Use the exact names from the question paper's reference list.
Vocabulary TrainEnglish Chinese Pinyin flowchart 流程图 liú chéng tú structured English 结构化英语 jié gòu huà yīng yǔ pseudocode 伪代码 wěi dài mǎ variables 变量 biàn liàng data types 数据类型 shù jù lèi xíng constant 常量 cháng liàng assignment 赋值 fù zhí operators 运算符 yùn suàn fú precedence 优先级 yōu xiān jí library routines 库例程 kù lì chéng 11.2
Selection
Syllabus
- Use pseudocode to write: an 'IF' statement including the 'ELSE' clause and nested IF statements, a 'CASE' structure, a 'count-controlled' loop, a 'post-condition' loop, a 'pre-condition' loop
- Justify why one loop structure may be better suited to solve a problem than the others
Source: Cambridge International syllabus
Selection 选择 chooses which steps run.
IF age >= 18 THEN OUTPUT "Adult" ELSE OUTPUT "Minor" ENDIFFor more than two cases you can use a nested 嵌套 IF, but deep nesting is hard to read — a
CASEis cleaner when testing one value against several options:CASE OF Grade "A": OUTPUT "Excellent" "B": OUTPUT "Good" OTHERWISE: OUTPUT "Try again" ENDCASECambridge
CASEallows single values, value lists (1, 2, 3:), and ranges (1 TO 5:).
A CASE statement runs the branch that matches the valueVocabulary TrainEnglish Chinese Pinyin selection 选择 xuǎn zé nested 嵌套 qiàn tào 11.2
Iteration
Iteration 迭代 repeats a block. Three loops differ in how many times the body runs.
Count-controlled (FOR) loop
A count-controlled loop 计数循环 — use it when you know how many times to repeat:
FOR i ← 1 TO 10 OUTPUT i NEXT iA
STEPcan change the count (e.g.FOR i ← 10 TO 1 STEP -1). Best for a fixed number of repeats or processing each element of an array 数组.Pre-condition (WHILE) loop
A pre-condition loop 前测循环 tests the condition before each pass, so it may run zero times:
WHILE total < 100 DO INPUT n total ← total + n ENDWHILEPost-condition (REPEAT...UNTIL) loop
A post-condition loop 后测循环 tests the condition after each pass, so it always runs at least once:
REPEAT INPUT password UNTIL password = correctPasswordChoosing the right loop
- count known up front → FOR.
- may need zero passes → WHILE.
- always at least one pass → REPEAT...UNTIL.
Justify your choice by whether the count is known and whether the body must run at least once. A typical question gives a scenario ("ask for a password until correct, but always ask at least once") and asks which loop fits.
Vocabulary TrainEnglish Chinese Pinyin iteration 迭代 dié dài count-controlled loop 计数循环 jì shù xún huán array 数组 shù zǔ pre-condition loop 前测循环 qián cè xún huán post-condition loop 后测循环 hòu cè xún huán 11.3
Procedures and functions
Syllabus
- Define and use a procedure
- Explain where in the construction of an algorithm it would be appropriate to use a procedure
- Use parameters
- Define and use a function
- Explain where in the construction of an algorithm it is appropriate to use a function
- Use the terminology associated with procedures and functions
- Write efficient pseudocode
Source: Cambridge International syllabus
Structured programming 结构化编程 builds a program from small named subroutines 子程序, each with one job.
Procedure
A procedure 过程 is a named block that does an action; it may take parameters 参数 but does not return a value.
PROCEDURE Greet(name : STRING) OUTPUT "Hello, ", name ENDPROCEDURE CALL Greet("Ada")Function
A function 函数 is like a procedure but it returns a value that becomes part of an expression.
FUNCTION Square(x : INTEGER) RETURNS INTEGER RETURN x * x ENDFUNCTION result ← Square(5) + 1 // result = 26Use a procedure when the subroutine performs an action; use a function when it computes a value for the caller.
Parameters
A parameter is a variable a subroutine declares to receive input; the values the caller supplies are arguments 实参. Two ways to pass them:
- pass by value 传值 — the routine gets a copy; changes inside it do not affect the caller. Use for inputs it only reads.
- pass by reference 传引用 — the routine gets a reference to the caller's variable; changes do affect the caller. Use when it must update a parameter.
PROCEDURE Swap(BYREF a : INTEGER, BYREF b : INTEGER) DECLARE temp : INTEGER temp ← a a ← b b ← temp ENDPROCEDURELocal vs global variables
A local variable 局部变量 is declared inside a subroutine and exists only while it runs. A global variable 全局变量 is declared outside and is visible everywhere. Prefer locals and parameters — heavy use of globals makes code hard to follow and test. (The region where a name is visible is its scope 作用域.)
When to use a subroutine
Use one when the same logic appears in more than one place, when a block has a clear named purpose, when the program is complex (use decomposition 分解), or when you want to test a piece in isolation. Don't make them so tiny that the call costs more than the content.
Terminology
- definition — the
PROCEDURE ... ENDPROCEDURE(or function) block. - call — where it is invoked. argument — a value passed in. parameter — the variable that receives it.
- return value — what a function passes back.
- signature 签名 — name + parameters + return type.
Vocabulary TrainEnglish Chinese Pinyin structured programming 结构化编程 jié gòu huà biān chéng subroutines 子程序 zi chéng xù procedure 过程 guò chéng parameters 参数 cān shù function 函数 hán shù arguments 实参 shí cān pass by value 传值 chuán zhí pass by reference 传引用 chuán yǐn yòng local variable 局部变量 jú bù biàn liàng global variable 全局变量 quán jú biàn liàng scope 作用域 zuò yòng yù decomposition 分解 fēn jiě signature 签名 qiān míng 11.3
Writing efficient pseudocode
- move invariants out of loops — if a value (an invariant 不变量) does not change with the loop counter, compute it once before the loop.
- exit a loop early when the answer is found (stop a linear search 线性查找 as soon as the target appears).
- avoid redundant work — store a result and reuse it instead of recomputing.
- choose the right data structure — an array beats many separate variables when the items belong together.
- replace deep nested IFs with CASE when testing one value against many.
- comment the intent, not the mechanics (
// validate the postcode, not// loop 6 times). - use meaningful names (
numberOfPupils, notn) and initialise variables before use.
Vocabulary TrainEnglish Chinese Pinyin invariant 不变量 bù biàn liàng linear search 线性查找 xiàn xìng chá zhǎo -
12 Software Development
12.1
Program development life cycle
Syllabus
- Show understanding of the purpose of a development life cycle
- Show understanding of the need for different development life cycles depending on the program being developed
- Describe the principles, benefits and drawbacks of each type of life cycle
- Show understanding of the analysis, design, coding, testing and maintenance stages in the program development life cycle
Source: Cambridge International syllabus
A development life cycle 开发生命周期 is the set of stages from idea to finished, maintained software. It exists to plan, manage and control a project — to build the right product, on time, with good quality.
Software is built by teams who follow a development life cycle to stay coordinated
A flowchart plans a program's logic during the design stage of the cycleWhy a life cycle is needed
It manages complexity (break a big program into phases), coordinates teams, tracks progress with milestones, builds in testing, records design decisions for later, and manages risk.
Why there are different ones
No single life cycle fits every project. The choice depends on the size and complexity, how clear the requirements 需求 are at the start, how much change is expected, the risk level, the team, and the deadline.
Common models
- Waterfall 瀑布模型 — a linear sequence (Analysis → Design → Coding → Testing → Maintenance), each stage finished before the next. Clear and well-documented; good for stable requirements, but poor at coping with mid-project change, and the customer sees nothing working until the end.
- Iterative model 迭代模型 — repeated passes, each producing a partial version that is reviewed and refined. Catches problems earlier; good when requirements are discovered over time, but harder to estimate.
- Rapid Application Development 快速应用开发 (RAD) — heavy use of a prototype 原型 and user feedback. Very fast first delivery; good for changing requirements, but depends on user availability and suits smaller systems.
- Agile 敏捷 — short iterations ("sprints"), constant collaboration and testing. Flexible and adaptive, but needs a committed customer and a skilled team.
The waterfall model: each stage is finished before the next begins
The iterative model: repeated passes refine the program
Rapid application development: teams work on parts in parallelThe standard stages
- analysis — find what the program must do; gather and document requirements.
- design — decide how: data structures, algorithms, modules, interface, file layouts.
- coding (implementation 实现**)** — write the source code following the design.
- testing — run against test data and fix bugs.
- maintenance 维护 — after release, keep it working and useful.
Vocabulary TrainEnglish Chinese Pinyin development life cycle 开发生命周期 kāi fā shēng mìng zhōu qī requirements 需求 xū qiú waterfall 瀑布模型 pù bù mó xíng iterative model 迭代模型 dié dài mó xíng rapid application development 快速应用开发 kuài sù yìng yòng kāi fā prototype 原型 yuán xíng agile 敏捷 mǐn jié implementation 实现 shí xiàn maintenance 维护 wéi hù 12.2
Program design tools
Syllabus
- Use a structure chart to decompose a problem into sub-tasks and express the parameters passed between the various modules/procedures/functions which are part of the algorithm design
- Show understanding of the purpose of state-transition diagrams to document an algorithm
Source: Cambridge International syllabus
Structure chart
A structure chart 结构图 shows the hierarchical decomposition 分解 of a program into modules (subroutines 子程序) and the parameters 参数 passed between them. Each module is a rectangle; lines link caller (above) to callee (below); small arrows show data going down and results coming back up.
CalculatePay / | \ GetEmployee CalculateBonus CalculateTax Returns: Takes: sales Takes: gross employeeID Returns: bonus Returns: taxIt is a design-stage tool, and you can read the procedure signatures off it.
A structure chart: modules with the parameters passed between themState-transition diagram
A state-transition diagram 状态转换图 shows the states 状态 a system can be in and the events that move it between them — good for vending machines, traffic lights, user interfaces. Each state is a circle; each transition is an arrow labelled with the event.
coin inserted item selected [Idle] ──────────────→ [Awaiting selection] ──────────→ [Dispensing]It makes missing transitions easy to spot ("what if a second coin is inserted while awaiting selection?").
A state-transition diagram for a door lock with code 259Vocabulary TrainEnglish Chinese Pinyin structure chart 结构图 jié gòu tú decomposition 分解 fēn jiě subroutines 子程序 zi chéng xù parameters 参数 cān shù state-transition diagram 状态转换图 zhuàng tài zhuǎn huàn tú states 状态 zhuàng tài 12.3
Errors
Syllabus
- Show understanding of ways of exposing and avoiding faults in programs
- Locate and identify the different types of errors (syntax errors, logic errors, run-time errors)
- Correct identified errors
- Show understanding of the methods of testing available and select appropriate data for a given method (Including dry run, walkthrough, white-box, black-box, integration, alpha, beta, acceptance, stub)
- Show understanding of the need for a test strategy and test plan and their likely contents
- Choose appropriate test data for a test plan (Including normal, abnormal and extreme/boundary)
- Show understanding of the need for continuing maintenance of a system and the differences between each type of maintenance (Including perfective, adaptive, corrective)
- Analyse an existing program and make amendments to enhance functionality
Source: Cambridge International syllabus
- syntax error 语法错误 — breaks the language's grammar (missing bracket, misspelled keyword). Caught at translation time; the program won't run until fixed.
- run-time error 运行时错误 — happens while running (divide by zero, file not found, array index out of range). The program crashes or raises an exception; fix by adding checks.
- logic error 逻辑错误 — the program runs but gives wrong results (using
+for-, an off-by-one loop, conditions in the wrong order). The hardest to find; the only sign is wrong output, so use careful testing and tracing.
Vocabulary TrainEnglish Chinese Pinyin syntax error 语法错误 yǔ fǎ cuò wù run-time error 运行时错误 yùn xíng shí cuò wù logic error 逻辑错误 luó jí cuò wù 12.3
Testing methods
- dry run 手工跟踪 — trace the code on paper, writing each variable's value in a table.
- walkthrough 走查 — a team review of the code.
- white-box testing 白盒测试 — designed from the code's internal structure, covering every statement, branch and loop.
- black-box testing 黑盒测试 — designed from the specification only: feed inputs, check outputs.
- integration testing 集成测试 — combine modules and test the interfaces between them.
- alpha testing α测试 — by the developers/in-house before release; beta testing β测试 — by a limited group of real users in their own environment.
- acceptance testing 验收测试 — by the customer, to decide if the product is fit for purpose.
- stub 桩 — a placeholder for a module that does not exist yet, so the structure can be tested top-down.
Vocabulary TrainEnglish Chinese Pinyin dry run 手工跟踪 shǒu gōng gēn zōng walkthrough 走查 zǒu chá white-box testing 白盒测试 bái hé cè shì black-box testing 黑盒测试 hēi hé cè shì integration testing 集成测试 jí chéng cè shì alpha testing α测试 α cè shì beta testing β测试 β cè shì acceptance testing 验收测试 yàn shōu cè shì stub 桩 zhuāng 12.3
Test strategy and test plan
A test strategy 测试策略 is the high-level approach — which kinds of testing, who does them, when, and the criteria to move on. A test plan 测试计划 is the detailed list of tests — each with input data, expected output, and a column for the actual output.
Choosing test data
For each field or condition, include three kinds:
- normal data 正常数据 — typical values inside the valid range (for marks 0–100:
50,75). - abnormal data 异常数据 — values that should be rejected (
-10,200,"abc"). - boundary data 边界数据 — values at the edges, where off-by-one errors hide (
0,100, and just outside-1,101).
Vocabulary TrainEnglish Chinese Pinyin test strategy 测试策略 cè shì cè lüè test plan 测试计划 cè shì jì huà normal data 正常数据 zhèng cháng shù jù abnormal data 异常数据 yì cháng shù jù boundary data 边界数据 biān jiè shù jù 12.3
Maintenance
Most of a program's lifetime cost is in maintenance. Three kinds:
- perfective maintenance 完善性维护 — improving performance or features even though it works (a faster query, a new option).
- adaptive maintenance 适应性维护 — keeping it working in a changing environment (a new OS, a new API, a legal change).
- corrective maintenance 纠正性维护 — fixing bugs found in use.
A program may need all three throughout its life.
Vocabulary TrainEnglish Chinese Pinyin perfective maintenance 完善性维护 wán shàn xìng wéi hù adaptive maintenance 适应性维护 shì yìng xìng wéi hù corrective maintenance 纠正性维护 jiū zhèng xìng wéi hù 12.3
Amending an existing program
When asked to add a feature or fix a bug:
- read the existing code until you understand the algorithm and data flow.
- find where the change goes — which subroutine, which lines.
- make the change as small as possible — don't rewrite working code.
- update related parts — every caller of a changed parameter list, every routine using a changed data structure.
- test the new behaviour and the old (regression testing 回归测试 — check you broke nothing).
- document the change.
Clear comments, meaningful names, decomposed subroutines and a structure chart make a program much easier to amend — which is why the design tools matter even after the first release.
Vocabulary TrainEnglish Chinese Pinyin regression testing 回归测试 huí guī cè shì -
13 Data Representation
13.1
User-defined data types
Syllabus
- Show understanding of why user-defined types are necessary
- Define and use non-composite types (Including enumerated, pointer)
- Define and use composite data types (Including set, record and class/object)
- Choose and design an appropriate user-defined data type for a given problem
Source: Cambridge International syllabus
The built-in types (
INTEGER,REAL,STRING,CHAR,BOOLEAN) cover the simplest cases. For richer problems you can define a user-defined type 用户定义类型, making the code clearer and the compiler stricter.Why they are needed
A built-in
STRINGlets you store nonsense in a field that should hold one of a few legal values; a user-defined type can restrict it. Real entities are usually a collection of values of different types. AndDECLARE Taxi : Vehicleis clearer (self-documenting) thanDECLARE Taxi : STRING.Non-composite types
Enumerated type
An enumerated type 枚举类型 has values that are a fixed list of named constants:
TYPE Vehicle = (M100, M230, T101, T102, T120, T150) DECLARE MyTaxi : Vehicle MyTaxi ← T102The names are values of the new type (stored internally as small integers); you cannot assign anything outside the list. Uses: days of the week, colours, status codes.
Pointer type
A pointer 指针 holds the memory address of another variable (or
NULLfor "no target"). Pointers build dynamic structures (linked lists, trees) and pass references without copying.TYPE PNode = ^TNode // pointer to a TNode DECLARE p : PNode p ← NEW TNode p^.Value ← 42 // dereference to reach the fieldsTo dereference 解引用 (
p^) means to reach the variable it points to.Composite types
A composite type 复合类型 groups several values under one name.
- record 记录 (Topic 10) — fields of different types in a
TYPE ... ENDTYPEblock. - set 集合 — an unordered collection of unique values, with operations add, remove, membership test, union, intersection:
DECLARE Available : SET OF Colour Available ← {Red, Blue} IF Green IN Available THEN ...- class 类 / object 对象 — the OOP composite type, combining data fields (attributes 属性) with operations on them (methods 方法). An object is an instance of a class:
CLASS Taxi PRIVATE Capacity : INTEGER PUBLIC FUNCTION GetCapacity() RETURNS INTEGER RETURN Capacity ENDFUNCTION ENDCLASSChoosing a type
Use enumerated for a value from a fixed list, pointer for indirection, record for a group of fields, set for an unordered unique collection, and class when you need state and behaviour together.
Vocabulary TrainEnglish Chinese Pinyin user-defined type 用户定义类型 yòng hù dìng yì lèi xíng enumerated type 枚举类型 méi jǔ lèi xíng pointer 指针 zhǐ zhēn dereference 解引用 jiě yǐn yòng composite type 复合类型 fù hé lèi xíng record 记录 jì lù set 集合 jí hé class 类 lèi object 对象 duì xiàng attributes 属性 shǔ xìng methods 方法 fāng fǎ 13.2
File organisation and access
Syllabus
- Show understanding of the methods of file organisation and select an appropriate method of file organisation and file access for a given problem (Including serial, sequential (using a key field), random (using a record key))
- Show understanding of methods of file access (Including Sequential access for serial and sequential files, Direct access for sequential and random files)
- Show understanding of hashing algorithms (Describe and use different hashing algorithms to read from and write data to a random/sequential file)
Source: Cambridge International syllabus
File organisation 文件组织 is how the data is laid out; the access method is how the program reaches a record.
- serial file 串行文件 — records in the order added, no sorting. Access is sequential only; appending is fast; searching is slow. Used for logs and audit trails.
- sequential file 顺序文件 — records sorted by a key. Searching is faster (you can stop early or binary-search); inserting is slow (records must shift). Used for master files updated in batch.
- random (direct-access) file 随机文件 — records at positions computed from the key (often by a hash). Direct access by key is very fast; reading in key order is harder. Used for large lookup tables and customer accounts.
Serial file: records are kept in the order they were added
Sequential file: records are sorted by a key field
Random file: records sit at positions computed from the keyThe two access methods are sequential access 顺序存取 (read from start to end) and direct access 直接存取 (jump straight to a known position). Match the structure to the dominant operation: single-key lookups favour random; in-order reports favour sequential.
Vocabulary TrainEnglish Chinese Pinyin file organisation 文件组织 wén jiàn zǔ zhī serial file 串行文件 chuàn xíng wén jiàn sequential file 顺序文件 shùn xù wén jiàn random (direct-access) file 随机文件 suí jī wén jiàn sequential access 顺序存取 shùn xù cún qǔ direct access 直接存取 zhí jiē cún qǔ 13.2
Hashing
A hash function 散列函数 takes a record key and produces an address where the record is stored. A good one is fast, deterministic 确定性, and spreads keys evenly.
Examples for $N$ slots: modulo hash
address ← key MOD N; folding (split the key, add the pieces, MOD N); a string hash (sum the character codes, MOD N).A collision 冲突 is when two keys hash to the same address. Resolutions:
- linear probing 线性探测 — try the next slot, wrapping around. Simple but clusters.
- chaining 链接法 — each slot points to a linked list 链表 of records that hashed there.
- rehashing — use a second hash function.
To search: hash the key, read that slot; if the keys match you are done, else follow the resolution strategy until a match or an empty slot. To insert: hash the key, write to that slot or the next free one. Keep the load factor 装填因子 (records ÷ slots) below about 70% for near-O(1) lookups.
Vocabulary TrainEnglish Chinese Pinyin deterministic 确定性 què dìng xìng hash function 散列函数 sàn liè hán shù collision 冲突 chōng tū linear probing 线性探测 xiàn xìng tàn cè chaining 链接法 liàn jiē fǎ linked list 链表 liàn biǎo load factor 装填因子 zhuāng tián yīn zi 13.3
Floating-point numbers
Syllabus
- Describe the format of binary floating-point real numbers
- Convert binary floating-point real numbers into denary and vice versa
- Normalise floating-point numbers
- Show understanding of the consequences of a binary representation only being an approximation to the real number it represents (in certain cases)
- Show understanding that binary representations can give rise to rounding errors
Source: Cambridge International syllabus
To store real numbers of very different sizes, computers use a floating-point 浮点 format — a binary form of scientific notation, with two fields:
- a mantissa 尾数 — the significant digits.
- an exponent 指数 — the power of 2 to multiply by.
Both are stored as two's complement 补码 integers. The value is
$$\text{number} = \text{mantissa} \times 2^{\text{exponent}}.$$The mantissa is a fixed-point fraction, with an implied binary point after the sign bit. So
0.1010000means $1/2 + 1/8 = 0.625$, and with exponent00000010(= 2) the value is $0.625 \times 2^{2} = 2.5$.
The place values of an 8-bit mantissa and an 8-bit exponentConverting
- binary → denary: read the mantissa (use two's-complement rules if negative) as a fraction, read the exponent as a signed integer, then multiply mantissa by $2^{\text{exponent}}$.
- denary → binary: write the number as a binary fraction × a power of 2, then store the mantissa and exponent in the agreed formats.
Normalisation
A number is normalised 规格化 when the first significant bit is immediately after the binary point (no wasted leading zeros). This maximises precision, because every mantissa bit carries information. To normalise, shift the mantissa left and decrease the exponent (or shift right and increase it) until the first significant bit is in place; the value is unchanged. For negative (two's-complement) mantissas, the sign bit (1) is followed immediately by a 0.
Approximation and rounding errors
Many denary reals cannot be stored exactly in binary — e.g. $0.1_{10}$ is the repeating binary fraction $0.000110011\ldots_{2}$, which must be truncated. Consequences:
- rounding errors 舍入误差 build up over many operations (
0.1 + 0.2is not exactly0.3). - comparisons fail — test
ABS(x - 0.3) < 1e-9instead ofx = 0.3. - subtracting two nearly-equal values loses precision.
For exact needs (currency), use fixed-point 定点 or BCD 二进码十进数 instead of floating-point.
Vocabulary TrainEnglish Chinese Pinyin floating-point 浮点 fú diǎn mantissa 尾数 wěi shù exponent 指数 zhǐ shù two's complement 补码 bǔ mǎ normalised 规格化 guī gé huà rounding errors 舍入误差 shě rù wù chā fixed-point 定点 dìng diǎn BCD 二进码十进数 èr jìn mǎ shí jìn shù -
14 Communication and internet technologies
14.1
Why protocols are needed
Syllabus
- Show understanding of why a protocol is essential for communication between computers
- Show understanding of how protocol implementation can be viewed as a stack, where each layer has its own functionality
- Show understanding of the TCP/IP protocol suite
- Show understanding of protocols (HTTP, FTP, POP3, IMAP, SMTP, BitTorrent) and their purposes
Source: Cambridge International syllabus
A protocol 协议 is a set of rules for how devices communicate. Both ends must follow the same rules, or one side's signals are meaningless to the other. Protocols define the format of the data (where addresses and payload sit), the order of messages (who speaks first, when to acknowledge), the meaning of each message, the timing (timeouts, retransmits), and what to do on error. Without an agreed protocol, communication fails — like two people speaking different languages with no translator.
Vocabulary TrainEnglish Chinese Pinyin protocol 协议 xié yì 14.1
Layered protocols
Networking is complex, so it is split into layers 层, each with one focused job, talking only to the layer above and below. Benefits: modularity 模块化 (replace one layer — say Ethernet with Wi-Fi — without touching the others), standardisation (vendors interoperate), and abstraction 抽象 (you ignore details handled elsewhere). The internet uses the TCP/IP protocol suite 协议栈 (4 layers).
Vocabulary TrainEnglish Chinese Pinyin layers 层 céng modularity 模块化 mó kuài huà abstraction 抽象 chōu xiàng protocol suite 协议栈 xié yì zhàn 14.1
TCP/IP protocol suite
Layer Purpose Examples Application what the user program does HTTP, FTP, SMTP, IMAP Transport end-to-end delivery between processes TCP, UDP Internet routing packets between networks IP Link sending bits over the physical medium Ethernet, Wi-Fi
The four layers of the TCP/IP protocol suiteApplication layer
The application layer 应用层 gives services to user programs and defines the protocols they speak (HTTP for web, SMTP for email). This is where a programmer most often works.
Transport layer
The transport layer 传输层 delivers data end-to-end between processes, identified by port numbers 端口号. Two protocols:
- TCP 传输控制协议 — connection-oriented 面向连接: sets up a connection, ensures all data arrives in order, retransmits lost packets 数据包, controls flow. Reliable but with overhead. Used by HTTP, HTTPS, SMTP, FTP.
- UDP 用户数据报协议 — connectionless 无连接: sends and forgets, with no acknowledgements or ordering. Low overhead, no guarantees. Used for streaming, DNS and gaming, where speed beats reliability.
Internet layer
The internet layer 网络层 carries packets between hosts using IP. Each packet has a source and destination IP address IP地址, and routers 路由器 forward it onward. It does not guarantee delivery — that is TCP's job.
A home router does this job for your house: it reads each packet's destination address and sends it on towards the internet, and back to the right device.
A home Wi-Fi router: it forwards packets between your devices and the internetBefore the router reaches the wider internet, a modem 调制解调器 connects the home to the internet provider over the provider's cable or phone line. Its lights show the link is up and online.
A cable modem connects a home network to the internet providerLink layer
The link layer 链路层 sends bits over one physical link (Ethernet, Wi-Fi). It adds a frame header with MAC addresses MAC地址 and handles medium access (e.g. CSMA/CD 载波侦听多路访问 on Ethernet).
The parts of a typical Ethernet frameOn a wired local network, a switch 交换机 joins many devices together. Each device plugs into a port with an Ethernet cable (an RJ45 plug), and the switch uses the MAC addresses in each frame to send it only to the correct port.
A network switch connects many wired devices on a local networkThe physical link can be a copper wire, a radio signal (Wi-Fi), or a fibre-optic cable 光纤. In a fibre-optic cable, the bits travel as flashes of light through very thin strands of glass, which is fast and carries data a long way.
A fibre-optic cable: data travels as light through thin glass strandsA radio link can reach much further. A satellite dish 卫星天线 sends and receives radio signals to and from a satellite, carrying data to places that wired links cannot easily reach.
A satellite dish sends and receives data by radio over a long distanceVocabulary TrainEnglish Chinese Pinyin application layer 应用层 yìng yòng céng transport layer 传输层 chuán shū céng port numbers 端口号 duān kǒu hào TCP 传输控制协议 chuán shū kòng zhì xié yì connection-oriented 面向连接 miàn xiàng lián jiē packets 数据包 shù jù bāo UDP 用户数据报协议 yòng hù shù jù bào xié yì connectionless 无连接 wú lián jiē internet layer 网络层 wǎng luò céng IP address IP地址 IP dì zhǐ routers 路由器 lù yóu qì modem 调制解调器 tiáo zhì jiě tiáo qì link layer 链路层 liàn lù céng MAC addresses MAC地址 MAC dì zhǐ CSMA/CD 载波侦听多路访问 zài bō zhēn tīng duō lù fǎng wèn switch 交换机 jiāo huàn jī fibre-optic 光纤 guāng xiān satellite dish 卫星天线 wèi xīng tiān xiàn 14.1
Common application-layer protocols
- HTTP 超文本传输协议 — browsers fetch web pages from servers (over TCP, port 80). HTTPS is HTTP over TLS — encrypted, port 443.
- FTP 文件传输协议 — transfer files between client and server.
- SMTP 简单邮件传输协议 — send email between client and server, and between servers. Receiving uses POP3 or IMAP.
- POP3 — downloads email and usually deletes it from the server. IMAP — leaves email on the server and syncs across devices, so the same inbox appears everywhere.
- BitTorrent — a peer-to-peer 对等网络 protocol; a file is split into pieces downloaded from many peers in parallel, so no single server carries all the load.
BitTorrent: a tracker helps peers find each other, then they share file pieces directlyVocabulary TrainEnglish Chinese Pinyin HTTP 超文本传输协议 chāo wén běn chuán shū xié yì FTP 文件传输协议 wén jiàn chuán shū xié yì SMTP 简单邮件传输协议 jiǎn dān yóu jiàn chuán shū xié yì peer-to-peer 对等网络 duì děng wǎng luò 14.2
Circuit switching vs packet switching
Syllabus
- Show understanding of circuit switching
- Show understanding of packet switching
Source: Cambridge International syllabus
Circuit switching
A dedicated path is set up between the two ends before any data is sent (circuit switching 电路交换), reserved for the whole conversation, then released. It gives reserved bandwidth 带宽 and in-order delivery, but is inefficient during silences and slow to set up. Classic example: the traditional telephone network.
Circuit switching: one dedicated path is reserved end to endPacket switching
The data is split into packets, each sent independently (packet switching 分组交换). Each packet carries the destination address; routers make per-packet decisions, so packets may take different routes and arrive out of order, and the destination reassembles them. It is efficient (one link is multiplexed 多路复用 across many conversations), robust (reroute around a failure), but has variable latency 延迟 and possible loss (TCP handles reliability). Used by the internet.
Packet switching: packets travel independently and may take different routesAspect Circuit switching Packet switching Path dedicated, reserved shared, per-packet Setup time slow none Bandwidth use inefficient efficient Order in order may be out of order Robustness one failure cuts the circuit reroute around failures Suits constant-rate flows (voice) bursty flows (web, email) Modern networks use packet switching for its efficiency and resilience.
Describing packet switching in a few sentences
A good exam answer: "The message is broken into small packets. Each packet carries the destination and source addresses and a sequence number. Each packet travels through the network independently, with routers choosing the next hop per packet. Packets may take different paths and arrive out of order. The destination uses the sequence numbers to reassemble the message, and missing packets can be requested again."
Vocabulary TrainEnglish Chinese Pinyin circuit switching 电路交换 diàn lù jiāo huàn bandwidth 带宽 dài kuān packet switching 分组交换 fēn zǔ jiāo huàn multiplexed 多路复用 duō lù fù yòng latency 延迟 yán chí -
15 Hardware and Virtual Machines
15.1
RISC vs CISC processors
Syllabus
- Show understanding of Reduced Instruction Set Computers (RISC) and Complex Instruction Set Computers (CISC) processors
- Show understanding of the importance/use of pipelining and registers in RISC processors
- Show understanding of the four basic computer architectures
- Show understanding of the characteristics of massively parallel computers
- Show understanding of the concept of a virtual machine
Source: Cambridge International syllabus
Two styles of CPU design. The CPU itself plugs into the motherboard 主板, the main board that links the processor, the memory and every other part of the computer together.
A motherboard links the CPU, memory and other parts togetherCISC
A CISC 复杂指令集 (Complex Instruction Set Computer) has many, often complex instructions (one may do several memory accesses and operations), of variable length, so decoding is intricate. It does more per instruction in hardware. Examples: Intel x86.
RISC
A RISC 精简指令集 (Reduced Instruction Set Computer) has a small set of simple instructions, each doing one basic operation, all of fixed length (fast to decode). Only load and store touch memory; everything else is register 寄存器-to-register. Programs are longer but each instruction is quick and predictable, which suits pipelining. Examples: ARM, RISC-V.
Feature CISC RISC Instruction set many few Instruction length variable fixed Memory access many instructions only load/store Pipeline-friendly harder naturally Per-instruction cycles varies usually 1 The trade-off is doing more per instruction (CISC) vs doing each instruction faster and more predictably (RISC). Modern Intel chips translate CISC instructions into simpler RISC-like micro-ops internally.
Vocabulary TrainEnglish Chinese Pinyin motherboard 主板 zhǔ bǎn CISC 复杂指令集 fù zá zhǐ lìng jí RISC 精简指令集 jīng jiǎn zhǐ lìng jí register 寄存器 jì cún qì 15.1
Pipelining
A pipeline 流水线 processes instructions in overlapping stages, like an assembly line: Fetch → Decode → Execute (in the ALU 算术逻辑单元) → Memory access → Write back. Each stage works on a different instruction at once, so once the pipeline is full, one instruction completes per cycle. RISC's fixed-length, simple instructions make every stage take the same time. A pipeline can stall on a hazard 冒险 — a data hazard (an instruction needs a result not ready yet) or a control hazard (a branch makes the next address unknown).
Pipelining overlaps the stages of six instructions, so one finishes each cycleRISC chips keep data in many registers because memory is slow and registers are fast; the compiler allocates values to registers wisely.
A processor running this fast gives off a lot of heat, so a heat-sink 散热器 and fan sit on top of it. The metal fins spread the heat and the fan blows it away, keeping the CPU cool enough to work.
A CPU heat-sink and fan carry heat away from the processorVocabulary TrainEnglish Chinese Pinyin pipeline 流水线 liú shuǐ xiàn ALU 算术逻辑单元 suàn shù luó jí dān yuán hazard 冒险 mào xiǎn heat-sink 散热器 sàn rè qì 15.1
Flynn's taxonomy
Flynn's taxonomy 弗林分类 sorts computers by the number of instruction and data streams:
- SISD — one instruction, one data stream (a traditional single core).
- SIMD 单指令多数据 — one instruction works on many data items at once (GPUs, CPU vector extensions). Great for images, video, scientific arrays.
- MISD — several operations on the same data; rare, mostly theoretical.
- MIMD 多指令多数据 — many processors run different instructions on different data (multi-core CPUs, clusters). The most general.
SIMD: many processors run the same instruction on different dataA graphics card 显卡 (with its GPU) is a real example of SIMD hardware: it has thousands of small cores that run the same instruction on many pixels or numbers at once, which is why GPUs are so fast for images, video and machine learning.
A graphics card: its GPU runs the same instruction on many data items at once (SIMD)
MIMD: each processor runs its own instructions on its own dataVocabulary TrainEnglish Chinese Pinyin Flynn's taxonomy 弗林分类 fú lín fēn lèi SIMD 单指令多数据 dān zhǐ lìng duō shù jù MIMD 多指令多数据 duō zhǐ lìng duō shù jù graphics card 显卡 xiǎn kǎ 15.1
Massively parallel computers
A massively parallel 大规模并行 system uses thousands of processors on a fast network, each with its own memory (distributed memory 分布式内存), exchanging data by messages. It is MIMD, needs specially-written software (MPI, CUDA), and suits climate simulation, large machine learning 机器学习 training, and astrophysics. The largest supercomputers 超级计算机 are massively parallel.
The processors live in tall server 服务器 racks, often filling a whole room (a data centre 数据中心), wired together so they can work on one big problem at the same time.
Rows of servers in a data centre, like those used for massively parallel computingVocabulary TrainEnglish Chinese Pinyin massively parallel 大规模并行 dà guī mó bìng xíng distributed memory 分布式内存 fēn bù shì nèi cún machine learning 机器学习 jī qì xué xí supercomputers 超级计算机 chāo jí jì suàn jī server 服务器 fú wù qì data centre 数据中心 shù jù zhōng xīn 15.1
Virtual machines
A virtual machine 虚拟机 (VM) is a software emulation of a whole computer — the software inside sees a CPU, memory and disks that look real but are managed by host software.
- a system VM runs a complete OS. A hypervisor 虚拟机监控器 creates and manages VMs, each booting its own guest OS. Uses: run different OSes on one machine; server consolidation; sandboxing 沙箱 (risky software runs isolated); snapshots.
- a process (language) VM runs one program in portable bytecode 字节码 — the JVM (Java), the CLR (.NET), CPython. Benefits: portability ("write once, run anywhere"), runtime safety checks, and just-in-time compilation 即时编译 for near-native speed. The cost is an extra layer and needing the VM installed.
Vocabulary TrainEnglish Chinese Pinyin virtual machine 虚拟机 xū nǐ jī hypervisor 虚拟机监控器 xū nǐ jī jiān kòng qì sandboxing 沙箱 shā xiāng bytecode 字节码 zì jié mǎ just-in-time compilation 即时编译 jí shí biān yì 15.2
Boolean algebra
Syllabus
- Produce truth tables for logic circuits including half adders and full adders
- Show understanding of a flip-flop (SR, JK)
- Show understanding of Boolean algebra
- Show understanding of Karnaugh maps (K-map)
Source: Cambridge International syllabus
Boolean algebra 布尔代数 simplifies Boolean 布尔 expressions. Symbols:
+for OR,·for AND (often omitted), an overbar for NOT.Key laws include commutative, associative and distributive (as in ordinary algebra), plus:
- identity $A + 0 = A$, $A \cdot 1 = A$; null $A + 1 = 1$, $A \cdot 0 = 0$.
- idempotent $A + A = A$; inverse $A + \overline{A} = 1$, $A \cdot \overline{A} = 0$.
- De Morgan's laws 德摩根定律: $(A + B)' = A' \cdot B'$; $(A \cdot B)' = A' + B'$ — negate the whole, swap AND/OR, negate each operand.
- absorption 吸收律: $A + AB = A$.
Simplifying reduces the number of terms, so the resulting logic circuit has fewer gates. Example: $Z = AB + A\overline{B} = A(B + \overline{B}) = A$.
Vocabulary TrainEnglish Chinese Pinyin Boolean algebra 布尔代数 bù ěr dài shù Boolean 布尔 bù ěr De Morgan's laws 德摩根定律 dé mó gēn dìng lǜ absorption 吸收律 xī shōu lǜ 15.2
Karnaugh maps
A Karnaugh map 卡诺图 (K-map) simplifies a Boolean expression by grouping adjacent 1s from a truth table. Columns and rows use Gray code 格雷码 order (
00,01,11,10) so adjacent cells differ in one variable.Place a 1 in each cell where the output is 1. Find rectangular groups of 1s whose sides are powers of 2 (1, 2, 4, 8), wrapping around edges if it makes a bigger group. The larger the group, the simpler the term: a group of 2 drops one variable, a group of 4 drops two, and so on — variables that change within the group disappear. OR the group terms together for the simplified expression. Cover every 1 using as few, as large, groups as possible.
Vocabulary TrainEnglish Chinese Pinyin Karnaugh map 卡诺图 kǎ nuò tú Gray code 格雷码 gé léi mǎ 15.2
Half adder and full adder
A half adder 半加器 adds two single bits $A$ and $B$, giving a sum $S$ and a carry 进位 $C$:
A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 So $S = A \text{ XOR } B$ and $C = A \text{ AND } B$. It ignores any carry-in — hence "half".
A half adder, as a block and as a circuit of an XOR and an AND gateA full adder 全加器 adds three bits ($A$, $B$, carry-in), giving a sum and a carry-out: $S = A \text{ XOR } B \text{ XOR } C_{\text{in}}$. It can be built from two half adders plus an OR gate. Chaining full adders (each carry-out feeding the next carry-in) makes a multi-bit "ripple-carry" adder.
A full adder is built from two half adders and an OR gateVocabulary TrainEnglish Chinese Pinyin half adder 半加器 bàn jiā qì carry 进位 jìn wèi full adder 全加器 quán jiā qì 15.2
Flip-flops
A flip-flop 触发器 is a bistable 双稳态 circuit — two stable states (0 and 1) — that remembers its state. It stores one bit and is the basic element of registers and SRAM.
SR flip-flop
An SR flip-flop SR触发器 has inputs S (set) and R (reset) and outputs Q and $\overline{Q}$.
S=1,R=0sets Q to 1;S=0,R=1resets it to 0;S=0,R=0holds;S=1,R=1is invalid. Built from two cross-coupled NAND gates.JK flip-flop
A JK flip-flop JK触发器 improves on it by using the previously-invalid
1,1input as a toggle 翻转 (the output flips). This makes it ideal for building counters 计数器 (a chain of toggling flip-flops). It is usually clocked — inputs act only on a clock edge, keeping flip-flops synchronised.
A JK flip-flop: its symbol and a build from NAND gatesFlip-flops are the building blocks of registers (n bits = n flip-flops), counters, and SRAM 静态RAM cells.
Vocabulary TrainEnglish Chinese Pinyin flip-flop 触发器 chù fā qì bistable 双稳态 shuāng wěn tài SR flip-flop SR触发器 SR chù fā qì JK flip-flop JK触发器 JK chù fā qì toggle 翻转 fān zhuǎn counters 计数器 jì shù qì SRAM 静态RAM jìng tài RAM -
16 System Software
16.1
How an OS maximises use of resources
Syllabus
- Show understanding of how an OS can maximise the use of resources
- Describe the ways in which the user interface hides the complexities of the hardware from the user
- Show understanding of process management
- Show understanding of virtual memory, paging and segmentation for memory management
Source: Cambridge International syllabus
A computer has many resources (CPU time, memory, disk, I/O) and many programs competing for them. The OS shares them fairly and efficiently so each is well used and the system stays responsive:
- multi-tasking 多任务 — switch the CPU quickly between processes so several seem to run at once.
- memory management — give each process the memory it needs; use disk paging 分页 when RAM runs out.
- spooling 假脱机 and buffering — print jobs queue on disk so the CPU never waits for the printer.
- caching — keep recently-used disk data in cache 高速缓存 / RAM.
The processor is a key resource the OS shares between competing tasks
The OS also manages memory (RAM), deciding what to keep in it and what to page out to diskVocabulary TrainEnglish Chinese Pinyin multi-tasking 多任务 duō rèn wù paging 分页 fēn yè spooling 假脱机 jiǎ tuō jī cache 高速缓存 gāo sù huǎn cún 16.1
The user interface
The user interface hides the hardware behind friendly abstractions: the user sees windows, menus and folders, not addresses or sectors. One click on an icon makes the OS find the program on disk, allocate memory, load it and start it. A CLI (command line) is powerful and scriptable for experts; a GUI (graphical) is easier to learn. Most systems offer both.
16.1
Process management
A process 进程 is a program in execution — its code, current state, memory and open files.
Scheduling
The scheduler 调度器 chooses which ready process runs next, and for how long:
- round robin 轮转 — each process gets a fixed time slice 时间片, then goes to the back of the queue.
- first-come-first-served; shortest job first; priority; multilevel feedback queues.
The trade-off is responsiveness vs throughput vs fairness.
First-come-first-served scheduling of four processesProcess states
A process is new, ready (waiting for the CPU), running, blocked 阻塞 (waiting for I/O or a lock), or terminated. When its time slice ends it goes running → ready; when it requests I/O it goes running → blocked; when the I/O finishes it goes blocked → ready.
A process moves between the new, ready, running, blocked and terminated statesProcess control block and context switch
For each process the OS keeps a process control block 进程控制块 (PCB) holding the saved program counter, registers, state and memory info. Suspending one process and running another means saving state to one PCB and restoring from another — a context switch 上下文切换, the small cost paid on every switch.
Inter-process communication
Processes are isolated, so the OS provides inter-process communication 进程间通信: pipes 管道 (one program's output feeds another's input), shared memory 共享内存 (a region several processes can use), and message passing.
Vocabulary TrainEnglish Chinese Pinyin process 进程 jìn chéng scheduler 调度器 diào dù qì round robin 轮转 lún zhuàn time slice 时间片 shí jiān piàn blocked 阻塞 zǔ sè process control block 进程控制块 jìn chéng kòng zhì kuài context switch 上下文切换 shàng xià wén qiè huàn inter-process communication 进程间通信 jìn chéng jiān tōng xìn pipes 管道 guǎn dào shared memory 共享内存 gòng xiǎng nèi cún 16.1
Virtual memory, paging, segmentation
Each process gets its own virtual address space 虚拟地址空间 — a clean, contiguous range of addresses the OS maps to physical memory. This gives each process a simple space, protects processes from each other, and lets the total memory exceed physical RAM.
In paging, the virtual space is split into fixed-size pages 页 and physical memory into same-sized frames 页框. A page table maps each page to a frame. If an accessed page is not in RAM — a page fault 缺页 — the OS reads it from the swap file 交换文件 into a frame, evicting another page if RAM is full. Frequent faults cause thrashing 抖动.
Paging maps each page of logical memory to a frame of physical memoryIn segmentation 分段, memory is split into variable-sized logical segments (code, stack, heap), each with its own permissions. Many systems use paging within segments.
Segmentation maps variable-sized segments using a segment map tableVocabulary TrainEnglish Chinese Pinyin virtual address space 虚拟地址空间 xū nǐ dì zhǐ kōng jiān pages 页 yè frames 页框 yè kuāng page fault 缺页 quē yè swap file 交换文件 jiāo huàn wén jiàn thrashing 抖动 dǒu dòng segmentation 分段 fēn duàn 16.2
How an interpreter runs a program
Syllabus
- Show understanding of how an interpreter can execute programs without producing a translated version
- Show understanding of the various stages in the compilation of a program
- Show understanding of how the grammar of a language can be expressed using syntax diagrams or Backus-Naur Form (BNF) notation
- Show understanding of how Reverse Polish Notation (RPN) can be used to carry out the evaluation of expressions
Source: Cambridge International syllabus
An interpreter 解释器 translates and runs the source at the same time. For each statement it reads the line, does lexical and syntax analysis, checks types, then executes the action, and moves on. Errors are reported immediately and it usually stops; no executable is produced. The translation is redone every run (slower), but it gives fast development feedback and is portable.
Vocabulary TrainEnglish Chinese Pinyin interpreter 解释器 jiě shì qì 16.2
Stages of compilation
A compiler 编译器 turns source into machine code 机器码 in phases:
- lexical analysis 词法分析 — the lexer groups characters into tokens 词法单元 (keywords, identifiers, operators, literals), discarding whitespace and comments.
- syntax analysis (parsing) 语法分析 — check the tokens fit the grammar and build an abstract syntax tree 抽象语法树. A missing bracket gives a syntax error 语法错误.
- semantic analysis 语义分析 — check the program makes sense (variables declared, types match).
- code generation 代码生成 — walk the tree and emit target code, choosing registers and layouts.
- code optimisation 代码优化 — remove redundant work, fold constants, reorder for the pipeline.
The output is an executable.
Vocabulary TrainEnglish Chinese Pinyin compiler 编译器 biān yì qì machine code 机器码 jī qì mǎ lexical analysis 词法分析 cí fǎ fēn xī tokens 词法单元 cí fǎ dān yuán syntax analysis (parsing) 语法分析 yǔ fǎ fēn xī abstract syntax tree 抽象语法树 chōu xiàng yǔ fǎ shù syntax error 语法错误 yǔ fǎ cuò wù semantic analysis 语义分析 yǔ yì fēn xī code generation 代码生成 dài mǎ shēng chéng code optimisation 代码优化 dài mǎ yōu huà 16.2
Grammar: BNF and syntax diagrams
A grammar 文法 says which token sequences are valid programs.
Backus-Naur Form 巴科斯-诺尔范式 (BNF) is textual. A production rule 产生式 has the form:
<symbol> ::= alternative1 | alternative2 | ...Each alternative is a sequence of terminal 终结符 symbols (literal text) and non-terminal 非终结符 symbols (other rule names):
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <identifier> ::= <letter> | <identifier> <letter> | <identifier> <digit>The recursive third rule expresses "a letter followed by any number of letters or digits". An
IFstatement:<if-statement> ::= IF <condition> THEN <statement> ENDIF | IF <condition> THEN <statement> ELSE <statement> ENDIFA syntax diagram 语法图 (railroad diagram) shows the same thing graphically: boxes for non-terminals, rounded boxes for terminals, arrows for valid paths, loops for repetition. The two notations are equivalent. The parser uses the grammar to decide whether a program is valid.
A syntax (railroad) diagram for an assignment statementVocabulary TrainEnglish Chinese Pinyin grammar 文法 wén fǎ Backus-Naur Form 巴科斯-诺尔范式 bā kē sī - nuò ěr fàn shì production rule 产生式 chǎn shēng shì terminal 终结符 zhōng jié fú non-terminal 非终结符 fēi zhōng jié fú syntax diagram 语法图 yǔ fǎ tú 16.2
Reverse Polish Notation (RPN)
In infix 中缀 notation the operator sits between its operands (
3 + 4 * 2), needing brackets and precedence rules. In Reverse Polish Notation 逆波兰表示法 (RPN, postfix 后缀) the operator follows its operands (3 4 2 * +), needing no brackets.Converting infix to RPN
Use an operator stack 栈. Scan left to right: output an operand; for an operator, first pop any stacked operators of higher or equal precedence 优先级 to the output, then push it; push
(; on)pop to output until the matching(. At the end, pop all operators. Example:(3 + 4) * 2→3 4 + 2 *.Evaluating RPN
Use a stack of operands. Scan left to right: push each operand; on an operator, pop the top two, apply it, and push the result. Evaluating
3 4 2 * +:Token Stack 33 43, 4 23, 4, 2 *3, 8 +11 Result: 11. RPN needs no brackets at evaluation time and suits a stack machine — which is how the JVM and many bytecode 字节码 interpreters work.
Vocabulary TrainEnglish Chinese Pinyin infix 中缀 zhōng zhuì Reverse Polish Notation 逆波兰表示法 nì bō lán biǎo shì fǎ postfix 后缀 hòu zhuì stack 栈 zhàn precedence 优先级 yōu xiān jí bytecode 字节码 zì jié mǎ -
17 Security
17.1
How encryption works
Syllabus
- Show understanding of how encryption works
- Show awareness of the Secure Socket Layer (SSL)/ Transport Layer Security (TLS)
- Show understanding of digital certification
Source: Cambridge International syllabus
Encryption 加密 turns readable plaintext 明文 into unreadable ciphertext 密文 using a maths operation that depends on a key. Only someone with the right key can reverse it — decryption 解密 — to get the plaintext back. An attacker who intercepts the ciphertext without the key sees only meaningless data, because trying every possible key would take far too long.
The Enigma machine encrypted messages in the Second World War — an early, mechanical cipher device
Encryption scrambles plaintext with a key; decryption reverses itSymmetric encryption
Symmetric encryption 对称加密 uses the same key for both encryption and decryption, so sender and receiver must both hold the secret key. It is fast and good for bulk data (a whole disk, a video stream). Its problem is key distribution 密钥分发: how do you share the key safely in the first place? Asymmetric encryption solves this.
Asymmetric encryption (public-key)
Asymmetric encryption 非对称加密 gives each user a pair of related keys: a public key 公钥 they publish, and a private key 私钥 they keep secret. Data encrypted with the public key can be decrypted only with the matching private key, and vice versa.
Each user has a public key to share and a private key to keep secretTo send a secret message to Alice: get her published public key, encrypt with it, and send. Only Alice — holding the matching private key — can decrypt. No prior key exchange is needed. The trade-off is that it is much slower than symmetric, so it is not used for large data.
A private key must stay secret, so it is sometimes kept on a small hardware security key 硬件安全密钥. You plug it in or tap it to prove who you are, and the secret key never leaves the device.
A hardware security key stores a secret key to prove who you areHybrid approach (used by almost every real system)
Use asymmetric encryption to exchange a fresh session key 会话密钥, then use that symmetric key for the data:
- the client makes a random session key.
- it encrypts the session key with the server's public key.
- the server decrypts it with its private key.
- both ends now share the session key and use fast symmetric encryption for the rest.
This is how HTTPS and SSH work.
Hashing (related, not encryption)
A cryptographic hash 密码散列 function takes any input and gives a fixed-size digest 摘要 such that the same input always gives the same digest, it is infeasible to find two inputs with the same digest, and a tiny change in input changes the digest completely. Hashing is one-way — you cannot get the input back. It is used for storing password checks, integrity 完整性 checks, and digital signatures.
Vocabulary TrainEnglish Chinese Pinyin encryption 加密 jiā mì plaintext 明文 míng wén ciphertext 密文 mì wén decryption 解密 jiě mì symmetric encryption 对称加密 duì chèn jiā mì key distribution 密钥分发 mì yào fēn fā asymmetric encryption 非对称加密 fēi duì chèn jiā mì public key 公钥 gōng yào private key 私钥 sī yào hardware security key 硬件安全密钥 yìng jiàn ān quán mì yào session key 会话密钥 huì huà mì yào cryptographic hash 密码散列 mì mǎ sàn liè digest 摘要 zhāi yào integrity 完整性 wán zhěng xìng 17.1
SSL / TLS
TLS 传输层安全 (Transport Layer Security, the successor to SSL) is a protocol that gives encryption and authentication for data sent over a network. It encrypts the data in transit, authenticates the server with a certificate, and provides integrity (detecting tampering).
Outline of a TLS handshake:
- the client connects and proposes cipher options.
- the server picks one and sends its digital certificate (with its public key).
- the client checks the certificate.
- the two ends exchange a fresh session key using asymmetric crypto.
- all later traffic uses fast symmetric encryption with the session key.
The result is an encrypted, authenticated, integrity-checked tunnel for higher-level protocols (HTTP, SMTP). It is appropriate wherever sensitive information is sent: HTTPS web browsing, online banking and payments, secure email, and VPNs.
Vocabulary TrainEnglish Chinese Pinyin TLS 传输层安全 chuán shū céng ān quán 17.1
Digital certificates
A digital certificate 数字证书 binds an identity (a domain, an organisation) to a public key, and is signed by a trusted Certificate Authority 证书颁发机构 (CA). It contains the subject (who it identifies), the subject's public key, the issuer (the CA), a validity period, and the CA's signature over all of it.
A Certificate Authority issues a digital certificate binding an identity to a public keyTo verify one, the client (which holds a list of trusted root CAs):
- checks the expiry dates.
- checks the subject name matches the URL.
- checks it is signed by a trusted CA, using the CA's public key to verify the signature.
- follows the certificate chain up to a trusted root.
If anything fails, the browser shows the "Your connection is not private" warning. When it verifies cleanly, the client knows the identity was vetted by a trusted CA, the public key really belongs to that identity, and the certificate is current.
Vocabulary TrainEnglish Chinese Pinyin digital certificate 数字证书 shù zì zhèng shū Certificate Authority 证书颁发机构 zhèng shū bān fā jī gòu 17.1
Digital signatures
A digital signature 数字签名 proves who signed a message and that it was not changed. To sign:
- compute a cryptographic hash of the message.
- encrypt the hash with the sender's private key — that is the signature.
- send the message and the signature.
To verify: compute the hash of the received message; decrypt the signature with the sender's public key to get the sender's hash; compare. If they match, the message was signed by the holder of the private key (authentication 身份验证) and was not changed (integrity). A signature does not hide the message — for confidentiality as well, encrypt and sign.
Signing hashes the message and encrypts the digest with the private key; the receiver checks it with the public keyPutting it together
A secure request to
https://www.bank.com: the server sends its certificate; the client verifies it against trusted CAs; the client uses the server's public key to exchange a session key; then data flows encrypted with that key. Encryption stops eavesdroppers, the certificate proves the server's identity, and integrity checks stop a man-in-the-middle 中间人攻击 altering the data.Vocabulary TrainEnglish Chinese Pinyin digital signature 数字签名 shù zì qiān míng authentication 身份验证 shēn fèn yàn zhèng man-in-the-middle 中间人攻击 zhōng jiān rén gōng jī -
18 Artificial Intelligence (AI)
18.1
What AI is
Syllabus
- Show understanding of how graphs can be used to aid Artificial Intelligence (AI)
- Show understanding of how artificial neural networks have helped with machine learning
- Show understanding of Deep Learning, Machine Learning and Reinforcement Learning and the reasons for using these methods.
- Show understanding of back propagation of errors and regression methods in machine learning
Source: Cambridge International syllabus
Artificial intelligence 人工智能 (AI) builds systems that do tasks normally needing human intelligence — recognising speech and images, translating, playing games, driving, generating text. Most modern AI uses machine learning 机器学习 — algorithms that learn patterns from data instead of being programmed step by step. Within it, deep learning 深度学习, using neural networks 神经网络 with many layers, has been dominant since the 2010s.
A humanoid robot 人形机器人 puts many of these abilities into one body: it uses AI to see faces, understand speech and move its face and arms in a lifelike way.
A humanoid robot uses AI to see, listen and respond like a person
Deep learning is part of machine learning, which is part of AIVocabulary TrainEnglish Chinese Pinyin artificial intelligence 人工智能 rén gōng zhì néng machine learning 机器学习 jī qì xué xí deep learning 深度学习 shēn dù xué xí neural networks 神经网络 shén jīng wǎng luò humanoid robot 人形机器人 rén xíng jī qì rén 18.1
Graphs in AI
Many AI problems sit on a graph 图 — nodes 节点 (states, places) joined by edges 边 (moves, relationships).
- pathfinding: roads form a graph; the shortest route is a graph search (Dijkstra, A*).
- game playing: each board position is a node, each move an edge; minimax 极小化极大 with alpha-beta pruning searches the game tree.
- state-space search: a planning problem is moving between states by applying operators to reach a goal.
- knowledge representation: a semantic network 语义网络 has concepts as nodes and relationships as edges ("dog IS-A animal"); a knowledge graph 知识图谱 stores facts about the world for search engines and assistants.
AI problems often sit on a graph; here the shortest path is highlightedStandard tools for navigating graphs include breadth-first search 广度优先搜索 and depth-first search 深度优先搜索.
Vocabulary TrainEnglish Chinese Pinyin graph 图 tú nodes 节点 jié diǎn edges 边 biān minimax 极小化极大 jí xiǎo huà jí dà semantic network 语义网络 yǔ yì wǎng luò knowledge graph 知识图谱 zhī shí tú pǔ breadth-first search 广度优先搜索 guǎng dù yōu xiān sōu suǒ depth-first search 深度优先搜索 shēn dù yōu xiān sōu suǒ 18.1
Artificial neural networks (ANNs)
An ANN is inspired by the brain's neurons. An artificial neuron 人工神经元:
- takes several input values, multiplies each by a weight 权重, and adds them up with a bias term 偏置项.
- applies an activation function 激活函数 (a non-linear function such as ReLU) to the sum.
- outputs the result, which feeds neurons further on.
Neurons sit in layers: an input layer, one or more hidden layers 隐藏层 (where useful internal patterns are learned), and an output layer. With many hidden layers it is a deep neural network 深度神经网络, and training it is deep learning.
A neural network with an input layer, two hidden layers and an output layerANNs let models learn complex patterns straight from raw data (pixels, audio, text) without hand-designed features — driving breakthroughs in image recognition 图像识别, speech recognition 语音识别, machine translation 机器翻译, and game playing. They do well with large data, noisy/high-dimensional input, and patterns too complex for explicit rules.
Vocabulary TrainEnglish Chinese Pinyin artificial neuron 人工神经元 rén gōng shén jīng yuán weight 权重 quán zhòng bias term 偏置项 piān zhì xiàng activation function 激活函数 jī huó hán shù hidden layers 隐藏层 yǐn cáng céng deep neural network 深度神经网络 shēn dù shén jīng wǎng luò image recognition 图像识别 tú xiàng shí bié speech recognition 语音识别 yǔ yīn shí bié machine translation 机器翻译 jī qì fān yì 18.1
Machine learning, deep learning, reinforcement learning
Machine learning
The umbrella term — any algorithm that learns from data. Three paradigms:
- supervised learning 监督学习 — the data has labels 标签 (images tagged "cat"/"dog"); the algorithm learns input → label. Used for classification 分类 (a category) and regression.
- unsupervised learning 无监督学习 — no labels; the algorithm finds structure, e.g. a cluster 聚类 of similar customers.
- reinforcement learning (below).
Use ML when explicit rules would be impractical (spam filters, recommendations, fraud detection).
Supervised learning: a model is trained on labelled data, then recognises new dataDeep learning
A subset of ML using deep neural networks. Lower layers learn simple patterns (edges, phonemes), higher layers combine them into abstract concepts. It needs lots of data and lots of compute (GPUs); for small datasets, simpler ML methods often do better.
Reinforcement learning
In reinforcement learning 强化学习, an agent 智能体 acts in an environment; each action changes the state and returns a reward 奖励. The agent learns a policy 策略 (a strategy) that maximises the total reward over time, by trial and error with no labels up front. Used for sequential-decision problems — games, robot control, autonomous driving.
A self-driving car 自动驾驶汽车 is a real example. Lidar 激光雷达 and camera sensors (the spinning unit on the roof) build a live picture of the road, and a learned policy decides how to steer, speed up and brake safely.
A self-driving car uses cameras and lidar sensors to see the road around it
Industrial robot arms on a production line: reinforcement learning can teach a robot to control its movementsVocabulary TrainEnglish Chinese Pinyin supervised learning 监督学习 jiān dū xué xí labels 标签 biāo qiān classification 分类 fēn lèi unsupervised learning 无监督学习 wú jiān dū xué xí cluster 聚类 jù lèi reinforcement learning 强化学习 qiáng huà xué xí agent 智能体 zhì néng tǐ reward 奖励 jiǎng lì policy 策略 cè lüè self-driving car 自动驾驶汽车 zì dòng jià shǐ qì chē lidar 激光雷达 jī guāng léi dá 18.1
Training an ANN: backpropagation
Training adjusts the weights so outputs match the targets. The standard method is backpropagation 反向传播 with gradient descent 梯度下降. For each training example:
- forward pass — feed the input through to the output.
- compute the error with a loss function 损失函数 (a single number for how wrong the output is).
- backward pass — propagate the error backwards, finding each weight's gradient (how much it contributed to the error) using the chain rule.
- update the weights by a small step (set by the learning rate 学习率) that reduces the error.
Repeat over many examples and many passes (epochs 训练轮次) until the error stops shrinking. After training, a new input needs only one forward pass to get a prediction — which is why "back": the error flows from the output back to the input, so all gradients are found in one efficient backward sweep.
Training adjusts the weights to reach the minimum errorVocabulary TrainEnglish Chinese Pinyin backpropagation 反向传播 fǎn xiàng chuán bō gradient descent 梯度下降 tī dù xià jiàng loss function 损失函数 sǔn shī hán shù learning rate 学习率 xué xí lǜ epochs 训练轮次 xùn liàn lún cì 18.1
Regression
Some tasks predict a number (a house price, tomorrow's temperature) — regression 回归, as opposed to classification (a category).
Linear regression 线性回归 fits a straight line (or hyperplane):
$$y = m_{1} x_{1} + m_{2} x_{2} + \ldots + m_{n} x_{n} + c.$$Choose the coefficients to minimise the sum of squared errors against the training data. Use it when the relationship looks roughly linear and you want an interpretable model. For curved data, use polynomial, decision-tree, or neural-network regression — same idea: define a model, define a loss, and adjust the parameters to minimise it. Regression and classification are both supervised; the choice depends on whether the answer is a number or a category.
Vocabulary TrainEnglish Chinese Pinyin regression 回归 huí guī linear regression 线性回归 xiàn xìng huí guī 18.1
How AI is used in a real scenario
Many exam scenarios use the same pattern — a deep-learning model trained on labelled data, often several combined into a pipeline:
- customer identification at an automated shop: the system is trained on labelled face images; a camera captures a face; image recognition extracts a representation; it is matched against registered customers; the closest match identifies the person.
- reading text from images: image recognition finds text regions; optical character recognition 光学字符识别 extracts the characters; machine translation converts them; text-to-speech 文本转语音 reads them aloud.
- checkout item-detection: object-detection AI, trained on labelled product images, sees which items go into a basket and charges the account.
By the time a user interacts with the system, the model is fast — it only does forward-pass inference; the intelligence is in the patterns learned during training.
Vocabulary TrainEnglish Chinese Pinyin optical character recognition 光学字符识别 guāng xué zì fú shí bié text-to-speech 文本转语音 wén běn zhuǎn yǔ yīn -
19 Computational thinking and Problem-solving
19.1
Searching algorithms
Syllabus
- Show understanding of linear and binary searching methods
- Show understanding of insertion sort and bubble sort methods
- Show understanding of and use Abstract Data Types (ADT)
- Show how it is possible for ADTs to be implemented from another ADT
- Show understanding that different algorithms which perform the same task can be compared by using criteria (e.g. time taken to complete the task and memory used)
Source: Cambridge International syllabus
A search finds a target value in a collection (often an array 数组) and returns its position, or "not found".
Searching a sorted list, like a phone book, is far faster than checking every entry one by oneLinear search
A linear search 线性查找 walks from start to end, comparing each element with the target:
FOR i ← 1 TO n IF A[i] = target THEN RETURN i NEXT i RETURN -1 // not foundNo preparation is needed, so it works on any list. Worst case O($n$) (target at the end or absent); best case 1 comparison. Use it on unsorted data or small lists.
Linear search checks every letter in turn — 23 comparisons to find WBinary search
A binary search 二分查找 needs the data sorted. Look at the middle element; if it is the target, done; if the target is smaller, search the left half, else the right half — halving the range each time:
low ← 1 high ← n WHILE low <= high DO mid ← (low + high) DIV 2 IF A[mid] = target THEN RETURN mid IF A[mid] < target THEN low ← mid + 1 ELSE high ← mid - 1 ENDIF ENDWHILE RETURN -1Worst case O($\log_{2} n$) — for a million items, about 20 comparisons. Much faster than linear search on large sorted arrays, but you must sort first (a one-off O($n \log n$) cost), worth it if you search many times.
Binary search halves the range each step (low / mid / high) — just 3 comparisons to find WVocabulary TrainEnglish Chinese Pinyin array 数组 shù zǔ linear search 线性查找 xiàn xìng chá zhǎo binary search 二分查找 èr fēn chá zhǎo 19.1
Sorting algorithms
Bubble sort
A bubble sort 冒泡排序 repeatedly walks the array, swapping adjacent pairs that are out of order, so the largest "bubbles" to the end each pass:
FOR pass ← 1 TO n - 1 swapped ← FALSE FOR i ← 1 TO n - pass IF A[i] > A[i + 1] THEN temp ← A[i] A[i] ← A[i + 1] A[i + 1] ← temp swapped ← TRUE ENDIF NEXT i IF swapped = FALSE THEN EXIT FOR // already sorted NEXT passBest case O($n$) (already sorted, with the early exit); average/worst O($n^{2}$). Simple but slow for large $n$.
Insertion sort
An insertion sort 插入排序 builds a sorted prefix from the left, inserting each new element into place by shifting larger ones right:
FOR i ← 2 TO n key ← A[i] j ← i - 1 WHILE j >= 1 AND A[j] > key DO A[j + 1] ← A[j] j ← j - 1 ENDWHILE A[j + 1] ← key NEXT iBest case O($n$) (already sorted); worst O($n^{2}$). Good for small or nearly-sorted arrays. It sorts in place 原地 and is stable 稳定 (keeps the order of equal elements).
Tracing a sort
A common task is to show the array after each outer pass. For
[D, T, H, R]with insertion sort: pass 1 (key T) no change; pass 2 (key H) →[D, H, T, R]; pass 3 (key R) →[D, H, R, T].
An insertion sort of [D, T, H, R], shifting each key into its place pass by passVocabulary TrainEnglish Chinese Pinyin bubble sort 冒泡排序 mào pào pái xù insertion sort 插入排序 chā rù pái xù in place 原地 yuán dì stable 稳定 wěn dìng 19.1
ADTs in algorithms
The ADTs from Topic 10 appear inside many algorithms: a stack 栈 drives depth-first traversal and undo; a queue 队列 drives breadth-first traversal and print ordering; a linked list 链表 lets data grow and shrink.
ADTs can be built from other ADTs, not just from arrays: a queue from two stacks; a stack from a linked list (push = prepend a head node 节点); a queue from a linked list with head and tail pointers 指针; a binary tree 二叉树 from nodes with two child pointers. Layering this way separates concerns — the algorithm using the ADT need not know how it is built.
A binary tree: each node has up to two child nodesVocabulary TrainEnglish Chinese Pinyin stack 栈 zhàn queue 队列 duì liè linked list 链表 liàn biǎo node 节点 jié diǎn pointers 指针 zhǐ zhēn binary tree 二叉树 èr chā shù 19.1
Comparing algorithms
Time complexity
Time complexity 时间复杂度 is how the running time grows with input size $n$, written in Big-O notation 大O表示法 (the dominant term): O(1) constant, O($\log n$) binary search, O($n$) linear search, O($n \log n$) good sorts, O($n^{2}$) bubble/insertion sort. A smaller order is better at scale, even if another algorithm is faster for small $n$.
How sorting time grows with the number of elements $n$: $O(n^2)$ sorts climb away from an $O(n\log n)$ sortSpace complexity
Space complexity 空间复杂度 is the extra memory needed. Bubble and insertion sort use O(1) extra (in place); merge sort uses O($n$); recursion uses stack memory proportional to its depth. There is often a time–memory trade-off.
Other criteria
Simplicity (easier to code and maintain), stability, and adaptiveness (faster on nearly-sorted data). The right algorithm depends on the data and the constraints.
Vocabulary TrainEnglish Chinese Pinyin time complexity 时间复杂度 shí jiān fù zá dù Big-O notation 大O表示法 dà O biǎo shì fǎ space complexity 空间复杂度 kōng jiān fù zá dù 19.2
Recursion
Syllabus
- Show understanding of recursion
- Show awareness of what a compiler has to do to translate recursive programming code
Source: Cambridge International syllabus
A recursion 递归 algorithm calls itself with a smaller version of the same problem, until a base case 基本情形 ends the chain. It has two parts: the base case (small enough to solve directly — without it the recursion never stops) and the recursive case 递归情形 (reduce the input and call itself).
Factorial 阶乘:
FUNCTION Factorial(n : INTEGER) RETURNS INTEGER IF n = 0 OR n = 1 THEN RETURN 1 ELSE RETURN n * Factorial(n - 1) ENDIF ENDFUNCTIONRecursion is natural for self-similar problems: trees, divide-and-conquer 分治 (binary search, merge sort), and nested data. When it is a poor fit, a loop is usually cleaner.
Tracing a recursive call
For
Factorial(4): the calls go down toFactorial(1)=1, then unwind:2*1=2,3*2=6,4*6=24. Final result24. Track each pending call on a stack.Risks
- infinite recursion if the base case is missed — crashes with a stack overflow 栈溢出.
- high memory use for deep recursion.
- slow if it repeats work (naive Fibonacci is exponential — use a loop or memoisation 记忆化).
Vocabulary TrainEnglish Chinese Pinyin recursion 递归 dì guī base case 基本情形 jī běn qíng xíng recursive case 递归情形 dì guī qíng xíng factorial 阶乘 jiē chéng divide-and-conquer 分治 fēn zhì stack overflow 栈溢出 zhàn yì chū memoisation 记忆化 jì yì huà 19.2
What the compiler does for recursive code
Recursion needs each call to have its own copy of its parameters 参数 and local variables 局部变量. The compiler keeps these on the call stack 调用栈. For each call it pushes a stack frame 栈帧 holding the parameters, the local variables, and the return address 返回地址 (where to resume in the caller). When the function returns, the return value is handed back, the frame is popped, and control resumes at the return address.
Because each call has its own frame, recursive calls don't trample each other's variables. The stack can grow large for deep recursion, which is why very deep recursion may overflow it. This is the same call-and-return mechanism used for ordinary (non-recursive) calls — there is no special "recursion mechanism".
Vocabulary TrainEnglish Chinese Pinyin parameters 参数 cān shù local variables 局部变量 jú bù biàn liàng call stack 调用栈 diào yòng zhàn stack frame 栈帧 zhàn zhēn return address 返回地址 fǎn huí dì zhǐ -
20 Further Programming
20.1
Programming paradigms
Syllabus
- Understanding what is meant by a programming paradigm
- Show understanding of the characteristics of a number of programming paradigms: Low-level, Imperative (Procedural), Object Oriented, Declarative
Source: Cambridge International syllabus
A programming paradigm 编程范式 is a style of programming — a way of structuring programs, with its own ideas and language features. Four are in this syllabus.
Low-level programming
Programming close to the hardware in machine code 机器码 or assembly language 汇编语言, where each instruction maps to what the CPU runs. It gives direct access to registers 寄存器 and memory addresses 内存地址, and is very fast and compact, but is architecture-specific, tedious, and hard to maintain. This is low-level 低级 programming. Used for device drivers, firmware and bootloaders.
Imperative (procedural) programming
In imperative programming 命令式编程 the programmer writes a sequence of commands that change the program's state — assignments, conditionals, loops, function calls. Variables 变量 hold state; statements change it; code is organised into procedures and functions. This is the style of Topics 9 and 11 (Python, C). Strong when the algorithm has clear sequential steps.
Object-oriented programming (OOP)
In object-oriented programming 面向对象编程 programs are built from objects 对象 — units combining data (attributes 属性) and operations (methods 方法). Objects are instances 实例 of classes 类. The four pillars:
- encapsulation 封装 — an object's data is hidden behind its methods; outside code uses the public methods only, not the data directly. This protects the object and lets its internals change without breaking callers.
- inheritance 继承 — a subclass 子类 specialises a superclass 父类, inheriting its attributes and methods and adding or overriding 重写 them. Models "is-a" ("a Manager is an Employee").
- polymorphism 多态 — different objects respond to the same method call differently; the caller need not know the exact type. Every
ShapehasArea(), and aCircleand aRectangleeach implement it their own way. - abstraction 抽象 — show a simple interface and hide the implementation.
Other terms: a constructor 构造函数 is a special method run when an object is created, to set up its attributes. Used for large systems, GUIs, simulations and games.
A class diagram for a Shape: private attributes and public methods
Inheritance: partTime and fullTime are subclasses of employeeDeclarative programming
In declarative programming 声明式编程 you say what to compute, not how — the runtime works out the steps. Two kinds:
- functional programming 函数式编程 — built from pure functions 纯函数 (no side effects 副作用; same input always gives the same output) composed together. Examples: Haskell, Lisp.
- logic programming 逻辑编程 — state facts and rules; the engine answers queries by inference. Example: Prolog.
A familiar declarative example is SQL 结构化查询语言:
SELECT * FROM Customer WHERE Country = 'UK'says what you want, not how to walk the records.Comparing paradigms
Paradigm Strength Typical languages Low-level maximum control, speed assembly Imperative direct, intuitive C, Python Object-oriented modular, models entities Java, C#, Python Functional clear, no side effects Haskell, F# Logic inference, rules Prolog Database data queries SQL Modern languages often mix paradigms — Python supports all of procedural, OOP and functional. The right one depends on the problem.
Vocabulary TrainEnglish Chinese Pinyin programming paradigm 编程范式 biān chéng fàn shì machine code 机器码 jī qì mǎ assembly language 汇编语言 huì biān yǔ yán registers 寄存器 jì cún qì memory addresses 内存地址 nèi cún dì zhǐ low-level 低级 dī jí imperative programming 命令式编程 mìng lìng shì biān chéng variables 变量 biàn liàng object-oriented programming 面向对象编程 miàn xiàng duì xiàng biān chéng objects 对象 duì xiàng attributes 属性 shǔ xìng methods 方法 fāng fǎ instances 实例 shí lì classes 类 lèi encapsulation 封装 fēng zhuāng inheritance 继承 jì chéng subclass 子类 zi lèi superclass 父类 fù lèi overriding 重写 zhòng xiě polymorphism 多态 duō tài abstraction 抽象 chōu xiàng constructor 构造函数 gòu zào hán shù declarative programming 声明式编程 shēng míng shì biān chéng functional programming 函数式编程 hán shù shì biān chéng pure functions 纯函数 chún hán shù side effects 副作用 fù zuò yòng logic programming 逻辑编程 luó jí biān chéng SQL 结构化查询语言 jié gòu huà chá xún yǔ yán 20.2
File processing
Syllabus
- Write code to perform file-processing operations
- Show understanding of an exception and the importance of exception handling
Source: Cambridge International syllabus
This extends the file 文件 handling from Topic 10. Pseudocode operations:
OPENFILE name FOR READ | WRITE | APPEND(READ opens an existing file, WRITE creates/overwrites, APPEND adds to the end);READFILE name, line;WRITEFILE name, value;CLOSEFILE name; andEOF(name)which is TRUE at the end.Read a whole file:
OPENFILE "names.txt" FOR READ WHILE NOT EOF("names.txt") DO READFILE "names.txt", thisName OUTPUT thisName ENDWHILE CLOSEFILE "names.txt"Search a file (stop when found):
found ← FALSE OPENFILE "people.txt" FOR READ WHILE NOT EOF("people.txt") AND NOT found DO READFILE "people.txt", line IF line = target THEN found ← TRUE ENDWHILE CLOSEFILE "people.txt"Updating a file in place
Most languages can't edit a text file in place. Instead: open the original for READ and a temporary file for WRITE; for each line, write the new version if it should change, else the original; close both; then replace the original with the temp file. The same pattern handles deleting lines (skip them) and inserting lines.
Pitfalls
Forgetting to close a file (data may be lost); opening for WRITE when you meant APPEND (overwrites everything); reading past
EOF; hard-coded paths (make them constants for portability).Vocabulary TrainEnglish Chinese Pinyin file 文件 wén jiàn 20.2
Exception handling
An exception 异常 is an error or unexpected condition during execution — divide by zero, file not found, network failure, an array 数组 index out of range. Exception handling 异常处理 lets a program detect it and respond gracefully instead of crashing.
It matters because real programs face errors that cannot be prevented up front (files moved, networks down, bad input); without it, every operation needs its own
IFcheck; and it separates the normal flow from the error handling, so the main path reads cleanly.Pattern
TRY OPENFILE "data.txt" FOR READ READFILE "data.txt", line OUTPUT line CLOSEFILE "data.txt" EXCEPT FileNotFound OUTPUT "Sorry, the file does not exist." EXCEPT ReadError OUTPUT "Sorry, error reading the file." ENDTRYThe
TRYblock holds the code that might fail; the first matchingEXCEPTblock runs. Real languages also have a catch-allEXCEPTand aFINALLYblock that runs whether or not an exception happened — useful for cleanup (closing files).Raising an exception
A subroutine that detects an error can raise 抛出 an exception so the caller handles it:
PROCEDURE Divide(a : INTEGER, b : INTEGER) RETURNS INTEGER IF b = 0 THEN RAISE DivideByZero ENDIF RETURN a DIV b ENDPROCEDUREWhere to handle exceptions
Handle them close to the error if the response is simple (a message, a retry), or higher up the call stack 调用栈 if only the outer code knows what to do (a top-level GUI loop logs the error and shows a friendly dialog). Don't swallow exceptions silently — at least log them, or debugging becomes impossible.
Common exceptions:
FileNotFound,IOError,DivisionByZero,IndexOutOfRange,InvalidArgument,NullReference,OutOfMemory. Wrapping each failing operation in aTRYwith the rightEXCEPThandlers gives a program that degrades gracefully instead of crashing.Vocabulary TrainEnglish Chinese Pinyin array 数组 shù zǔ exception 异常 yì cháng exception handling 异常处理 yì cháng chǔ lǐ raise 抛出 pāo chū call stack 调用栈 diào yòng zhàn