ICDL Coding Principles (ICDL) key terms
ICDL Coding Principles · Get comfortable with the vocabulary.
- Computational thinking
- Related: Algorithm, Decomposition, Abstraction
A way of tackling problems by breaking them down, spotting patterns, ignoring irrelevant detail and describing a solution as a precise sequence of steps that a computer could follow.
- Algorithm
- Related: Pseudocode, Flowchart, Decomposition
An ordered set of unambiguous steps that, when followed, solves a particular problem or completes a task; it must finish after a limited number of steps and give a predictable result.
- Decomposition
- Related: Abstraction, Algorithm
Splitting a large or complex problem into smaller, more manageable parts that can each be solved, tested and understood separately, then combined to give the overall solution.
- Abstraction
- Related: Decomposition, Pattern recognition
Removing or hiding detail that is not needed for the task in hand so that the important features of a problem stand out and the solution stays simple.
- Pattern recognition
- Related: Abstraction, Algorithm
Looking for similarities, repetition or trends in problems and their data so that a solution already worked out can be reused or generalised instead of invented again.
- Pseudocode
- Related: Algorithm, Flowchart
A structured, plain-language description of an algorithm that borrows words from programming but is not tied to any real language's grammar, so the logic can be agreed before code is written.
- Flowchart
- Related: Pseudocode, Algorithm
A diagram that shows the steps of an algorithm as shapes joined by arrows, with separate shapes for processes, decisions and inputs or outputs, so the order of actions is easy to follow.
- Source code
- Related: Syntax, Compiler, Interpreter
The human-readable text of a program, written by a person in a programming language, which is later translated or interpreted so the computer can carry out the instructions.
- Syntax
- Related: Source code, Syntax error
The set of grammar rules that decides how the words, symbols and punctuation of a programming language may be arranged, so a piece of code is either accepted or rejected as malformed.
- Identifier
- Related: Variable, Function
A name a programmer gives to something in a program, such as a variable, function or constant, so it can be referred to later; rules usually forbid spaces and starting with a digit.
- Function
- Related: Parameter, Argument, Library
A named block of code that performs one task, can receive values, may return a result and can be called repeatedly from elsewhere instead of being rewritten.
- Parameter
- Related: Argument, Function
A named placeholder in a function's definition that stands for a value the function expects to be given each time it is called.
- Argument
- Related: Parameter, Function
The actual value supplied to a function when it is called, which is matched to the function's parameters so the code inside can make use of it.
- Library
- Related: Function, Source code
A collection of ready-made code, such as functions or routines, that a programmer can bring into their own program rather than writing the same features from scratch.
- Comment
- Related: Technical documentation, Source code
Text written inside a program for human readers only, ignored when the code runs, used to explain what the code does or why a particular choice was made.
- Compiler
- Related: Interpreter, Source code, Syntax
A program that takes a whole file of source code, checks its syntax and translates it into machine code that can be run later without the translator being present.
- Interpreter
- Related: Compiler, Source code
A program that reads source code and carries out its instructions one statement at a time, stopping when it meets something it cannot process.
- Variable
- Related: Identifier, Data type, Assignment
A named storage location in a program whose stored value can be changed while the program runs, for example a score or a running total.
- Data type
- Related: Variable, Boolean
A classification that says what kind of values something may hold, such as whole numbers, decimal numbers, text or true/false, and therefore which operations make sense on it.
- Constant
- Related: Variable, Assignment
A named value that is set once and deliberately cannot be changed while the program runs, used for fixed quantities such as a tax rate or the number of days in a week.
- Assignment
- Related: Variable, Operator
A statement that puts a value into a variable or constant, replacing whatever was stored there before; the name goes on the left and the value or expression on the right.
- Operator
- Related: Boolean, Conditional statement
A symbol or word that acts on one or more values to produce a result, for example adding numbers, comparing two values or combining true/false conditions.
- Boolean
- Related: Data type, Conditional statement, Operator
A data type with exactly two possible values, true and false, produced by comparisons and combined with logical operators to drive decisions in a program.
- Conditional statement
- Related: Boolean, Loop
A construct that runs one block of code or another depending on whether a tested condition is true or false, letting a program choose between alternative paths.
- Loop
- Related: Conditional statement, Array, Algorithm
A construct that repeats a block of code, either a set number of times or while a condition remains true, so the same instructions need not be written out again.
- Array
- Related: Index, Loop, Data type
A single named collection holding several values of the same type in a fixed order, each reached by its position number so a loop can process them one by one.
- Index
- Related: Array, Loop
The position number used to pick out one item in an array or list, often starting at zero, so code can read or replace a specific element.
- Scope
- Related: Variable, Function
The part of a program in which a particular name is recognised and can be used; a name declared inside a function is normally invisible outside that function.
- Bug
- Related: Debugging, Syntax error, Logic error
A mistake or flaw in a program that makes it behave differently from what is intended, ranging from a typing slip to a piece of faulty reasoning.
- Debugging
- Related: Bug, Breakpoint, Logic error
The process of finding, understanding and fixing the cause of a fault in a program, often by reproducing it, inspecting values and then re-running the code.
- Syntax error
- Related: Syntax, Bug, Compiler
A fault that occurs when code breaks the grammar rules of the language, such as a missing bracket or a misspelled keyword; the translator usually reports it before the program can run.
- Logic error
- Related: Bug, Test case, Debugging
A fault where the code is written correctly but the reasoning behind it is wrong, so the program runs and produces an incorrect result without any error message.
- Test case
- Related: Test data, Boundary value
A defined set of inputs, preconditions and expected outputs used to check that a particular part of a program behaves as it should.
- Test data
- Related: Test case, Boundary value
The values chosen and fed into a program during testing, deliberately including normal, extreme and invalid examples so that weaknesses are exposed.
- Boundary value
- Related: Test data, Test case
A test input sitting at the edge of an allowed range, such as the smallest, largest or just-outside value, because mistakes often gather at those limits.
- Breakpoint
- Related: Debugging, Dry run
A marker set on a line of code in a debugging tool that pauses the running program there, so the programmer can inspect current values before continuing.
- Dry run
- Related: Test case, Breakpoint, Variable
Working through an algorithm or a short section of code by hand, recording the value of each variable at every step, to check the logic without a computer.
- Unit testing
- Related: Test case, Function
Checking one small, isolated piece of a program, usually a single function, against known inputs and expected outputs, often automatically and repeatedly.
- Technical documentation
- Related: Comment, User documentation
Material written for the people who maintain or extend a program, describing how the code is structured, what each part does and how to install or change it.
- User documentation
- Related: Technical documentation, Comment
Instructions written for the people who will use the finished software rather than build it, covering what the program does, how to install it and how to complete common tasks.