# Paper 1

## Lossy Compression

* Compression algorithm is used
* Original file cannot be restored
* Deletes unnecessary data from the file
* Removes sounds that cannot be heard by the human ear
* Reduces video quality
* Reduces the sample rate & resolution

For more details on compression, visit [here](https://hammaadmughal.gitbook.io/main/igcse-computer-science/data-representation/1.3-data-storage-and-file-compression#lossy).

***

## Lossless Compression

* Compression algorithm is used
* Original file can be restored
* RLE & Huffman encoding is used
* Repeated patterns are identified & indexed

For more details on compression, visit [here](https://hammaadmughal.gitbook.io/main/igcse-computer-science/data-representation/1.3-data-storage-and-file-compression#lossless).

***

## Packet Switching

1. A message is split up into data packets
2. These packets are labelled with their headers and trailers
3. Then sent into the internet
4. Routers will route every packet based on their header
5. The routing selection depends on the number of packets at each node
6. Each packet will travel as fast as it can to the destination
7. Packets re-sorted into the correct order based on their trailer

For more information, look [here](https://hammaadmughal.gitbook.io/main/igcse-computer-science/data-transmission/2.1-types-and-methods-of-data-transmission#packet-switching).

***

## CRC's

1. Sender adds up the 1-bits and stores as a hexadecimal number in the trailer
2. When it arrives, receiver recalculates the 1-bits
3. This value is checked against the value in the trailer
4. If both match, then no error has occurred
5. If they do not match, then the packet is resent

View more details [here](https://hammaadmughal.gitbook.io/main/igcse-computer-science/data-transmission/2.1-types-and-methods-of-data-transmission#crcs).

***

## USB's

* Device automatically detected and driver loaded
* Only fits one way (or backwards compatible)
* Universal standard
* Supports different or multiple data transmission rates

***

## ARQ

1. It uses acknowledgement and timeout
2. When data is sent, a timer is started
3. If there are no errors, a positive acknowledgement is sent
4. If there is an error, a negative acknowledgement is sent and the data is re-sent
5. If no acknowledgement is sent, then the sender will wait for timeout
6. Then the data is re-sent again until an acknowledgment is received

***

## Von Neumann Architecture

1. PC holds address of the instruction
2. Address sent to MAR via the address bus
3. MAR goes to memory where the instruction is stored
4. Instruction sent to MDR via the data bus
5. Instruction passed to CIR
6. CU sends signals to manage entire process via control bus

For a full detailed explanation on the individual components and part, revise [here](https://hammaadmughal.gitbook.io/main/igcse-computer-science/hardware/3.1-computer-architecture#von-neumann-architecture).

***

## QR & Barcode Scanners

* Device shines laser at the code
* White reflects light and black absorbs light
* Corners used to determine position or orientation (QR)
* Device reads reflected light using sensors
* Data converted to binary
* Link is stored within the code (QR)

***

## Keyboard

* Membrane with circuit board is present at the base of the keys
* When a key is pressed, this presses a switch
* This completes a circuit
* Location of each keypress is calculated
* Index of characters is searched to find which key was pressed
* Each character has a Unicode value which is converted into binary
* Processed by the CPU to action each keypress

***

## Operating System

* Performs basic functions of a computer and manages the hardware
* Provides the user a platform to run software and a user interface

***

## Interrupts

1. Interrupt signal sent to the CPU or processor
2. CPU stops the task its currently doing to service the interrupt
3. Interrupt service routine is created to service the interrupt
4. Message is displayed to user to notify them

More details can be viewed [here](https://hammaadmughal.gitbook.io/main/igcse-computer-science/software/4.1-types-of-software-and-interrupts#interrupts).

***

## Interpreters & Compilers

* Interpreter used while writing the program
* Used to debug code line by line
* Compiler used when the program is completed
* Used to create an executable file

Revise it further [here](https://hammaadmughal.gitbook.io/main/igcse-computer-science/software/4.2-types-of-programming-languages-translators-and-ides#translators).

***

## Web Pages / Browser

1. User types URL into the browser
2. Browser sends the URL to DNS using HTTP
3. DNS finds matching IP for that URL and sends to the browser
4. Browser sends a request to server for web pages
5. Web pages sent to browser
6. Browser renders HTML to display web pages
7. Security certificates exchanged
8. SSL or HTTPS is used to encrypt the data

Check your knowledge on structure and presentation of web pages [here](https://hammaadmughal.gitbook.io/main/igcse-computer-science/the-internet-and-its-uses/5.1-the-internet-and-the-world-wide-web#web-pages).

***

## Firewalls

* Monitors incoming and outgoing traffic
* Checks that the traffic meets the rules set by the user
* It will block any traffic that doesn’t meet the rules
* User can create blacklist or whitelist of IP’s to block traffic from
* Can close certain ports

***

## Definitions

**Character Sets**\
All the characters and symbols that a computer can represent where each one is assigned a specific value

**Sampling Resolution**\
Also bit depth, the number of bits per sample#

**Sampling Rate**\
The number of sound samples taken per second (measured in Hz)

**Colour Depth**\
The number of bits used to represent each colour

**Image Resolution**\
The dimensions of an image ( pixels \[width x height] )

**Encryption**\
Encoding data into a form that is not useful unless it is passed through an algorithm

**Instruction Set**\
List of commands that can be processed by a CPU

**Embedded System**\
A system with either one function only or a limited set of functions

**Primary Storage**\
Directly accessed by the CPU\
RAM, ROM, Cache

**Secondary Storage**\
Permanent storage which is not directly accessed by the CPU\
HDD, SSD, Optical Storage

**Router**\
Connects one network to another and analyses data packets

**Utility Software**\
Performs specific tasks and helps to configure a system

**Low-level Language**\
Language that sits close to a computer’s instruction set

**IDE**\
Integrated Development Environment\
Piece of software that is used to write and test software

**URL**\
Uniform Resource Locator\
Text based address that identifies the location of a resource on the internet

**Blockchain**\
Digital ledger that records all transactions and is decentralised

***
