Sunteți pe pagina 1din 20

Binary system: based on the number two – only the values 0 and 1 and be used to represent a digit.

Each place has the values:


128 64 32 16 8 4 2 1
7 6 5 4 3 2 1
2 2 2 2 2 2 2 20

To convert from binary to denary, each time a one appears in a column add the place value to the
total – for instance, 1 1 1 0 1 1 1 0 is equal to 128 + 64 + 32 + 8 + 4 + 2 = 238

To convert from denary to binary there are two methods:


1. By inspection, place 1s in the appropriate position so the total becomes the denary number
or
2. Successively divide by two and read the remainders from bottom to top to give the binary value.
For instance,
107 / 2 = 53 REM 1
53 / 2 = 26 REM 1
26 / 2 = 13 REM 0
13 / 2 = 6 REM 1
6 / 2 = 3 REM 0
3 / 2 = 1 REM 1
1 / 2 = 0 REM 1
0 / 2 = 0 REM 0 = 0 1 1 0 1 0 1 1

A binary digit is often called a bit; 8 bits compose a byte. A byte is the smallest unit of memory on a
computer system.
1 kilobyte (1 KB) = 210 bits = 1024 bytes
1 megabyte (1 MB) = 220 bits = 1048576 bytes
1 gigabyte (1 GB) = 230 bits = 1073741824 bytes
1 terabyte (1 TB) = 240 bits = 1099511627776 bytes
1 petabyte (1 PB) = 250 bits = 1125899906842624 bytes

A register is a group of bits (for instance, eight). When computers are used to control devices they
are used as part of the control system to store instructions. For instance, 1 0 1 0 1 0 1 0 could mean
that a robot vacuum cleaner’s motors are both on and turning to provide forwards motion.

Hexadecimal is a base 16 system and uses 16 different values (0 – F) to represent each digit. Place
values would be
65536 4096 256 16 1
164 163 162 161 160

To convert from binary to hex: starting from the right and moving left split the number into groups
of four bits – fill the last group with 0s. Then, take each group of 4 bits and convert it to the
equivalent hex digit in the below table.

Converting from hex to binary involves converting each digit to its associated 4-bit code.

Converting from hex to denary is also straightforward – take each hex digit and multiply by its
value, then add the totals.

Converting from denary to hex can be done either by inspection or by successive division by 16,
with the remainders being read from bottom to top to give the hex value.
Four binary digits are equivalent to each hexadecimal digit.
Binary Hex Den
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 A 10
1011 B 11
1100 C 12
1101 D 13
1110 E 14
1111 F 15

Hexadecimal has various uses.


A. Memory Dumps – it is much easier to work with B 5 A 4 1 A F C than 1 0 1 1 1 0 0 1 1 0 1 0
and so on. Therefore, hexadecimal is often used to output memory contents to a printer or monitor
when developing new software or trying to trace an error. The programmer can look at each
hexadecimal code and determine where the error is.
B. HTML – hexadecimal is used to represent colours of text, with the intensity of the three primary
colours (red, green, and blue) being determined by the hexadecimal value. For example, #FF0000
represents red, while #0000FF represents blue.
C. MAC address – a MAC address is a number identifying a device on the internet, associated with
a network interface card which is part of the device. It is rarely changed, and thus can be used to
identify a particular device. It is usually composed of 48 bits shown as six groups of hex digits –
NN:NN:NN:DD:DD:DD where the first half is the identity number of the manufacturer and the
second half is the unique serial number of the device. For instance, any Apple device will start with
00-1C-B3. A Universally Administered Address (UAA) is the MAC address set by the manufacturer
at the factory and it is rare for a user to want to change this. If they want to they will have to change
to Locally Administered MAC Address (LAA). This may be for various reasons:
* some software used on mainframe systems requires the MAC address of all devices on the
network to fall into a strict format – it may be necessary to change some of the addresses.
* it may be necessary to bypass a MAC address filter on a router or firewall.
* To get past some types of network restrictions it may be necessary to emulate unrestricted MAC
addresses
D. Web Addresses – each key on a keyboard has an ASCII code which can be represented using
hex or decimal values. A URL can be represented using this – for instance:
%77 %77 %77 %2e %67 %6f %6f %67 %6c %65 %2e %63 %6f %6d is equivalent to
www.google.com
This can be used as a security feature to avoid going to fake websites.
E. Assembly code and machine code – computer memory can be referred to directly using
machine or assembly code. This can help with development and troubleshooting. Use of hex makes
it much faster, easier, and less error-prone to write code compared to binary. For instance, STO
FFA4 in assembly code is equivalent to A5E4 FFA4 in machine code, and equivalent to 1010 0101
1110 0100 1111 1111 1010 0100!

Communication and internet technology:


Data can be sent between devices. Three factors need to be considered and agreed by both sender
and receiver:
* direction (one-way or two-way)
* method (how many bits at a time)
* synchronization method

Simplex transmission is one direction only (from the sender to the receiver) – for example, from a
computer to a printer.
Half duplex transmission can be sent in the same direction, but not at the same time – for instance, a
phone conversation where only one person speaks at a time.
Full duplex transmission can be sent in both directions simultaneously (e.g. a broadband
connection).

Serial transmission occurs when data is sent one bit at a time over a single channel. Bits are sent one
after the other in a single stream. They can be transmitted as simplex, half-duplex, or full-duplex.
This works well over long distances – only one channel is used, so there is no problem of data
arriving out of sync. However, it is transmitted at a slower rate than parallel transmission. An
example is sending data from a computer to a modem for transmission over a telephone line.

Parallel transmission occurs when several bits (usually one byte) are sent over multiple wires or
channels at the same time – one wire or channel to a bit. This method works well over short
distances – over longer distances, the bits will become skewed (and no longer synchronized).
However, it is much faster than serial transmission. An example is sending data to a printer using a
ribbon connector.

A common use of serial transmission is the Universal Serial Bus (USB). Parallel transmission is
used in internal electronics – buses between the CPU and memory all use this method of
transmission, because of the need for high speed data transfer. 8-bit, 16-bit, 32-bit, and 64-bit buses
allow much faster transmission than single channel serial transmission. An internal clock ensures
correct timing and the short distances involved prevent skewing from having any impact on data
accuracy. Integrated circuits, buses, and other components all use parallel transmission.

Asynchronous transmission occurs when data is transmitted in an agreed pattern – data bits are
grouped and sent with control bits. The receiver knows when the data starts and when it ends – this
prevents data becoming mixed up. Synchronous transmission is a continuous stream of data with
timing signals generated by an internal clock – this ensures that the sender and receiver are
synchronized. The receiver counts the bits and assembles them into bytes of data – however, this
must be done very quickly and accurately, since there are no control bits. This is faster than
asynchronous transmission and is used for example in network communication.

USB is an asynchronous serial data transmission method. It has become the standard method of
transferring data between a computer and devices. A USB cable is composed of a four-wire cable –
two are used for power and earth, and two are used for data transmission. When a USB device is
plugged in, the computer detects the change in voltage level on the data signal wires – the
appropriate device driver is then installed or loaded so the computer and device can communicate.
USB has some benefits and drawbacks.
Benefits include:
* device drivers are automatically loaded when devices are plugged in
* connectors only fit one way preventing incorrect connection
* it has become an industry standard and thus considerable support is available
* several transmission rates are supported
* newer USB standards are backwards compatible
Drawbacks include:
* the maximum cable length is about 5 metres
* the present transmission rate is limited to 500 megabits / second
* the older USB standards may not be supported in the future
After transmission there is always a risk that data has been corrupted during transmission. Error
checking methods include:
- Parity Checking: a byte of data is allocated a parity bit before transmission. Systems that use
even parity have an even number of 1-bits. Systems that use odd parity have an odd number of 1-
bits. If the byte X 1 1 0 1 1 0 0 uses even parity, the parity bit X must be 0 since there is an even
number of 1-bits. If the byte uses odd parity, X must be 1. Before data is transferred the sender and
receiver agree what type of parity is used. If even parity is used and the byte has an odd number of
1-bits when received, then an error has occurred. It is detected by the computer recalculating parity
on the receivers end. However, this method does not allow you to find which bit is incorrect. One
way to find it is to use parity blocks, where a parity check is done both horizontally and vertically.
This indicates where the error is, by showing which bit in which byte has the error. However, parity
checks will not detect errors where two bits are changed, since correct parity will be retained.
- Automatic Repeat ReQuest (ARQ): this uses an acknowledgement sent by the receiver
indicating that data has been received correctly and timeout (time allowed to elapse before the
acknowledgement is received). If the acknowledgement isn’t received before the timeout elapses,
the message is automatically resent.
- Checksum: data is sent in blocks, and an additional value, the checksum, is also sent at the end of
the block of data. It is calculated by an algorithm – for instance, divide the sum (X) of the bytes by
256, round the answer to the nearest integer (Y), multiply Y * 256 (Z), calculate the difference (X –
Z) → the value is the checksum. The checksum is calculated and transmitted with the block of data
– it is recalculated by the receiver from the block of data received and compared to the transmitted
checksum. If they are different, then a request is sent for the data to be retransmitted.
- Echo check: when data is sent to another device, this data is sent back to the sender – the sender
compares the two sets of data to check if any errors occurred during the transmission process.
However, this isn’t very reliable, since the error can have occurred while sending the data back for
checking.

The internet is a worldwide system of computers and computer networks. Each user uses an Internet
Service Provider that provides access to the internet for a monthly fee. Each device on the internet
is assigned a unique address – an internet protocol (IP) address – a 32 bit number in the form of
109.168.0.1. Each computer has a unique IP address for a particular session – web servers have
constant (static) IP addresses. Therefore, the IP address of a server can be used to connect to it
instead of a URL. The IP address gives the address of a computer on the internet, while the MAC
address identifies the device connected to the internet.
Webpages are composed of HTML and CSS code. The former controls structure and text, while the
latter is the presentation of the webpage (how it will look).
HTTP – Hypertext transfer protocol – is a set of rules that must be obeyed when transferring files.
When some form of security (e.g. SSL certification is used), HTTP over Secure (HTTPS) is used –
it is slower, but much more secure. A web browser is software which allows a user to display a web
page on their computer screen, interpreting HTML code. It allows you to enter a URL and translates
that to an IP address which it connects to and displays the returned HTML code.
Logic gates are used in electronic circuits, taking binary inputs and producing a binary output.
Several logic gates form a logic circuit and these circuits are designed to carry out a specific
function. The checking of the output is done using a truth table.

Six logic gates include:

X = NOT A X = A AND B
X=ā X=a.b

NOT gate AND gate

X = A OR B X = A NAND B
X=a+b X=a.b

OR gate NAND gate

X = A NOR B X = A XOR B
X=a+b X = (a.b) + (a.b)
NOR gate XOR gate

Logic circuits are composed of logic gates combined together to perform a function.

Often a logic circuit can be built using other gates – reducing complexity and cost. For instance,
NAND gates are often used to build any logic circuit. For instance, AND, OR, and NOT gates can
be built from NAND gates:

An OR gate A NOT gate An AND gate

Often logic circuits can be simplified, with several gates becoming one gate. This improves
reliability, makes it easier to trace faults, and reduces production cost.

The Operating System is software running in the background of a computer system, managing
many basic functions. One example of an operating system is Windows which is used on many
personal computers. It is a single-user multitasking OS – only one user can use it at a time but can
use multiple applications at a time. When a computer is first powered up, the Basic Input Output
System is loaded from ROM, checking hardware – if no errors occur then the OS is loaded.
Devices with embedded microprocessors do not usually have an operating system – they perform
simple hardware functions and do not need an OS to control them.

Functions of an OS include:

An interrupt is a signal sent from a


device or software to the processor
telling it to stop what its doing and
service the interrupt. They occur,
for example, when a user presses a
key sequence (Ctrl + Alt + Break),
an error has occurred, or a device is ready to receive more data.

Once the interrupt is received the processor stops what its doing and services the interrupt.
Interrupts allow processors to carry out multitasking – for instance, downloading a file at the same
time as sending data to a printer. An interrupt handler in the OS will save the status of the current
task – once the interrupt is serviced, the task can be reinstated and will continue from the point prior
to the interrupt being sent.

Buffers are used as temporary memory areas. Since hardware devices are generally slower than
processors, they are essential since otherwise processors would spend most of their time idle
waiting for hardware devices to finish. They are constantly filled by the processor from the memory
unit and while they are emptied to the hardware device, the processor continues with other tasks.
Buffers and interrupts are used together to perform standard functions such as printing.

For example, the processor continually decides if it needs to send data to the printer – if not, it
continues with other tasks. If it has to, data is sent to the buffer and the contents of the buffer are
continually emptied to the printer. Once the buffer is empty, an interrupt signal is sent to request
more data, and the current task is suspended until the interrupt is serviced.

Early computers had to be fed data and were unable to store programs. In 1945, John von Neumann
developed the von Neumann architecture where the computer would store programs and data in a
memory. Data would then move between memory and the processor.

The processor and memory unit are linked by


connections called buses. They move data
around the computer and send control signals
to ensure synchronization.

The address bus carries data relating to


memory addresses unidirectionally from the
processor to memory. The data bus sends data
bidirectionally between the processor,
memory, and input / output devices. The
control bus carries signals relating to the
control and coordination of activities within
the processor – e.g. read / write operations.
Registers are temporary high speed memory storage areas used to manipulate data. Addresses
indicate where the data is stored in computer memory.
The memory unit is composed of partitions, each of which has an address and a content. The
address uniquely identifies each location and the contents are the binary value stored in each
location.

The Memory Address Register (MAR) is written to by the processor through the address bus. For
instance, in a READ operation, the location to read from is stored in this register. A read signal is
then sent through the control bus to the memory unit, and the contents of the location in the MAR
are stored in the Memory Data Register (MDR).

The processor contains an arithmetic logic unit that allows arithmetic (addition and subtraction and
so on) and logic (AND, NOT, OR etc.) operations to be carried out. The Control Unit controls the
operation of the memory processor and input / output devices. The control unit reads an instruction
from memory (the location where the instruction can be found is stored in the Program Counter
(PC)) and then interprets it. During that process signals are sent along the control bus to tell other
components what to do.

The fetch execute cycle describes how a computer carries out a task – first it fetches data and
instructions from memory and stores it in registers, then decodes the instruction and executes it. The
Current Instruction Register (CIR) contains the current instruction being processed, while the
Program Counter (PC) contains the location of the next instruction to be executed.

First, the processor fetches the next instruction from the memory address stored in the Program
Counter by copying the address from the PC to the MAR using the address bus. The contents at the
address in the MAR are copied to the MDR, and then the instruction is sent to the processor and
stored in the CIR. The PC is incremented by 1 to fetch the next instruction. The instruction in the
CIR is then decoded and interpreted. The processor sends control signals to the components,
carrying out the task.

Input and Output devices:


- Scanners: a scanner can be 2D or 3D. 2D scanners convert hard-copy paper documents to an
electronic form by forming an image of the document using a xenon lamp and scan head. The image
is converted to a digital image using a charge couple device composed of light-sensitive pixels.
Each one creates an electric charge when light falls on it, creating the digital image. Alternatively,
Optical Character Recognition converts scanned text to a text file format that can be edited and
manipulated by a word browser. 3D scanners produce a 3D image which can be sent to CAD
software or a 3D printer to produce a copy. They take images at several points along the different
axis – the digital images are converted into a 3D file.

2D scanners are used to scan passports – the 2D photograph in the passport is compared to a digital
image taken by a camera using face recognition software – key parts such as distance between the
eyes are checked. Computed Tomography scanners are used to create a 3D image built up by a
series of very thin 2D slices – together they make a representation of the solid object. The slices are
created using x-rays, radio waves, or gamma radiation and stored as a digital image.

- Barcodes: A barcode is a series of dark and light parallel lines of varying thickness. The numbers
0 to 9 are represented by a unique series of lines. The left and hand sides of the barcode are
separated by guard bars – usually two parallel lines of equal thickness. Each digit is represented by
bars of 1 to 4 blocks thick. A scanner reads the barcode using a red laser – dark areas reflect little or
no light, allowing the bars to be read. Photoelectric cells read the reflected light, generating a
pattern which is converted to digital data. Barcodes are often found in supermarkets, storing a
unique product code. The code is looked up in a database and the associated record is returned to
the point of sale terminal. The stock levels are updated and if necessary more stock is re-ordered.
Barcodes allow stores to update prices more quickly and easily, allow access to sales information,
and allow for automatic stock control. For customers, cost savings can be passed on in the form of
lower prices, checkout queues are faster since staff don’t need to look up items, and errors are
reduced.

Quick Response (QR) codes: QR codes are composed of a matrix of dark squares on a light
background – they can contain up to 7000 digits, allowing more information to be stored than
barcodes. Smart phones are able to use the built-in camera and special applications to read the QR
code and interpret it (e.g. opening a URL contained in it). This avoids the need to have to enter a
URL. QR codes are an effective method of advertising.

Digital Cameras: digital cameras replace film cameras, avoiding the need to develop and print the
photograph. Modern digital cameras can link to a computer system via USB or wireless. They are
controlled by a microprocessor which can carry out the following tasks:
* adjust the shutter speed and aperture
* focus the image and operate flash if needed
* open and close the shutter to expose light to light-sensitive pixels
* adjust the size of the image and remove ‘red-eye’

The size of the image is determined by the number of pixels – e.g. a 14MP camera will need 42
megabytes to store each raw (uncompressed) photograph. Mobile phones often have digital cameras
built into them.

Keyboards: a keyboard allows the input of text into a device. In mobile technology it is often a
virtual keyboard using touchscreen technology. Each character has an ASCII value – when the key
is pressed it is converted into a digital signal which is interpreted by the computer. However,
keyboard entry is slow and prone to errors. Frequent use can cause injuries in hands and wrist.
Nevertheless, they are an easy method to enter data.

Pointing device: a pointing device such as a mouse or trackball allows a user to select or click on
the screen, allowing interaction with a graphical user interface. The mouse is the most common, and
either uses a mechanical ball or a red LED to detect movement. They can be connected by wireless
or by USB cable. Mice require desk space and often a special surface to allow movement.
Trackerballs use a ball on the top of it to control a cursor. This requires much less desk space as it
does not need to move.

Microphones: microphones are used to input sound to a computer. A vibrating diaphragm detects
sound waves and generates an electrical signal. The signal goes to a sound card and is converted to
digital values and stored. Voice recognition technology matches the digital wave pattern to wave
patterns stored in memory in order to see if they match. This can be used in security systems to
recognize people. Speech recognition is used to interact with computer systems – the software
converts the digital signal into phonemes (the smallest phonetic elements of a language) and
compares them to words in a built-in dictionary. However, speech recognition software has to take
into account dialects and accents, and may be error prone.

Touchscreens: touchscreens allow users to interact with a computer system using touch. There are
three main types: capacitive, infra-red, and resistive.
Capacitive – many layers of glass act like a capacitor storing an electric charge. If you touch the top
glass layer, the electric current changes and the microprocessor can detect the touch coordinates.
This method allows good screen visibility, multi-touch, and makes the screen very durable at
medium cost. However, only bare fingers and styli will work.
Infra-red – glass is used as the screen material – heat-sensitive systems require warm object (ie
fingers) to carry out an input operation. Optical systems use an array of light sensors. Both systems
allow multitouch and have good screen durability – however, heat-sensitive systems only allow
input using bare fingers, while optical systems allow input with styli, gloved fingers, or bare
fingers. It is also relatively expensive.
Resistive – is composted of an upper layer of polyester and a bottom layer of glass. When the top
layer is touched, the circuit between the top layer and bottom layer is completed sending signals to
the microprocessor which determines the coordinates where the screen was touched. It is relatively
inexpensive and allows bare fingers, gloved fingers, or styli to be used. However, screen visibility is
poor in strong sunlight. It also doesn’t permit multi-touch and the screen durability is only fair.

Sensors: sensors are devices which read or measure physical properties – e.g. temperature or
pressure. Real data is analogue in nature – it is constantly changing and doesn’t have a discrete
value. Therefore, it requires interpretation since it can have an infinite number of values. Computers
cannot make sense of real data and so the data must be converted to digital data by an analogue to
digital converter (ADC). When the computer is used to control devices (e.g. a motor), it is necessary
to use a digital to analogue converter (DAC). Frequently, an actuator is used to control these
applications – e.g. a relay, solenoid, or motor. Sensors are used both in monitoring and control
applications – the former only monitor, while the latter actively control systems such that the output
from the system will affect the next set of inputs. In the former, if data is outside the acceptable
range, a warning is given, while in the second the microprocessor will send signals to valves,
motors etc.

Interactive whiteboards: interactive whiteboards project digital images onto a whiteboard,


allowing a user to write on the whiteboard and save the text or drawings in an electronic form for
later use. Also, software can be run on a whiteboard, allowing people to interact using their fingers
on the surface.

Inkjet printers: inkjet printers have ink cartridges containing ink for each different colour (cyan,
yellow, and magenta), a print head with a nozzle that sprays droplets of ink onto the paper to form
characters, a motor with a belt that moves the print head across the page, and a paper feed that feeds
the printer with pages as they are required. Ink droplets are either produced by thermal resistors that
create heat which vaporizes the ink forming a bubble – as the bubble expands some of the ink is
ejected from the print head onto the paper. When the bubble collapses a vacuum forms drawing
more ink into the print head. Alternatively, a crystal at the back of the ink reservoir is given an
electric charge, making it vibrate and forcing ink out of the nozzle onto the paper and drawing more
ink for further printing. The following sequence of events occurs when a user wishes to print a
document:
1. The data is sent to the printer’s driver. The driver ensures the printer can read the data’s format. It
also checks that the printer is available to print – if so the data is sent to a buffer.
2. A sheet of paper is fed into the printer – a sensor detects if paper is available – if it is out of paper
or jammed, an error message is sent back to the computer.
3. The print head moves across the paper, printing the image. The paper is then advanced to allow
the next line to be printed.
4. If there is more data in the buffer, step 2 to 3 is repeated until the buffer is empty.
5. The printer sends an interrupt to the processor requesting more data – this continues until the
whole document has been printed.
Laser printers: laser printers use dry powder rather than liquid ink, and use static electricity to
print. Laser printers also print entire pages at a time. Therefore, they are much faster, and won’t run
out of ink halfway through. The following sequence occurs when a user wishes to print a document:
1. The data is sent to the printer’s driver. The driver ensures the printer can read the data’s format. It
also checks that the printer is available to print – if so the data is sent to a buffer.
2. The printing drum is given a positive charge – as the drum rotates, a laser beam is scanned across
it removing the positive charge leaving negatively charged areas which match the text / images of
the page to be printed. The drum is then coated with positively charged toner – it will only stick to
the negatively charged areas.
3. A negatively charged sheet of paper is then rolled over the drum – the toner on the drum now
sticks to the paper producing an exact copy of the page. To prevent the paper sticking to the drum,
the electric charge on the paper is removed after one rotation.
4. The paper finally goes through a fuser which is a set of heated rollers – the heat melts the ink so
that it fixes permanently to the paper. At the end, a discharge lamp removes the charge from the
drum, preparing it to print the next page.

Inkjet printers are best for one off photos or a few pages of good quality; the small ink cartridges /
paper trays would not be an issue. Laser printers produce high quality printouts and are very fast –
any application that needs high-volume printing would choose the laser printer due to the large
paper trays and toner cartridges.

3D printers: 3D printers produce solid objects built up layer by layer using materials such as
powdered ceramic, resin, or metal. 3D printers use additive manufacturing as opposed to e.g.
machining where material is removed to form an object. Direct 3D printing uses a print head that
can move in three dimensions; binder 3D printing uses similar technology, with two passes – the
first sprays dry powder while the second sprays binder (glue) to form a solid layer. 3D printing is
useful in manufacturing to make lightweight precision parts. It also can be used in medicine in
reconstructive surgery and prosthetic limbs. Also, it allows parts that are no longer in production to
be recreated.

2D and 3D cutters can cut materials to create designs. This is an example of subtractive
manufacturing.

Actuators: actuators are used in control applications involving analogue and digital data. They
include motors, solenoids, and relays.

Speakers: sound is produced by passing data from a sound card through a digital to analogue
converter and then through an amplifier; finally the sound emerges from a loudspeaker, where a
cone vibrates at different frequencies and amplitudes to create sound-waves.

Monitors: most monitors use liquid crystal display / diode technology (LCD). This means that the
front layer is made of liquid crystal diodes grouped together in threes or fours (pixels). Modern
LCD monitors are backlit with LED technology which gives a brighter image with better contrast –
previously they used cold cathode fluorescent lamps (CCFL) as the backlighting. LCD doesn’t emit
any light, so some form of backlighting is needed. LEDs have the following advantages over
CCFLs:
* LEDs do not need to warm up before brightening
* LEDs give a whiter light with a sharper image with more vivid colours
* LEDs produce a brighter light improving colour definition
* LED monitors are much thinner than CCFL monitors
* LEDs last almost indefinitely making the technology more reliable
* LEDs consume very little power giving out less heat and using less energy

Some modern monitors use organic light emitting diodes (OLEDs) – organic materials are used to
create semiconductors which are very flexible. These are sandwiched between a metallic cathode
and glass anode – when an electric field is applied they give off light – therefore, no backlighting is
required, allowing for very thin screens. Also, there is no need to use LCD technology.
OLEDs have the following advantages:
* they are flexible, allowing the screen to be curved or bent to any shape
* they are thinner, lighter, and more flexible than the crystal structures of LCDs
* the OLED layers are lighter since they are made of plastic rather than glass
* OLEDs give a brighter light than LEDs
* OLEDs use less power as they require no backlighting
* OLEDs have a large field of view (170 degrees)

Light projectors:
Digital Light Projectors (DLPs) use micro mirrors – when they tilt towards the light source they are
ON; when they tilt away they are OFF. This creates a light or dark pixel – they can switch on or off
thousands of times a second to create up to 1024 shades of grey. A brighter white light source passes
through a colour filter, splitting white light into primary colours. The ON / OFF states is linked to
colours to produce the coloured image – the greyscales are interpreted as colours.
LCD projectors use a high-intensity beam of white light which is reflected at different wavelengths
by chromatic mirrors. The reflected lights have red, green, and blue components. The light then
passes through three LCD screens which project the image as greyscale pixels – a red, green, and
blue version of the grey image emerges, combines using a special prism, passing through the
projector lens onto a screen.

File formats:
- MIDI (Musical Instrument Digital Interface) is used to store music files. MIDI is a
communications protocol that allows electronic musical instruments to interact with eachother – it
uses 8-bit serial transmission with one start bit and one stop bit. A MIDI file consists of a list of
commands instructing a device (sound card or instrument) how to produce a particular sound of
musical note. Each command has a specific sequence of bytes: the first is the status byte telling the
device what function to perform. Encoded in this is the channel – MIDI has 16 separate channels
numbered 0 to 15. A pitch byte tells the MIDI device what note to play, and a velocity byte tells the
device how loud to play it. A MIDI file has the extension .mid. Examples of commands include note
on/off or key pressure. If the .mid file is sent to a musical instrument, then the music will be played
back identically – the music will be stored as a series of commands with no actual music. This
allows the same file to be fed back to a different type of instrument using a sequencer software.
MIDI allows data to be sent out on all 16 channels at a time – allowing up to 16 devices to be
played at the same time. Since MIDI files don’t contain any music they are very small compared to
e.g. .mp3 files – for example a 10MB mp3 file might be only 10KB in .mid. This makes them ideal
for devices where there is limited storage.
- MPEG3 (MP3) uses audio compression to convert music to a MP3 file. This can reduce file size
by up to 90%. MP3 files are used in MP3 players, mobile phones, and computers. Quality will
never be as good as the uncompressed file but will be satisfactory. Algorithms will remove sounds
that the human ear cannot hear properly thus avoiding affecting quality too much. MP3 is a lossy
format – once it is compressed, the original file cannot be put together again – however the quality
depends on the bit rate which can vary between roughly 80 and 320 – a bit rate of 200 or higher will
give a sound quality close to a normal CD.
- MPEG4 (MP4) are used to store multimedia files (videos, photos, etc).
- JPEG (.jpg) is a compressed image format. However, as file size reduces, quality also reduces.
JPEG is a lossy format. JPEG will reduce the raw bitmap image by a factor of 5 to 15 (the raw
bitmap is often called a .TIFF or .BMP image). The file size of the bitmap is equal to the number of
pixels – a 3MP image is 9MB (3MB * 3 colours). The same image in a .jpg format would occupy
about 1MB. JPEG relies on the fact that the human eye cannot detect very slight differences in
brightness and colour to compress without significant loss of quality.
- ASCII: text is normally stored in ASCII format. Text files can be compressed using algorithms
relying on repeated sections of words (e.g. OU). This is lossless since the original can be reformed.
Memory can be split into three groups:
* Primary – RAM and ROM
* Secondary – HDD or SSD
* Off-line – DVD, CD, Blu-Ray, or USB
RAM (random access memory) is volatile memory used to store data, files, or parts of the operating
system currently in use. It can be read and written to, and the contents can be changed. If power is
lost the contents are lost.
RAM never runs out of memory – but just gets slower and slower, since the processes has to
continually access secondary storage if RAM gets full – secondary storage is much slower than
RAM. Buffers are usually also RAM since data only needs to be held temporarily. Dynamic RAM
uses transistors and capacitors – the former act like a switch allowing the latter to be read or
changed, while the latter store the actual data. This type of RAM needs to be refreshed every 15
microseconds as otherwise the charge would leak, setting every capacitor to 0. DRAM is cheaper to
manufacture, stores more data, and uses less power than SRAM. SRAM uses flipflops holding each
bit of memory. Data access is faster, and it does not have to be refreshed.
ROM (Read Only Memory) is non-volatile memory – the contents cannot be changed, only read.
They are often used to store the BIOS (start-up instructions before the operating system is loaded).
HDD (Hard Disk Drive)s store data digitally on the magnetic surface of disks. Each disk or platter
will usually have two surfaces – there will usually be a number of these with several read-write
heads which can move very quickly to access all the data on the disks. Data is stored on sectors and
tracks – each sector contains a fixed number of bytes. Latency is the time taken for the read-write
head to move to the correct position and the block of data to rotate round to the read-write head.
SSD (Solid State Drive)s store data by controlling the movement of electrons within NAND chips.
The data is stored in transistors as 1s and 0s. However, some solid stage storage devices use NOR
chips (EEPROM technology) instead of NAND chips allowing data to be read or erased in single
bytes at a time. This makes EEPROM useful in applications where data needs to be accessed in
byte-sized chunks. However, it is considerably more expensive than NAND technology meaning
the latter, known as flash memory, is much more common. SSDs have several advantages over
HDDs, including lack of moving parts (more reliability), less weight, lower power consumption,
lower operating temperatures, thin dimensions, very fast data access, and no requirement to spin up
before working properly. However, they have questionable longevity, since SSDs are usually only
rated at 20GB operations per day over three years – therefore it can’t be used for instance in servers
where a huge number of operations take place every day.
CD / DVD are optical storage devices – laser light is used to read and write data in the surface of
the disk. Both use a thin layer of metal alloy or light-sensitive organic compound to store the data
with a single spiral track. The data is stored as pits and bumps on the spiral track with a red laser
used to read and write the data. DVDs use dual layering considerably increasing the storage
capacity – a standard DVD has two layers with a transparent polycarbonate spacer and thin reflector
sandwiched between two layers – reading and writing of the second layer is done by focusing the
red laser a few millimetres further than the first layer. Single layer DVDs still have a larger capacity
than DVDs, since they have a smaller pit size and track width – more data can be stored on the
surface. CDs use 780nm lasers while DVDs use 650nm lasers – the shorter the wavelength, the
more data can be stored.
DVD-RAM is different to standard DVDs – they have a number of concentric tracks allowing
simultaneous read-write operations. They also allow many operations – up to 100000 times, and last
over 30 years. They are often used to back up data.
Blu-Ray disks use a blue laser (405nm) to store data. This allows much smaller pits and bumps.
Blu-ray uses a single 1.1mm thick disk as opposed to two 0.6mm disks. This avoids birefringence
(refracted light causing errors). Blu-ray disks also come with encryption built in, reducing the risk
of piracy.
USB sticks use solid state technology to store data. They usually connect to a computer using a
USB port – their small size and light weight makes them ideal for transferring or backing up files.
Some complex software often requires a dongle containing additional required files – without this it
won’t work properly preventing illegal or unauthorized use of the software.
Secure Digital cards use solid state technology, but are more common in mobile phones and digital
cameras. They can be used to transfer or store files.
Removable HDD are a standard HDD connected to a computer by USB port allowing them to be
used as backup or transferring files.

File size can be estimated. A single character in ASCII code has a value of 1 byte. Therefore, the file
size of a text file is usually equal to the number of characters. Other codes are stored along with the
file making its real size different – but the size of the actual file will be equal to the number of the
characters. A single pixel usually occupies 3 bytes of memory. Therefore, for example, a 424 * 256
pixel uncompressed image will usually be around 318 kilobytes.
A program is a set of instructions telling a computer how to perform a specific task.

A high level language is one that is close to human language. It is easier to understand than low
level languages allowing programmers to write programs quicker, debug and maintain them more
easily, and making it easier to read and understand the source code. Many high level languages are
portable and can be used on many different types of computer. They require no knowledge of the
hardware and instruction set on the computer allowing the programmer to focus on the problem to
be solved. Low level languages relate to specific architecture and hardware of a particular
computer, either referring to machine code (binary instructions), or an assembly language (which
needs to be translated to machine code). Machine code is difficult to understand as it is written
entirely in binary. Usually it is shown in hexadecimal to make it easier to understand, but assembly
language is used much more commonly.

Translators convert assembly language and high level languages into the binary instructions that a
computer can understand. Humans find it very difficult to understand binary and computers can
only perform operations in binary – therefore it is necessary to convert programs into binary. There
are different types of translators:
* Compilers: convert a high-level language into machine code that can be used directly by a
computer – once compiled it can be re-used again and again using the produced executable file. One
high level language statement can be converted into several machine code instructions. Compiled
programs can be used without the assembler and are usually distributed for general use.
* Interpreter: convert a high-level language into machine code that is used run-time – the code is
read line by line, converted, and executed. It must be interpreted again to re-run the file. Interpreted
programs cannot be used without the interpreter and are therefore often used while developing. One
high level language instruction may require several machine code instructions to be executed.
* Assembler: converts assembly language into machine code that can be used directly by a
computer – once compiled it can be re-used again and again using the produced executable file. One
low-level language statement is usually equal to one machine code instruction. Assembled programs
can be used without the assembler and are usually distributed for general use.

Syntax errors occur when a statement does not obey the rules of the programming language and
therefore the translator cannot understand it. A compiler will produce a list of all syntax errors at the
end instead of producing an executable file. An interpreter will pause execution and allow the
programmer to correct the error – after that it continues until the next error is found or the task
finishes. A logical error occurs when the program doesn’t do what the programmer intended – the
statements are correct, but the program produces unexpected results. They can be found by tracing
what the program does and comparing results to expected results. An integrated development
environment contains an editor with debugging tools helping programmers to develop and debug.

Hacking – the act of gaining illegal access to a computer system. This can lead to identity theft or
loss of personal information. Data can also be corrupted, deleted, or changed. Measures to prevent
this include strong passwords, firewalls, and anti-hacking software.
Cracking – the act of editing a programs source code to exploit and change it for a specific
malicious purpose.
Viruses – program or program code that can replicate itself with the intention of deleting or
corrupting files or causing a computer to malfunction. It can cause a computer to crash, stop
functioning, and can delete or corrupt files and data. Measures to prevent this include user caution,
including not using unknown or untrusted software, and anti-virus software (which compares files
to known viruses using a database and removes them if needed).
Phishing – a legitimate looking email sends a user to a fake website risking loss of personal data
leading to fraud and identity theft. Many ISPs filter out these emails – however users should use
caution.
Pharming – malicious code on a hard drive or server will redirect you to a fake website. This can
lead to fraud and identity theft. However, anti-spyware software can prevent this, and users should
use caution to make sure they are on correct sites – for instance, a https padlock sign next to the
URL indicates that SSL authentication has been successfully established.
Wardriving – breaking into and using wireless internet connections illegally – can result in a users’
internet allocation or bandwidth being used up. It can also be used to hack into the wireless network
to gain access to personal data. However, use of WEP encryption, use of complex passwords, and
use of firewalls can prevent this.
Spyware – software that monitors key presses and sends them back to the person who sent the
software – gives the originator access to all data entered by keyboard. This can result in fraud and
identity theft. Anti-spyware software and using a mouse to select characters instead of a keyboard
can prevent this.

A cookie is a packet of information sent by a web server to a browser. Cookies are generated each
time the user visits the website. Every time a user visits a website cookies will collect information
thus allowing the website to save user preferences and track users. They do not have any code so
they are not a security threat; however some people are concerned about the information they
collect which forms an anonymous user profile – even though it doesn’t contain sensitive personal
information some still think they collect too much.

Data can be lost accidentally or through malfunctions. Use of regular backups can allow recovery of
lost or corrupted data. Saving data on a regular basis also helps to prevent data loss. An
uninterruptible power supply can help prevent power loss causing malfunction. Also, training of
operators in correct procedures will help to prevent incorrect operation causing data loss.

Firewalls can either be software or hardware. It sits between a users computer and a network
examining the traffic between them and checking if it meets criteria. If it fails the criteria the traffic
will be blocked and an alert will be generated. Also, all traffic is logged and can be checked by the
user. Criteria can prevent access to undesirable sites and also help to prevent viruses or hackers
entering the computer. Finally, they warn the user if software is attempting to communicate over a
network allowing the user to allow it to go ahead or block it. The firewall can be a hardware
interface between the computer and internet connection – often referred to as a gateway.
Alternatively it can be software, usually part of the operating system. However, it cannot prevent
individuals from bypassing the firewall using their own modems, and it can be disabled allowing
harmful traffic to enter. All these issues require control in order to ensure that the firewall can do its
job effectively. Proxy servers act as an intermediary between a user and web server, forwarding and
filtering requests between the user and web server. Also by using a cache they can speed up access
since data is downloaded from a cache instead of downloading directly from the web server.

Security protocols allow secure communication. SSL (Secure Sockets Layer) is one of these – it
encrypts the data so that only the web server and user’s computer can make sense of the transmitted
data. The user’s web browser will first send a message to the web server so it can connect with the
required website secured by SSL, and then will request that the web server identify itself. The web
server will send a copy of its SSL certificate to the web browser – if the browser can authenticate
this certificate, it sends a message which allows communication to begin – the web server
acknowledges this and encrypted two way transfer begins. Transport Layer Security is similar to
SSL but is more up to date. It is designed to prevent unauthorized people from hacking into the
communication. It has two layers – a record protocol and handshake protocol; the former contains
the actual data while the latter permits the website and client to authenticate each other and use
encryption algorithms. TLS also uses session caching improving performance compared to SSL –
TLS can attempt to resume an existing session boosting performance. Also, TLS can be updated in
the future with new authentication methods.
Encryption is used to protect data from hacking, making it meaningless. Symmetric encryption uses
a combination of characters – if the key is applied to a message, its content is changed, making it
unreadable unless the recipient has the same decryption key. The sender has to send the key to the
recipient however, posing a security risk as it could be intercepted. Therefore, key distribution is
often done using another algorithm which will produce the same key on both ends. For example, if
the sender chooses x = 2, and puts this into an algorithm 7X MOD 11 and sends the value calculated,
5, to the recipient. The recipient also chooses a value, e.g. y = 4 and puts this into the same
algorithm: 74 MOD 11. They then send the value calculated, 3, to the sender. At both ends they put
the received value into the algorithm again which should give the same value on both ends. For
instance, 32 MOD 11 is equivalent to 54 MOD 11 – 9. Thus, both sender and receiver end up with
the same encryption key.

Asymmetric encryption uses two keys – a private key which is only known to the user and a public
key which is available to everyone. User A can apply a symmetric key to encrypt the message, then
encrypts the symmetric key using the public key. The message is then sent over the internet, and
user B decrypts the symmetric key by applying their own private key; the decoded symmetric key is
then used to decrypt the message sent by user A. Often, encryption keys are generated with a
hashing algorithm which takes a message or key and converts it to a string of characters in hex
notation, making the message and key impossible to read. The same algorithm has to be applied at
both ends. The encryption algorithm converts messages into meaningless text – the same key has to
be applied to decrypt the message. A hashing algorithm is then applied to the key which converts it
into a string of characters virtually impossible to break – this increases security. Plain text is the
normal representation of data before it goes through an encryption algorithm, while cipher text is
the output from the algorithm.

Authentication is used to ensure that data comes from a trusted source. Often, an username and
password are used to log in to systems – they are checked against a secure file, and if they do not
match, access is denied.

Digital signatures are another method – a message is put through a hashing algorithm and encrypted
with a private key, then sent over the internet. The hash is decrypted with a public key and the two
hash numbers are compared to see if the message has been altered.

Biometrics rely on the characteristics of human beings including fingerprint scans, retina scans, face
recognition, and voice recognition.

A denial of service attack occurs when an attacker overloads a network preventing access. If a
server is overloaded by many requests at the same time, it cannot handle legitimate requests. Also,
some email accounts have a quota of messages – if an attacker sends out many spam emails this will
prevent the target from receiving legitimate emails. A user or website can prevent this by using a
malware or virus checker, setting up a firewall to filter out unwanted traffic, and applying email
filters to filter out unwanted emails.

Banks use many different methods of security for online banking including making people enter a
unique code, followed by random numbers from a PIN and password. Other banks use a card reader
which generates a code from an internal clock and PIN – the banks server and the card reader are
synchronized – the server calculates the code and compares them – each code is only valid for a few
minutes before it has to be regenerated. Some systems ask users to enter data using their mouse to
prevent spyware / key-logging. Finally, many banks ask for personal data to confirm the users
identity.
Computer ethics are principles regulating the use of computers considering intellectual property
rights (copyright and plagiarism), privacy issues, and the effects of computer on society (social
impacts).

Free software is based on liberty, not price – the user can study and modify the source code and use
the software for any legal purpose. They can redistribute the software freely. However, they cannot
infringe copyright laws of other software which is not free software.

Freeware can be downloaded free of charge and has no fees associated with the use of the software,
but is subject to copyright laws and usually cannot read or modify the source code.

Shareware allows users to use software free of charge for a trial period – after that the author will
request that you pay a fee to keep using. However, the trial version is often missing features found
in the full version, which aren’t available until the fee is paid. This software is fully protected by
copyright laws and cannot be redistributed.
A computer system is composed of people, communications, data, software, and hardware. Each
can be subdivided repeatedly into subactions until each
subaction only performs a single action. Computer
systems can be very large or very small – e.g. the internet
is very large, while an alarm application is very small. To
understand how a computer system is built up and how it
works it is often divided into subsystems – top-down
design. This can be represented by a structure diagram –
each subsystem can then be shown using flowcharts or
pseudocode. Each subsystem will form a subroutine – a
set of programming instructions that do a specific
subaction.

Flowcharts show the steps required for a subaction as a diagram. They effectively communicate the
algorithm that shows how the subsystem works. Pseudocode uses code-like statements and
mathematical operators.

An algorithm sets out the steps to complete a given task, usually shown as a flowchart or
pseudocode. By studying the flowchart or algorithm anyone should be able to work out the purpose
of the task. Some tasks are required frequently such as taking the square root of a number – these
functions can be provided as a library routine – a pre-tested sub-routine that is available to use.

Test data is used to check if the algorithm is working as it should – each subsystem is usually tested
separately before the system is checked as a whole. Normal test data consists of all the items of data
required to work through a solution along with the expected result – the actual result should be
equal to the expected result. Testing also needs to show that the solution does not give incorrect
results – any erroneous data should be rejected by the solution, as the values are not suitable.
Extreme data is used to test when only a range of numeric data will be accepted – they are the
smallest and largest values which should be accepted. Boundary data is used to test that the largest
and smallest values occur – i.e. at each boundary there should be two values; one should be rejected
and the other accepted.

Validation involves checking input to make sure that only reasonable data is accepted. Verification
involves checking that data does not change when entered. Types of validation checks include:
- Range checks: only numbers within a specific range are accepted.
- Length checks: only an exact number or reasonable number of characters can be entered.
- Type check: data must be a given data type (e.g. integer)
- Character check: string data must not contain invalid characters or symbols
- Format check: data must conform to a pre-defined pattern
- Presence check: data must be entered and not left blank.
- Check digit: a digit in a numeric code is calculated from all the other digits using an algorithm.

Tyres of verification include double entry, a manual check by the user entering the data, a parity
check, and checksum calculation.

Trace tables can be used to test a solution by recording the value of each variable at each point in
the algorithm. This manual exercise is called a dry run. A trace table is set up with a column for
each variable and for any output. This can be used to check the output to ensure it is correct.

Effectiveness of a solution checks if the solution works for all data sets, if it has any unnecessary
processes, if any actions are repeated more than necessary, and if the solution can be simplified.
To create an algorithm follow the following steps:
1. Make sure the problem is clearly specified.
2. Break down the problem using top-down design. Most problems can be subdivided into set up,
input, processing, and output.
3. Decide how data will be stored, what will happen to it, and how results will be displayed.
4. Decide on how the algorithm will be constructed using a flowchart and pseudocode.
5. Construct the algorithm, setting it out clearly and using meaningful names. Make sure it can be
easily understood and read.
6. Use test data and trace tables to find any errors.
7. Repeat the process until no errors are found.

Pseudocode:
Assignment: ← is used to assign the values on the right to an item or variable on the left. The
expression on the right can be a single value or several values combined with mathematical
operators.

Conditional statements: these are used to decide what action to take according to the value of a
variable. There are two types – IF… THEN… ELSE… ENDIF and CASE… OF…
OTHERWISE… ENDCASE.

For an IF condition the THEN path follows if the condition is true – the optional ELSE path is
followed if the condition is false. The end of the statement is shown by ENDIF. The condition can
either use comparison operators (e.g. <> (“not equal to”), AND, OR, NOT, or >=) or a Boolean
variable – for instance:
IF Found
THEN PRINT “Success”
ELSE PRINT “Failure”
ENDIF

IF statements can be nested as part of the THEN or ELSE path of the first IF statement.
A CASE condition checks the value of the variable to decide the path to be taken – several cases are
usually specified. OTHERWISE is the path to be taken for all other variables. The end of the
statement is shown by ENDCASE.
CASE Choice OF
1 : Answer ← Num1 + Num2
2 : Answer ← Num1 – Num2
OTHERWISE PRINT “Please enter a valid choice”
ENDCASE

Loop structures are used to repeat parts of an algorithm. To perform a set number of iterations,
FOR… TO… NEXT is used. To perform an unknown number of iterations that must run at least
once, REPEAT… UNTIL is used. To perform an unknown number of iterations that might never
run at all, WHILE… DO… ENDWHILE is used.
FOR… TO… NEXT starts at a start value and increments it in steps of one until the end value is
reached and iteration finishes – the variable can be used within the loop as long as it does not
change.
REPEAT… UNTIL is used when actions are repeated until a condition becomes true – the actions
in this loop always occur at least once.
WHILE… DO… ENDWHILE is used when actions are repeated while a condition is true – if it is
not true when the loop is first entered the actions are never performed.
INPUT and OUTPUT or PRINT are used to input and output values.
Standard actions are repeated many times – such as incrementing a running total or counter.
Flowcharts show algorithms as diagrams. Symbols used include:
Terminators: Process: IO: Decision

Data Types -
Integer: a positive or negative whole number
Real number: a positive or negative number with a fractional part
Char: a variable or constant that is a single character
String: a variable or constant several characters in length
Boolean: can have two values – TRUE or FALSE

Sequence: statements are followed in sequence line by line.


Selection: data items and different code paths are picked out according to given criteria and
conditional statements.
Repetition: code blocks are iterated over using loops
Totalling: used with repetition; the total is updated each time the loop is repeated
Counting: counting is used with repetition; the counter is increased by 1 or decreased by 1 every
time the loop is repeated.

Arrays: a one-directional array can be set up to store data of the same type. It must be decided what
the array will be used for so it can have a meaningful name, how many items will be stored, so the
size can be determined, what sort of data is to be stored, so the array can have the appropriate data
type.

For instance, an array to store all the marks of a student could be called “StudentMarkTest”. The
number of students in the class would be the number of items. All the numbers would be whole
numbers so integers would be the data type.

A variable can be used as the index in an array. This allows each item to be referred to using the
index number of each element. For instance, StudentMarkTest[Counter] = int(input(“Please enter
mark: “))

Values in an array can be written to or read from using a FOR… TO… NEXT loop. For instance,
ConstNoStudents = int(30)
for Counter in range(1, ConstNoStudents+1):
StudentMarkTest[Counter] = int(input(“Please enter mark: “))

Validation checks should be used when storing data – e.g. only positive integers would be allowed
in the above case.

Databases are used to store data. Data is only stored once and the same data is used by everyone – if
any changes are made it only has to be done once. This prevents data problems. Databases consist
of tables containing records (rows) consisting of several fields (cells). Each table contains data
about one type of thing – e.g. a table of patients. Each record contains data about a single thing (e.g.
an individual patient). Each field contains a specific piece of information about that thing (e.g. the
first name of the patient). In order to prevent more than one copy of the same record being kept and
to allow it to be found easily, each record has a unique primary key field. This can be a unique field
that is already used or a new field added to each record. It can also consist of two fields together –
e.g. a date and time field. Queries can be used to extract specific information from the tables.

S-ar putea să vă placă și