LC Computer Science study materials
LC Computer Science study resources

LC Computer Science key terms

LC Computer Science · Get comfortable with the vocabulary.

Computational thinking

A problem-solving approach that frames a problem so a computer could solve it, using decomposition, pattern recognition, abstraction and algorithm design, and then evaluating and refining the resulting solution.

Related: Decomposition, Abstraction, Algorithm
Decomposition

Breaking a large, complex problem into smaller parts that can each be understood, solved and tested separately, then combined so the finished program solves the original problem.

Related: Computational thinking, Abstraction, Function
Abstraction

Hiding unnecessary detail so you can focus on what matters for the task, such as calling a function without reading its internal code, or modelling only the relevant features of a real system.

Related: Decomposition, Function, Computational thinking
Pattern recognition

Spotting similarities or repeating structures in problems and data so that one general solution, such as a loop or a reusable function, can handle many similar cases.

Related: Abstraction, Iteration, Function
Pseudocode

An informal, structured description of an algorithm written in plain language with indentation conventions rather than in a real programming language, used to plan and communicate logic before coding begins.

Related: Algorithm, Debugging
Debugging

The process of finding, locating and fixing defects in a program by reproducing the fault, forming hypotheses about its cause, gathering evidence and confirming that the fix works.

Related: Unit testing, Logic error, Syntax error
Unit testing

Writing small, independent tests that each check one part of a program against an expected result, so defects are found early and later changes can be checked quickly.

Related: Debugging, Code review
Version control

A system that records changes to files over time, letting developers view history, revert to earlier versions and merge work from different people without overwriting each other's changes.

Related: Code review, Iterative development
Code review

A structured check in which another person reads your code to find defects, unclear logic or style problems, and to share knowledge, before the code is accepted into the project.

Related: Version control, Unit testing
Iterative development

Building software in short repeated cycles, each producing a working version that is tested and improved using feedback, instead of trying to deliver the whole product in one go.

Related: Prototype, Requirements specification
Algorithm

A finite, ordered set of unambiguous steps that takes some input, performs operations and produces a result, so that anyone following it would solve the same problem the same way.

Related: Pseudocode, Decomposition
Variable

A named storage location in a program that holds a value which can be read and changed while the program runs; the name lets code refer to the value without knowing where it is stored.

Related: Data type, Scope
Data type

A classification of a value that determines what it can hold and which operations are allowed on it, such as integer, floating point, character, string or Boolean.

Related: Variable, Boolean
Boolean

A data type with exactly two possible values, true and false, used to represent conditions and to control selection and repetition in programs.

Related: Data type, Conditional statement
Conditional statement

A programming construct that runs one block of code or another depending on whether a condition evaluates to true or false, allowing a program to make decisions.

Related: Boolean, Iteration
Iteration

Repeating a block of code a set number of times, or while a condition remains true, which avoids writing the same statements out many times by hand.

Related: Conditional statement, Pattern recognition
Function

A named block of code that performs one task, can take inputs and return a result, and can be called repeatedly from elsewhere, making programs shorter and easier to test.

Related: Parameter, Scope, Abstraction
Parameter

A named input declared by a function that receives a value when the function is called, so the same code can work on different data each time it runs.

Related: Function, Variable
Scope

The part of a program where a particular name, such as a variable or function, can be used; local names exist only inside their block, while global names are available throughout the program.

Related: Variable, Function
Syntax error

A mistake that breaks the rules of the programming language, such as a missing bracket or a misspelled keyword, which stops the program from compiling or running at all.

Related: Runtime error, Debugging, Compiler
Runtime error

A fault that occurs while a program is running, such as dividing by zero or reading past the end of a list, which may crash the program or produce wrong results.

Related: Syntax error, Logic error, Debugging
Logic error

A mistake in the reasoning of a program, so it runs without crashing but produces the wrong answer; these are found by testing results against expected outputs.

Related: Debugging, Unit testing
Binary

A base-2 number system using only the digits 0 and 1, which maps directly onto the on and off states of digital circuits and is how computers store all data.

Related: Boolean, Data type
Relational database

A collection of data organised into tables of rows and columns, where tables are linked by shared key fields so related data can be stored once and queried together.

Related: Primary key, SQL
Primary key

A column, or combination of columns, whose value uniquely identifies each row in a table, so no two rows share it and other tables can refer to a row reliably.

Related: Relational database, SQL
SQL

A standard language for defining, querying and changing data in relational databases, built around statements such as SELECT, INSERT, UPDATE and DELETE.

Related: Relational database, Primary key
Compiler

A program that translates an entire source file into machine code before execution, reporting the syntax errors it finds, so the resulting program runs without the translator present.

Related: Syntax error
Requirements specification

A written statement of what a system must do and the constraints it must work within, agreed with the client before building begins and used later to judge whether the product is complete.

Related: Prototype, Iterative development, Usability
Prototype

An early, simplified version of a product built to test ideas and gather feedback from users before committing time and money to a full build.

Related: Iterative development, Usability, Requirements specification
Usability

How easily and effectively people can learn and use a system to achieve their goals, covering clarity, consistency, error prevention and the effort required.

Related: Accessibility, Prototype
Accessibility

Designing systems so people with disabilities, such as visual, hearing or motor impairments, can perceive and operate them, for example through keyboard navigation, alternative text and sufficient colour contrast.

Related: Usability
General Data Protection Regulation (GDPR)

EU law that governs how organisations may collect, store and use personal data, requiring a lawful basis, limited retention, security safeguards and rights for the individuals concerned.

Related: Authentication, Encryption
Open-source licence

A legal licence that lets anyone use, study, modify and redistribute a program's source code, usually on conditions such as keeping copyright notices or sharing changes under the same terms.

Related: Version control, Code review
Authentication

The process of checking that a user or system is who they claim to be, typically through something they know, have or are, before access to protected resources is granted.

Related: Encryption, Phishing
Encryption

Converting readable data into an unreadable form using a key, so that only someone holding the correct key can turn it back into readable form.

Related: Authentication, General Data Protection Regulation (GDPR)
Phishing

A deception in which attackers send messages that appear to come from a trusted source to trick people into revealing passwords or payment details, or into installing malware.

Related: Authentication, Encryption
Algorithmic bias

Systematic unfairness in a system's outputs caused by biased training data, flawed assumptions or unrepresentative testing, which can disadvantage particular groups of people.

Related: Machine learning, Requirements specification
Machine learning

An approach where a program learns patterns from examples rather than being given explicit rules, then uses the learned model to make predictions about new data.

Related: Algorithmic bias, Algorithm