ICDL Coding Principles (ICDL) key terms
ICDL Coding Principles · Get comfortable with the vocabulary.
- Algorithm
- Related: Pseudocode, Flowchart, Decomposition
A finite, ordered set of unambiguous steps that transforms an input into a desired output. Each step must be executable, and the process must terminate after a limited number of operations.
- Abstraction
- Related: Decomposition, Pattern Recognition
The practice of removing unnecessary detail so that only the features relevant to a problem remain. It lets a solver reason about a simplified model instead of the full complexity of reality.
- Decomposition
- Related: Abstraction, Modularity
Breaking a large or complex problem into smaller sub-problems that are easier to understand, solve, and test separately. The partial solutions are later combined into a complete solution.
- Pattern Recognition
- Related: Abstraction, Iteration
Spotting similarities, repetitions, or regularities across problems or data so that a single general solution can replace many special cases. It often reveals opportunities for loops or reusable routines.
- Pseudocode
- Related: Algorithm, Flowchart
A structured, informal notation that describes an algorithm in readable language resembling code but free of any specific programming language's syntax rules. It focuses on logic rather than implementation details.
- Flowchart
- Related: Pseudocode, Algorithm
A diagram that represents an algorithm using standard symbols: ovals for start and end, parallelograms for input and output, rectangles for processes, and diamonds for decisions connected by arrows.
- Iteration
- Related: Loop, Condition
Repeating a block of instructions while a condition holds or for a fixed number of times. It avoids duplicating code and is implemented with loops such as while or for constructs.
- Loop
- Related: Iteration, Condition
A programming construct that repeatedly executes a set of statements. A loop needs a termination condition; otherwise it runs forever, which is called an infinite loop.
- Condition
- Related: Selection, Boolean
An expression that evaluates to true or false and controls which instructions run. Conditions drive selection statements and determine whether a loop continues or stops.
- Selection
- Related: Condition, Boolean
A control structure that chooses between alternative paths of execution based on a condition, typically written as if, if-else, or case statements. Only the branch whose condition is satisfied runs.
- Sequence
- Related: Selection, Iteration
The default control flow in which instructions execute one after another in the order they are written. Changing the order of statements can change the result of a program.
- Variable
- Related: Data Type, Assignment, Constant
A named storage location in memory whose value can change while a program runs. Each variable has a name, a data type, and a current value.
- Constant
- Related: Variable, Assignment
A named value that is set once and cannot be altered during program execution. Using constants for fixed values makes code easier to read and safer to maintain.
- Data Type
- Related: Variable, Boolean, String
A classification that defines what kind of values a variable may hold and which operations are valid on them, such as integer, real number, character, string, or Boolean.
- Assignment
- Related: Variable, Expression
The operation that stores a value into a variable, usually written with an equals sign in code. The right-hand side is evaluated first, then the result is placed in the named location.
- Boolean
- Related: Condition, Logical Operator
A data type with exactly two possible values, true and false. Boolean expressions form the basis of conditions and logical decision-making in programs.
- String
- Related: Data Type, Variable
A data type representing a sequence of characters, such as text or a name. Strings can be joined, compared, and searched, and individual characters can be accessed by position.
- Expression
- Related: Operator, Assignment
A combination of values, variables, operators, and function calls that the computer evaluates to produce a single result. Expressions appear wherever a value is needed.
- Operator
- Related: Expression, Logical Operator
A symbol that performs an operation on one or more values, such as addition, comparison, or logical conjunction. Operators determine how operands are combined in an expression.
- Logical Operator
- Related: Boolean, Condition
An operator that combines or negates Boolean values, commonly AND, OR, and NOT. These operators are used to build compound conditions from simpler ones.
- Function
- Related: Parameter, Return Value, Modularity
A named, reusable block of code that performs a specific task, may accept parameters, and may return a value. Functions reduce duplication and make programs easier to test.
- Parameter
- Related: Function, Argument, Return Value
A named input declared by a function or procedure that receives a value when the routine is called. Parameters let the same code work with different data each time.
- Argument
- Related: Parameter, Function
The actual value supplied to a function or procedure when it is called, which is matched to the corresponding parameter. Arguments provide the data a routine operates on.
- Return Value
- Related: Function, Parameter
The result a function sends back to the code that called it, produced by a return statement. A function without a return value is often used purely for its side effects.
- Modularity
- Related: Function, Decomposition
Designing software as a set of separate, self-contained units that each handle one responsibility. Modules can be developed, tested, and reused independently, which simplifies maintenance.
- Array
- Related: Index, Data Type
A collection of elements of the same data type stored under one name and accessed by an index, usually starting at zero. Arrays allow efficient storage and traversal of related values.
- Index
- Related: Array, Loop
A position number used to locate an element within an array or string. In most languages indexing begins at zero, so the first element has index zero.
- Syntax
- Related: Syntax Error, Semantic Error
The set of grammatical rules that define how statements in a programming language must be written. A syntax error prevents a program from being translated or run.
- Syntax Error
- Related: Syntax, Semantic Error, Debugging
A mistake that breaks the grammar rules of a language, such as a missing bracket or misspelled keyword. The translator detects it and refuses to produce runnable code.
- Semantic Error
- Related: Syntax Error, Debugging, Test Case
A flaw in which the code is grammatically valid but does not do what the programmer intended, for example using the wrong formula. The program runs but produces incorrect results.
- Debugging
- Related: Syntax Error, Semantic Error, Test Case
The process of locating, diagnosing, and correcting errors in a program. It typically involves reproducing the fault, inspecting values, and testing the fix.
- Test Case
- Related: Debugging, Boundary Value
A specific set of inputs, preconditions, and expected outputs used to check whether a program behaves correctly. Good test cases include normal, boundary, and invalid data.
- Boundary Value
- Related: Test Case, Validation
A test input at or just beyond the edge of a valid range, such as the smallest or largest permitted number. Errors often cluster at these limits, so they are tested deliberately.
- Validation
- Related: Boundary Value, Test Case
Checking that data entered or received is reasonable and acceptable before it is processed, for example by verifying a range or format. It reduces errors caused by bad input.
- Comment
- Related: Syntax, Modularity
Text in source code that the translator ignores, used to explain intent, record authorship, or document assumptions. Good comments clarify why code exists rather than restating what it does.
- Top-Down Design
- Related: Decomposition, Modularity
An approach that starts with the overall problem and repeatedly refines it into smaller sub-tasks until each part is simple enough to code. It mirrors stepwise decomposition of a program.
- Trace Table
- Related: Debugging, Iteration, Variable
A manual table that records the values of variables after each step or iteration of an algorithm, used to verify logic and find errors without running the program.