29 cards · School · answer each one, then read the explanation. Your score tallies below. Looking for Binary, ASCII & RGB explained: how a byte becomes a letter or a color? Read the explainer.
0 / 29 answered · 0 correct
Link copied — send it to a friend!
School · Coding & Computers · Card 001/029easy
Computers represent everything - text, photos, music - using just two digits, 0 and 1 (binary), instead of the ten digits people use every day. What is the main reason computer hardware is built this way?
ABecause early programmers found binary easier to type than decimal numbers
BBecause binary numbers take up less digital storage space than decimal numbers for representing the same value
CBecause the tiny electronic switches inside a computer chip are far more reliable when built to represent just two clear states, like off and on, than when built to reliably tell apart ten finely graded voltage levels
DBecause human eyes cannot easily distinguish between ten different symbols on a screen
Correct answer: .
Computer chips are built from millions of transistors, tiny electronic switches that work best when they only ever need to represent two clearly distinguishable states, such as 'on' (current flowing) and 'off' (no current). Building hardware that could reliably tell apart ten different voltage levels for ten decimal digits would be far more complex and error-prone than hardware that only has to distinguish two states, so binary became the natural fit for how physical circuits actually work. The option about typing convenience is wrong because the choice of binary has nothing to do with what is easy for a human to type; programmers rarely type raw binary at all, they write in higher-level languages that get translated down to binary. The option about storage space is wrong because representing the same value in binary generally takes more digits than in decimal, not fewer, so binary is not chosen to save space. The option about human eyesight is wrong because a computer's internal binary representation is never about what a human perceives on a screen; the digits 0 and 1 describe internal electrical states, not visible symbols.
Source: BBC Bitesize GCSE Computer Science: Systems architecture and data representation
School · Coding & Computers · Card 002/029easy
In computer logic, an AND gate takes two inputs and produces one output. Under what condition does an AND gate output a 1 (true)?
AOnly when both of its inputs are 1
BWhen at least one of its two inputs is 1
CWhen exactly one of its two inputs is 1, but not both
DWhenever either input changes value, regardless of what it changes to
Correct answer: .
An AND gate is a basic logic gate used to combine two conditions so that the overall result is only true when both conditions hold, which is why it outputs 1 only when both of its inputs are 1; for any other combination of inputs, its output is 0. This makes it useful for things like 'let the player through only if they have a key AND they have enough energy'. The option describing an output of 1 whenever at least one input is 1 actually describes an OR gate, which is far more permissive and has a completely different truth table from AND. The option describing an output of 1 when exactly one input is 1 but not both describes an XOR (exclusive OR) gate, which specifically excludes the both-true case that AND requires. The option about reacting to any input change is not how a basic AND gate works at all; a plain AND gate has no memory of previous values and depends only on the current values of its inputs, not on whether they changed.
Source: BBC Bitesize GCSE Computer Science: Boolean logic
School · Coding & Computers · Card 003/029easy
If you turn a computer completely off and then back on, any unsaved work in a running program disappears - but photos already saved to the hard drive or SSD are still there. What key difference between RAM and long-term storage explains this?
ARAM is physically located inside the CPU chip, while storage devices are always external plug-in accessories
BRAM can only hold text data, while storage devices are needed for anything else, like photos or video
CRAM works only when connected to the internet, while storage devices work fully offline
DRAM is volatile memory that needs a constant electrical charge to hold data, so it clears when power is lost, while storage devices like hard drives and SSDs retain data without power
Correct answer: .
RAM is volatile memory, meaning it only holds its data while it keeps receiving electrical power; the moment power is cut, whatever was stored in RAM is lost, which is why an unsaved document vanishes after a full power-off. Long-term storage devices like hard drives (which store data as magnetic patterns) and SSDs (which store data in flash memory cells that hold their charge state) are non-volatile, so the data they hold survives with no power at all, which is why saved photos are still there afterwards. The option about physical location is wrong because RAM usually sits on its own chip on the motherboard rather than inside the CPU, and plenty of storage, like an internal SSD, is not an external accessory at all. The option about data type is wrong because RAM can temporarily hold any kind of binary data, including images and video, while a program is actively using them; the real distinction is about whether the data survives a power loss, not what type of data it is. The option about internet connectivity is wrong because both RAM and storage function perfectly well with no internet connection whatsoever; volatility has nothing to do with networking.
Source: BBC Bitesize GCSE Computer Science: Memory
School · Coding & Computers · Card 004/029easy
A programmer wants to write a recipe app. Instead of writing the whole thing as one giant tangle of code, they break the problem into smaller separate parts, like 'search recipes', 'display a recipe', and 'save a favourite'. What is this problem-solving technique called in computer science?
AEncryption
BDecomposition
CCompilation
DDebugging
Correct answer: .
Decomposition is the computational-thinking skill of breaking a large, complicated problem down into smaller, more manageable sub-problems, each of which is easier to design, write, and test on its own before being combined into the finished program, which is exactly what splitting a recipe app into 'search', 'display', and 'save favourite' pieces does. It is taught alongside other computational-thinking skills like abstraction and pattern recognition because it makes large projects manageable. The option describing encryption is wrong because encryption is about scrambling data so it can only be read by someone with the right key, which has nothing to do with structuring a programming problem. The option describing compilation is wrong because compilation is the separate process of translating finished source code into machine code the computer can run, which happens after the code is written, not a technique for planning how to divide up a problem. The option describing debugging is wrong because debugging means finding and fixing errors in code that already exists, which is a later step in development, not the initial act of splitting a problem into smaller parts.
Source: BBC Bitesize GCSE Computer Science: Computational thinking - decomposition
School · Coding & Computers · Card 005/029medium
You're looking for a name in a printed phone book with 1,000 sorted pages. Which strategy finds it in far fewer steps: checking every page one by one from the start, or repeatedly opening to the middle of the remaining pages and deciding which half to search next?
AOpening the middle page each time and eliminating half the remaining pages at every step, because the pages are already sorted alphabetically, quickly narrows down where the name must be
BChecking every page one by one, because binary search only saves time when you already know exactly which page the name is on
COpening the middle page each time, because splitting a list in half always cuts the work equally, whether or not the pages are sorted
DChecking every page one by one, because with only 1,000 pages, one-by-one checking and middle-splitting take roughly the same number of steps overall
Correct answer: .
This is binary search: because the pages are already sorted alphabetically, comparing the wanted name to the name on the middle page tells you immediately which half of the remaining pages the name must be in, so that whole half can be thrown away in one step; repeating this halves the remaining pages each time, so a 1,000-page book needs only about ten comparisons rather than up to a thousand. The option describing one-by-one checking as needing to already know the exact page is backwards; that requirement describes nothing about linear search, and binary search actually works precisely because you do not know the page in advance, narrowing it down step by step instead. The option claiming halving works the same whether or not pages are sorted is wrong because without a sorted order there is no way to know which half contains the name, so the middle-page trick would not reliably eliminate the right half at all. The option claiming both methods take a similar number of steps is wrong by a huge margin: one-by-one checking can need up to 1,000 steps in the worst case, while halving needs only around ten, an enormous practical difference at this scale.
Source: BBC Bitesize GCSE Computer Science: Searching algorithms
School · Coding & Computers · Card 006/029easy
In 1947, engineers working on the Harvard Mark II computer found an actual moth trapped in one of its electromechanical relays, causing a fault, and taped it into their logbook. What computing term is this famous incident credited with popularising?
AByte
BGlitch
CBug
DCrash
Correct answer: .
On 9 September 1947, the team working with Grace Hopper on Harvard's Mark II computer traced a relay malfunction to a moth caught inside the mechanism; they taped the moth into their logbook next to the note 'first actual case of bug being found', and this vivid, well-documented incident is credited with popularising 'bug' as the word for a fault that makes a computer misbehave (the logbook page, moth and all, is preserved by the Smithsonian). The word 'bug' for a technical flaw actually existed even earlier, notably used by Thomas Edison decades before, but this 1947 moth is the famous moment tied to computing specifically. The option naming 'byte', a unit of eight bits, is wrong because that word was coined separately by engineer Werner Buchholz in 1956 and has no connection to this incident. The option naming 'glitch' is wrong because that word's origins trace to 1960s engineering and aerospace slang, unrelated to a 1947 relay and moth. The option naming 'crash', meaning a sudden program or system failure, is wrong because it describes total failure to run at all, not a specific, traceable physical fault like this one, and has no link to this particular story either.
Source: Smithsonian National Museum of American History: 'Log Book With Computer Bug' object record
School · Coding & Computers · Card 007/029medium
Deep inside a computer, the letter 'A' you type isn't stored as a letter at all - it's stored as a number. In the widely used ASCII text-encoding standard, what number represents the uppercase letter 'A'?
A97
B48
C13
D65
Correct answer: .
ASCII (American Standard Code for Information Interchange), finalised in the 1960s, assigns every standard keyboard character a unique number so it can be stored and processed as binary; the uppercase letter 'A' is assigned the number 65, with the rest of the uppercase alphabet following consecutively from there ('B' is 66, 'C' is 67, and so on). The option giving 97 is a genuine ASCII code, but for the lowercase letter 'a', not the uppercase 'A'; the lowercase letters sit exactly 32 higher than their uppercase counterparts, which is why code can switch case just by adding or subtracting 32. The option giving 48 is also a real ASCII code, but for the printable digit character '0', an entirely different symbol from any letter. The option giving 13 is the ASCII code for carriage return, a control character used to mark the start of a new line on old teletype printers, not a printable letter at all.
Source: BBC Bitesize GCSE Computer Science: Data representation - character sets
School · Coding & Computers · Card 008/029medium
A programmer writes 'score = 0' at the start of a game's code, then later writes 'score = score + 10' every time points are earned. What does this show about what a 'variable' is in programming?
AA variable is a fixed value that, once set in the code, can never be changed while the program runs
BA variable is a named container that stores a value which can be read and changed while the program runs, letting 'score' hold different numbers at different points in the game
CA variable is a comment left in the code to explain what a line does, which the computer ignores when running the program
DA variable is a fixed instruction telling the computer to display a value on the screen
Correct answer: .
A variable is a named storage location whose value can be read and updated while a program runs; 'score = 0' creates the variable and gives it a starting value, and 'score = score + 10' later reads the current value, adds ten to it, and stores the updated result back under the same name, which is only possible because a variable's contents are allowed to change over time. The option describing a value that can never change once set actually describes a constant, the opposite of what this example shows, since 'score' clearly changes as points are earned. The option describing a comment is wrong because comments are notes for human readers that the computer skips entirely when running the code, and they never store or affect any value like a score. The option describing an instruction to display a value is wrong because that describes an output or print statement, which shows a value on screen but does not itself store or update any data the way a variable does.
Source: BBC Bitesize GCSE Computer Science: Programming fundamentals - variables
School · Coding & Computers · Card 009/029hard
Bubble sort repeatedly steps through a list, and on each pass compares each pair of neighbouring elements. What does it do when it finds a pair that is in the wrong order?
AIt removes one of the two elements from the list entirely
BIt moves the smaller element all the way to the very front of the whole list immediately
CIt swaps the two neighbouring elements, then continues comparing the next pair further along the list
DIt stops the entire sorting process and restarts from the very beginning of the list
Correct answer: .
Bubble sort moves left to right through a list comparing each pair of neighbouring elements one at a time; whenever the left element is greater than the right one (for ascending order), it swaps just those two neighbours and then carries straight on to compare the next adjacent pair further along, repeating full passes over the list until an entire pass completes with no swaps, at which point the list is sorted, with larger values gradually 'bubbling' toward the end across successive passes. The option describing removing an element is wrong because sorting never deletes anything; every element that starts in the list is still present at the end, only rearranged. The option describing moving the smaller element all the way to the front in one step is wrong because bubble sort only ever swaps two adjacent elements per comparison, it never relocates an element across the whole list in a single move. The option describing stopping and restarting from the beginning is wrong because bubble sort does not abandon a pass after a swap; it keeps comparing forward along the same pass, only beginning a fresh pass once it reaches the end of the list.
In 1843, Ada Lovelace published notes on Charles Babbage's proposed Analytical Engine, a mechanical general-purpose computer that was never actually built in her lifetime. What is she most credited with, based on those notes?
AWriting what is widely considered the first published algorithm intended to be carried out by a machine, for computing a sequence of Bernoulli numbers
BPhysically building the first working general-purpose computer using gears and steam power
CInventing the modern binary number system that all computers now use internally
DCoining the term 'computer' to describe a machine rather than a human calculator
Correct answer: .
Lovelace's 1843 notes on Babbage's proposed Analytical Engine included a detailed, step-by-step method for the machine to compute a sequence of Bernoulli numbers, which is widely regarded by historians of computing as the first algorithm ever published for execution by a machine; she also wrote about the idea that such a machine could one day manipulate more than numbers alone, including symbols and music, which is why she is often credited as the first computer programmer. The option about physically building a working computer is wrong because the Analytical Engine was never completed in either Babbage's or Lovelace's lifetime; no full working machine of that design existed at the time, and Lovelace's own contribution was mathematical and written, not mechanical construction. The option about inventing binary is wrong because the binary number system was formalised by the mathematician Gottfried Leibniz in the seventeenth century, long before either Lovelace or Babbage worked on the Analytical Engine. The option about coining the word 'computer' is wrong because that word originally referred to human beings who performed calculations by hand for centuries before Lovelace's time, only later shifting to mean a machine.
A programmer wants to solve a problem, like sorting a list of names into alphabetical order. Before writing any actual code, they write down the exact, ordered sequence of steps needed to solve it — steps that would work no matter which programming language is used later. What is this step-by-step problem-solving plan called?
AAn algorithm
BA variable
CA compiler
DA database
Correct answer: .
This step-by-step, language-independent plan for solving a problem is called an algorithm — the same algorithm for sorting names alphabetically could later be written out in Python, JavaScript, or any other language, because it describes the logic of the solution rather than any particular language's exact syntax. The option describing a value that a program stores and can change while it runs is wrong because that describes a variable, a single piece of data like a counter or a name, not a sequence of problem-solving steps. The option describing a program that translates an entire piece of source code into machine code before it runs is wrong because that describes a compiler, a translation tool that acts on code that has already been written, not the planning stage that comes before any code exists. The option describing an organised collection of data that a program can search through or update is wrong because that describes a database, a place to store and retrieve information, which has nothing to do with planning a sequence of instructions.
Source: BBC Bitesize GCSE Computer Science: Algorithms
School · Coding & Computers · Card 012/029easy
A programmer needs their game to print 'Get ready!' three times in a row before the game starts. Instead of writing the same 'print' instruction three separate times, they write it once inside a block of code that repeats it exactly three times. What programming concept lets code run more than once without retyping it?
AA variable
BA loop
CA comment
DAn argument
Correct answer: .
Repeating a block of instructions a set number of times, or until some condition changes, without retyping that instruction over and over, is exactly what a loop (such as a for loop or a while loop) is designed to do — here, wrapping the 'print' instruction in a loop set to run three times prints 'Get ready!' three times from a single line of code. The option describing a named storage location that holds a single piece of data, like a score or a player's name, is wrong because that describes a variable, which stores a value but does not by itself make anything repeat. The option describing text in the code that the computer ignores completely, usually left by a programmer as a note to themselves or other people, is wrong because that describes a comment, which has no effect on what the program actually does when it runs. The option describing a piece of information passed into a function so it can use it, like passing a player's name into a 'greet' function, is wrong because that describes an argument, which supplies input to code rather than repeating an instruction.
Source: BBC Bitesize GCSE Computer Science: Programming fundamentals — iteration
School · Coding & Computers · Card 013/029easy
In a simple quiz game, the code needs to display 'Correct!' if the player's answer matches the right answer, and 'Try again' if it doesn't. What programming structure lets the code choose between two different actions depending on whether something is true or false?
AA loop
BA function
CAn if/else (conditional) statement
DA variable
Correct answer: .
Choosing between two different actions depending on whether something is true or false — printing 'Correct!' when the answer matches, or 'Try again' when it doesn't — is exactly what a conditional statement, commonly written as an if/else block, is built to do: it checks a condition once and branches to one path or the other. The option describing a block of code that repeats a set of instructions multiple times is wrong because that describes a loop, which is about repetition, not about choosing between two different outcomes based on a test. The option describing a named, reusable block of code that can be run whenever it's needed, possibly from many different places in a program, is wrong because that describes a function, which packages up instructions for reuse but doesn't itself decide between two branches unless a conditional is written inside it. The option describing a named storage location holding a single piece of data is wrong because that describes a variable, which can hold the player's answer for comparison but cannot, on its own, make a decision.
Source: BBC Bitesize GCSE Computer Science: Programming fundamentals — selection
School · Coding & Computers · Card 014/029easy
A laptop's keyboard, screen, and internal circuit boards are all physical parts you can touch. The web browser and word processor running on that laptop are not physical — they're instructions the machine follows. What are these two general categories called?
AInput and output
BData and information
CAnalog and digital
DHardware and software
Correct answer: .
The physical, touchable parts of a computer, like a keyboard, screen, or internal circuit boards, are called hardware, while the instructions those physical parts carry out, like a web browser or a word processor, are called software — software has no physical form of its own and only does something because hardware is running it. The option describing what goes into a computer versus what comes back out is wrong because that describes input and output, a pairing about the flow of information during use, not about whether something is physical or not. The option contrasting raw, unprocessed facts with facts that have been organised into something meaningful is wrong because that describes data and information, a distinction about how information is processed, unrelated to physical versus non-physical computer parts. The option contrasting continuously varying signals with signals broken into discrete steps is wrong because that describes analog and digital, a distinction about how a signal or value is represented, not about physical circuit boards versus running instructions.
A single binary digit, a 0 or a 1, is called a bit. Computers group these bits together into a standard-sized chunk to represent things like a single character of text. How many bits make up one of these standard chunks, called a byte?
A8
B4
C16
D2
Correct answer: .
Computers group eight individual bits together into one standard-sized chunk called a byte, and a single byte is enough to represent one character of text under common encoding standards like ASCII, which is why 'byte' became the standard unit for measuring file and memory sizes. The option suggesting four bits is wrong because four bits is actually half a byte, sometimes called a nibble, and can only represent 16 different values, far too few for a full character set. The option suggesting sixteen bits is wrong because sixteen bits actually makes up two bytes, not one, and is used for things like extended character encodings rather than the basic single-byte unit. The option suggesting two bits is wrong because two bits can represent only four distinct values in total, nowhere near enough to distinguish the dozens of letters, digits, and symbols a single byte is designed to hold.
Source: BBC Bitesize GCSE Computer Science: Units of data storage
School · Coding & Computers · Card 016/029medium
One kind of translator program converts an entire piece of source code into machine code all at once, before the program is run, producing a separate file that then runs on its own. Another kind translates and executes the code one line at a time, stopping immediately if it hits a line it can't run. What is the first, whole-program-at-once kind of translator called?
AAn interpreter
BA compiler
CA debugger
DAn operating system
Correct answer: .
Translating an entire program from source code into machine code all at once, before the program is ever run, and producing a separate ready-to-run file, is exactly what a compiler does — languages like C and C++ are typically compiled this way, which is why compiled programs tend to run quickly once compilation is finished. The option describing a translator that works through the code one line at a time, executing each line before moving to the next and stopping the moment it hits a line it can't run, is wrong because that describes an interpreter, the opposite, line-by-line approach used by languages like Python. The option describing a tool used to step through running code, inspect variable values, and locate the exact line causing a problem is wrong because that describes a debugger, a diagnostic tool rather than a translator that produces machine code. The option describing the software that manages a computer's hardware, files, and other running programs, like Windows or macOS, is wrong because that describes an operating system, which has nothing to do with translating one programmer's source code into machine code.
Source: BBC Bitesize GCSE Computer Science: Translators — compilers and interpreters
School · Coding & Computers · Card 017/029medium
A digital photo is made of thousands of tiny squares called pixels. To store the exact colour of just one pixel, a typical image file uses three separate numbers, each from 0 to 255. What do these three numbers represent?
AThe pixel's exact position on the screen (row and column)
BThe file's total size in bytes
CThe amount of red, green, and blue light mixed to create that pixel's colour
DThe image's resolution in pixels per inch
Correct answer: .
Under the RGB colour model used by most digital image formats, each pixel's colour is stored as three separate numbers, each ranging from 0 to 255, representing exactly how much red, green, and blue light are mixed together to produce that one pixel's colour — mixing these three colours at different intensities lets a screen display more than sixteen million distinct colours from just three numbers per pixel. The option describing where on the screen a pixel sits, by row and column, is wrong because that's the pixel's position or coordinates, tracked separately from its colour and not part of the three colour numbers themselves. The option describing how large the whole image file is in bytes is wrong because file size is a property of the entire saved file, built up from many pixels' worth of data together, not a value stored per individual pixel. The option describing how many pixels are packed into each inch of a printed image is wrong because that's resolution or pixel density, a separate measurement about image sharpness and print size, not about what colour any single pixel actually is.
Source: BBC Bitesize GCSE Computer Science: Representing images in binary
School · Coding & Computers · Card 018/029medium
Before writing real Python or Java code, a programmer first sketches their plan using plain, structured wording like 'INPUT the user's age' and 'IF age is less than 18 THEN print refused', without worrying about a real language's exact punctuation or syntax rules. What is this halfway-between-English-and-code planning tool called?
AMachine code
BA flowchart
CSource code
DPseudocode
Correct answer: .
Writing a plan in plain, structured wording, like 'INPUT the user's age' and 'IF age is less than 18 THEN print refused,' without worrying about a real language's exact punctuation, keywords, or syntax rules, is called pseudocode — it sits halfway between plain English and real code, letting a programmer work out the logic before committing to any one programming language's precise rules. The option describing the lowest-level instructions, made up of binary numbers that a computer's processor executes directly, is wrong because that describes machine code, the final destination after real code has been written and translated, nothing like plain-wording planning. The option describing a diagram made of boxes, diamonds, and arrows showing the flow of a program's logic is wrong because that describes a flowchart, a visual planning tool rather than a written, structured-English one. The option describing actual code written in a real programming language, following that language's exact required syntax, is wrong because that describes source code, the finished, syntax-strict result that pseudocode is deliberately meant to come before.
Source: BBC Bitesize GCSE Computer Science: Pseudocode
School · Coding & Computers · Card 019/029hard
A programmer writes a function to calculate a number's factorial (e.g., 5! = 5×4×3×2×1). Instead of using a loop, the function is written so that, inside its own code, it calls itself with a smaller number each time, until it reaches a stopping point (like reaching 1) that returns an answer directly without calling itself again. What is this technique, where a function calls itself, called?
ARecursion
BIteration
CInheritance
DAbstraction
Correct answer: .
A function written so that it calls itself from within its own code, using a smaller or simpler version of the original problem each time, until it reaches a base case (like reaching 1 in a factorial calculation) that returns an answer without calling itself again, is called recursion — without that base case, a recursive function would keep calling itself forever and never finish. The option describing repeating a set of steps using a loop structure like 'for' or 'while', rather than a function calling itself, is wrong because that describes iteration, a different technique that can often solve the same kind of problem without any self-calling function. The option describing one class in object-oriented programming automatically gaining the properties and behaviours of another, parent class is wrong because that describes inheritance, a way of organising and reusing code across related classes, unrelated to a function calling itself. The option describing hiding a system's complicated inner details behind a simple, easy-to-use interface is wrong because that describes abstraction, a design principle about hiding complexity, not a technique where a function calls itself.
Source: BBC Bitesize A Level Computer Science: Recursion
School · Coding & Computers · Card 020/029hard
In 1989, Tim Berners-Lee, working at CERN, proposed a new way to link and browse documents stored on computers around the world, and built the first working version in 1990. People often call his invention 'the internet' — but the global network of connected computers had already existed for two decades by then. What did Berners-Lee actually invent, which runs on top of that existing network?
AEmail
BThe World Wide Web
CThe first personal computer
DThe first web browser
Correct answer: .
In 1989, Tim Berners-Lee, working at CERN, proposed a system of linked, clickable documents that could be viewed and navigated using a browser, and built the first working version in 1990; this system of hypertext documents, addresses, and rules for linking them together is what's actually meant by the World Wide Web, which runs as a service on top of the internet rather than being the internet itself. The option naming email is wrong because email already existed roughly two decades earlier, sent over early computer networks well before Berners-Lee's 1989 proposal, so it can't be what he invented. The option naming the first personal computer is wrong because personal computers were already being sold to the public throughout the 1970s, over a decade before Berners-Lee's work at CERN. The option naming the first web browser is wrong because although Berners-Lee did write the first browser, called WorldWideWeb, as one piece of his project, the browser was only the tool for viewing his larger invention, the linked-document system itself, which is why historians credit him with inventing the web as a whole rather than just the viewing software.
Source: CERN: 'The birth of the Web'; Encyclopædia Britannica: Tim Berners-Lee
School · Coding & Computers · Card 021/029easy
In 1957, Grace Hopper's team developed a program that could translate instructions written in English-like words, instead of mathematical symbols, into machine code for business data-processing tasks like payroll. What is this program, one of the first English-language data-processing compilers and a direct forerunner of COBOL, called?
AFORTRAN, a scientific and engineering programming language developed by IBM around the same period
BFlow-Matic, an English-language compiler whose design directly inspired COBOL
CUNIVAC, the first commercially sold electronic computer, which Hopper had helped develop earlier in her career
DA-0, an earlier 1952 tool that translated symbolic mathematical code using a library of call-numbered subroutines, rather than English words
Correct answer: .
Flow-Matic, developed by Grace Hopper's team in 1957, let a programmer write data-processing instructions using English-like words such as 'INPUT', 'WRITE', or 'COMPARE' instead of mathematical notation or raw machine instructions, and then translated those instructions into machine code; it is recognised as one of the first English-language data-processing compilers, and its word-based design directly shaped the later, much more widely adopted COBOL (Common Business-Oriented Language). The option naming FORTRAN is wrong because, although it is a real programming language from the same 1950s era, it was developed separately by IBM for scientific and engineering calculation, is built around mathematical formula notation rather than English words, and has no direct connection to Flow-Matic's design. The option naming UNIVAC is wrong because it names a physical computer, the first electronic computer sold commercially, which Hopper worked on years earlier in her career; a computer is hardware, not a compiler or programming language. The option naming A-0 is wrong as the answer to this specific question because, while A-0 was indeed an earlier Hopper-led tool from 1952, it worked by translating symbolic mathematical code using a library of subroutines identified by call numbers, not by understanding English words, which is exactly the distinction that makes Flow-Matic, not A-0, the one described here.
Source: Encyclopaedia Britannica: 'Grace Hopper' and 'Flow-Matic'
School · Coding & Computers · Card 022/029medium
Flowcharts use a standard set of shapes to map out a program's logic before any real code is written, and each shape carries its own specific meaning. What does a diamond shape represent in a flowchart?
AThe very first or very last step of the whole algorithm, marking exactly where it begins or ends
BA single calculation or action being carried out, with no branching or choice involved at that step
CA decision point, where the flow splits into two different paths depending on whether a condition is true or false
DInformation being typed in by a user, or a result being displayed back out to them
Correct answer: .
A diamond shape in a flowchart marks a decision point: it contains a question or condition that can only be answered yes/true or no/false, and the flow of the algorithm branches into two separate paths from that single point depending on which answer applies, which is exactly how an 'IF' structure gets mapped out visually before any code is written. The option describing the very first or very last step of the algorithm is wrong because that marker is a rounded, oval-shaped 'terminator' symbol, used specifically to show where the whole process starts or stops, not a diamond. The option describing a single calculation or action with no branching involved is wrong because that is what a rectangle represents in a flowchart, a straightforward processing step that always leads to exactly one next step, unlike a diamond's two possible paths. The option describing information being typed in or displayed back out is wrong because that is the job of a parallelogram shape, used specifically to mark input and output steps, which is a different operation entirely from testing a condition and branching based on the result.
Source: BBC Bitesize GCSE Computer Science: Algorithms — flowcharts
School · Coding & Computers · Card 023/029medium
A programmer writes a function called addNumbers. Each time it is called, it is given two separate numbers, adds them together, and hands the resulting sum back to whichever part of the code called it. What is the general term for the two numbers it is given, and what is the term for the sum it hands back afterward?
AThe numbers it is given are called return values, and the sum it hands back is called a parameter
BThe numbers it is given are called variables, and functions never hand anything back — only procedures return values
CThe numbers it is given are called arguments, and the act of handing a value back is itself called recursion
DThe numbers it is given are called parameters, and the sum it hands back is called the return value
Correct answer: .
The values a function is given when it is called, like the two numbers addNumbers receives, are called its parameters, and the value a function sends back afterward, like the sum addNumbers calculates, is called its return value; a 'return' instruction is exactly what hands that value back to whichever line of code called the function in the first place. The option that swaps the two terms around, calling the inputs 'return values' and the output a 'parameter', is wrong because it has the direction of the relationship backwards: parameters flow into a function, while a return value flows back out of it, the opposite way. The option claiming functions never hand anything back, and that only procedures return values, is wrong because it is the reverse of the real distinction: a function is specifically defined as a subprogram that does return a value, while a procedure is the kind of subprogram that performs an action without returning one. The option calling the inputs 'arguments' and describing handing back a value as 'recursion' is wrong because recursion refers to something else entirely: a function calling itself from within its own code, which addNumbers does not do here at all; simply returning a calculated value to the caller, with no self-call involved, is not recursion.
Source: BBC Bitesize GCSE Computer Science: Subprograms — procedures and functions
School · Coding & Computers · Card 024/029hard
ASCII can represent the English alphabet, the digits 0-9, and basic punctuation using just 7 bits — 128 possible codes — but it has no way to represent an emoji, a Chinese character, or an accented letter like 'é'. What later character-encoding standard was developed to represent characters from essentially every written language, plus symbols and emoji, by using more bits per character?
AExtended ASCII, which reuses the exact same 128 codes as standard ASCII without adding any new ones
BUnicode, which uses 16 or more bits per character to cover far more symbols than ASCII's 128 codes, including accented letters, non-Latin scripts, and emoji
CMachine code, the lowest-level binary instructions that a computer's processor executes directly
DPseudocode, a plain-English way of planning a program's logic before writing real code
Correct answer: .
Unicode was developed to replace ASCII's cramped 128-code, 7-bit system with a character set large enough to represent essentially every written language's letters and symbols, plus accented characters, mathematical symbols, and emoji, by using 16 or more bits per character, which allows for well over a hundred thousand distinct codes rather than ASCII's original 128. The option describing extended ASCII as reusing the exact same 128 codes without adding anything new is wrong because extended ASCII actually uses the 8th bit to add a second block of 128 new codes on top of the original 128, covering some accented letters and symbols, even though it still falls far short of Unicode's much larger range for non-Latin scripts and emoji. The option naming machine code is wrong because that term refers to the lowest-level binary instructions a processor executes directly to carry out operations, which is a completely different concept from a character-encoding standard for representing text. The option naming pseudocode is wrong because that refers to a plain-English way of sketching a program's logic before writing real code, which has nothing to do with how individual characters of text are represented as numbers inside a computer.
Source: BBC Bitesize GCSE Computer Science: Data representation — character sets
School · Coding & Computers · Card 025/029easy
An OR gate also takes two inputs and produces one output, but it uses a different rule from an AND gate for deciding when to output a 1 (true). Under what condition does an OR gate output a 1?
AOnly when both of its two inputs are 1
BWhen exactly one of its two inputs is 1, but not both
COnly when neither of its two inputs is 1
DWhen at least one of its two inputs is 1
Correct answer: .
An OR gate is far more permissive than an AND gate: it outputs 1 whenever at least one of its inputs is 1, and only outputs 0 in the single case where both inputs are 0. This makes it useful for situations like 'let the player through if they have a key OR they know the secret code' — only one condition needs to be true. The option requiring both inputs to be 1 describes an AND gate, a stricter rule with a completely different truth table. The option requiring exactly one input to be 1 but not both describes an XOR (exclusive OR) gate, which deliberately excludes the both-true case that a plain OR gate happily accepts. The option requiring neither input to be 1 describes the opposite behaviour of a NOR gate's output condition for producing a 1, not an OR gate's: an OR gate outputs 0, not 1, when both inputs are 0.
Source: BBC Bitesize GCSE Computer Science: Boolean logic
School · Coding & Computers · Card 026/029easy
A programmer writes a loop meant to keep asking 'Enter your password:' until the user types the correct one, but makes a mistake so the condition controlling the loop is never updated and never becomes false. The program keeps asking forever and never moves on to anything else. What is this common bug, where a loop never meets its own stopping condition and runs forever, called?
AA syntax error
BAn infinite loop
CA recursive function
DA compiler error
Correct answer: .
A loop whose stopping condition is never met, because it was never updated or was written incorrectly, keeps running forever (or until something outside the program, like force-quitting it, stops it) — this is called an infinite loop, a very common beginner bug that makes a program hang or become unresponsive. The option naming a mistake in a language's grammar or structure, the kind that stops code from running at all, describes a syntax error, which is a completely different category of problem since an infinite loop runs the code just fine, just endlessly. The option naming a function that calls itself with a smaller version of the problem until it reaches a stopping point describes recursion, a deliberate technique for solving problems like factorials, not an accidental forever-running loop. The option naming a failure during the translation of source code into machine code describes a compiler error, which would stop the program from being created in the first place rather than letting it run and get stuck.
Source: Lenovo Tech Glossary: 'Endless Loop'; ituOnline Tech Definitions: 'What Is an Infinite Loop?'
School · Coding & Computers · Card 027/029medium
A web designer picks a colour using a code like #1A2B3C, and a technician reading a crashed program's memory sees values written like 'FF 00 3C'. Both are using hexadecimal (base 16) instead of writing out the actual binary that the computer stores internally. What is the main practical reason hexadecimal is used as a human-friendly stand-in for binary in situations like these?
AHexadecimal numbers take up less storage space inside the computer than the binary values they represent
BComputer chips can only process data in base 16, so hexadecimal must be used anywhere data is shown
CEach hexadecimal digit represents exactly four binary digits, so a long string of binary digits can be written as a much shorter hexadecimal string that still converts back and forth exactly
DHexadecimal was chosen arbitrarily by early programmers purely as a stylistic preference, with no mathematical relationship to binary
Correct answer: .
Four binary digits can represent exactly sixteen different values (0000 through 1111), which is precisely the range one hexadecimal digit covers (0-9 then A-F), so hexadecimal and binary convert back and forth perfectly with no rounding or approximation, digit group by digit group. That exact four-bits-to-one-digit relationship is why a long, hard-to-read string of 0s and 1s can be compressed into a much shorter hexadecimal string, which is why colour codes, memory dumps, and similar raw data are written in hex for humans to read even though the computer still stores everything in binary underneath. The option about saving storage space inside the computer is wrong because the computer never actually stores the hexadecimal version; it is purely a human-readable display format laid over the same binary values. The option claiming chips process data in base 16 is wrong because computer hardware works in binary only; hexadecimal only appears when humans need to read or write that data. The option claiming the choice was arbitrary and mathematically unrelated to binary is wrong because the entire reason hex works so cleanly is that exact four-bits-to-one-digit relationship, not a stylistic accident.
Source: TechTarget: 'What is Hexadecimal Numbering?'; University of Waterloo CS100: 'Why Do People Use Hexadecimal?'
School · Coding & Computers · Card 028/029medium
A student writes a program meant to calculate the average of three test scores, but mistakenly adds the three scores together and forgets to divide by three. When they run the program, it runs successfully from start to finish and prints a number on screen — just the wrong one. What type of programming error is this, where the code is grammatically valid and runs without crashing but still produces an incorrect result because of a flaw in its reasoning?
AA syntax error, because the program only produces wrong output when its code breaks a language's grammar rules
BA runtime error, because the program's operating system forcibly halts it partway through execution
CA compiler error, because translating the source code into machine code failed partway through
DA logic error, because the program's structure and grammar are both valid and it runs to completion, but a mistake in its reasoning produces an incorrect result
Correct answer: .
A logic error is a mistake in a program's reasoning or design, not in its grammar, so the code is perfectly valid and runs to completion, but it computes or displays the wrong result; forgetting to divide the sum of three scores by three is a classic example, since nothing about 'add three numbers and print the result' is grammatically invalid, it is simply the wrong calculation for an average. The option describing a mistake in a language's structure or grammar, the kind that stops the program from running at all, describes a syntax error, which is wrong here precisely because the program in the scenario ran successfully and produced output rather than failing to run. The option describing the operating system forcibly halting the program partway through describes a runtime error (a crash during execution, such as dividing by zero or running out of memory), which again contradicts the scenario since the program finished and printed a result rather than stopping. The option describing a failure during translation into machine code describes a compiler error, which would prevent the finished program from being created in the first place, not let it run to completion with a wrong answer.
Source: Geek University: 'Syntax Errors and Logic Errors in Python'
School · Coding & Computers · Card 029/029hard
In a 1965 magazine article titled 'Cramming More Components onto Integrated Circuits,' engineer Gordon Moore looked at how many transistors could be packed onto a silicon chip and noticed the number had been roughly doubling at a regular interval. Updated a decade later into its now-famous form, what trend does the observation popularly known as 'Moore's Law' describe?
AThe amount of electricity a computer chip consumes doubles every two years as chips get more powerful
BThe number of transistors that can be fitted onto a chip of a given size roughly doubles about every two years
CThe price of a finished computer halves every two years as manufacturing techniques improve
DThe speed of home internet connections doubles every two years as network hardware improves
Correct answer: .
In his 1965 Electronics Magazine article, Gordon Moore observed that the number of components (mainly transistors) that could be economically fitted onto an integrated circuit of a given size had been doubling roughly every year since their invention, and projected the trend forward; a decade later, in 1975, he revised the doubling period to about every two years, and it is this two-year version that became famous as 'Moore's Law,' guiding the semiconductor industry's roadmap for decades. The option about power consumption doubling is wrong because Moore's observation was specifically about transistor count fitting on a chip, not energy use, which does not follow the same doubling pattern. The option about computer prices halving is wrong because, while shrinking transistors did help make computing cheaper over time, that is a downstream economic effect people sometimes associate with the trend, not the actual quantity Moore's Law describes. The option about internet speed is wrong because home network bandwidth is governed by entirely different technologies and infrastructure rollouts, unrelated to the transistor-density trend on a chip that Moore specifically measured.
Source: Gordon E. Moore, 'Cramming More Components onto Integrated Circuits,' Electronics Magazine, April 19, 1965; Computer History Museum: 'Moore's Law'
About Coding & Computers
This topic covers the ideas underneath coding and computers: how data is stored in binary, what hardware and software do, the building blocks of programs, how algorithms search and sort, and a few landmark moments in computing history. It matches much of what schools teach in computer science between about ages 11 and 16, and no programming experience is needed to start.
Much of programming is problem solving that happens before any code is written. BBC Bitesize describes four cornerstones of computational thinking: decomposition (breaking a problem into smaller, more manageable parts), pattern recognition (looking for similarities among and within problems), abstraction (focusing on the important information and ignoring irrelevant detail) and algorithms (developing a step-by-step solution). Once there is a plan, programs are built from three basic constructs: sequencing (instructions carried out in order), selection (a decision that sends the program down one path or another) and iteration (repeating a set of instructions). A useful habit is to trace a short program by hand, writing down the value of each variable after every line, to see exactly what the code does rather than what you expect it to do.
Underneath everything, a computer stores data as patterns of 0s and 1s, because its circuits work with electrical signals that are either on or off. Binary is a base-2 number system, so each place is worth double the place to its right: 1011 in binary means 8 + 0 + 2 + 1, which is 11. The same idea lets numbers stand for letters and colors, which the binary, ASCII and RGB explainer works through with examples.