## Teach Any Computer Science Class

We have put together a full GCSE Computer Science curriculum that will give you all the teaching materials you need to teach any topic.

Whether you're a brand new Computer Science teacher, or you've been teaching ICT for years, our resources will save you hours and hours of lesson preparation every single week.

View the Lessons →An error is a situation when the output data does not equate with the input data. During communication, digital indicators encounter noise that can possibly initiate errors in the binary bits moving from one system to another. This means a 0 bit may be altered to 1 or a 1 bit may be altered to 0.

**Error detection** is the discovery of errors resulting from noise or other deficiencies while in transit from the transmitter to the receiver.

Error correction is the discovery of errors and rehabilitation of the original, error-free data.

## Error Detecting Codes

Whenever a message is communicated, it may get jumbled by noise or data may get altered. To prevent this, error-detecting codes are utilized. These are data added to a given digital message to aid us identify if any error appeared during transfer of the message.

Simple technique utilised for error detection is the application of redundancy bits, where bits are added to enable discovery of errors.

Other popular approach for error detection are:

**Simple Parity Check**- Chunks of data from the source undergo a check bit or parity bit maker system, where a parity of:
- 1 is added if it has odd number of 1’s, and
- 0 is added if it has even number of 1’s

- The system makes the total number of 1’s even, that is why it is referred to as even parity checking.

- Chunks of data from the source undergo a check bit or parity bit maker system, where a parity of:
**Two-dimensional Parity Check**- Parity check bits are computed for each row, then computed for all columns. Afterwards, both are transmitted along with the data. These computed parity check bits for both rows and columns are then compared with the parity bits computed on the received data.

**Checksum**- In the checksum error detection system, the data is separated into sections for each bit.
- In the sender’s part the sections are added using 1’s aggregate arithmetic to get the sum. The sum is aggregated to get the checksum.
- The checksum section is sent along with the data sections.
- At the receiver’s part, all received sections are added using 1’s aggregate arithmetic to get the sum. The sum is aggregated.
- If the result is zero, the received data is accepted; otherwise rejected.

**Cyclic Redundancy Check (CRC)**- Unlike checksum system, which is grounded on addition, CRC is grounded on binary division.
- In CRC, an arrangement of repetitious bits, referred to as cyclic redundancy check bits, are attached to the end of data unit so that the emerging data unit becomes accurately divisible by another prearranged binary number.
- At the receiving part, the arriving data unit is divided by the same number. If at this stage there is no remainder, the data unit is taken to be accurate and is therefore accepted.
- A remainder specifies that the data unit has been impaired in transit and therefore must be declined.

## Error Correcting Codes

Along with error-detecting code, some data can be transmitted to examine and determine the original message from the fraudulent message that was received. This is referred to as an error-correcting code. Error-correcting codes also utilise the same strategy as error-detecting codes but additionally, such codes also diagnose the exact position of the corrupt bit.

In error-correcting codes, parity check has a simple way to identify errors along with an advanced system to identify the corrupt bit location. Once the corrupt bit is tracked down, its value is reverted (from 0 to 1 or 1 to 0) to get the original message.

### Application

Error detection and error correction schemes are used in the following transmissions:

- Internet
- Deep-space telecommunications
- Satellite broadcasting
- Data storage
- Error-correcting memory