IGCSE Computer Science 0478 — 7a Program Development Life Cycle Hangman
Years 10–11 · IGCSE · 83 key terms.
Every word, shuffled.
The names stay in this browser on this computer — they are never sent to Cloodit. A random student is called for each word.
How a program goes from a problem to tested working code. See the whole journey →
Want your own words? Free Hangman Generator →
Same words, on paper
The quiet activity after the loud one. Free to print, answer keys included.
Crossword7a Program Development Life Cycle · 7a Program Development Life Cycle · 7a Program Development Life Cycle · all 16
Word search7a Program Development Life Cycle · 7a Program Development Life Cycle · 7a Program Development Life Cycle · all 12
Worksheetfor any module, with answer key
When your class is on devices — Snake Break and Diamond Dash run on the same modules, with a free class.
The 83 key terms
- 1program development life cycle
- The four ordered stages that take a program from problem to working code: analysis, design, coding and testing. Planning before coding saves time.
- 2Analysis
- The first stage of the PDLC: work out exactly what problem must be solved and what the program must do, using abstraction and decomposition, before any design or code.
- 3problem statement
- A clear one or two sentence description of what needs to be solved and what the program must achieve, written so the user and the goal are obvious.
- 4abstraction
- Keeping only the details needed to solve a problem and leaving out the details that do not matter, e.g. a map shows roads but not every tree.
- 5decomposition
- Splitting a big problem into smaller sub-problems, such as input, process and output. Each part can be solved on its own, then the solutions are combined.
- 6requirement
- A statement of something the program must do or provide so that the problem is solved. It is specific, comes from the problem and the user, and is used later to test the program.
- 7Input, Process, Output, Storage
- The four parts of a program's requirements: the data it takes in, the work it does on that data, the results it shows, and the data it keeps for later.
- 8Design stage
- The second PDLC stage: plan the solution in detail using decomposition, structure diagrams, flowcharts and pseudocode, before any program code is written.
- 9hierarchy chart
- A diagram that splits one main problem into smaller sub-problems in boxes, level by level, until each box is a small task that can be solved on its own.
- 10flowchart symbols
- Six standard flowchart shapes: terminator (Start/Stop), process, input/output, decision (two exits), subroutine call, and flow lines with arrows showing direction.
- 11flowchart sequence
- A line of rectangles joined by arrows from the Start oval to the End oval, with one arrow in and one arrow out of each step. Each step is a short action phrase.
- 12parallelogram
- The flowchart shape for an input or output step, like getting a name from the user or showing a result. Write the action and variable inside, e.g. Input age.
- 13decision diamond
- A diamond shape in a flowchart that holds a yes/no question. One arrow labelled Yes and one labelled No lead to different steps, and the paths can join up again later.
- 14flowchart loop
- An arrow that goes back to an earlier shape, usually from a decision diamond, so the steps repeat until the exit condition is met and the exit arrow is followed.
- 15Coding stage
- The third PDLC stage, where the design (pseudocode or flowchart) is turned into program code in a programming language, written step by step and checked against the requirements.
- 16Iterative testing
- Testing each small part of the code as it is written, fixing any errors, then retesting before moving on. This finds errors early and repeats until that part works.
- 17Testing stage
- The final PDLC stage: run the finished program with test data, compare results with expected results, check every requirement is met, and send any errors back to coding.
- 18analysis, design, coding, testing
- The four PDLC stages in order; each task belongs to one: analysis lists requirements, design draws flowcharts, coding writes code, testing runs test data.
- 19pseudocode
- A structured, code-like way of writing an algorithm that follows set rules but does not need to run on a computer. It shows the logic of a design, not exact programming syntax.
- 21NumberOfPlayers
- An identifier: a variable name in Pascal case. Capital letter starts each word, letters and digits only, no spaces or underscores, can't start with a digit. Not case sensitive.
- 22indentation
- Statements inside a loop or IF are moved in by four spaces, but THEN and ELSE are moved in by only two. Nested statements keep indenting, which makes the structure easy to read.
- 24INTEGER, REAL, CHAR, STRING, BOOLEAN
- The five data types, in order: whole number, number with a fractional part, one character, zero or more characters, TRUE or FALSE. A phone number is a STRING.
- 25literal
- A fixed value written in code: a real with digits either side of the point (4.7), a CHAR in single quotes ('x'), a STRING in double quotes ("Hello"), or BOOLEAN TRUE or FALSE.
- 26DECLARE Counter : INTEGER
- Creates a variable called Counter with the data type INTEGER. Form: DECLARE <identifier> : <data type>. Use one DECLARE line per variable.
- 27CONSTANT HourlyRate ← 6.50
- Names a fixed literal value that never changes while the program runs. It makes code easier to read, and you update the value in one place only.
- 28Counter ← 0
- The ← assignment operator stores the value on its right in the variable on its left. Here 0 is stored in Counter. The value must match the variable's data type.
- 29INPUT Answer
- INPUT followed by a variable name reads a value typed by the user and stores it in that variable. Use one variable per INPUT, and OUTPUT a prompt first.
- 30OUTPUT
- Displays text or values on screen. Text goes in quotes. Items are separated by commas, e.g. OUTPUT "You have ", Lives, " lives left". Also used for user prompts.
- 32DIV(a, b)
- Returns the whole-number quotient of a divided by b, discarding the fractional part. For example, DIV(10, 3) returns 3. Both a and b are integers.
- 33MOD(a, b)
- Returns the remainder when a is divided by b. For example MOD(10, 3) gives 1. MOD(n, 2) = 0 means n is even.
- 35AND OR NOT
- Logical operators that combine BOOLEAN conditions: AND needs both true, OR needs at least one true, NOT reverses a condition. Use brackets in complex ones, e.g. Age >= 0 AND Age <= 120.
- 36Age >= 18
- A precise condition uses a relational symbol and exact values, like Age >= 18. Words such as 'Age is old enough' or 'greater than' are too vague and lose marks.
- 37LENGTH(<string>)
- Returns the number of characters in a string as an integer, counting spaces. LENGTH("Happy Days") returns 10. Used in length checks.
- 38SUBSTRING("Happy Days", 1, 5)
- SUBSTRING(string, start, length) returns length characters beginning at position start. Position 1 is the first character, so this returns "Happy".
- 39UCASE(x) and LCASE(x)
- UCASE returns a string or character in upper case, e.g. UCASE("Happy") gives "HAPPY". LCASE returns it in lower case, e.g. LCASE('W') gives 'w'.
- 40IF condition THEN ... ENDIF
- Runs the statements between THEN and ENDIF only when the condition is TRUE. If the condition is FALSE, they are skipped. This form has no ELSE part.
- 41ELSE
- Gives IF a second path. The THEN statements run when the condition is TRUE and the ELSE statements run when it is FALSE. Exactly one path runs, never both.
- 42nested IF
- An IF statement written inside the THEN or ELSE part of another IF. It only runs when the outer condition leads to it, and each IF needs its own ENDIF.
- 43CASE OF
- Runs the statement beside the first value that matches the variable. An optional OTHERWISE clause, placed last, runs if nothing matches. ENDCASE closes the structure.
- 44FOR Index ← 1 TO 30
- Repeats the code once for each integer from 1 to 30 inclusive, up to NEXT Index. Runs once if both values are equal and not at all if the start value is bigger.
- 45STEP
- Used in a FOR loop to set how much the loop variable changes each time. STEP 2 counts in twos and STEP -1 counts down. The loop stops when the value goes past the end.
- 46WHILE condition DO ... ENDWHILE
- A loop that tests its condition first, then repeats its statements while the condition is TRUE. If it is FALSE at the start, the loop never runs. ENDWHILE marks the end of the loop.
- 47REPEAT ... UNTIL
- A post-condition loop: its statements run at least once, then the condition is tested after them. The loop stops when the condition is TRUE.
- 48FOR, WHILE or REPEAT
- Use FOR when the number of repeats is known, WHILE when the loop may run zero times, and REPEAT when it must run at least once. WHILE tests first; REPEAT tests last.
- 49Counter ← Counter + 1
- A counter is a variable set to 0 before a loop, then increased by 1 with Counter ← Counter + 1 each time the thing being counted happens.
- 50Total ← Total + Value
- A running total: set Total to 0 before the loop, then add each Value to Total on every repeat. Output Total after the loop ends.
- 51validation vs verification
- Validation checks entered data is reasonable and complete. Verification checks it matches the source data, for example by proofreading.
- 52validation
- An automatic check by the program that input data is reasonable and in the right form. Bad data is rejected with an error message and the user is asked again, so it is never used.
- 53IF Age >= 0 AND Age <= 120
- A range check tests that a value lies between the lowest and highest allowed values. The limits themselves are accepted. AND joins both limits.
- 54LENGTH(Password) >= 8
- A length check tests the number of characters in an input is the required length or within a limit, using LENGTH, e.g. a password of at least 8 characters or a PIN of exactly 4.
- 55type check
- A validation check that tests an input is the expected data type, such as a whole number (INTEGER) for an age, and rejects letters or other wrong types.
- 56Presence check
- A validation check that tests something has been entered, so the input is not empty. For example, Name <> "" or LENGTH(Name) > 0 makes sure a required field is not left blank.
- 57format check
- A check that input follows a set pattern of characters, such as a date written DD/MM/YYYY. The right pattern does not prove the data is correct, e.g. 99/99/2025 fits the pattern.
- 58check digit
- An extra digit added to the end of a number, calculated from its other digits. It is recalculated on entry and compared, to detect data entry mistakes.
- 60REPEAT INPUT UNTIL valid
- A REPEAT loop around INPUT that keeps asking for a value and shows an error message each time the check fails. The UNTIL condition is the valid range, so the loop ends only on valid data.
- 61AND
- Joins several validation checks into one condition, so the input must pass every check. Examples: presence and length together, or range and type together.
- 62valid but wrong
- Validation only checks data is reasonable and in the right form, so a valid value can still be wrong, e.g. age 15 typed instead of 51. Verification is also needed.
- 63validation check
- A test matched to the field: range for age, length and type for PIN, presence for name, format for dates or postcodes, check digit for ISBN. Always justify the choice.
- 64verification
- Checking that data was entered or copied exactly as it appears in the source, such as by double entry or comparing it with the original. It checks accuracy, not reasonableness.
- 65visual check
- A check where a person reads the data on screen and compares it by eye with the original source to spot mistakes. It is done by a person, not the program, and can miss errors.
- 66double entry check
- Data is entered twice and the two entries are compared. Any difference shows a mistake, so the user must enter it again. It misses the same mistake made twice.
- 67UNTIL Password1 = Password2
- Double entry check: INPUT the value twice inside a REPEAT loop and stop only when both are equal. Output a message if they do not match, so typing mistakes are caught.
- 69validation loop
- DECLARE the variable, OUTPUT a prompt, INPUT the value, OUTPUT an error message if it fails the check, and REPEAT ... UNTIL the value is acceptable.
- 70test data
- The input values chosen before testing, such as normal, abnormal, extreme and boundary values, used to run a program so its results can be compared with the expected results.
- 71Normal test data
- A typical, valid value well inside the allowed limits, which the program should accept. Example: an age of 30 for a range check of 0 to 120 is accepted.
- 72Abnormal test data
- Test data of the wrong type or outside the allowed values, such as -5 or letters for an age, or an empty input. The program should reject it.
- 73Extreme test data
- The largest and smallest values a program should accept, such as 0 and 120 for a range of 0 to 120. They sit exactly on the limits and the expected outcome is accepted.
- 74Boundary test data
- The largest and smallest acceptable values plus the nearest rejected values either side of each limit, e.g. 0 and -1, 120 and 121 for a range of 0 to 120.
- 75extreme vs boundary data
- Extreme data is only the accepted limit values, e.g. 1 and 100. Boundary data has those plus the rejected values next to them: 0, 1, 100 and 101 for a range of 1 to 100.
- 76Range check test data
- Pick one normal, abnormal, extreme and boundary value for the range and say accept or reject. For 0 to 100: 50 normal, -5 abnormal, 100 extreme, 101 boundary.
- 78test case
- A chosen input paired with the output you expect. Run the algorithm, record the actual output, then compare: if actual matches expected it passes, otherwise it fails.
- 79dry run
- Working through an algorithm by hand, line by line, using chosen test data as inputs and recording each step in a trace table, to see what it does and find logic errors without running it.
- 80Trace table
- A table that records the value of each variable at every step of an algorithm, used to check its logic by hand.
- 81one column per variable
- To set up a trace table, give each variable its own column in the order they first appear, then add a row each time a value changes. Leave unchanged cells blank.
- 82OUTPUT column
- The trace table column where you write each value or message shown by an OUTPUT statement, on the row where it happens. Text in quotes is copied exactly as the output.
- 83Trace table INPUT
- A prompt is written in the OUTPUT column. The value the user types for an INPUT is written in that variable's column on that step, taken from the test data.
- 85IF Mark >= 50 THEN
- To trace an IF, work out if the condition is TRUE or FALSE for the current values, then follow only the THEN or ELSE path. Skipped statements get no row in the trace table.
- 86FOR Count ← 1 TO 5
- To trace a FOR loop, give the loop variable each value from start to end in turn, run the loop body once for each value, and record every pass in its own row of the trace table.
- 87WHILE and REPEAT loop trace
- Trace a loop by testing its condition each pass: WHILE tests before the body and may never run; REPEAT tests after the body so runs once at least. Stop when the loop ends.
- 88Count ← Count + 1
- Trace table for counting and totalling: Count and Total start at 0 in the first row, change each pass (Count only if the IF is true), and the final values are output after the loop.
- 89Tracing a validation loop
- Step through a validation loop with valid and invalid inputs, recording each rejected value, the error message output and the value finally accepted in a trace table.
- 91first wrong value
- In a trace table, the first row where a value differs from what you expected points to the faulty line of the algorithm. Look at that line, then suggest a correction.
- 92PDLC
- Program development life cycle: analysis, design, coding, testing. Apply it to a scenario by saying what is done at each stage and which methods and test data are used.
Frequently Asked Questions
Do I need an account?
No. Hangman runs straight from this page — no account, no sign-up, nothing to install. If you add your class names, they are saved in your own browser and never sent to Cloodit.
How do I play it with my class?
Put the page on your whiteboard or projector and press Play. The class calls out letters and you click or type them. Six wrong letters and the word gets away. After every word its definition appears, so each round ends on the meaning, not just the spelling.
Can I use my own words?
Yes. The free Hangman generator at cloodit.com/hangman/ takes any list: one word or phrase per line, with a definition after a dash if you want it shown at the end of the round.
Can I put my students' names in?
Yes. Add your class list and a random student is called for each word. The list stays in this browser on this computer, so it is still there next lesson.
Are the worksheets free too?
Yes. Every module in this journey has a free printable worksheet with a full answer key, and there are crosswords and word searches built from the same key terms.