Data Representation
Number Systems
Binary System
Base 2 number system
It has two possible values only (0 and 1)
0 represents OFF, and 1 represents ON
A point to be noted is that the most left bit is called the MSB (Most
Significant Bit)
Denary System
Base 10 number system
Has values from 0 to 9
Hexadecimal
Base 16 number system
Have values from 0 to 9 followed by A to F
A represents 10, B represents 11 and so on until 15, which is F
Binary Hexadecimal Denary
Value Value Value
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
Number Conversions
Converting Binary to Denary
Place the binary value in columns of 2 raised to the power of the number
of values from the right starting from 0. e.g. For binary value 11101110,
place it in a table like this:
12 6 3 1
8 4 2 1
8 4 2 6
1 1 1 0 1 1 1 0
As can be seen it starts from 1 and then goes to 128 from left to
right
Now values with 1 are to be added together, giving the final answer,
as for the example, it is 128 + 64 + 32 + 8 + 4 + 2 = 238
Converting Denary to Binary
Take the value and successively divide it by 2, creating a table like follows:
14
2
2
Remainde
2 71 0
r:
Remainde
2 35 1
r:
Remainde
2 17 1
r:
Remainde
2 8 1
r:
Remainde
2 4 0
r:
Remainde
2 2 0
r:
Remainde
2 1 0
r:
0 Remainde 1
14
2
2
r:
Note that when the value itself is not divisible by 2, it is divided by the
previous value of the current number and 1 is added to the remainder
column for that specific number
When you reach 0, the remainder has to be read from bottom to top giving
us the binary value ( as in this case, it is 1 0 0 0 1 1 1 0 )
Converting Hexadecimal to Binary
Separate each value from each other and convert them to denary
Each separate denary value to be converted to binary
All the binary values to be merged together
e.g.
Converting Binary to Hexadecimal
Divide the binary value into groups of 4 starting from the right. If at the
end, the last division is less than 4, add 0s until it reaches 4
For each group, find the denary value as shown above, and then convert
each denary value to its corresponding hexadecimal value (if less than 10,
then itself, else, 10 is A, 11 is B, 12 is C, 13 is D, 14 is E and 15 is F).
After conversion, just put all the hexadecimal values in order to get the
final answer
Converting Hexadecimal to Denary
Convert the value to binary as shown above, and then convert the final
answer to denary
Converting Denary to Hexadecimal
Convert the value to binary, and then convert it to hexadecimal as
explained above
Binary Calculations
Binary values are not added the way denary values are added, as when
adding 1 and 1, we cannot write two because it doesn’t exist in binary.
Points to Note:
0 + 0 =0
1 + 0 /0+1=1
1 + 1 = 0 (1 carry)
1 + 1 + 1 = 1 (1 carry)
Overflow
When adding two values, if the solution exceeds the limit of given values,
e.g., the solution has 9 bits, but the question had 8 bits per value, the 9th
bit (most left bit) is called overflow.
This indicates that the memory doesn’t have enough space to store the
answer to the addition done in the previous part.
Steps to add Two Values (With Example)
The values we will add are 1 1 0 1 1 1 0 and 1 1 0 1 1 1 1 0
1. Convert both the bytes into 8 bits (add zero to the left-hand
side to match them).
e.g., 1 1 0 1 1 1 0 would become 0 1 1 0 1 1 1 0
2. Add the values as follows with the points given above
Carry 1 1 1 1 1 1 1
Byte 1 0 1 1 0 1 1 1 0
Byte 2 1 1 0 1 1 1 1 0
OVERFLO
Carry 1 1 1 1 1 1 1
W
Solutio
1 0 1 0 0 1 1 0 0
n
Note: We move from RHS to LHS, and when adding values, we use the
rules given above. If the bit crosses the limit (overflows), we put the value
in brackets, denoting it is overflow.
Logical Shifts
The logical shift means moving a binary value to the left or the right
When doing a logical shift, keep in mind that the bit being emptied is
going to become 0
Explanation with Example
Shifting 10101010 - 1 place left:
1. The furthest bit in the direction to be logically shifted is removed
( in this case, one at the LHS is removed) - ==(if it were two places,
2 bits would have been removed)==
2. Every bit is moved in given places to the given direction ( every bit
is moved one place to the left in this case, and the leftover bit in the
right is marked 0, so 10101010 would become 01010100)
Two’s Complement (Binary Numbers)
Two’s complement is a method used to represent negative values in
binary. Here, the MSB ( Most Significant Bit) is replaced from 128 to -128;
thus, the range of values in a two’s complement byte is -128 to 127
Converting Binary Values to Two’s Complement
Firstly, write the binary value and locate the first one from the right; e.g.,
1101100 would have the first one at the third position from the right.
Now, switch every value to the left of the first one located above (not
switching the one), e.g., the value in our example becomes 0010100,
which is the two’s complement of itself.
Converting negative values to two complement
Find the binary equivalent of the value ignoring the - sign
Convert the binary value to two’s complement
Make the MSB 1, if not already
Converting Two’s Complement Value to Denary:
We do it the same way as a normal value is converted from binary to
denary; we only replace 128 with -12,8 e.g., for 1011101,0 we do the:
-
6 3 1
12 8 4 2 1
4 2 6
8
1 0 1 1 1 0 1 0
-128 + 32 + 16 + 8 + 2 = -70
Use of the Hexadecimal System
Examples:
Defining colours in Hypertext Markup Language (HTML)
Media Access Control (MAC) addresses (a number that uniquely identifies a
device on a network)
Assembly languages and machine code
Memory Dumps
Debugging (method to find errors in a program)
Display error codes (numbers refer to the memory location of the error)
IP (Internet Protocol) addresses
Memory Dumps
Hexadecimal is used when developing new software or when trying to
trace errors.
Memory dump is when the memory contents are output to a printer or
monitor.
Assembly code and machine code (low-level languages)
Computer memory is machine code/ assembly code
Using hexadecimal makes writing code easier, faster, and less error-prone
than binary.
Using machine code (binary) takes a long time to key in values and is
prone to errors.
Text, Sound and Images
ASCII
The standard ASCII code character set consists of 7-bit code that
represents the letters, numbers and characters found on a standard
keyboard, together with 32 control codes
Uppercase and lowercase characters have different ASCII values
Every subsequent value in ASCII is the previous value + 1. e.g. “a” is 97 in
ASCII, “b” will be 98 (which is 97 + 1)
Important ASCII values (in denary) to remember are as follows:
0 is at 48
A is at 65
a is at 97
ASCII uses one byte to store the value
When the ASCII value of a character is converted to binary, it can be
seen that the sixth-bit changes from 1 to 0 when going from
lowercase to uppercase of a character, and the rest remains the
same. e.g.
Unicode
ASCII does not contain all of the international languages thus,
Unicode is used to solve this problem
The first 128 values are the same as ASCII.
Unicode supports up to four bytes per character, storing multiple
languages and more data.
To represent text in binary, a computer uses a character set,
a collection of characters and the corresponding binary
codes that represent them.
Sound
Sound is analogue, and for it to be converted to digital form, it is sampled
The sound waves are sampled at regular time intervals where the
amplitude is measured. However, it cannot be measured precisely, so
approximate values are stored
How is Sound Recorded
The amplitude of the sound wave is first determined at set time intervals
The value is converted to digital form
Each sample of the sound wave is then encoded as a series of binary digits
A series of readings gives an approximate representation of the sound
wave
Sampling Resolution:
The number of bits per sample is known as the sampling resolution (aka
bit depth)
Increasing the sampling resolution increases the accuracy of the sampled
sound as more detail is stored about the amplitude of the sound.
Increasing the sampling resolution also increases the memory usage of the
file as more bits are being used to store the data.
Sampling Rate
The sampling rate is the number of sound samples taken per second,
which is measured in Hertz (Hz)
A higher sampling rate would allow more accurate sound as fewer
estimations will be done between samples.
Images
Bitmap Images
Bitmap images are made up of pixels
A bitmap image is stored in a computer as a series of binary numbers
Colour Depth
The number of bits representing each colour is called the colour depth.
An 8-bit colour depth means that each pixel can be one of 256 colours
(because 2 to the power of 8 = 256)
A 1-bit colour depth means each pixel can store one colour (because 2 to
the power of 1 is 2) - ( This is done as the bit can either be 0 or 1, with 0
being white and 1 being black)
Increasing colour depth increases the size of the file when storing an
image.
Image Resolution
Image resolution refers to the number of pixels that make up an image; for
example, an image could contain 4096 × 3072 pixels.
Photographs with a lower resolution have less detail than those with a
higher resolution.
When a bitmap image is ‘ blurry ‘ or ‘ fizzy ’ due to having a low amount of
pixels in it or when zoomed, it is known as being pixelated.
High-resolution images use high amounts of memory as compared to low-
resolution ones.
Measurement of the Size of Computer
Memories
A binary digit is referred to as a BIT
8 bits is a byte
4 bits is a nibble
Byte is used to measure memory size
IECB System (Most Common)
Name of memory No. of Equivalent Denary
size Bytes Value
1 kibibyte (1KB) 210 1 024 bytes
1 mibibyte (1MB) 220 1 048 576 bytes
1 gibibyte (1GB) 230 1 073 741 824 bytes
1 tibibyte (1TB) 240 1 099 511 627 776 bytes
1 125 899 906 842 624
1 pibibyte (1PB) 250
bytes
Conventional System
Name of memory No. of Equivalent Denary
size Bytes Value
1 kilobyte (1KB) 103 1 000 bytes
1 megabyte (1MB) 106 1 000 000 bytes
1 gigabyte (1GB) 109 1 000 000 000 bytes
1 terabyte (1TB) 1012 1 000 000 000 000 bytes
1 000 000 000 000 000
1 petabyte (1PB) 1015
bytes
Calculation of File Size
The file size of an image is calculated as: image resolution (in pixels) ×
colour depth (in bits)
The size of a mono sound file is calculated as: sample rate (in Hz) ×
sample resolution (in bits) × length of sample (in seconds).
File Types
Musical Instrument Digital Format (MIDI)
Storage of music files
A communications protocol that allows electronic musical instruments to
interact with each other
Stored as a series of demands but no actual music notes
Uses 8-bit serial transmission (asynchronous)
Each MIDI command has a sequence of bytes:
o The first byte is the status byte – which informs the MIDI device
what function to perform
o Encoded in the status byte is the MIDI channel (operates on 16
different channels)
Examples of MIDI commands:
o Note on/off: indicates that a key has been pressed
o Key pressure: indicates how hard it has been pressed (loudness of
music)
Needs a lot of memory storage
MP3
Uses technology known as Audio Compression to convert music and other
sounds into an MP3 file format
This compression reduces the normal file size by 90%
o Done using file compression algorithms which use Perceptual Music
s haping
o Removes sounds that the human ear cannot hear properly
o Certain sounds are removed without affecting the quality too much
CD files are converted using File Compression Software
Use lossy format as the original file is lost following the compression
algorithm
MP4
This format allows the storage of multimedia files rather than just sound
Music, videos, photos and animations can be stored
Videos could be streamed without losing any real discernible quality
Joint Photographic Experts Group (JPEG)
JPEG is a file format used to reduce photographic file sizes
Reducing picture resolution is changing the number of pixels per
centimetre
When a photographic file undergoes compression, file size is reduced
JPEG will reduce the raw bitmap image by a factor between 5 and 15
Lossless and Lossy File Compression
Lossless File Compression
All the data bits from the original file are reconstructed when the file again
is uncompressed.
Important for files where the loss of data would be disastrous
(spreadsheet)
An algorithm is used to compress data
No data is lost
Repeated patterns/text are grouped together in indexes
Run-Length Encoding
It reduces the size of a string of adjacent, identical data (e.g. repeated
colours in an image)
A repeating string is encoded into two values: the first value represents
the number of identical data items (e.g. characters), and the second value
represents the code of the data item (such as ASCII code if it is a keyboard
character), e.g. ‘aaaaabbbbccddddd’ becomes “05 97 04 98 02 99 05
100.”
RLE is only effective where there is a long run of repeated units/bits
One difficulty is that RLE compression isn't perfect for strings like
"cdcdcdcdcd". We use a flag to solve this; e.g. 255 can be made the flag.
Now 255 will be put before every repeating value, e.g. our previous
example becomes 255 05 97 255 04 98 255 02 99 255 05 100 where 255 now
indicates that the next character/set of characters is approaching
Lossy File Compression
The file compression algorithm eliminates unnecessary data bits like MP3
and JPEG formats.
It is impossible to get the original file back once it is compressed
Reduces file quality
In this, the image's resolution and colour depth are reduced.
Data Transmission
Types and Methods of Data Transmission
Data Packets
Packet Structure -
o Header
Contains the IP address of the sender and the receiver
The sequence number of the packet
Size of the packet
o Payload
Contains the actual data
o Trailer
Includes a method of identifying the end of the packet
Error-Checking methods
Packet Switching - Method of data transmission where the data is broken
into multiple packets. Packets are then sent independently from start to
end and reassembled at the receiver’s computer.
Advantages Disadvantages
There is no need to create a
Packets may be lost
single line of communication
Possible to overcome failed or More prone to errors in real-time
busy nodes streaming
Delay at the receiver while the
High data transmission speed
packets are being re-ordered
Easy to expand package usage
Data Transmission
Simplex data transmission is in one direction only (e.g. computer to
printer)
Half-duplex data transmission is in both directions but not at the same
time (e.g., in a phone conversation where only one person speaks)
Full-duplex data transmission is in both directions simultaneously (e.g.
broadband connection on the phone line)
Serial data transmission is when data is sent one bit at a time over a
single wire
Parallel data transmission is when data of several bits (1 byte) are sent
down several wires at the same time.
Comparison of Serial and Parallel Data Transmission
Serial Parallel
Better for longer distances Better for short distances
(Telephone Lines) (Internal circuits)
Expensive (More hardware
Cheaper Option
required)
Used when the size of data
Used when speed is necessary
transmitted is small
Slower Option Faster than Serial
Universal Serial Bus (USB)
USB is an asynchronous serial data transmission method
USB consists of:
o Four-wire shielded cable
o Two wires are used for power and earth
o Two wires are used in data transmission
Advantages Disadvantages
Transmission rate is less than 120
Automatically detected
MB/sec
Only fit one way, prevents incorrect Maximum cable length is about 5
connections metres
Different data transmission rates
Backwards compatible
Industry-standard
Methods of Error Detection
Parity Checks
It uses the number of 1-bits in a byte
Type Types -
o Even - Even number of 1-bits
o Odd - Odd numbers of 1-bits
Example (Even Parity) -
0 1 0 1 1 0 1 0
The LMB (Left-Most Bit) is the parity bit. As the number of 1s is
even, the parity bit would be set to even.
Limitations with Parity Checks
Two bits may change during transmission; therefore error is not
found
Even though the parity checks would reveal the errors, the bit(s)
changed wouldn’t be identified
Parity Blocks
To overcome the limitations of parity bits, Parity blocks would be used.
Any changes in bits would be identified through the rows and columns
Checksum
Whenever a block of data needs to be sent, the sender would calculate the
checksum value using a specific algorithm.
Once the data has been sent, The receiver would calculate the checksum
again with the same set of data and the same algorithm used before.
The receiver would then compare the value received and the newly
calculated value. If they aren’t matched, A request is made to re-send the
data.
Echo Check
Once the data has been sent, The receiver will send the data back to the
sender for verification.
The sender would compare the received and original data for errors.
The only downside is that we wouldn’t know if the error occurred when
sending the data or sending the data back for verification.
Check Digits
Check digits are calculated from all the other digits in the data (ex-codes).
The check digit would be the last digit of the code.
These are used to identify mistyping errors such as -
o 6372 typed as 6379
o 8432 typed as 842
Automatic Repeat Requests (ARQs)
Uses acknowledgements and timeouts to make sure the user received the
data
The receiver would check the data for any errors; if none are found, a
positive acknowledgement is sent to the sender. However, if errors are
found, a negative acknowledgement will be sent, and the data will be sent
again.
The sender uses timeouts to wait for a pre-determined amount for the
acknowledgement.
If no acknowledgements are received after the timeout, the data will be
sent again to the receiver.
Encryption
Encryption is a process of turning the data into an unreadable form so it
doesn’t make sense to hackers and other attackers.
Plaintext and Ciphertext
Plaintext is the original data that is being sent
Ciphertext is the text produced after encryption
Symmetric and Asymmetric Encryption
Symmetric Encryption:
o It uses an encryption key for the encryption process; the same key
is used for encrypting and decrypting the data.
Asymmetric Encryption:
o Uses a public key and a private key. The public key is available to
everyone, whereas the private key is only available to the user.
o The receiver would have the private key, and they would send the
public key to the sender. The sender can encrypt the message with
the public key, and the data can be decrypted using the private key.
Hardware
Computer Architecture & Von Neumann
Architecture
The central processing unit (CPU) (also known as a microprocessor or
processor) is central to all modern computer systems
The CPU consists of the following architecture:
Processor: The processor contains the Arithmetic and Logic Unit (ALU)
Control Unit: The control unit controls the operation of the memory,
processor and input/output devices
Arithmetic Logic Unit: Carries out the logic system like calculations
System Clock: The system clock is used to produce timing signals on the
control bus
Busses: Carry data through components. The following are its types.
Address bus – unidirectional
Data Bus – bi-directional
Control Bus – bi-directional
Immediate Access Store: Stores the instructions that are to be
processed, which are fetched by the CPU
The following registers also exist in the architecture:
REGIST
ABBREVIATION DEFINITION
ER
Current instruction Stores the instruction the CPU is
CIR
register currently decoding or executing
Memory address Stores the Address of the instruction,
MAR
register copy it, and sends it to MDR
MDR Memory data Stores the Data from the address
register received from the MAR and sends data to
REGIST
ABBREVIATION DEFINITION
ER
CIR
Stores the address of the next instruction
PC Program counter
to be fetched from memory
During calculations, data is temporarily
ACC Accumulator
held in it
Source: Cambridge IGCSE and O Level Computer Science - Second Edition (Hodder
Education)
The Fetch-Execute Cycle
1. PC contains the address of the next instruction to be fetched
2. This address is copied to the MAR via the address bus
3. The instruction of the address is copied into the MDR temporarily
4. The instruction in the MDR is then placed in the CIR
5. The value in the PC is incremented by 1, pointing to the next instruction to
be fetched
6. The instruction is finally decoded and then executed
Stored Program Concept
Instructions are stored in the main memory
Instructions are fetched, decoded and executed by the processor
Programs can be moved to and from the main memory
Memory Concept
A computer’s memory is divided into partitions: Each partition consists of
an address and its contents, e.g.
MEMORY CONTEN
LOCATION T
0101011
10101010
0
Instruction Set:
An instruction set is a list of all the commands that a CPU can process,
and the commands are machine code
Cores, Cache and Internal Clock
System’s Clock
The clock defines the clock cycle that synchronises all computer
operations. By increasing the clock speed, the computer's
processing speed also increases. This doesn’t mean that the
computer's performance is increased, however.
Overclocking
Using a clock speed higher than the computer was designed for.
It leads to multiple issues.
Operations become unsynchronised - (the computer would frequently
crash and become unstable)
can lead to serious overheating of the CPU
Length of Data Buses
The wider the data buses, the better the performance of the
computer
Cache
Cache memory is located within the CPU itself
-- allows faster access to the CPU
-- stores frequently used instructions and data that need to be accessed
faster, which improves CPU performance
The larger the cache memory size, the better the CPU
performance
Cores
The more cores in the CPU, the better and faster the performance
But if any number of cores are used, it could possibly slow down the
system performance as the communication between each core increases,
and so do the data cables between each. Which in turn reduces the
potential system performance.
You might have heard about quad and dual cores, not septa or octa cores.
Input Devices
Two-dimensional Scanners:
Used to input hard-copy documents
The image is converted into an electronic form which can be stored in the
computer
o Document is placed on a glass panel
o A bright light illuminates the document
o A scan head moves across the document until the whole page is
scanned. And image of the document is produced and sent to a lens
using a series of mirrors
o The lens focuses the document image
o The focused image now falls onto a charge couple device
(CCD) which consists of a numbers of integrated circuits
o Software produces a digital image from the electronic form
Optical Character Recognition (OCR) is a software which converts scanned
documents into a text file format
If the original document was a photo/image, then the scanned image
forms an image file such as JPEG
Three-dimensional Scanners
3D scanners can scan solid objects and produce a three-dimensional
image
Scanners take images at several points, x, y and z (lasers, magnetic, white
light)
The scanned images can be used in Computer Aided Design (CAD) or to a
3D printer to produce a working model
Application of 2D Scanners at an Airport:
Make use of (OCR) to produce digital images which represent the passport
pages
Text can be stored in ASCII format
The 2D photograph in the passport is also scanned and stored as jpeg
image
The passenger’s face is also photographed using a digital camera and
compared using face recognition software
Key parts of the face are compared (distance between eyes, width of nose)
Barcode readers/scanners
A barcode is a series of dark and light parallel lines of varying thicknesses
The numbers 0 -9 are each represented by a unique series of lines
The left and right hand sides of the barcode are separate using guard bars
Allows barcode to be scanned in any direction
o Barcode is read by a red laser or red LED
o Light is reflected back off the barcode; dark areas reflect little light
which allows the bars to be read
o Reflected light is read by sensors (photoelectric cells)
o The pattern is generated, which is converted to digital
Quick Response (QR) Codes
Another type of barcode is the QR codes
Made up of a matrix of filled-in dark squares on a light background
Can hold more storage (7000 digits)
Advantages of QR codes:
o No need for the user to write down the website address
o QR codes can store website addresses
Digital Cameras
It is controlled by a microprocessor that adjusts the shutter speed, focuses
the image, etc.
Photo is captured when light passes through the lens onto a light sensitive
cell
The cell is made up of pixels
The number of pixels determines the size of the file
Keyboards
Connected to a computer with a USB connection or by wireless connection
Each character has an ASCII value and is converted into a digital signal
Slow method
Prone to errors
Pointing devices
Mouse/trackball
o Traditional; mechanical ball, connected by USB port
Modern type; red LEDs to detect movement
Microphones
Used to input sound to a computer
When a microphone picks up sound, a diaphragm vibrates, producing an
electric signal
The signal goes to a sound card and is converted into digital values and
stored in a computer
Voice recognition, voice is detected and converted into digital
Touchscreens
Capacitive (medium cost tech)
o Made up of many layers of glass
o Creating electric fields between glass plates in layers
o When the top layer of glass is touched, electric current changes
o Co-ordinates where the screen was touched are determined by an
on-board microprocessor
Infra-red heat (expensive)
o Use glass as the screen material
o Needs a warm object to carry an input operation
Infra-red optical (expensive)
o Uses glass as screen material
o Uses an array of sensors (grid form)
o Point of contact is based on which grid co-ordinate is touched
Resistive (inexpensive)
o The upper layer of polyester, the bottom layer of glass
o When the top polyester is touched, the top layer and bottom layer
complete a circuit
o Signals are then sent out, which are interpreted by a
microprocessor, determine where the screen was touched
Sensors
Devices that read or measure physical properties
Data needs to be converted to digital
Analogue-to-digital converter (ADC) converts physical values into digital
Sensors and their purposes:
o Acoustic - These sensors act like a microphone that converts sound
to electric pulses.
o Accelerometer - These sensors measure an object's acceleration or
deceleration and motion.
o Flow - This sensor measures the flow of liquid or gas.
o Gas - These sensors measure the amount/level of any gas in the
environment.
o Humidity - This sensor measures the water vapour in the air or any
sample.
o Infra-red (active) - This IR sensor uses an invisible infrared beam.
When the beam is broken/disturbed, it changes the amount of
infrared light reaching the detector.
o Infra-red (passive) - These sensors detect the heat emitted by any
type of object.
o Level - This sensor detects the solids, liquids, or gas level.
o Light - These devices use light-sensitive cells that generate electric
current based on light brightness.
o Magnetic field - This sensor detects the change in magnetic field.
o Moisture - This type of sensor detects the water content wherever
this sensor has been installed.
o pH - This measures the acidity or alkalinity.
o Pressure - This sensor measures the pressure applied
o Proximity - This sensor detects the nearby objects around the
sensor
o Temperature - These sensors measure the temperature of the
environment.
(Note: You do not need to know the working principle of the sensor. But
have an idea of their purposes.)
Control of Street Lighting
The light sensor sends data to the ADC
Digitised data and sends it to the microprocessor
Microprocessor samples data every minute
If data from sensor < value stored in memory:
o Signal sent from microprocessor to street lamp
o Lamp switched on
Output Devices
Inkjet Printers
Used to print one-off pictures and documents
1. Data from the document sent to the printer driver
2. The printer driver ensures data is in the correct format
3. Check made by printer driver that the chosen printer is available
4. Data is sent to printer, and stored in a temporary memory (printer buffer)
5. A sheet of paper is fed; the sensor detects if the paper is available in the
paper tray
6. The print head moves across paper printing text/image, four ink colours
sprayed in the exact amount
7. Paper is advanced, so next line is printed
8. Repeated until the buffer is empty
9. Once it is done, the printer sends an interrupt to the processor (request for
more data to be sent)
Laser Printers
Used to print flyers, high quality
Use dry powder ink (toner) and static electricity to produce text and
images
Prints the whole page in one go
1. (steps 1-4 same as inkjet)
2. Printing drum is given a positive charge; as the drum rotates, a the laser
beam is scanned across it, removing the positive charge leaves negatively
charged areas which match the text/image
3. The drum is then coated with positively charged toner; it only sticks to
negatively charged parts of the drum
4. A negatively charged sheet is rolled over the drum
5. The toner on the drum now sticks to the paper to produce a copy of the
page
6. Paper finally goes through a fuser (set of heated rollers); heat melts the
ink so it is permanent
7. The discharge lamp removes all electric charge from the drum, ready to
print next page
3D Printers
Used for models of cars
Produce solid objects that work
Built up layer by layer, using powdered resin, ceramic powder
A design is made using Computer-aided Design (CAD)
2D and 3D Cutters
3D cutters can recognise objects in x, y, z direction
3D laser cutters can cut; glass, crystal, metal, wood
Actuators
The actuators convert electrical signals to mechanical processes.
Used in many control applications involving sensors and devices (ADC and
DAC)
Loudspeakers/Headphones
Sound is produced by passing the digital data through a DAC then through
an amplifier and then emerges from the loudspeaker
Produced by voltage differences vibrating a cone in the speaker at
different frequencies
LCD and LED Monitors
The front layer of the monitor is made up of Liquid Crystal Display (LCD),
these tiny diodes are grouped together in threes as pixels (LCD doesn’t
emit any light)
LCD monitors are backlit using Light Emitting Diode (LED) because:
o LEDs reach their maximum brightness immediately
o LEDs sharpens image (higher resolution), and CCFL has a yellow tint
o LEDs improve the colour image
o Monitors using LED are much thinner than CCFL
o LEDs consume very little power
Before LEDs, LCD monitors were backlit using CCFL
CCFL uses two fluorescent tubes behind the LCD screen, which supplies
the light source
Light Projectors:
Two common types of light projectors:
o Digital Light Projector (DLP)
o LCD Projector
Projectors are used to project computer output onto larger
screens/interactive whiteboards
Digital Light Projectors (DLP)
Uses millions of micromirrors
the number of micromirrors and the way they are arranged on the DLP
chip determines the resolution of the image
When the micromirrors tilt towards the light source they are on
When the micromirrors tilt away from the light source, they are off
This creates a light or dark pixel on the projection screen
A bright white light source passes through a colour filter on its way to the
DLP chip
White light splits into primary colours
LCD Projectors
Older technology than DLP
A powerful beam of white light is generated from a bulb
This beam of light is then sent to a group of chromatic-coated mirrors;
these reflect the light back at different wavelengths
When the white light hits the mirrors, the reflected light has wavelengths
corresponding to red, green, and blue
These three different lights pass through three LCD screens; these screens
show the image to be projected as millions of pixels in grayscale
When the coloured light passes through the LCD screens, a red, green and
blue version of the grey image emerges
Finally, the image passes through the projector lens onto the screen
Source: Cambridge IGCSE and O Level Computer Science - Second Edition (Hodder
Education)
Memory, Storage Devices & Media
Primary vs. Secondary Storage
The CPU directly accesses primary storage
The CPU does not directly access secondary storage
RAM, ROM, and cache memory are some examples
HDD, SSD, DVD, memory stick, and Blu-ray disc are some examples
Primary Memory:
Random Access Memory (RAM)
RAM is used by a system when it needs to store and access data
immediately that is actively being used or processed by the user.
Features of RAM
o Volatile/temporary memory (contents lost if RAM is turned off)
o Used to store; data, files
o It can be written to or read from, and the contents of the memory
can be changed
The larger the size of the RAM, the faster the computer will operate
RAM never runs out of memory and continues to run slow
As RAM becomes full, the processor has to access the continually hard
drive to overwrite old data on RAM with new data
RAM is of two types:
DRAM (Dynamic RAM) and SRAM (Static RAM)
Source: Cambridge IGCSE and O Level Computer Science - Second Edition (Hodder
Education)
Virtual memory
When RAM runs out of memory, there is a problem with memory
management; thus, the system has a high chance of crashing. This is why
virtual memory comes into the picture.
The virtual memory can be either HDD or SSD (these storages are
discussed below)
You may be expected to draw a diagram like the above.
The main advantages of virtual memory are
o They can be larger than the physical memory provided in the RAM.
o Avoids the need to install/upgrade RAM, as it could be expensive
o The system wastes no storage on unwanted/unused data.
Read Only Memory (ROM)
Features of ROM
o Non-volatile/permanent memories (contents remain even when
ROM is turned off)
o Used to store start-up instructions (basic input/output systems)
o Data/contents of a ROM chip can only be read and cannot be
changed
Secondary Storage:
Hard Disk Drives (HDD)
Data is stored in a digital format on the magnetic surface of the disks
(platter)
A number of read/write heads can access all of the surfaces of the disk
Each platter will have two surfaces which can be used to store the data
Data is stored on the surfaces in sectors and tracks
HDD has very slow data access compared to RAM
Solid-State Drive (SSD)
There are no moving parts, and all data is received at the same time (not
like HDD)
Store data by controlling the movement of electrons within NAND chips, as
1s and 0s
Non-volatile rewritable memory
Benefits of using SSD rather than HDD:
o More reliable (no moving parts)
o Considerably lighter (suitable for laptops)
o Lower power consumption
o Run much cooler than HDDs
o Very thin
o Data access is faster than HDD
Drawback – questionable longevity (20GB per day)
Off-Line Storage:
CD/DVD Disks
Laser (red) light is used to read and write data on the surface of the disk.
Use a thin layer of metal alloy to store data.
Both systems use a single spiral track that runs from the centre of the disk
to the edge
DVD uses Dual-Layering, which increases the storage capacity (two
individual recording layers)
Blu-ray Disks
Uses a blue laser to carry out read-and-write operations
The wavelength of laser light is less than CD and DVD (stores up to five
times more data than DVD)
Automatically come with secure encryption (prevent piracy and copyright
infringement)
Used as backup systems
USB Flash Memories
Very small, lightweight, and suitable for transferring files
Small back-up devices for photo, music
Solid state, so needs to be treated with care
Cloud Storage:
Cloud storage is a method of data storage where data is stored on
remote servers
The same data is stored on more than one server in case of
maintenance or repair, allowing clients to access data at any time.
This is known as data redundancy.
The following are its types:
» Public cloud – this is a storage environment where the
customer/client and cloud storage provider are different companies
» Private cloud – this is storage provided by a dedicated
environment behind a company firewall; customer/client and cloud
storage provider are integrated and operate as a single entity
» Hybrid cloud – this is a combination of the two above
environments; some data resides in the private cloud, and less
sensitive/less commercial data can be accessed from a public cloud
storage provider
Embedded Systems
Combination of Hardware and Software which is designed to carry out a
specific set of tasks.
Embedded systems may contain -
o Microcontrollers - CPU, RAM, ROM and other peripherals on one
single chip
o Microprocessor - Integrated circuit with CPU only
o System on Chips (SoC) - microprocessor with I/O ports, storage and
memory
Process of Embedded Devices -
o Input from the user is sent to the microprocessor (ADC needed if the
data is analogue)
o Data from the user interface is also sent to the microprocessor
o Microprocessor then sends signals to actuators which is the output
Non-programmable devices need to be replaced if they need a software
update.
Programmable devices have two methods of updating -
o Connecting the device to a computer and downloading the update
o Updating automatically via a satellite, cellular or Wi-Fi link
< centre>Advantages and Disadvantages of using embedded systems
Advantages Disadvantages
Small in size, therefore can
Can be difficult to upgrade
easily fit into devices
Low cost to make The interface can be confusing sometimes
Requires very little power Troubleshooting is a specialist’s job
Very fast reaction to changing Often thrown away as difficult to upgrade
input and faults are harder to find
Dedicated to one task only Increased garbage as they are thrown away
Any computerised system is prone to
Can be controlled remotely
attacks
Applications of Embedded devices -
o GPS systems
o Security Systems
o Vending Machines
o Washing Machines
o Oven
o Microwave
Network Hardware
Network Interface Card (NIC)
A network interface card (NIC) is needed to allow a device to connect to a
network (such as the internet).
Media Access Control (MAC)
A MAC address comprises 48 bits which are shown as six groups of
hexadecimal digits. The first six display the manufacturer’s code, and the
second half shows the device serial number.
These do not change and are primarily constant for every device
there are two types of MAC addresses: the Universally Administered MAC
Address (UAA) and the Locally Administered MAC Address (LAA)
The only difference between the two types are that UAA is made
Universally and cannot be changed, but it is the opposite for LAA.
IP Addresses
IP address allocation:
o The network allocates IP addresses.
o Two types of IP addresses: static and dynamic.
Static IP addresses:
o Assigned manually to a device.
o Does not change over time.
Dynamic IP addresses:
o Assigned automatically by a DHCP (Dynamic Host Configuration
Protocol) server.
o Changes periodically or when the device connects to a different
network.
IPv4 (Internet Protocol version 4):
o Widely used protocol.
o Consists of four groups of decimal numbers separated by dots (e.g.,
192.168.0.1).
o Provides approximately 4.3 billion unique addresses.
IPv6 (Internet Protocol version 6):
o Developed to address the limitations of IPv4.
o Uses eight groups of hexadecimal numbers separated by colons
(e.g., 2001:0db8:85a3:0000:0000:8a2e:0370:7334).
o Provides an extremely large number of unique addresses
(approximately 340 undecillion).
Differences between IPv4 and IPv6:
o Address format: IPv4 uses a 32-bit address, while IPv6 uses a 128-
bit address.
o Address space: IPv4 provides approximately 4.3 billion addresses,
whereas IPv6 offers around 340 undecillion addresses.
o Address allocation: IPv4 addresses are allocated using DHCP or
manually, while IPv6 addresses are primarily assigned using
stateless autoconfiguration.
Routers
Router functionality:
o A router is a networking device that directs data packets between
different networks.
o It determines the most efficient path for data transmission.
Sending data to a specific destination on a network:
o A router examines the destination IP address of incoming data
packets.
o It uses routing tables to determine the next hop or the next router
on the path to the destination.
o The router forwards the data packet to the appropriate next hop.
Router's role in IP address assignment:
o A router can act as a DHCP server (Dynamic Host Configuration
Protocol) and assign IP addresses to devices on a local network.
o It dynamically allocates IP addresses from a predefined range to
connected devices.
o DHCP allows for automatic IP address configuration and simplifies
network management.
Connecting a local network to the Internet:
o A router serves as the gateway between a local network and the
internet.
o It connects the local network to an internet service provider (ISP)
network.
o The router receives data packets from devices on the local network
and forwards them to the internet.
o It also receives incoming data packets from the internet and routes
them to the appropriate devices on the local network.
Types of Software and Interrupts
Types of Software
1. System Software e.g. Operating System, Utility programs and device
drivers
2. Application Software e.g. spreadsheet, word processor, etc.
System Software:
these are a set of programs which control and manage the operations of
hardware
gives a platform for other software to run
it is required to allow hardware and software to run without problems
provides a human-computer interface (HCI) to the user
controls the allocation and usage of hardware resources
Application Software:
allows a user to perform specific tasks using the computer’s resources
maybe a single program (for example, NotePad) or a suite of programs (for
example, Microsoft Office)
user can execute the software as and when they require and it is mostly
not automatic
ExamplesSystem Software:
Compiler: Translates high-level language into machine code, allowing for
direct use by a computer to perform tasks without re-compilation.
Linker: Combines object files produced by a compiler into a single
program, allowing the use of separately written code modules in the final
program.
Device driver: Software that enables hardware devices to communicate
with a computer's operating system, without which a device like a printer
would be unable to work.
Operating system: Software that manages basic computer functions such
as input/output operations, program loading and running, and security
management, making computers more user-friendly.
Utility programs: Software that manages, maintains, and controls
computer resources by carrying out specific tasks, such as virus checking,
disk repair and analysis, file management, and security.
Application Software:
Word Processor: Software used for manipulating text documents, including
creating, editing, and formatting text with tools for copying, deleting,
spell-checking, and importing images.
Spreadsheet: Organizes and manipulates numerical data using a grid of
lettered columns and numbered rows, with each cell identified using a
unique combination of columns and rows. It can calculate using formulas,
produce graphs, and do modelling and "what if" calculations.
Database: Software used to organize, analyze, and manipulate data
consisting of one or more tables that hold records and fields. It provides
the ability to query and report on data and add, delete, and modify records
in a table.
Control and Measuring Software: A program designed to interface with
sensors and allow a computer or microprocessor to measure physical
quantities and control applications by comparing sensor data with stored
data and altering process parameters accordingly.
Apps: Software designed to run on mobile phones or tablets, downloaded
from an "App Store" and ranging from games to sophisticated software
such as phone banking. Common examples include video and music
streaming, GPS, and camera facilities.
Photo and Video Editing Software: Software that allows users to
manipulate digital photographs or videos, including changing colour,
brightness, and contrast, applying filters and other enhancements, and
creating transitions between clips.
Graphics Manipulation Software: Software that allows the manipulation of
bitmap and vector images, with bitmap graphics editors changing pixels to
produce a different image, while vector graphics editors manipulate lines,
curves, and text to alter the stored image as required.
Interrupts
An interrupt is a signal sent to the microprocessor, either from a device or
software, prompting the microprocessor to pause its ongoing tasks and
handle the interrupt temporarily. Various factors can trigger interrupts,
including:
Timing signals: Scheduled signals prompt the microprocessor to pause
and handle tasks at specific intervals.
Input/Output processes: Events such as a disk drive or printer requiring
additional data cause an interruption in the microprocessor's activities.
Hardware faults: Issues like a paper jam in a printer, signalling the
microprocessor to halt its operations and address the hardware problem.
User interaction: Instances like a user pressing specific keys on a
keyboard (e.g., ), leading to an interrupt in the system's operation.
Software errors: Problems such as missing .exe files needed to initiate a
program, conflicts like two processes accessing the exact memory
location, or attempts to divide by zero. These errors trigger interrupts,
prompting the microprocessor to handle the issues.
Source: Cambridge IGCSE
and O Level Computer Science - Second Edition (Hodder Education)
Utility Software
Computer users have access to utility programs as part of system software
Utility programs can be initiated by the user or run in the background
without user input
Common utility programs include virus checkers, defragmentation
software, disk analysis and repair tools, file compression and management
software, backup software, security tools, and screensavers.
Virus Checkers & Anti-Virus Software
Virus checkers or anti-virus software are important for protecting
computers from malware.
They should be kept up to date and run in the background to maintain
their effectiveness.
Anti-virus software checks files before they are run or loaded and
compares possible viruses against a database of known viruses.
Heuristic checking is used to identify possible viruses that are not yet on
the database.
Infected files are put into quarantine for automatic deletion or for the user
to decide.
Anti-virus software must be updated as new viruses are constantly
discovered.
Full system scans should be carried out regularly to detect dormant
viruses.
Disk Defragmentation Software
Defragmentation software rearranges the data blocks on a hard disk drive
(HDD) to store files in contiguous sectors, reducing head movements and
improving data access time.
As an HDD becomes full, blocks used for files become scattered all over
the disk surface, making it slower to retrieve data as the HDD read-write
head needs several movements to find the data.
When a file is deleted or extended, new data does not fill the vacant
sectors immediately, causing the files to become more scattered
throughout the disk surfaces.
A disk defragmenter rearranges the data blocks to store files in contiguous
sectors wherever possible, allowing for faster data access and retrieval.
The defragmentation process can free up previously occupied sectors and
empty some tracks.
Backup Software
Backup software is a utility software that helps create and manage backup
copies of data files and programs.
Manual backups using memory sticks or portable hard drives are good
practices, but operating system backup utilities are also recommended.
Backup utilities allow scheduling backups and only backup files if changes
have been made to them.
There could be three file versions for total security: the current version
stored on the internal HDD/SSD, a locally backed-up copy on a portable
SSD, and a remote backup on cloud storage.
Security Software
Security software is a utility software that manages access control, user
accounts, and links to other utilities such as virus and spyware checkers.
It also protects network interfaces using firewalls to prevent unauthorized
access.
Security software uses encryption and decryption to ensure intercepted
data is unreadable without a decryption key.
It oversees software updates to verify legitimate sources and prevent
malicious software from being installed.
Access control and user accounts use IDs and passwords to secure user
data and prevent unauthorized access.
Screensavers
Screensavers display moving and still images on the monitor screen after
computer inactivity.
They were originally developed to protect CRT monitors from 'phosphor
burn'.
Screensavers are now mostly used for customizing a device and as a part
of computer security systems.
They automatically log out of the user after a certain period of inactivity.
Some screensavers activate useful background tasks like virus scans and
distributed computing applications.
Device Drivers
Device drivers translate data into a format that can be understood by the
hardware device they are associated with.
Without the appropriate device driver, a hardware device cannot work with
a computer and may not be recognised by the operating system.
USB device drivers contain descriptors, which include a vendor ID (VID),
product ID (PID) and unique serial number that allow the operating system
to identify the device.
Serial numbers must be unique to avoid confusion if two devices with the
same serial number are plugged into a computer simultaneously.
Operating Systems
Operating Systems are designed to establish communication
between the user and the computer
Functions of a typical operating system -
-managing files
– handling interrupts
– providing an interface
– managing peripherals and drivers
– managing memory
– managing multitasking
– providing a platform for running applications
– providing system security
– managing user accounts
WIMP - Windows, Icons, Menu, and Pointing Devices
Advantages and Disadvantages of CLI and GUI
Source: Cambridge IGCSE and O Level Computer Science - Second Edition
(Hodder Education)
Memory Management - Manages the RAM and the HDD/SSD during the
execution of programs
Security Management - Providing security features such as Anti-Virus,
System updates and so on
Hardware Peripheral Management - Managing the device drives, Inputs,
Outputs, Queues and buffers
File Management - Opening, Creating, Deleting, Renaming, and many
more functions
Multitasking - OS would share the hardware resources with each of the
processes
Management of User Accounts - OS would allow multiple users to
customise their accounts individually.
Running of Applications
The computer starts its OS (booting up the computer) through the
bootstrap loader.
The BIOS (Basic Input/Output System) tells the computer the
location of the OS in the storage.
BIOS is often referred to as the firmware
Interrupts
Signal that causes the operating system to stop what it’s doing and
service a task
Ensures important tasks are dealt with on a priority basis
It can be a software or a hardware interrupt
Peripherals like a keyboard & mouse can generate it
Different interrupts have different levels of priority
After interruption is dealt with, the previous process continues
Programming Languages, Translators and IDEs
Computers can only understand machine code; therefore, translators are
needed
High-Level Languages
It is easier to read and understand as the language is closer to human
language.
Easier to write in a shorter time
Easier to debug at the development stage
Easier to maintain once in use
Low-Level Languages
Refer to machine code
Binary instructions that the computer understands
Source: Cambridge IGCSE and O Level Computer Science - Second Edition (Hodder
Education)
Assembly Language
Few programmers use assembly language to -
o Make use of special hardware
o Write code that doesn’t take up much space
o Write code that runs very quickly
o Assembly language must be translated into machine code using an
assembler to run.
Translators
Compiler
Translates a program written in a high-level language into machine code
Used without compiler
Executable file of machine code produced
One high-level language translated into several machine code instructions
Used for general use
Interpreter
Executes a high-language program a statement at a time
No executable file of machine code produced
One high-level language program statement may require several machine
code instructions to be executed.
Interpreted programs cannot be used without an interpreter
Used when the program is being developed
Assembler
Translates a low-level language program into machine code
Executable file of machine code produced
One low-level language translated into one machine code instructions
It can be used without an assembler
Used for general use
Compiler Interpreter Assembler
Translates a low-level
Translates a high-level Executes a high-level
assembly language
language program into language program one
program into machine
machine code. statement at a time.
code.
An executable file of No executable file of An executable file of
machine code is machine code is machine code is
Compiler Interpreter Assembler
produced. produced. produced.
One high-level One high-level language One low-level
language statement program statement may language statement
can be translated into require several machine is usually translated
several machine code code instructions to be into one machine
instructions. executed. code instruction.
Compiled programs Interpreted programs Assembled programs
are run without the cannot be run without are used without the
compiler. the interpreter. assembler.
An assembled
A compiled program is An interpreter is often
program is usually
usually distributed for used when a program is
distributed for
general use. being developed.
general use.
Source: Cambridge IGCSE and O Level Computer Science - Second Edition (Hodder
Education)
Integrated Development Environments (IDEs)
An IDE would usually have these features -
o Code Editor
o Translator
o Debugger
o Error Reports
o Auto-Completion and Auto-Correction
o Auto-Documenter
o Pretty Printing
The Internet and Its Uses
The Internet and the World Wide Web
Internet World Wide Web (WWW)
Uses transmission protocols such as Collection of webpages and other
TCP and IP (Internet Protocols) information on websites
Allows the user to communicate with Uses HTTP(S) protocols that are
other users via chat, email, calling written using Hypertext Mark-up
and more Language (HTML)
Worldwide Collection of URLs (Uniform Resource Locator)
Internet World Wide Web (WWW)
are used for the location of the web
Interconnected Networks and Devices
pages
Web browsers can access web
pages.
Uniform Resource Locator (URLs)
URLs are used to locate and access web pages. The typical format of URLs
is -
protocol://website address/path/file name
The protocol would usually be HTTP or HTTPS
The website address would contain -
o domain host (www)
o domain name (website name)
o domain type (.com, .org, .net, .gov) or sometimes country codes
(.uk, .in, .cy)
The path would usually become the file directory roots. for
example, https://www.znotes.com/computer-science
o The /computer-science is the file name
HTTP and HTTPS
HTTP stands for Hypertext Transfer Protocol, and HTTPS stands for
Hypertext Transfer Protocol secure
They are safety protocols maintained while transmitting data.
Web Browsers
It is software used to connect to the internet
It translates the HTML code
ensures SSL & TLS security can be established
Offers additional features like search history & ad blockers
Retrieval and Location of web pages
The browser sends the URL to the domain name server (DNS)
DNS stores the index and matches it with the IP
IP is sent to the browser if it exists
The browser sends a request to the IP of the webserver
Browser interprets the HTML
Cookies
Cookies are small files stored on the user’s computer
They are used to track data about the users and autofill forms or give
suggestions accordingly
Types of Cookies -
Session Cookie Persistent Cookie
Temporary cookies are stored in Remembers the user’s login details so the
the RAM till the browser is user doesn’t have to log in every time
closed. they visit a website
Stored on the hard disk on the computer
Doesn’t collect any information
until their expiry date or the user deletes
on the user
them
A good example is the virtual
shopping basket on e-
commerce websites.
Digital Currency
Form of payment to pay for goods and services
A few examples are Debit/Credit Cards, Apps (Paypal, Apple Pay, Bank
Transfers and many more)
Cryptography was later introduced due to the problem in centralised
banking systems.
Cryptocurrency uses cryptography to maintain track of transactions.
Cryptocurrency is also more secure because it uses Blockchain Network
Blockchain Network
Blockchain Network involves several interconnected computers where the
transaction data is stored
Hacking isn’t possible here as transaction details would be sent to all the
computers, and the data can’t be changed without the consent of all the
network members
How do blockchains work
Every time a transaction takes place, A block is created. The block would
contain
Data - Name of the sender and the receiver, amount of money and more
Hash Value - Unique value generated by an algorithm
Previous Hash Value - Hash Value of the previous block in the chain
The first block is called the genesis block as it doesn’t point to any
previous block (Previous Hash Value - 0000)
Cyber Security
Brute Force Attack:
Hackers try to guess your password by trying all the different
combinations of letters, numbers and symbols.
Effect:
o Hacker gets access to user’s personal data (credit cards, passwords
and more)
To remove risk:
o Use stronger passwords with more characters and symbols
Data Interception:
This involves stealing data by tapping into a wired or a wireless
transmission line
o Wardriving - The act of locating and using wireless internet
connections illegally
o Packet Sniffing - Uses Packet sniffers to examine packets sent over a
line; all the data collected is sent back to the attacker
Effect:
o It can cause a computer to crash
o Can delete or corrupt files/data
To remove risk:
o Install anti-virus software
o Don’t use software from unknown sources
o Be careful when opening emails from unknown
Distributed Denial of Service Attacks (DDoS)
An attempt at preventing users from accessing part of a network
Usually temporary but may be damaging
An attacker may be able to prevent the user from:
o Accessing their emails
o Accessing websites
o Accessing online services
Hacking
The act of gaining illegal access to a computer system
Effect:
o This leads to identity theft, gaining personal information
o Data can be deleted, changed or corrupted
To remove risk:
o Firewalls
o Strong passwords/ user IDs
o Use of anti-hacking software
Difference between hacking and cracking
o Hacking breaks into computer systems to steal data
o Cracking is when someone edits a program code, malicious
Malware
Stands for Malicious Software. A few examples are -
o Virus - A program that can replicate itself with the intention of
deleting or corrupting files, causing a computer malfunction
o Ransomware - Attackers encrypt the user’s data until a certain
amount of money is paid
o Adware - Displays unwanted ads on the user’s screen
o Trojan Horse - Programs that are disguised as legitimate software
o Spyware - Sends data about all the activities of the user to the
attacker
o Worms - Programs that can replicate themselves with the intention
of corrupting the entire network instead of the computer alone
Phishing
Attackers send legitimate-looking emails to bait the user into giving out
their information.
To remove risk:
o Don’t open links from unknown receivers
o Use anti-phishing tools
o Block pop-up ads
o Have an up-to-date browser
Pharming
The attacker installs a malicious code on the computer, which redirects the
user to fake websites
Effect:
o The user gives out login details and other personal details
To remove risk:
o Using anti-virus software
o Checking the spelling and the weblink carefully
o Make sure that the green padlock is present in the URL bar
Social Engineering
Attackers create a social situation which leads to victims giving out their
details (For example - Spam calls informing them that their account has
been hacked)
Keeping data safe from threats
Access Levels - Having Different levels of access for different people (for
example - Only doctors can have access to patient’s data)
Antivirus - Protects user’s computer from malware attacks
Authentication - User proving who they are. The most common methods
are passwords, PINs, Mobiles (OTPs), biometrics and more)
Benefits and Drawbacks of Biometric Method
Biometric
Benefits Drawbacks
Methods
Most development
Intrusive as used to identify
methods are very easy to
Fingerprint criminals, Can’t be used if the
use and require very low
Scans finger gets dirty or damaged
storage space to store
(e.g. cuts)
the biometric data.
With very high accuracy, It is very intrusive, Takes longer
Retina Scan it Impossible to replicate to verify, Expensive to install
a person’s retina and set up
Can’t identify if there are any
Face Non-intrusive method,
changes in the lighting, change
Recognition Relatively cheaper
in age or person’s age.
Biometric
Benefits Drawbacks
Methods
Voices can be recorded and
Non-Intrusive method, used for verification, but low
Voice verification is done accuracy and illnesses such as
Recognition quickly and relatively colds or coughs can affect a
cheaper person’s voice, making
identification impossible.
Two-Step Verification - Requires two methods of authentication to prove
who the user is
Automatic Software Updates - Latest updates contain patches which
improve device security
Spelling and Tone - Fake emails tend to have wrong spelling and grammar
(amazonn instead of amazon), and the tone would also seem urgent
Firewalls - Hardware or Software which monitors the traffic between a
network and the user’s computer
Proxy Servers - Acts as an intermediate between the user’s computer and
the web server. They are used for -
o Filtering Internet traffic
o Keeping the user’s IP Address Confidential
o Blocking access to certain websites
o Attacks like DDoS and Hacking attack the proxy server, keeping the
web server safe.
o Acts as a firewall as well.
Privacy Settings - Used to limit who can access and see a user’s profile
SSL (Secure Socket Layer) - Set of rules used while communicating with
other users on the internet.
Automated and Emerging
Technologies
Automated Systems
Automated Systems are a combination of software and hardware designed
to function without human intervention.
Process of Automated Systems
o Sensors take inputs, and they are sent to the microprocessor. The
data is usually analogue, so it has to go through Analogue-to-Digital
Converter (ADC)
o The microprocessor processes the data and makes the necessary
decisions based on its program
o The actions are then executed by the actuators (Motors, wheels and
so on)
Advantages and Disadvantages of Automated Systems
Advantages Disadvantages
Faster and Safer Expensive to set up and maintain
Any changes can be Any computerised systems are prone to
identified quickly attacks
Less Expensive in the long Over-reliance on automated systems may
run cause humans to lose skills
Higher Productivity and
Efficiency
You should be able to describe the advantages and disadvantages
of an automated system used for a given scenario.
Including scenarios from:
industry
transport
agriculture
weather
gaming
lighting
science
Robotics
Robotics is the branch of computer science that combines robot design,
construction and operation.
Isaac Asimov’s Laws of Robotics -
o A robot may not injure a human through action or inaction
o A robot must obey orders given by humans unless it comes into
conflict with Law 1
o a robot must protect itself unless this conflicts with law 1.
Characteristics of a robot -
o Ability to sense their surroundings
o Have a degree of movement
o Programmable
NOTE - ROBOTS DO NOT POSSESS AI; THEY TEND TO DO
REPETITIVE TASKS RATHER THAN REQUIRING HUMAN
CHARACTERISTICS
Types of Robots -
o Independent - Have no human intervention; they can completely
replace humans
o Dependent - Needs human intervention through an interface, can
supplement but can’t completely replace humans
Advantages and Disadvantages of Robots
Advantages Disadvantages
Robots can find it difficult to do non-
Robots can work 24/7
standard tasks
Robots can work in hazardous Robots can lead to higher
conditions unemployment
They are less expensive in the long Risk of deskilling as robots replace
run humans in some task
They have high productivity and Expensive to install and maintain in
are more consistent the short run
Robots have the risk of getting
hacked.
Artificial Intelligence
AI is the branch of computer science that simulates intelligent human
behaviour.
Types of AI -
o Narrow AI - A machine has superior performance to a human when
doing one specific task
o General AI - A machine is similar to a human when doing one
specific task
o Strong AI - Machine has superior performance to a human in many
tasks
Characteristics of AI -
o Collection of Data and Rules
o Ability to Reason
Ability to learn and adapt
Types of AI
Expert System - AI that is developed to mimic human knowledge and
experiences. They are usually used for answering questions using
knowledge and inference.
They have many applications, including chatbots, diagnosis in the medical
industry, financial calculations and so on
Advantages and Disadvantages of Expert Systems
Advantages Disadvantages
Setup and Maintenance costs are very
High level of Expertise
high
High Accuracy and Can only rely on the information in the
Consistent system
High response times Tend to give cold responses sometimes
Machine Learning is a subset of AI in which machines are trained
to learn from past experiences.
Difference Between AI and Machine Learning
AI Machine Learning
Representation of human Machines are trained to make decisions
intelligence in machines without being programmed to
The aim is to build machines The aim is to make machines learn
that think like humans through data acquisitions
Algorithm Design & Problem-
Solving
Program Development Life Cycle (PDLC)
Analysis
Design
Coding
Testing
Maintenance
Analysis
Before solving a problem, it is essential to define and document the
problem clearly, known as the "requirements specification" for the
program.
The analysis stage involves using tools like abstraction and decomposition
to identify the specific requirements for the program.
Abstraction focuses on the essential elements needed for the solution
while eliminating unnecessary details and information.
Decomposition involves breaking down complex problems into smaller,
more manageable parts that can be solved individually.
Daily tasks can be decomposed into constituent parts for easier
understanding and solving.
Design
The program specification derived from the analysis stage is used as a
guide for program development.
During the design stage, the programmer should clearly understand the
tasks to be completed, the methods for performing each task, and how the
tasks will work together.
Documentation methods such as structure charts, flowcharts, and
pseudocode can be used to document the program's design formally.
Coding and iterative testing
The program or set of programs is developed based on the design.
Each module of the program is written using a suitable programming
language.
Testing is conducted to ensure that each module functions correctly.
Iterative testing is performed, which involves conducting modular tests,
making code amendments if necessary, and repeating tests until the
module meets the required functionality.
Testing
The completed program or set of programs is executed multiple
times using various test data sets.
This testing process ensures that all the tasks within the program
work together as specified in the program design.
Running the program with different test data can identify and
address potential issues and errors.
The testing phase aims to verify the overall functionality and
performance of the program by evaluating its behaviour with
various inputs.
Structure Diagrams
Every computer system is made up of sub-systems, which are in
turn made up of further sub-systems.
Structure Diagrams – The breaking down of a computer system
into sub-systems, then breaking each sub-system into smaller sub-
systems until each one only performs a single action. A structure
diagram diagrammatically represents a top-down design. Example
below.
Pseudocode & Flowcharts
Pseudocode - Verbal representation of an algorithm (a process or
set of steps) and flowcharts are a diagrammatic representation.
Flowcharts: A flowchart shows diagrammatically the steps required
to complete a task and the order that they are to be performed
Algorithm: These steps, together with the order, are called an
algorithm
An example of a flowchart is given below from a past paper question in
which all of the functions of a flowchart are shown:
This flowchart’s task is to check if a rider’s height is more the requirement
(1.2) in this case. It then counts until the accepted riders are 8. After they
are 8, it outputs the number of rejected riders and tells the rest that they
are ready to go!
Pseudocode
Declaration & Usage of Variables & Constants
o Variable – Store of data which changes during execution of the
program (due to user input)
o Constant – Store of data that remains the same during the
execution of the program
Basic Data Types
Integer – Whole Number e.g. 2; 8; 100
o Real – Decimal Number e.g. 7.00; 5.64
o Char – Single Character e.g. a; Y
o String – Multiple Characters (Text) e.g. ZNotes; COOL
o Boolean – Only 2 Values e.g. True/False; Yes/No; 0/1
Input & Output (READ & PRINT) – Used to receive and display
data to the user respectively. (It is recommended to use input and
output commands)
Declaration of variable - A variable/constant can be declared by
the following manner
Array: Array is similar to variable but it can store multiple values of
same datatype under single name
Assignment - Each variable is assigned using a left arrow.
Conditional Statements:
IF…THEN…ELSE…ENDIF
CASE…OF…OTHERWISE…ENDCASE – Multiple conditions and
corresponding consequences
Loop Structures:
REPEAT… UNTIL – Will run at least once till condition is satisfied;
Verification is done after running code
WHILE…DO…ENDWHILE – May not ever run; Verification is done before
running code
Note: When using conditions in these loop structures and conditional
statement, it has to be kept in mind that it can be done in two ways:
1. use of a Boolean variable that can have the value TRUE or FALSE
2. comparisons made by using coparison operators, where
comparisons are made from left to right
Standard methods used in algorithm:
Totalling :Totalling means keeping a total that values are added to
Counting: Keeping a count of the number of times an action is
performed is another standard method.
Maximum, minimum and average : Finding the largest and smallest
values in a list are two standard methods that are frequently found
in algorithms
Linear Search: In a linear search, each item in the list is inspected
sequentially until a match is found or the entire list is traversed.
Bubble Sort: Iteratively compare and swap adjacent elements in a
list to sort them. Start from the first element and continue until the
second-to-last element. After each pass, the last element is in its
correct place. However, other elements may still be unsorted.
Repeat the process, excluding the last element, until only one
element remains or no swaps are needed.
Validation and Verification
To ensure the acceptance of reasonable and accurate data inputs,
computer systems must thoroughly examine each data item before
accepting it, and this is where Validation and Verification come into play!
Validation
Validation in computer systems involves automated checks to ensure the
reasonableness of data before accepting it. If the data is invalid, the
system should provide an explanatory message for rejection and allow
another chance to enter the data.
There are many types of it.
Range check
A range check verifies that a numerical value falls within specified upper
and lower limits.
Length check
This can either ensure that data consists of a precise number of
characters.
It can also check if the data entered is a reasonable number of characters
or not
Type check
A type check verifies that the entered data corresponds to a specific data
type.
Presence check
A presence check checks to ensure that some data has been entered and
the value has not been left blank
Format Check
A format check checks that the characters entered conform to a pre-
defined pattern.
Check Digit
A check digit is the final digit included in a code; it is calculated from all
the other digits.
Check digits are used for barcodes, product codes, International Standard
Book Numbers (ISBN), and Vehicle Identification Numbers (VIN).
Verification
Verification is checking that data has been accurately copied from one
source to another
There are 2 methods to verify data during entry ( there are other
methods during data transfer, but they are in paper 1)
1. Double Entry
Data is inputted twice, potentially by different operators.
The computer system compares both entries and if they differ, an error
message is displayed, prompting the data to be reentered.
2. Screen/Visual check
A screen/visual check involves the user manually reviewing the entered
data.
After data entry, the system displays the data on the screen and prompts
the user to confirm its accuracy before proceeding.
The user can compare the displayed data against a paper document used
as an input form or rely on their own knowledge to verify correctness.
Test Data
Test data refers to input values used to evaluate and assess the
functionality and performance of a computer program or system.
It helps identify errors and assess how the program handles different
scenarios
Normal Data
Normal data is the test data which accepts values in acceptible range of
values of the program
Normal data should be used to work through the solution to find the actual
result(s) and see if they are the same as the expected result(s)
e.g. in a program where only whole number values ranging from 0 to 100
(inclusive) are accepted, normal test data will be : 23, 54, 64 , 2 and 100
Abnormal Data
Test data that would be rejected by the solution as not suitable, if the
solution is working properly is called abnormal test data / erroneous test
data.
e.g. in a program where only whole number values ranging from 0 to 100
(inclusive) are accepted, abnormal data will be: -1, 151, 200, 67.2, “Sixty-
Two” and -520
Extreme Data
Extreme data are the largest and smallest values that normal data can
take
e.g. in a program where only whole number values ranging from 0 to 100
(inclusive) are accepted, extreme data will be: 0 and 100
Boundary Data
This is used to establish where the largest and smallest values occur
At each boundary two values are required: one value is accepted and the
other value is rejected.
e.g. in a program where only whole number values ranging from 0 to 100
(inclusive) are accepted, one example of boundary data will be: 100 and
101. 100 will be accepted and 101 will not be accepted
Trace Table
A trace table is utilized to document the outcomes of every step in an
algorithm. It is employed to record the variable's value each time it
undergoes a change.
A dry run refers to the manual process of systematically executing an
algorithm by following each step in sequence.
A trace table is set up with a column for each variable and a column for
any output e.g.
Test data is employed to execute a dry run of the flowchart and document
the outcomes in a trace table. During the dry run:
Whenever a variable's value changes, the new value is recorded in the
respective column of the trace table.
Each time a value is outputted, it is displayed in the output column.
An example of trace table is given below using a past paper question:
Q: The flowchart below inputs the height of children who want to ride on a
rollercoaster. Children under 1.2 metres are rejected. The ride starts when
eight children have been accepted.
Complete the trace table for the input data: 1.4, 1.3, 1.1, 1.3, 1.0, 1.5, 1.2,
1.3, 1.4, 1.3, 0.9, 1.5, 1.6, 1.0
Rider Rejec Heigh
OUTPUT
s t t
0 0
1 1.4
2 1.3
1 1.1
3 1.3
2 1.0
4 1.5
3 1.2
Rider Rejec Heigh
OUTPUT
s t t
5 1.3
6 1.4
7 1.3
4 0.9
Ready to go
8 1.5
4
Identifying errors:
Trace tables can be used to trace errors in a program. For example, if the
requirement for the previous question would be to accept riders that are of
height 1.2 too, rather than rejecting them, then the error would have been
caught in the trace table as when 1.2 is entered, it would increment
rejected which it shouldn’t in our example
How to write an algorithm?
The ability to write an algorithm is very important for this
syllabus and paper. Some key steps/points to be known in-order
to write the perfect algorithm are as follows:
1. Make sure that the problem is clearly understood which includes knowing
the purpose of the algorithm and the tasks to be completed by the
algorithm.
2. Break the problem into smaller problems (e.g. in a program which outputs
average values, divide the problem into multiple ones i.e. how to count the
number of iterations and how to count the total of all values)
3. Identify the data that is needed to be saved into
variables/constants/arrays and what datatype it is, and declare all the
variables/constants/arrays accordingly, with meaningfull names
4. Decide on how you are going to construct your algorithm, either using a
flowchart or pseudocode. If you are told how to construct your algorithm,
then follow the guidance.
5. Construct your algorithm, making sure that it can be easily read and
understood by someone else. Take particular care with syntax e.g. when
conditions are used for loops and selection.
6. Use several sets of test data (Normal, Abnormal and Boundary) to dry run
your algorithm and check if the expected results are achieved (a trace
table can be used for this purpose) . If error is found, find the point of error
in the trace table and fix it in the code.
Note: The algorithms that you have looked at so far in these notes were
not designed with readability in mind because you needed to work out
what the problem being solved was.
Sample 15 mark Question
Sample #1 [15 marks]
Given a student name array and a 2D student mark array, calculate the
total and average marks, award grades for each student, and output the
number of distinctions, merits, passes, and fails for the whole class.
#Declare the variables constants and arrays, although you need not
specify the values for the array.
THIS IS AN EXAMPLE QUESTION FROM THE:
COMPUTER SCIENCE 0478/02 Paper 2 Algorithms, Programming and Logic
For examination from 2023 SPECIMEN PAPER
Programming
Programming Languages
There are many high-level programming languages to choose
from. We will only be treating Python, Visual Basic, or Java.
Python is an open-source, versatile programming language that
encourages quick program development and emphasises code readability.
The integrated development environment (IDE) showcased in this chapter
is referred to as IDLE.
Visual Basic is a popular programming language that is extensively used
for Windows development. The integrated development environment (IDE)
featured in this chapter is known as Visual Studio, which is utilised for
capturing screenshots.
Java is a widely adopted programming language utilised by numerous
developers. The integrated development environment (IDE) employed for
capturing screenshots in this chapter is known as BlueJ.
Programming Concepts
Constructs of a Program
Data use – variables, constants and arrays
Sequence – order of steps in a task
Selection – choosing a path through a program
Iteration – repetition of a sequence of steps in a program
Operators use arithmetic for calculations and logic and Boolean for
decisions.
Variables and Constants
A variable within a computer program refers to a named storage
unit with a value that can be modified throughout the program's
execution. To enhance comprehension for others, it is advisable to
assign significant names to variables.
A constant within a computer program represents a named storage
unit that holds a value which remains unchanged throughout the
program's execution. Similar to variables, it is recommended to
assign meaningful names to constants to enhance comprehensibility
for others.
Data Types
Different data types are assigned to computer systems for effective
processing and storage.
Data types allow data, such as numbers or characters, to be stored
appropriately.
Data types enable effective manipulation using mathematical operators
for numbers and character concatenation.
Some data types provide automatic validation.
The types of datatypes are told in Chapter 1 already!
Input and Output
Programs require input and output statements to handle data.
In IGCSE Computer Science, algorithms and programs are designed to take
input from a keyboard and output to a screen.
Prompting the user with clear instructions for input is necessary for the
user to understand what is expected.
Input data in programming languages must match the required data type
of the variable where it will be stored.
By default, inputs are treated as strings, but commands can convert input
to integer or real number data types.
Users should be provided with information about the output/results for a
program to be useful.
Each output should be accompanied by a message explaining the result's
meaning or significance.
If an output statement has multiple parts, they can be separated by a
separator character.
Basic Concepts
When writing the steps required to solve a problem, the following
concepts need to be used and understood:
Sequence
Selection
Iteration
Counting and totalling
String handling
Use of operators.
Sequence
The ordering of the steps in an algorithm is very important. An incorrect
order can lead to incorrect results and/or extra steps that are not required
by the task.
Selection
Selection is a very useful technique, allowing different routes through the
steps of a program. The code of this is explained in the notes of previous
chapters.
Iteration
As explained in the previous chapter, we already
Totalling and Counting
As explained in the previous chapter, we already
String Handling
Strings are used to store text and can contain various characters.
An empty string has no characters, while the programming language
specifies the maximum number of characters allowed.
Characters in a string can be identified by their position number, starting
from either zero or one, depending on the programming language.
String handling is an important aspect of programming.
In IGCSE Computer Science, you will need to write algorithms and
programs for the following string methods:
o Length: Determines the number of characters in a string,including
spaces.
o Substring: Extracts a portion of a string.
o Upper: Converts all letters in a string to uppercase.
o Lower: Converts all letters in a string to lowercase.
These string manipulation methods are commonly provided in
programming languages through library routines.
Finding the length of a string:
Extracting a substring from a string:
Converting a string to upper case
Converting a string to lowercase
Arithmetic, Logical and Boolean Operators
As explained in the previous chapter, we already
Use of Nested Statements
Selection and iteration statements can be nested, meaning one statement
can be placed inside another.
Nested statements help reduce code duplication and simplify testing of
programs.
Different types of constructs can be nested within each other, such as
selection statements within condition-controlled loops or loops within
other loops.
Procedures and Functions
A procedure refers to a collection of programming statements
organized under a single name, invoked at any given point in a
program to execute a specific task.
A function is a compilation of programming statements consolidated
under a singular name, invoked at any moment within a program to
accomplish a particular task. Unlike a procedure, a function also has
the capability to return a value back to the main program.
Parameters refer to variables that store the values of arguments
passed to a procedure or function. While not all procedures and
functions require parameters, some utilize them to facilitate their
operations.
Procedures without parameters:
The procedure with parameters:
Function:
When defining procedures and functions, the header is the first statement
in the definition.
The header includes:
o The name of the procedure or function.
o Parameters passed to the procedure or function, along with their
data types.
o The data type of the return value for a function.
Procedure calls are standalone statements.
Function calls are made as part of an expression, typically on the right-
hand side.
Local and Global Variable
Any part of a program can use a global variable – its scope covers
the whole program
A local variable can only be used by the part of the program it is
declared in – its scope is restricted to that part of the program.
Note: Any variables/arrays made in this procedure and functions
will be local and cannot be used out of these. To be made
available all over the program, they must be declared globally in
the following way.
Library Routines
Programming language development systems often provide library
routines that can be readily incorporated into programs.
Library routines are pre-tested and ready for use, making programming
tasks easier.
Integrated Development Environments (IDEs) typically include a standard
library of functions and procedures.
Standard library routines perform various tasks, including string handling.
MOD – returns the remainder of a division
DIV – returns the quotient (i.e. the whole number part) of a division
ROUND – returns a value rounded to a given number of decimal places
RANDOM – returns a random number.
Examples:
Value1 <--- MOD(10,3) returns the remainder of 10 divided by 3
Value2 <---- DIV(10,3) returns the quotient of 10 divided by 3
Value3 <--- ROUND(6.97354, 2) returns the value rounded to 2 decimal
places
Value4 <--- RANDOM() returns a random number between 0 and 1
inclusive
Creating a Maintainable Program
A maintainable program should:
always use meaningful identifier names for variables, constants, arrays,
procedures and functions
be divided into modules for each task using procedures and functions
be fully commented using your programming language’s commenting
feature
Commenting in pseudocode:
Arrays
An array is a data structure containing several elements of the same data
type; these elements can be accessed using the same identifier name.
The position of each element in an array is identified using the array’s
index.
There are two types of arrays
One-Dimensional Array
Explained in the previous chapter in detail
Two-Dimensional Array
A two-dimensional array can be referred to as a table with rows and
columns.
When a two-
dimensional array is declared in pseudocode, the first and last index
values for rows and the first and last index values for columns alongside
the data type are included.
Declaring a 2D Array:
Filling a 2-D array using a loop:
File Handling
Computer programs store data that will be needed again in a file.
Data stored in RAM is volatile and will be lost when the computer is
powered off.
Data saved to a file is stored permanently, allowing it to be accessed by
the same program at a later date or by other programs.
Stored data in a file can be transferred and used on other computers.
The storage of data in files is a commonly used feature in programming.
Key point: When writing in a file, the program is outputing the
data to the file, and when reading a file, the program in inputing
the data from the file.
There are 3 ways a file can be opened in a program i.e. to write, to read
and to append
Writing in a file
Appending a file
Reading a file:
Reading a file till EOF:
Databases
A database is a well-organized compilation of data that enables individuals
to retrieve information according to their specific requirements. The data
contained within a database can encompass various forms such as text,
numerical values, images, or any other type of digital content that can be
stored on a computer system.
Why do we need a database?
To store data about people, things, and events.
Any modifications or additions need to be made only once, ensuring data
consistency.
All users access and utilize the same set of data, promoting uniformity.
Relational databases store data in a non-repetitive manner, eliminating
duplication.
What makes a database?
Data is stored in tables in databases. Each table consists of a specific
type of data e.g. cars. These tables HAVE to be named according to what
they contain e.g. a table containing patient information will be PATIENT
These tables consist of records (rows). Each record consists of data about
a single entity (a single item, person or event ) e.g. a single car
These tables also have columns that are knows an fields. These consist of
specific information regarding the entities that are written later in records
e.g. car name, car manufacturer etc.
Note: In this chapter, skills of dealing with a database are also
required so working with Microsoft Access is needed to
understand this chapter better. You have to be able to define a single-
table database from given data storage requirements, choose a suitable
primary key for a database table and also be able to read, complete and
understand SQL scripts.
Source: Cambridge IGCSE and O Level Computer Science by Hodder
Education
Validation in databases
Database management software automatically provides some validation
checks, while others need to be set up by the developer during
construction.
For example; The software automatically validates fields like
"DateOfAdmission" in the PATIENT table to ensure data input is a valid
date. \n
Basic Data Types
Each field will require a data type to be selected. A data type classifies
how the data is stored, displayed and the operations that can be
performed on the stored value.
The datatypes for database are quite similar to original datatypes,
however, there are a few differences.
Note: Access datatype refers to the software Microsoft Access
which is a DBMS (DataBase Management System). Here,
databases could be worked upon in practical form
Primary Key
Each record in a table represents a unique item, person, or event.
To ensure reliable identification of these items, a field called the primary
key is necessary.
The primary key is a unique field that distinguishes each item within the
data.
In order to serve as a primary key, a field must have values that are never
repeated within the table.
An existing field can serve as a primary key if it is unique, such as the
ISBN in the book table.
In cases where all existing fields may contain repeated data, an additional
field, such as "HospitalNumber," can be added to each record to serve as
the primary key.
Structured Query Language - SQL
Structured Query Language (SQL) is the standard language for writing
scripts to retrieve valuable information from databases.
By using SQL, we can learn how to retrieve and display specific
information needed from a database.
For instance, someone visiting a patient may only require the ward
number and bed number to locate them in the hospital, while a consultant
may need a list of the names of all the patients under their care. This can
be done using SQL
SQL Scripts
An SQL script is a collection of SQL commands that are used to perform a
specific task, often stored in a file for reusability.
To comprehend SQL and interpret the output of an SQL script, practical
experience in writing SQL scripts is necessary.
Select Statements:
Selecting Sum of values in a table:
Counting the number of records where the field matches a
specified condition
==ORDER BY Field1, Field2, etc. – this specifies a sort in ascending or
alphabetical order starting with the first field.
==ORDER BY Field1, Field2 DESC – this specifies a sort in descending or
reverse alphabetical order starting with the first field.
Note: ORDER BY is not necessary to add. It has to be only added if
required!
Operators
Just like pseudocode, the operators used there can also be used here for
conditions, however, a few more are also used in databases
Boolean Logic
Logic Gates and their functions
Six types of logic gates
NOT Gate
AND Gate
OR Gate
NAND Gate
NOR Gate
XOR Gate
NOT gate: an inverter
Outpu
A
t
0 1
1 0
AND gate: multiplication
Outpu
A B
t
0 0 0
0 1 0
1 0 0
1 1 1
OR gate: addition
Outpu
A B
t
0 0 0
0 1 1
1 0 1
1 1 1
NAND gate: (not and gate)
Outpu
A B
t
0 0 1
Outpu
A B
t
0 1 1
1 0 1
1 1 0
NOR gate: (not or gate)
Outpu
A B
t
0 0 1
0 1 0
1 0 0
1 1 0
XOR gate: (a and not b) or (not a and b)
Outpu
A B
t
0 0 0
Outpu
A B
t
0 1 1
1 0 1
1 1 0
Writing Logic Statements
Logic Statements is a way of showing all the logics that are in place for a
logic circuit.
Writing from a logic circuit
1. Look at the ciruit and go around the logic gates used in the circuit
2. Go from the one output that is being given towards the input
3. Write the last gate ( the first gate you walk through ) in the middle and
then, for each of the value coming into the gate, leave space at the side
4. If the value coming into the gate is coming from another gate, use a
bracket for the gate’s logic
5. Repeat process 3-4 till you are able to reach the input values fully
Writing from a truth table
1. Create logic circuit fom the truth table (shown later)
2. Write the logic statement using the ciruit
Writing from a Problem statement
1. See what logics go in place in the statement to take place
2. Go from the logic of any 2 inputs at the start, and then keep on going until
you are able to reach the final gate which gives the output
3. When writing the statement, make sure you show the logic statement
where the output is 1
Example of a LOGIC STATEMENT
(B AND C) OR (A NOR (A NAND C)) is the logic statement for the
following Logic Circuit
Creating Truth Tables
From Logic Circuits
1. Create a truth table with each input possible, creating every possible
combination of inputs . Tip: For the first input, write it in the
combination of 1,0,1,0 and so on. For the second, go 1,1,0,0 and
so on, and for the third one, go 1,1,1,1,0,0,0,0 going by the
powers of 2 for each input. This would guarantee each possible
combination
2. Run through the circuit with the inputs and get the output that will be
reached and write it accordingly
For logic statements, and problem statements, convert them to
logic circuits first and then do the rest
Example
This is the example of a truth table of a logic circuit
The circuit:
Logic Statements from Truth
Tables
1. Given the truth table above, take the rows where the output (x) is 1 (Rows
1, 2, 4, 5, 6, 7)
2. Create a logic expression from these rows (example, row 1 will be (NOT A
AND NOT B AND NOT C) = X
3. Create logic expressions for all the rows with output 1 and connect them
with OR gate
Exam-Style Question
1. The Conditions are given so make logic statements using the conditions
and the table. (NOT S AND T) OR (S AND W) OR (NOT T AND W)
2. Make the logic circuit from the given equation
3. Make the truth table