Algorithm Design and Problem Solving · 4 question types
Past paper frequency (2018 to 2024)
This topic accounts for approximately 6% of your exam marks.
Decomposition, abstraction and structure charts appear as design-focused questions.
Most programming projects follow a standard sequence of stages, sometimes called the program development life cycle.
The analysis stage is about understanding the problem clearly before any code is written.
The deliverable is a requirements document that lists:
This is where decomposition and abstraction are most useful: the programmer breaks the big problem into sub-problems and identifies only the data and behaviour that matter.
The design stage produces a blueprint for the solution before any code is written.
Common ways of describing a design:
The coding stage turns the design into a working program in a chosen programming language.
Each module is coded according to the design. Programmers run iterative tests as they write: as soon as a module exists, it gets tested; as soon as something fails, it gets debugged before the team moves on.
The testing stage exercises the finished program with carefully chosen test data to confirm it meets every requirement.
The whole program is run many times, with different inputs, to find any remaining bugs and confirm the requirements are met. Section 6 covers the test-data categories you should know.
After testing, programs are usually released (or deployed) and then enter a maintenance phase, where bugs are fixed and new features added over the program's life. The IGCSE syllabus stops at testing, but in real life maintenance is often the biggest stage of all.