Glossary
This page contains a list of definitions of key terms/concepts that will be used in the activities during this workshop. We have split the definitions in this glossary into two main sections:
- General Coding and Computational Thinking Concepts/Terms: these are the concepts and terms that are not specific to a certain programming language (for example: Scratch)
- Scratch Concepts/Terms: these are the concepts and terms that are specific to Scratch (although they may also be used in other, similar languages like Snap!).
We have tried to include many of the terms that are commonly used in the Digital Technologies content descriptions in this glossary. Let us know if you think there are terms commonly used that should be added to the glossary for future workshops or if any of the definitions below could be improved.
General Coding and Computational Thinking Concepts
Algorithm
An algorithm is a precise and step-by-step procedure that is written for a computer to follow. Algorithms are often compared to recipes, as recipes also involve detailed, step-by-step instructions.
Boolean
A Boolean value can be either: True or False. These are often used when branching in programs, for example in a repeat until block in Scratch.
Branching
Branching in Coding refers to the computer following different instructions based on certain conditions. In some cases, branching is also referred to as selection. There are many examples of branching in real life. For example, say that you are hosting a barbecue and a friend has offered to buy the bread from the supermarket. You have heard that there has been a shortage of loaves of bread in the local area and so you give them the following instructions:
- If there are loaves of bread at the supermarket, buy a loaf of bread
- If there’s no loaves of bread left at the supermarket, buy 3 packs of breadrolls instead
This example is branching because, depending on the condition (the availability of loaves of bread), different instructions are to be followed.
Coding
In this workshop, we have defined Coding as: the act of writing instructions for a computer to follow, in some programming language (for example: Scratch). It’s important to note that, if we think about Coding in terms of the definition above, that we need a combination of Coding and Computational Thinking to be able to instruct a computer to solve a problem. Generally, programming and Coding are interchangeable terms - they usually both refer to the act of writing Code.
Command
A Command is an instruction which we can give the computer to follow. The computer will follow the Command exactly as we tell it to.
For example, we may have a robot which we can Code to navigate a maze. A couple of the commands we could use to navigate the robot could be move forward for 1 metre and turn right.
Computational Thinking
The meaning of Computational Thinking we use for this workshop is the definition given by Jeanette Wing:
“Computational thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent [i.e. a Computer].”
Computational Thinking is often further divided into a collection of related concepts. For example, the 6 Computational Thinking concepts defined by Barefoot Computing are:
- Logic: predicting and analysing (see definition of Logical Reasoning below).
- Algorithms: making steps and rules (see definition of Algorithm above).
- Decomposition: breaking problems into smaller parts
- Patterns: spotting and using similarities
- Abstraction: removing unnecessary detail
- Evaluation: making judgement
Computer Science
Broadly, Computer Science is the study of what computers can do, how computers can be made to solve tasks faster and more effectively, and how humans can use computers to solve tasks in a variety of areas. There are several, common misconceptions of Computer Science, including that it involves:
- Fixing computers or building computers
- Coding 8 hours a day
- Only working with other programmers
However, while some of these would be true for some Computer Scientists, it is not true for all of them. Some Computer Scientists may not use computers much at all in their daily work and many programmers work with a variety of professionals (not just other programmers).
There are many diverse fields within the study of Computer Science. Examples of some Computer Science fields, include those that:
- are very theoretical and involve a lot of Mathematics (for example: Theoretical Computer Science and Cryptography)
- have been a result of interdisciplinary collaboration between Computer Scientists and researchers from another field (for example: Bioinformatics, which combines Computer Science and Biology)
- are focused on building and maintaining large, secure and reliable programs (for example: Software Engineering and Cybersecurity.
- involve creating new ways for people to use computers or are concerned with understanding how people use computers (for example: Human-Computer Interaction)
We recommend reading the K-12 CS Framework’s Defining Computer Science article and the Computer Science Field Guide for more information about what Computer Science is and the diverse fields it encompasses.
Debugging
Debugging is the process of finding the causes of and fixing problems in programs. For example, a student may write a Scratch program where they move a Cat around a canvas. The student might find that the program is not working as expected. For example, they want the Cat to move to the right but it is moving to the left instead. When the student tries to work out what is causing the Cat to move the wrong way, they are debugging.
Invalid Input
Invalid input is a term for user input that is put into a system which is nonsensical or that causes the system to act in an unexpected way. For example, you might buy a book on an online store and, when filling in your shipping details, accidentally put your email address in the form where your home address should go. The system would then tell you that you have made an error (invalid input) when filling out the form.
Iteration
See the definition of Repetition below.
Logical Reasoning
Logical reasoning means reasoning correctly and systematically, and applying rules in a systematic way to complete a task (for example: applying knowledge about what each block in Scratch does to predict the outcome of a script).
Loop
Loops are used to control the repeating of actions.
See the definition of Repetition below.
Nested Branching/Conditionals
Nested Branching (also known as Nested Conditionals) involves having one or more branching construct (for example: an if then else block in Scratch) inside another branching construct.
Nested Loops/Repetition
Nested Loops (also known as Nested Repetition) involves having or more loop construct (for example: a repeat loop in Scratch) insider another loop construct.
Number
A Number value can represent a number, including integers (whole numbers) and decimal numbers. Numbers can work differently in different programming languages, but in Scratch variables with a Number value can be either an integer or a decimal value.
Program
A program is Code that has been written to perform one or more different tasks. For example, in the Coding in Scratch Activity) on Day 1 you created a program where you tell the Cat how many times to dance. Another (more complicated) example is a program like Microsoft Word, which can perform many different tasks (for example: bolding text and making tables) A program differs from an algorithm, in that an algorithm does not necessarily need to be written in some Coding language. When we refer to a program, we mean that the instructions for the computer to follow have been written in a Coding language (for example: Scratch).
Repetition
Repetition means running a sequence of commands a certain number of times. Computers are very good at repeating actions, whether you want them to repeat something two times, one hundred times, or even to have them repeat something over and over forever. In some cases, Repetition* is referred to as iteration. There are many examples of **repetition in real life, as well as in Code. For example, when you swim 10 laps in a pool, you are repeating the lap 10 times. You would also be repeating the actions that make up the stroke (for example: freestyle) over and over as you swam the lap.
Selection
See the definition of Branching above.
Sequencing
Sequencing in Coding refers to the way that computers follow instructions in order. It is important to order instructions in the correct order, as computers will follow them exactly as we tell them.
An example of why Sequencing is important is given on the BBC Bitesize Website. An algorithm for brushing teeth could be:
- put toothpaste on toothbrush
- use toothbrush to clean teeth
- rinse toothbrush
But what if these steps were in the wrong order (out of sequence)?
- use toothbrush to clean teeth
- put toothpaste on toothbrush
- rinse toothbrush
If we gave a robot these instructions, it would follow them in the specified order without questioning. Consequently, the toothpaste would be wasted and the robot’s teeth wouldn’t be cleaned properly, as they have not brushed their teeth with toothpaste on the toothbrush.
String
A String in Coding is a piece of text, of any length. For example: both Hello World and Bob are Strings. Variables that have some text value (for example: a variable called username) consequently have a value of the String type.
User Input
User input is a term that means that the person using the program (the user) interacts with the program, usually by (but not always) using a keyboard/mouse. For example, you might register for an event (for example: a workshop) using an online form. The user input in this example would be the details you would enter into the form (such as your name and email address). Another example of user input is controlling a character in a videogame with a joystick. The videogame would have some Code that would take that input from the joystick (for example: moving the joystick to the right) and then performing some action (in this example: moving the character to the right).
Variables
Variables in Coding are names given to values that can change. For example, you could Code a game where you have to shoot aliens and you might have a variable in the game Code called score. Every time you shoot an alien this score variable could increase by 1.
Variables in Mathematics and Coding are similar, in that they both are a name/letter that can represent a number. However, in Coding a Variable can also represent a piece of text (a String value). There are also some other differences in how Variables can be used in Coding. For example, a statement like the equation below is perfectly fine in some Coding languages, but doesn’t make sense in Mathematics:
x = x + 1
In Maths this would mean that x is equal to x plus 1 (but this does not make sense). In Coding, this means that the value of x will change to x plus 1 (so if x was 2, it would be 3 after the statement above).
Different Coding languages handle the changing of variables in different ways. In Scratch, for example, we would write the example statement above as:
Scratch Concepts
Block
A command which tells the sprite what to do. It can be run by clicking on it.
Costumes
Are alternative ways that a sprite can look on the stage.
Hat Block
Hat blocks are always placed at the top of a script. They are referred to as Hat blocks because they are shaped like hats. An example of a hat block is the when green flag clicked block.
Move
A command which makes the sprite change its position.
Next costume
A command which switches to the next costume in the list of the sprite’s costumes. The next costume after the last one is the first one in the list again.
Repeat block
A repeat block is a block which runs the blocks inside a specified number of times.
Script
A script is a sequence of blocks snapped together, a program. It can be run by clicking on any part of the script.
Sprite
A sprite is an object we control using our blocks and scripts. For example, the Cat in the Dancing Cat program is a sprite.
Stage
The Stage is the area where you can see the sprites.
Stamp
A stamp block is a block which tells the sprite to print its image on the stage.
Turn
The turn block is a command which makes the sprite change its direction.
Wait
The wait block is a command which waits a specified number of seconds, e.g. 1, 2 or 0.2, then continues with the next blocks.