Data and processes in computing

Introduction
This unit provides an introduction to data and processes in software, and provides a basis that enables these fundamental ideas to be developed in a clear and precise way. It has two main aims. The first is to illustrate how we can describe ways in which data may be structured and processed. The second is to introduce you to some vocabulary and concepts that help us to do this. The material is accessible to anyone with a little experience of the use of symbols in presenting ideas.
Section 1 provides a brief introduction to the unit. It contains some new language that will be explained more fully in later sections. Read this section without spending too much time on it. The most important material in this unit is that in Sections 2 and 4. Section 3 includes some ideas that are relatively difficult. You should read this section, but do not spend a great deal of time on it. Section 5 is of a similar length to Sections 2 and 4.
Overall, do not allow yourself to spend too long on any section while you are studying this unit. You can always come back and reread material here if you find later that you need a more thorough understanding of some point.
Learning outcomes
The unit introduces you to:
ways in which data may be stored and processed;
language notation and concepts that enable discussion of these in a precise way.
It enables you to do the following:
distinguish between different forms of data, and use notations introduced in the unit to show different forms of data;
appreciate that fine details may be important when interpreting formal notation (for example, different types of brackets may be used to distinguish between different forms of data);
interpret a given function description;
recognise correct syntax in formal expressions, in particular, that:
a function requires the correct number and type of inputs;
function inputs must satisfy any precondition on the function;
in an expression, brackets need to be used in a way that makes it possible to interpret the expression in a unique way, and binary operations and functions in the expression need to be combined in a way which is consistent with their signatures and preconditions.
Key ideas
In this unit, we will take an introductory look at two key ideas: forms of data handled by a software system, and the processes that may be applied to that data. These ideas are illustrated by a particular application — a supermarket till — but they are of general relevance in designing software systems. Important terminology will be highlighted in bold.
In this unit we will look at some commonly occurring forms of data. We start with fundamental forms, such as numbers and characters (which are symbols that may be typed at a keyboard). We then go on to look at more complicated data structures.
A second crucial feature of data is the processes available to handle it. The processes needed in any particular application are a particular focus in software design. Here, we shall look at how in principle we can describe a process that manipulates data. This initial description will not be concerned with how the process is executed, but only with its effect.
This unit will introduce two important mathematical ideas that help in offering clear and precise descriptions of software components relating to data and processes. These ideas are set and function.
Section 1 gives a brief introduction to how data and processes may arise in an application situation. Section 2 is concerned with fundamental forms of data, and the mathematical idea of a set.