Algorithms, program constructs and testing
Paper 2 rewards precision. This lesson covers the searches and sorts you must know, the three constructs, and how to design test data that finds bugs.
Lesson overview
What you'll learn in this lesson
Design algorithms, write programs using core constructs, and test and debug them.
Key learning points
- • Searching
- • Sorting
- • The three constructs
- • Testing and error types
This lesson at a glance
- 30 minutes
- 16 parts to scroll through
- 4 quick checks
- Marked quiz at the end
- Gentle pace: short sittings with pauses
Words to know
Scroll down — the lesson carries on below
Watch & discover
Part 1 of 16
Watch first
Algorithms, program constructs and testing
An English teaching video on this topic from Mr J Online. Watch it, then scroll down for the lesson.
In a nutshell
Design algorithms, write programs using core constructs, and test and debug them.
Learning cycle
Part 2 of 16
Learning cycle 1 of 2
Part 1 · Searching
A short piece of teaching, then a check to make sure it has landed.
Explore the idea
Part 3 of 16
Learn
Searching
A linear search checks each item in turn: it works on unsorted data and takes on average half the list. A binary search repeatedly halves a sorted list by comparing with the middle item: it is far faster on large data sets but requires the data to be sorted first.
Explore the idea
Part 4 of 16
Learn
Sorting
Bubble sort repeatedly swaps adjacent out-of-order items — simple but slow. Merge sort divides the list until each part holds one item, then merges pairs in order — consistently efficient. Insertion sort builds a sorted section one item at a time and is quick on nearly sorted data.
Quick check
Part 5 of 16
Quick check
What must be true before a binary search?
Quick check
Part 6 of 16
Quick check
Which sort is quickest on nearly sorted data?
Reset break
Part 7 of 16
Pause
That's sitting 1 of 2 done
Stretch, get a drink, look out of the window. There is no timer and nothing is counting down — your place is saved, so you can come back in five minutes or tomorrow.
Learning cycle
Part 8 of 16
Learning cycle 2 of 2
Part 2 · The three constructs
A short piece of teaching, then a check to make sure it has landed.
Explore the idea
Part 9 of 16
Learn
The three constructs
Sequence runs statements in order; selection chooses a path with if, else if and else; iteration repeats with a count-controlled for loop or a condition-controlled while loop. Combine these with arrays, records, subprograms and file handling and you can write any GCSE program.
Explore the idea
Part 10 of 16
Learn
Testing and error types
Syntax errors break the rules of the language and stop the program running; logic errors run but give the wrong result. Test data must be normal, boundary and erroneous — and boundary values are where the marks and the real bugs are.
Quick check
Part 11 of 16
Quick check
Which error allows the program to run but gives a wrong answer?
Quick check
Part 12 of 16
Quick check
Which test data most often exposes an off-by-one mistake?
Explore the idea
Part 13 of 16
Worked example
Worked example: validating an age input
A program must accept an age between 11 and 18. Using a while loop, the program repeatedly asks for input while the value is outside the range, so invalid entries cannot pass. Test data should include 15 as normal data, 11 and 18 as boundary data that must be accepted, 10 and 19 as boundary data that must be rejected, and 'twelve' as erroneous data that must be handled without crashing. Testing only normal data would let an off-by-one comparison such as age > 11 pass unnoticed, which is exactly why boundary values are specified.
Challenge round
Part 14 of 16
Game · Sort it
Which of these are true?
Drag each card into the right column. Tap a card first if dragging is fiddly.
True
Not true
Mastery quiz
Part 15 of 16
Marked quiz
End of lesson quiz: Algorithms, program constructs and testing
4 questions, marked with the reasoning shown. No timer.
1. What must be true before a binary search?
2. Which sort is quickest on nearly sorted data?
3. Which error allows the program to run but gives a wrong answer?
4. Which test data most often exposes an off-by-one mistake?
Lesson round-up
Part 16 of 16
Lesson round-up
Ready when you are
Quiz score
Not sat
Games
Not played
Points this lesson
0
Best run
0 in a row
Luna: 0 out of 4 on the practice checks. Only if you feel up to it — one more?
Ask LunaDo the work
Your written work for this lesson
This is the part you'd do in your book at school. Pick the pieces below, write here or on paper, and photograph anything you draw or work out.
How a supermarket checkout knows the price
When a barcode is scanned, the checkout does not store the price itself. It sends the barcode number to a database and reads back a record: product name, price, whether it needs an age check. The record is the single place the price lives, so changing one row changes every till in the shop at once.
Problems come from bad data, not bad scanners. If two products share a barcode, or a price update reaches the shop overnight but the till holds an old copy in its cache, customers are charged the wrong amount. Shops check this with test transactions: scan a known item, expect a known price, record what actually happened.
Good systems also log every scan. If a customer complains, the log shows exactly which record was used and when.
Written for Good Learning Co.
Reading questions
- Write in your own words what the checkout sends and what it receives back.
- Explain one way bad data could cause a wrong price, and how logging helps find it.
- Design a test table with four tests for a new checkout, with expected and actual results.
Reading and notes
ReadingRead the lesson text again and note the key terms and how each one is used, in your own words — as you would for revision.
Half a page of notes
Extended writing
WritingExplain a real system that uses this idea — how it works, where it can go wrong, and how you would make it safer or better.
250–350 words
Algorithm on paper
DiagramWrite your steps out as pseudocode or a flowchart before you type anything, then photograph it.
1 flowchart or 10 lines
Code write-up
WritingCopy your code in, then explain underneath what each part does and what you had to fix.
Code + 5 sentences
Test table
Working outMake a test table: what you tried, what you expected, what actually happened.
4–6 tests
Saved as you type.
Part 1 of 16 · Watch & discover
