Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
5 views

Cs Edexcel Notes

The document discusses algorithms and problem solving. It covers topics like algorithms, variables, selection, iteration, arrays, sorting algorithms, linear and binary search. It also discusses programming concepts like developing code, data types, syntax errors, selection and loops. Additional topics covered include decomposition, abstraction, making programs readable with comments and formatting, and working with strings.

Uploaded by

Su Myat Mon
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Cs Edexcel Notes

The document discusses algorithms and problem solving. It covers topics like algorithms, variables, selection, iteration, arrays, sorting algorithms, linear and binary search. It also discusses programming concepts like developing code, data types, syntax errors, selection and loops. Additional topics covered include decomposition, abstraction, making programs readable with comments and formatting, and working with strings.

Uploaded by

Su Myat Mon
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 23

Chapter 1 : Problem Solving

1.1 Algorithms

1.1.1

 An algorithm is a precise method for solving a problem.


 Algorithms can be displayed as written description, flowcharts and in pseudo-code.
 Written descriptions:
o Simplest way of expressing an algorithm.
o E.g. Fill Kettle with water. Turn on kettle. Place coffee in cup.
 Flowcharts:
o Can be used to represent an algorithm graphically. They provide a more visual display.
 Pseudo-code:
o A structured, code like language that can be used to describe an algorithm.
o E.g. SEND ‘Please enter the first number.’ TO DISPLAY

RECEIVE first number FROM KEYBOARD……etc.

 Variable: A ‘container’ used to store data. Values stored are not fixed.
 Identifier: A unique name given to a variable or a constant.
 Constant: A ‘container’ that holds a value that never changes. They have unique identifiers.
 Arithmetic operator: An operator that performs a calculation on two numbers.
1.1.2

 Construct: A component from which something is built. Letters and numbers are the
construct we use.
 Selection:
o A construct that allows a choice to be made between different alternatives.
o Represented using an IF….THEN….ELSE statement.
o This statement allows a choice to be made between two alternatives.
o Relational operators are also used to compare two values.
o Nested selection: consists of one or more IF statements placed inside each other. Two possible
courses of action.
 Iteration:
o A construct that means the repetition of a process. An action is repeated until there is a desired
outcome or a condition is met. Also known as a loop.
o Definite iteration: Used when the number of iterations, or turns of the loop, is known in
advance. It can be set to as many turns as you want. It is count controlled.
o Indefinite iteration: used when the number of iterations is not known before the loop is started.
The iterations stop when a specified condition is met. It is condition controlled.
o Logical operator: A boolean operator using AND, OR and NOT.
o Nested loop: A loop that runs inside another loop. The inner one executes all of its instructions
for each of the outer loop.
 Sequence: An ordered set of instructions.
 Concatenation: The linking together of two or more items of information.

1.1.3,4,5,6

 Purpose of an algorithm: When you look at an algorithm, expressed either in pseudo-code or


as a flowchart, it is sometimes easy to see its purpose.
 A good way to follow the reasoning behind an algorithm and also to find any logic errors, is
to use some sample data and check if the output is what you expect.
 Logic error: An error is an algorithm that results in incorrect or unexpected behaviour.
 Trace table: A technique used to identify any logic errors in algorithms. Each column
represents a variable or output and each row a value of that variable.
 There are three types of error in computer programs:
o Syntax errors occur when algorithms are being converted into program code.
o Runtime errors occur when the program is executed.
o Logic errors are errors in the design of algorithms.
 Tracing the value of variable on an algorithm helps to identify logic errors.
 Understanding the order of precedence of arithmetic operators and the significance of
brackets will help you to avoid making logic errors.

1.1.7,8,9

 Arrays:
o An organised collection of related values that share a single identifier.
o All sorting and searching algorithms work on lists of data.
 Bubble sort:
o Uses an algorithm design that does not include any techniques to improve performance.
o When data is sorted, different items must be compared with each other and moved so that they
are in ether ascending or descending order.
 Starts at one end of the list and compares each neighboring number.
 If they are in the wrong order they are swapped and keeps doing this until the list is in ether
ascending or descending order.
 This process is repeated until there are no swaps left to be done during a pass.
 Merge Sort:
o A sorting algorithm that divide a list into two smaller lists then divided these until the size of
each list is one.
o Recursion: Repeatedly applying a method to the results of a previous application of the
method.
o Uses the ‘divide and conquer’ method.
 Liner search:
o Works by checking each element to see if it matches the target.
o Repeats until a match is found or the whole list has been checked.
o A linear search is sequential.
 Binary search:
o Uses a ‘divide and conquer’ method.
o In a binary search the middle item in a list is repeatedly selected to reduce the size of the list to
be searched.
o To use this method the list must be sorted into ascending or descending order.
 The choice of algorithm depends on the data that is to be processed.

1.2 Decomposition and abstraction

1.2.1

 Computational thinking: The thought process involved in formulating problems and their
solutions so that the solutions are represented in a from that can be effectively carried out by
a computer.
 Decomposition: Breaking a problem down into smaller, more manageable parts, which are
easier to solve. A technique of computational thinking.
 Abstraction: The process of removing or hiding unnecessary detail so that only the important
points remain. A technique of computational thinking.
 Subprograms: A self-contained module of code that performs a specific task. It can be
‘called’ by the main program the it is needed.
 When designing a solution to a problem the inputs, outputs and processing requirements
should be identified at the outset.

Chapter 2 : Programming

2.1 Develop Code

 A program is an algorithm that has been converted into program code so that it can be
executed by a computer. A well-written algorithm should be free of logical errors and easy
to code in any high-level language.
 Syntax error: An error that occurs when a rule of the programming language is broken.
 When algorithms are converted into programs the computer needs to be told what type of
data is stored in each variable. Every programming language has a number of built-in data
types.
 Data type: Specifies what kind of data it can hold. Common data types are integer, real,
Boolean and character. The data type of a value determines the operations that can be
performed upon it.
 Variable initialization:
o When a variable is declared, the computer allocates it a location in memory. Initially this
location is empty, so before a variable can be used it has to be given a value.
o Once a variable has been initialized an assignment statement is used to change its value.
o Assignment statement: The SET….TO command is used to initialize variables in pseudocode.
 Type coercion: The data type variable gets changed during program execution. The process
of converting the value stored in a variable from one data type to another.
 Command sequence: A set of instructions that the computer executes one after another in
order. Usually combined with loops ad selection statements.
 Selection: Used to create a branch in a program. The computer selects which branch to
follow based on the outcome of a condition.
 Loops: Another name for an iteration. Used to make a computer repeat a set of instructions
more than once.
 The four basic data types are integer, float/real, Boolean and character.
 Variable and type decelerations, command sequences, selection and iteration are four of the
structural components of a program.

2.2 Making programs easy to read

 Techniques used to make programs easy to read and understand:

Technique

Description

Comments
Used to explain what each part of the program does.

Descriptive names

Using descriptive identifiers for variables, constants and subprograms helps make their purpose
clear.

Indentation

Makes it easier to see where each block of code starts and finishes. Getting the indentation
wrong can result in the program not running.

White space

Adding blank lines between different blocks of code makes them stand out.

 Proving readable code makes it easier to understand what a program does and how it does it.

2.3 Strings

 String: A sequence of characters. They can be letters, numbers, symbols, punctuation marks
or spaces.
 String indexing: Each character in a string has an index number, with the first character at
position 0. You can use the index to reference individual characters in a string.
 Length:
o LENGTH function used to find the number of characters in a string.
o Function: A subprogram that performs a specific task and can be used at any point in the
program.
 String traversal: Using a loop to cycle through each character in a string. Can use a FOR
loop.
 Concatenation: Involves joining two or more items of information together, Concatenating
two strings produces a new string object.
 Type conversion: Performed when a string and a non-string are joined together. The
computer converts the non-string into a string before joining the two strings together.
 Slicing: The process of extracting part of a string.
 String formatting: Used to control the way text is displayed on screen.

2.4 Data Structures

 Data structure: An organised collection of related elements. Arrays and records are two
common data structures used in programming.
 One-dimensional arrays: A list of elements, each of which has a unique index value
representing its position in the list.
 Two-dimensional arrays: A matrix of rows and columns resembling a table.Two indices are
used, one to reference the rows and the other the columns. All the elements of a two
dimensional array share the sam data type.
 All the elements in an array have the same data type.
 A record consists of a collection of fields. The values stored in a record can be of different
data types.

2.5 Input/Output

 Validation: To check that the data entered by a user or from a file meets specified
requirements. Any program that requires data entry should have appropriate forms of
validation built in.
 Range check: Used to ensure that data is within a specified range.
 Length check: Used to ensure that data has a length within a specified range.
 Presence check: Used to ensure the user has entered some data.
 Look-up check: Used to ensure the data matches one of the values in a predefined list.
 Who user are required to choose from a list of options, their inout should be validated to
ensure that their choice is valid.
 Large sets of data are normally stored in text files. The advantage of writing data to a file is
that the data is not lost when the program is terminated. It can be read format he file
whenever it is needed.
2.6 Subprograms

 Subprogram:
o A self-contained module of code that performs a specific task.
o Using subprograms reduces the complexity of programs and makes them easier to understand.
o There are two types of subprograms : functions and procedures.
o Procedures: A subprograms contains a set of statements that are executed when the procedure
is called. Unlike a function, a procedure does not return a value to the main program.
o Functions: A subprogram that returns a value to the main program.
 Abstraction: The process of removing or hiding unnecessary detail so that only the important
points remain.
 The two variables that store the random number generated by the function:
o Local variable: Can be accessed only from within the subprogram in which it is created.
o Global variable: Can be accessed from anywhere in the program, including inside
subprograms.
 Built-in functions: Functions that are provided in most high-level programming languages to
perform common tasks.
 Procedure: A subprogram that does not return a value to the main program.
 Parameters: Values that are passed to a subprogram when it is called.

2.7 Testing and evaluation

 Testing: This is the only way ensuring that the program functions correctly and meets all of
the specified requirements.
 Evaluating programs: Need to able to identify the strengths and weaknesses of the programs
as well as those created by other programmers and identifying areas for improvement.1
 Runtime errors: An error that occurs while the program is running - the operation the
computer is asked to do is impossible to execute.
 Logic errors occur when there is an error in the logic of the code, causing the program to
produce an unexpected result.
 Syntax error: Occurs when part of the code breaks the rules of the programming language.
 Runtime error: Occurs while the program is running and it is asked to do something that is
impossible.
 Truth tables: Can be used to manually trace the execution of an algorithm, allowing you to
track the changes in variable values.

Chapter 3: Data

3.1 Binary

 Binary: Information represented by only two values. There are no communication errors or
misunderstandings because there are no small differences. It is needed to represent data and
program instruction because of the way in which computer work.
 A system with separate states is said to be digital and if there are two states it is binary.
 Digital: Information represented by certain fixed values.
 A system such as this, where there is a continuous range between two values, is said to
be analogue.
 Analogue: Using signals or information represented by a quantity that is continuously
variable.
 Representing information
o There are only two digits, 1 and 0, bu to represent the symbols in text there must be at least 52
separate items of information - 26 lower-case and 26 upper-case letters.
o In a similar way the two binary digits (bits) can be combined into groups.
o Binary digits: The smallest unit of data that is represented in a computer. It has a single binary
value, either 1 or 0.
 Number systems
o Binary is a number system based on two digits, 0 and 1.
o The difference is that the denary system works in powers of 10, whereas the binary system
uses powers of 2.
 Denary system
o Every digit has a value and the one to the left has a value 10 times higher that the one to to the
right.
 Binary system
o The binary system has similar place value but they increase by powers of 2.
o Byte: The basic combination of bits used to represent an item of information. A byte typically
consists of 8 bits.
 Binary arithmetic
o Binary numbers can be manipulated in the same way as denary ones.
 Denary addition
o When addition is performed n denary, a ‘carry over’ is used if the result is greater than 9.
o Binary addition works int he same way but a ‘carry over’ is needed if the result is greater than
1.
 Binary addition
o We are adding eight-bit numbers and this has caused a problem. All eight bits have been used
and the 1 that was carried over in the last column has nowhere to go - it has been carried out.
o Therefore the result of the calculation would be wrong. This is called an overflow error.
o This condition occurs when a calculation produces a result that is greater than the computer
can deal with or store.
o The processor is informed that an error has occurred.
 Signed and unsigned numbers
o When an integer is indicated as being positive or negative it is described as being signed.
o Sign and magnitude
 In a multiple-bit binary number, the left-most it, the one with the greatest value, is called the most
significant bit (MSB). We can use this to represent signed integers.
 Two’s complement
o The most common method used to represent signed integers in modern computers is two’s
complement.
o This method works on the principle above-the result of any number added to its negative
equivalent should be zero.

Computers

4.1 Machines and computational modelling


 The input-process-output-model
o Input: To enter data into a computer.
o Process: To change the meaning or format of some data.
o Output: To display or output data that has been processed (or has been stored).
 A computer is a machine that takes some kind of input from its surroundings, processes the
input according to given rules, and provide some kind of output.
 Computational models:
o Sequential: One in which instructions are executed one after another. There may be branches in
the program, but the general principle is that each instruction follows on from the previous one.
o Parallel: One in which each program instruction is executed simultaneously on multiple
processors in order to get the results faster. Using multi-cores in processors is an example of
parallel computing. It is by using parallel processing that super computers are getting faster
and faster.
o Multi-agent: one in which computer systems co-operate and co-ordinate with other agents to
achieve their goals. Swarm robots are examples of multi-agents.

4.2 Hardware

 Stored programs: the von Neumann model


o Von Neumann architecture: Computer design in which the program is stored in memory with
the data.
o Central processing Unit (CPU): hardware device that carries out the processing in a computer.
o Random-access memory (RAM): A temporary store for data and instructions.
o Bus: A group of connections between devices in a computer
o Fetch-decode-execute cycle: Sequence of steps carried out repeatedly by a CPU.
 Hardware components of a computer system RAM and ROM
o Writing: When the CPU sends data to memory to be stored at a given address.
o Reading: When the CPU retrieves the data stored at a given address.
o Memory address: A number that uniquely identifies a (memory) storage location.
o RAM is described as volatile (memory that is erased when the power is turned off).
o Read-only memory (ROM): Memory that cannot be altered and is not lost when the power is
turned off. Is non-volatile (memory that is not lost when the power is turned off).
 Cache memory
o Third kind of memory.
o Small amount of fast, expensive memory that is used in-between two devices that
communicate at different speeds.
o Cache: memory used to make up for the difference in speed between two internal components.
 Fetch-decode-execute: In detail
o Arithmetic/logic unit (ALU): The part of the CPU that performs calculations and logic
operations.
o Register: A storage location inside the CPU used to hold an instruction, an address or other
single item of data.
o Control unit: The part of the CPU that organises the actions of the other parts of the CPU.
o Clock: An electronic device inside a CPU that ‘ticks’ at regular intervals and is used to
synchronise the actions of the other parts of the CPU.
 Secondary storage: Any kind of permanent storage to which the contents ROM/RAM are
copied (usually a hard disk, optical or solid-state device).
o Magnetic storage: Secondary storage that works by magnetising parts of a substance as north
and south poles to represent binary 1s and 0s.
o Optical storage: Secondary storage that works using differences in light reflection from a
material.
o Solid-state storage: Secondary storage that works by storing charge.
 Cloud storage: Secondary storage often belonging to a third party, that is accessed via a
network, usually the internet, and do is not in the same physical place as the machine’s
RAM/ROM. Files stored ‘in the cloud’ can be accessed from anywhere via an internet
connection.
o Virtualisation: Any process that hides the true physical nature of a computing resource, making
it look different, usually to simplify the way it is accessed.
 Embedded systems: Are cheap, low-power computers that are dedicated to a specific task.

4.3 Logic

 Truth tables: A table showing all possible combinations of the inputs and outputs of an
operator.
 Boolean: Something that can take only the values True or False; named after English
mathematician George Boole.
 Logic circuit: An electronic circuit that has inputs and outputs that follow one of the
Boolean operators.
 AND, OR and NOT are called logical or Boolean operators. They are used in selection
statements such as IF.
 The order of precedence is: brackets, NOT, AND, OR.

4.4 Software

 Software: The set of programs run by a computer system.


 Application software: Software that performs a task that would otherwise be done by hand,
perhaps with pen and paper.
 Operating software: Software designed for particular hardware and which manages other
programs access to the hardware.
 Utility software: Software that does a useful job for the user that is not essential to the
operating system and not the reason for using a computer in the first place.
 Operating system
o Scheduling; The algorithm that the OS uses to allow each running process to use the CPU.
o Paging: The algorithms the OS uses to move programs from RAM to disk and back again
when needed once main memory is full.
o Concurrent: Processes that run apparently at the same time are described as being concurrent.
o Authentication: The process of proving to a computer system who you are.
o User interface: The way the user interacts with the operating system.
 Back-up: A copy of files in another location so that they are still available if the original
copy is damaged or lost.
 Defragmenter: A utility that moves file clusters on a disk so they are closer to each other in
order to speed up disk access.
 Virus: Software that is designed to make and distribute copies of itself, usually for a
malicious purpose.
 Spyware: Software, possibly a virus, that is designed to be installed secretly on a computer
and record private information as the user enters it.
 Firewall: A utility that controls program access to the network, both incoming and outgoing.
 Computer models
o Heuristic: A type of algorithm capable of finding a solution to a problem quickly and easily, by
using a combination of trial and error and educated guesswork to cut corners and eliminate less
likely alternatives.
o Monte Carlo methods: Carrying out a statistical analysis of a number of random samples in
order to obtain approximate solutions to a problem.
o Neural methods: Processing information in a similar way to human brains and learning and
adapting over time.

4.5 Programming language

 Low-level programming language: A programming language that is closely related to the


CPU’s machine code.
o Instruction set: The list of all possible commands a particular CPU knows how to carry out.
o Machine code: The binary codes representing each of the instructions in the instruction set.
o Translator: A program that converts source code into machine code.
o Source code: The text of the program that a programmer writes.
o Assembly language: A low-level language written using mnemonics.
o Mnemonic: A short, simple, acronym that represents each of the instructions in a CPU’s
instruction set.
 Compiler: A translator that converts high-level language source code into object code, often
machine code.
 Interpreter: A translator that converts high-level language source code into object code,
often machine code.
 Humans program computers mostly using a range of high-level languages, but sometimes in
assembly language.

Chapter 5: Communication and the internet

5.1 Networks

 Network: An arrangement of computers and other devices connected together to share


resources and data.
 Why are networks used?
o To access shared files among several users
o To download data or updates to computer programs
o To access the internet
o To communicate with each other
 Types of network
o Local area network (LAN): A network that covers a relatively small geographical area, often a
single site.
o Wireless local area network (WLAN): A local area network in which connected devices use
high frequency radio waves to communicate.
o Wide area network (WAN): A network that covers a large geographical area. It connects
together two or more LANs and is usually under collective ownership. The largest wide area
network is the internet.
 Client-server network: A network that has at least one server to provide services to the client
computers.
 Peer-to-peer network: A network that doesn’t have any centralised servers. Each computer
in the network can act as client and server.
 Network topologies: Describes how the devices on a network are connected together.
 Bus topology
Advantages

Disadvantages

Relatively cheap to install since only one cable is needed

Whole network will fail if the cable Is cut or damaged

Easy to add extra network devices

Can be difficult to identify where a fault is on the cable

 Ring topology

Advantages

Disadvantages

Adding extra devices does not affect the performance of the network

Whole network will fail if the cable is cut or damaged or a device on the network fails

Easy to add extra networks

Can be difficult to identify where a fault is on the network.

 Star topology

Advantages

Disadvantages
A damaged cable will stop the whole network from working, just the network device connected
to it

If the hub or switch fails then the whole network fails

Easy to locate faults because they will normally only involve one device

Expensive to install due to amount of cable needed and the hub or switch

 Internet: A worldwide system of interconnected networks that enables information to be


exchanged and shared.
 Mesh topology

Advantages

Disadvantages

Very fault tolerant, especially in the case of a fully connected mesh network — if one device
fails, messages can be rerouted

Difficult and expensive to install wire mesh networks

In a wirless mesh network each node extends the range of the network

Can be difficult to manage due to number of connections within the network

 Communication media: The means by which data is transmitted between devices on a


network. Coaxial cable, fibre-optic cable and microwaves are all forms of communication
media.
o Wired connectivity

Advantages
Disadvantages

Faster than wireless connectivity

Expensive to install and reconfigure

Not easy to intercept or eavesdrop on data

Requires many cables at a premises

Less susceptible to interference that wireless connectivity

o Wireless connectivity

Advantages

Disadvantages

No need for a cable to connect device or to the internet

Data transmission speeds can be slower than wired connectivity

Allows users to use their own device

Interference from other wireless device can adversely affect performance

A wider range of devices can communicate with each other/a network because it is not
dependent on having the correct table.

Walls and other physical objects can adversely affect performance


 Network data speed

Unit

Abbreviation

Bits per second

Bits per second

bps

Kilobits per second

kbps

1,000

Megabits per second

Mbps

1,000,000

Gigabits per second

Gbps

1,000,000,000

 Protocols: A set of rules that govern how communications on a network should be formatted
and what data they should include.
 Email protocols
o Simple Mail Transfer Protocol (SMTP): Used when sending email through the internet.
o Post Office Protocol, Version 3 (POP3): Current version of Post Office Protocol that is used
for retrieving email from an email server.
o Internet Message Access Protocol (IMAP): Allows emails to be accessed using multiple email
clients.
 Network protocols
o Ethernet: Family of protocols that are used in wired LANs. Physical parts of a network.
o Wi-Fi: A digital communications protocol that sets out how data is transmitted on wireless
LANs.
o Transmission Control Protocol (TCP): Provides a reliable connection between computers.
o Transmission Control Protocol/Internet Protocol (TCP/IP): A protocol stack, a collection of
protocols that work together.

Layer

Description

Application

The top layer of the stack. Layer which interacts with the user to provide access to services and
data is sent/received over a network.

Transport

This layer manages end-to-end communication over a network. There are two main protocols
that operate at this layer - TCP and UDP

Internet

This layer deals with sending data across multiple networks, from the source network to the
destination network.

Link
This layer controls the transmission and reception packets of data to/from a local network.

o HyperText Transfer Protocol (HTTP): Used when sending and receiving data between web
browsers and web servers.
o HyperText Transfer Protocol Secure (HTTPS): The secure version of HTTP.
o File Transfer Protocol (FTP): Used to transfer files over a network that uses TCP protocol,
such as the internet.

5.2 Network security

 Network security: Activities designed to protect a network and its data from threats such as
viruses, hacker attacks, denial of service attacks, data interception and theft.
 Access control: This determines which users have access to which data, and what they are
allowed to do with it.
 Firewall: A network security system that monitor and control data that is moving from one
network to another.
 Physical security: Controlling access to critical parts of a network using physical methods
rather than software.
 Authentication is the process of checking the identity of someone trying to use a computer
system.
 Cloud storage is storing data using a third party, usually in a system connected to the
internet.
 A cyberattack is any kind of electronic attack on a computer system, server, network or
other IT device.
 Many different measure need to be taken to prevent cyber attacks from being successful.
These start at the design stage of system and include keeping systems up to date, training
staff and proactively testing security if the network regularly.

5.3 The internet and the World Wide Web


 The internet is a global network of networks. It is used to transfer data between different
computer systems.
 The internet has many different services running on top of it. Two common services are the
World Wide Web and email.
 The World Wide Web runs on top of the internet. Although people often mix the two terms
up, they are not the same.

Chapter 6: The bigger picture

6.1 Computing and the environment

 Some of the materials used in the manufacture of computer components are non-renewable
and in short supply. Others are dangerous and pose a risk to human health.
 The Restriction of Hazardous Substances (RoHS) Directive restrict the use of hazardous
materials in computing technology, forcing producers to find more environmentally friendly
alternatives.
 Computing technology consumes huge amounts of energy. Data centres are on of the worst
culprits.
 Energy efficiency measures and use of renewable energy can significantly reduce the carbon
footprint of computing technology.
 There is a possible health risk, especially for children, from exposure to the electromagnetic
fields generated by wireless devices, such as smartwatches and smart clothing.
 Unregulated disposal of e-waste in landfill sites poses a significant threat to the
environment.
 The Waste Electrical and Electronic Equipment (WEEE) regulations set targets for
responsible recycling of e-waste.
 Computing technology is helping to preserve the environment in a number of ways,
including monitoring and modelling climate change, conservation and smart energy.

6.2 Privacy
 Computing technology enables organisations to gather, store and analyse vast quantities of
personal information about the people they come into contact with.
 Individuals give away all sorts of personal information about themselves online.

You might also like