← Back to subjects
0
AQA A-level Computer Science (7517) · Fundamentals of computer systems
Mini-Lesson

Fundamentals of computer systems

This mini-lesson covers AQA 4.6 — Fundamentals of computer systems: what software actually is, how source code becomes machine code, and the Boolean algebra that every circuit in the machine is built from.

  • Hardware and software; system vs application software
  • The role of the operating system
  • Classification of programming languages
  • Translators — compiler, interpreter, assembler
  • Logic gates, Boolean algebra and De Morgan's laws
  • Karnaugh maps, half/full adders and flip-flops

Work through each screen, answer the questions as you go (some are recall, some are calculations you must actually work out) and collect ⭐ stars. Press Start when you're ready.

4.6 · Systems

Hardware, software and the operating system

Hardware is the physical machinery. Software is the set of programs that tells it what to do — and it comes in two families:

  • System software — runs and manages the machine: the operating system, utility programs (defragmenter, backup, antivirus, compression), library programs and translators.
  • Application software — does a job for the user: general-purpose (word processor, browser), special-purpose (payroll), or bespoke software written for one client.

The operating system sits between hardware and applications and hides the hardware's complexity. Its jobs:

  • Processor scheduling — deciding which process gets the CPU next;
  • Memory management — allocating RAM, paging and virtual memory;
  • File management — directories, permissions, storage;
  • Peripheral / device management — via device drivers;
  • Security — user accounts and access rights;
  • providing a user interface.

Abstraction again: an application says "write this file". It does not know, and must not need to know, whether the storage is an SSD, a hard disk or a network share. The OS provides that abstraction.

4.6 · Languages

Classification of programming languages

Languages sit on a ladder from the machine's world to the human's:

LevelWhat it looks likePortable?
Machine codeRaw binary opcodes and operandsNo — tied to one processor
Assembly languageMnemonics: LDR, ADD, STR — one line = one machine instructionNo — processor-specific
High-level (imperative)Python, Java, C# — one line becomes many machine instructionsYes — recompile for a new machine

Imperative high-level languages describe how to solve the problem, as a sequence of commands changing the program's state. (Declarative and functional languages instead describe what the answer is.)

Why write assembly at all? Only where you need absolute control of timing, of specific registers or of hardware — device drivers, embedded controllers, tight real-time loops. The price is that the code is unportable, slow to write and hard to maintain.

4.6 · Translators

Compilers, interpreters and assemblers

CompilerInterpreter
WhenTranslates the whole program before it runsTranslates and executes one statement at a time, every time
OutputAn executable object fileNone — nothing is saved
Speed of runningFast — already machine codeSlow — re-translates each pass of a loop
ErrorsReports all errors at the end of compilationStops at the first error it reaches
Source codeNot needed to run the executableNeeded every time, plus the interpreter itself
Best forShipping finished softwareDeveloping and debugging; cross-platform scripting

An assembler is a third kind: it translates assembly language to machine code, essentially one-to-one — one mnemonic becomes one instruction.

Bytecode: Java compiles once to platform-independent bytecode, which a virtual machine then interprets (or JIT-compiles) on any device. That is how "write once, run anywhere" works — you get the portability of an interpreter with much of the speed of a compiler.

Quick check

Translators

?A developer is repeatedly testing and correcting a script, running it dozens of times an hour. Why is an interpreter convenient here despite being slower at run time?
4.6 · Logic

Logic gates

GateNotationOutput is 1 when…
NOTĀthe input is 0
ANDA · Bboth inputs are 1
ORA + Bat least one input is 1
XORA ⊕ Bthe inputs differ
NANDA · B with a barnot both inputs are 1
NORA + B with a barneither input is 1

A truth table with n inputs has 2ⁿ rows — you must list every combination.

NAND is universal: every other gate can be built from NAND gates alone (and likewise from NOR alone). Chip fabrication exploits this — one gate type, mass produced, wired into everything.

Calculate

Your turn — truth table size

1How many rows does a complete truth table for a circuit with 5 inputs have?
rows
Hint: Each input can be 0 or 1, independently. That is 2 to the power of the number of inputs.
Calculate

Your turn — evaluate the expression

2Given A = 1, B = 0, C = 1, evaluate:
((A OR B) AND NOT C) XOR (A AND B)
Give the answer as 0 or 1.
Hint: Work inside out. (A OR B) = 1; NOT C = 0; so the left bracket is 1 AND 0. Then (A AND B) = 1 AND 0. Finally XOR the two results.
4.6 · Boolean algebra

Boolean algebra and De Morgan's laws

Circuits are simplified algebraically. Fewer gates means cheaper, faster, cooler silicon.

LawIdentity
IdentityA · 1 = A    A + 0 = A
NullA · 0 = 0    A + 1 = 1
IdempotentA · A = A    A + A = A
ComplementA · Ā = 0    A + Ā = 1
AbsorptionA + (A · B) = A    A · (A + B) = A
DistributiveA · (B + C) = A·B + A·C
De MorganNOT(A · B) = Ā + B̄    NOT(A + B) = Ā · B̄

De Morgan in words: break the bar and change the sign. NOT(A AND B) is the same as (NOT A) OR (NOT B).

Worked simplification

A·B + A·B̄

= A · (B + B̄)   distributive

= A · 1   complement law

= A — the value of B is irrelevant. Two gates become none.

Quick check

De Morgan's laws

?Which expression is equivalent to NOT(A + B)?
Quick check

Simplification

?Simplify (A + B) · (A + B̄).
4.6 · K-maps

Karnaugh maps

A Karnaugh map simplifies a Boolean function visually. Cells are arranged in Gray code order (00, 01, 11, 10) so that any two adjacent cells differ in exactly one variable.

The rules:

  • Group 1s in blocks of 1, 2, 4, 8… — powers of two only.
  • Make groups as large as possible; a larger group eliminates more variables.
  • Groups may overlap, and may wrap around the edges of the map.
  • Within a group, any variable that changes is eliminated; those that stay constant form the term.
Worked example

F = 1 for the minterms 000, 001, 100, 101 (in ABC order).

In every one of those four rows, B = 0, while A and C each take both values.

A and C vary, so both are eliminated. F = NOT B — a three-variable expression collapses to a single inverter.

Why Gray code matters: if adjacent cells differed in two variables, grouping them would not eliminate anything. The whole method depends on that one-bit-at-a-time ordering.

4.6 · Circuits

Adders and flip-flops

A half adder adds two bits:

Sum = A ⊕ B    Carry = A · B

It cannot accept a carry in, so it is useless beyond the least significant bit. A full adder takes three inputs — A, B and Cᵢₙ — and produces Sum and Cₒᵤₜ:

Sum = A ⊕ B ⊕ CᵢₙCₒᵤₜ = (A · B) + (Cᵢₙ · (A ⊕ B))

Chain n full adders, carry-out to carry-in, and you have an n-bit ripple-carry adder — the arithmetic heart of the ALU.

A D-type flip-flop is a sequential circuit: its output depends on its inputs and on its stored state. On the rising edge of the clock, whatever is on D is captured on Q and held there until the next edge.

This is memory. A flip-flop stores one bit indefinitely. Put 64 side by side and you have a register; put millions together and you have SRAM cache. The clock is what turns a lump of combinational logic into a machine that can remember.

Calculate

Your turn — the full adder

3A full adder receives A = 1, B = 0, Cᵢₙ = 1. Give its output as the two bits carry then sum (e.g. type 10 for carry 1, sum 0).
Hint: 1 + 0 + 1 = 2 in denary. Write 2 as a two-bit binary number: that is your carry and sum.
Quick check

Sequential logic

?What distinguishes a flip-flop from a combinational circuit such as a full adder?
Sort it

Classify the software

Tap an item, then tap the group it belongs to.

🛠️ System software

💼 Application software

🔤 Program translator

Match it

Match the description to the term

Tap an item on the left, then its partner on the right.

Description
Term
Recap

The big ideas to know

Software: system (OS, utilities, translators) vs application (general, special, bespoke)

OS roles: scheduling · memory management · file management · peripherals · security · user interface

Languages: machine code → assembly (one-to-one) → high-level imperative (one-to-many)

Translators: compiler = whole program, executable, all errors · interpreter = line by line, first error · assembler = one-to-one

Gates: NOT · AND · OR · XOR · NAND · NOR · truth table has 2ⁿ rows · NAND is universal

Boolean: A·B + A·B̄ = A · absorption A + A·B = A · De Morgan: NOT(A·B) = Ā + B̄, NOT(A+B) = Ā·B̄

Circuits: half adder: Sum = A ⊕ B, Carry = A·B · full adder adds Cᵢₙ · flip-flop stores one bit

That is the whole of AQA 4.6. Press Finish to see your score.

🏆

Mini-lesson complete!

⭐⭐⭐

You've worked through Fundamentals of computer systems for AQA A-level Computer Science (7517). 🎉

Your stars: 0 / 0

Next: test yourself in the Evaluate stage Confidence Quiz, then lock it in with Verify.

📣 Smashed it? Share your score

Challenge a mate to beat your stars, or show a parent how you got on.

→ Back to all subjects