Title: A-Level-Computer-Science
Tags: 4.9-Fundamentals-Of-Communication-Networking::4.9.4-TCP-IP 4.1-Fundamentals-Of-Programming::4.1.1-Programming 4.9-Fundamentals-Of-Communication-Networking::4.9.3-The-Internet 4.1-Fundamentals-Of-Programming::4.1.2-Programming-Paradigms 4.9-Fundamentals-Of-Communication-Networking::4.9.2-Networking 4.4-Theory-Of-Computation::4.4.2-Regular-Languages 4.6-Fundamentals-Of-Computer-Systems::4.6.4-Logic-Gates 4.10-Databases::4.10.5-Client-Server-Databases

Front: Explain the concept of data types
Back: Different ways to store data, defined by the set of values it can take and the set of operations which can be performed on it

Front: Define user-defined data types
Back: Data types made from existing data types, with a custom data structure

Front: Why might a programmer choose to use a user-defined data type over existing data types
Back: 1. Absolute control of the operations which can be performed on the data, so data cannot be accidently, unusably changed
1. More memory efficient

Front: Define integer
Back: A whole number value

Front: State 3 examples of integers
Back: -25, 0, 245

Front: Define real/ float
Back: A number with a fractional part

Front: State 2 examples of real/ floats
Back: -13.5, 0.2

Front: Define Boolean
Back: A value which can only be TRUE or FALSE

Front: Define character
Back: A letter, special character or number, represented in ASCII or Unicode

Front: State 2 examples of characters
Back: "a", "4"

Front: Define string
Back: A collection of character values

Front: Define record
Back: A ordered collection of fields, where each field may have a different data type

Front: Define array
Back: A finite, index set of related elements which all have the same data type

Front: Define variable/ constant declaration
Back: Giving a memory location an identifier or name

Front: Define assignment in programming
Back: Giving a memory location an with a value

Front: Describe the difference between variables and constants
Back: Variables are memory locations whose contents can change during the execution of a program, while constants are memory locations whose contents cannot change during execution of a program

Front: State 3 advantages to using constants over variables in a program
Back: 1. No way that variable cannot accidently be changed, as assignment can only occur once and its identifier is unique.
1. Quicker to change the value of a constant, as declaration can only occur at one location
1. Makes code more readable, therefore quicker to debug

Front: Explain why it is important to use meaning variable identifiers in a program
Back: 1. Easier to read
1. Quicker to understand
1. Enables those unfamiliar with your code test, debug, and contribute (accessibility)

Front: Define iteration in programming
Back: Repeating a set of instructions

Front: Define definite iteration
Back: Repeating a set of instructions a known number of times

Front: Define indefinite iteration
Back: Repeating a set of instructions an unknown number of times, until a Boolean condition is met

Front: Define sequence in programming
Back: The execution of statements in the order they appear (top to bottom)

Front: Define selection in programming
Back: Using relation operations to form Boolean conditions to decide if a set of instructions will be executed or not (IF statements)

Front: State the purpose of exception handling
Back: Prevents the program from crashing due to an error and/or informs the user of a error in the program.

Front: Explain how exception handling works with system level data structures
Back: As an error occurs in a program, a exception is thrown. This computer handles the exception by pausing execution, saving the current state of the program to volatile store on the system stack and execution set of instruction defined within the catch block.

Front: State three errors which may occur during program execution
Back: 1. opening files which may or may not exist
1. calling missing subroutines, variables etc
1. performing operation on data types which cannot occur (diving by 0, or index out of range)

Front: State 5 advantages of using subroutines
Back: 1. individual subroutines can be separately tested simultaneously, shortening development time
1. many subroutines can be written independently at the same time, shortening development time
1. subroutines reduces the repetition of code, less likely for typing errors
1. subroutines are compact and understandable as separate units, easier to read
1. subroutines are self contained, independent of global variables by way of parameters, so can be reused in other programs

Front: Compare functions and procedures
Back: Both functions and procedures are types of subroutine, only functions return a value, while procedures do not return a value

Front: Define local variables
Back: - Variables which only exist while the subroutine is executing
- Which are only accessible within a subroutine

Front: Define global variables
Back: - Variables which can exist throughout the entire execution of a program
- Which are accessible from any part of a program

Front: Why must local variables be preferred to global variables
Back: - local variables only exist on the call stack, so memory is freed up after a subroutine call and the program is memory efficient
- local variables have reduced scope, so cannot be unknowing changed
- local variables makes code modular

Front: Define stack frame
Back: A stack data structure where return return addresses, parameters and local variables (in that order) are pushed, containing all the data needed for a single subroutine call to be executed.

Front: Define call stack
Back: A system level stack data structure, containing many stack frames, used to control the order of subroutine execution and nesting

Front: State the three essentials characteristics for a recursive subroutine
Back: 1. a base case
1. for all other input values other than the base case, the routine must call itself
1. the base case must be met after a finite number of subroutine calls

Front: Define base case within a recursive subroutine
Back: A Boolean condition, which when met will cause the routine to not call itself and unwind

Front: State the purpose of the Arithmetic Logic Unit (ALU)
Back: perform arithmetic, logical and shift operations on data within registers

Front: State the purpose of the Control Unit (CU)
Back: - Decodes instructions
- Sends control signals to fetch addresses and data itself
- Sends signals from the clock to all other CPU components to synchronise operations

Front: State the purpose of a System Clock
Back: Produces a square wave, with a regular frequency, alternating between ON-OFF, to synchronise communication between CPU components and rest of the computer

Front: Describe how the System Clock synchronises operations
Back: Operations are carried out only on the rising edge
Each operation takes a fixed number of clock periods

Front: Define registers
Back: - Small volatile storage locations within the CPU with very high read, write and access speeds
- Used to hold data temporarily which is being worked on

Front: Compare special purpose registers and general purpose registers
Back: - General purpose registers store any data which is to be or has been manipulated by a instruction
- Special purpose registers hold specific types of information

Front: State the purpose of the Program Counter (PC)
Back: Holds the memory address of the next instruction to be executed

Front: State the purpose of the Current Instruction Register (CIR)
Back: holds the current instruction

Front: State the purpose of the Memory Address Register (MAR)
Back: Holds the memory address where the processor is required to fetch data from or store data to

Front: State the purpose of the Memory Buffer Register (MBR)
Back: Holds the contents of a memory location which has been read from, or the data which is stored in a memory location

Front: State the purpose of the status register (SR)
Back: Contains flag bits which change to indicate an interrupt, overflow or underflow error

Front: Explain the term processor instruction set
Back: All the instructions which a processor can understand and execute
Is specific to a family of processors: x86, ARM, RISC-V

Front: State the three parts of a machine code instructions
Back: Opcode + addressing mode bit + Operand

Front: Explain the difference between immediate addressing mode and direct addressing mode
Back: - With immediate addressing mode: the value specified by the operand is the actual value to be used
- With direct addressing mode: the value specified by the operand is the memory address where the actual value is stored

Front: State 4 factors which affect the performance of a CPU
Back: 1. Clock speed
1. Cache memory
1. Core count
1. Word length

Front: Define processor interrupt
Back: - A signal sent to change the Status Register (SR) of the CPU,
- After each FDE cycle the SR is checked, noticed and handled using a vectored interrupt method
- Then a interrupt service routine is called before normal execution is resumed

Front: State the two origins of processor interrupts
Back: - Hardware
When an I/O operation is complete or throws an error ( Printer out of paper)
- Software
When an application program terminates or requests services from the OS

Front: Explain what vectored interrupt method is
Back: 1. Current executing instruction stops
1. The contents of all the registers within the CPU is pushed onto the system stack as a volatile environment
1. Once the interrupt service routine finished, the volatile environment is restored and resumes normal execution

Front: Explain what an interrupt service routine is
Back: A series of instructions for handling an interrupt, specific to that type of interrupt

Front: State the three stages of the Fetch-Decode-Execute (FDE) cycle
Back: - Fetch
  1. PC → MAR instruction
  1. PC + 1
  1. MAR → Main Memory instruction via address bus
  1. Main Memory → MBR data/instruction via data bus
  1. MBR → CIR
- Decode
  1. CIR decodes instruction and sends it to PC
  1. CIR also fetches additional data, if required by placing an address in MAR
- Execute
  1. Instruction is executed by ALU
  1. registers store intermediate data and results
  1. The result is stored in the accumulator

Front: State the two factors of comparison when discussing the efficiency of an algorithm
Back: - time complexity
- space complexity

Front: Define the time complexity of an algorithm
Back: How quickly the time it takes to solve a problem increases with the size of input data

Front: Define the space complexity of an algorithm
Back: How much space in memory a program uses while solving a problem

Front: Describe a perfectly efficient algorithm
Back: One which uses the least space in memory and finishes executing in as little time as possible

Front: Define Big O Notation
Back: A measure of time complexity

Front: What is the time complexity of determining if a number is odd or even
Back: A single comparison, where time is independent of the size of the input
O(C) = constant
Other fields (not shown on cards):
MyMedia: eedb3725da1eecf4b37c25efdc22c54f0a0eb86d.png

Front: How would one recognise a O(log n) algorithm
Back: Number of items half each iteration
(binary search)
Other fields (not shown on cards):
MyMedia: 7f575cd9e34ed23e3519d7e59dff03564779ed4f.png

Front: How would one recognise a O(n) algorithm
Back: If each item of the input data must be compared, then the time complexity is linear
Other fields (not shown on cards):
MyMedia: bd96e744e48b142748d0dcd292940005ef4e8cde.png

Front: State one linear logarithmic algorithm you have studied
Back: merge sort

Front: A program is designed with a loop within a loop, what is its time complexity?
Back: A loop within a loop signifies a polynomial time solution O(n^2)
Other fields (not shown on cards):
MyMedia: b7e674eb372b83683eea41fad5028a59d47c7f1b.png

Front: A program is designed with a loop within a loop within a loop, what is its time complexity?
Back: A loop within a loop signifies a polynomial time solution O(n^3)
Other fields (not shown on cards):
MyMedia: 6bf90feb64baefd81de981e1d4d194ff736d7512.png

Front: Explain how you could recognise a program to have an exponential time complexity
Back: Often recursion
(e.g. recursively calculating numbers within the Fibonacci sequence)
Other fields (not shown on cards):
MyMedia: 109ea86c007a23bc8437c20b739782f0cd342e1f.png

Front: State in order of increasing time complexity the variations of Big-O
Back: 1. O(1) - constant
1. O(log n) - logarithmic
1. O(n) - linear
1. O(n log n) - linear logarithmic
1. O(n^2) - polynomial
1. O(2^n) - exponential
1. O(n!) - factorial

Front: State the time complexity of intractable problems
Back: 1. O(2^n) - exponential
1. O(n!) - factorial

Front: Compare tractable and intractable problems
Back: - tractable problems are those within a polynomial time complexity or better, and can be solved within a useful time period
- intractable problems are those with exponential or factorial time complexities, and cannot be solved within a useful time period

Front: Explain how intractable problems may be solved
Back: Using heuristic methods, a solution is reached which is good enough within a useful time frame

Front: State the halting problem
Back: it is impossible to write an algorithm to determine if any input algorithm will finish with a given input.

Front: Explain the importance of the halting problem
Back: Proves that some problems exist which cannot be solved by computers

Front: Define algorithm
Back: A sequence of steps which can be followed to complete a task which always terminates

Front: Define representational abstraction
Back: The removal of unnecessary detail

Front: Define abstraction by generalisation/ categorisation
Back: Grouping by common characteristics to arrive at a hierarchal, 'is a kind of' relationship

Front: Define information hiding
Back: Hiding all of the details of an object, which do not contribute to its essential characteristics or behaviours

Front: Define procedural abstraction
Back: - Breaking down a complex model into a series of reusable procedures
- actual values used for one instance of the problem is abstracted away

Front: Define functional abstraction
Back: Calling a function, which returns a result, without knowing sequence of steps used to arrive at the result

Front: Define data abstraction
Back: Removing specific details of how data is stored in memory, focussing on how one might interact with data only

Front: Define problem abstraction
Back: The removal of unnecessary detail to arrive at a problem which has already been solved

Front: Define procedural decomposition
Back: Breaking down a problem into a number of smaller sub-problems, each which accomplish a single identifiable task

Front: Define composition
Back: The process of combing procedures to form compound procedures

Front: Give an example of composition
Back: Abstract data types such as arrays and trees are made from many simpler data types

Front: Define automation
Back: Creating models/ abstractions of real world objects and phenomena in order to solve problems

Front: State 4 things which can be done in order to create models for automation
Back: - removing all details irrelevant to the problem
- designing and implementing algorithms
- designing and implementing abstract data structures
- executing code

Front: Define entity
Back: A category of object, person, event or a thing of interest about which data must be recorded.

Front: Define relation
Back: An category of object, person, event or thing of interest about which data must be recorded in a relation database.

Front: Define attribute
Back: The category of information which occupies one column in a table.

Front: Define record
Back: A set of data about one object, person or thing holding all the attributes - a row in a table.

Front: Define field
Back: One unit of data within a record, corresponding to one attribute.

Front: Describe the structure of a database:
Back: Each relation is represented by a table, each field in each column corresponds to one attribute. The set of fields in each row is one record. There are multiple relations in a database.

Front: Define identifier:
Back: The name of an attribute

Front: Define primary key:
Back: The name of attribute which uniquely identifies a record.

Front: Define composite primary key:
Back: Two or more attributes are all required to uniquely identify a record.

Front: Define Foreign key:
Back: An attribute that is primary key of one relation which is present in another relation, in order to create a join between two relations.

Front: Example of an entity description:
Back: Customer (CustID, title, firstname, surname, email)

Front: What does an underline signify in an entity description?
Back: The primary key(s).

Front: What does either italics or an overline signify in an entity description?
Back: A foreign key.

Front: In a relational database what types of relationships may exist:
Back: One-to-one One-to-many Many-to-many

Front: Draw each type of join which may exist in a relational database:
Back: Remember that crows’ feet are drawn on the many side of the relationship.

Front: Why are many-to-many relationships avoided:
Back: Creates sets of repeating data.

Front: How should you resolve many-to-many relationships?
Back: Create a link table with an one-to-many relationship with both relations previously in the many-to-many relationship. The many-side of both relationships should be at the link table. The link table should contain the primary key(s) of both relations in the obsolete many-to-many relationship

Front: Compare local scope and global scope
Back: - Local scope if it is only accessible from the structure within which it is declared
- Global scope if it is accessible from all parts of the program

Front: Define the structured approach to program design
Back: - Only three program structures are used: sequence, selection and iteration
- Designed from the top down to modular

Front: Explain what is meant by top down design
Back: problem decomposition: a large task is broken down into smaller subtasks until each subtask accomplishes one identifiable task

Front: State 4 advantages of modular structured programming
Back: - large programs can be split in modules that are easier to read, debug and maintain
- several modules can be worked on at the same time, shortening development time
- modules can be reused in other programs, shortening development time
- each module can be individually tested

Front: State 2 limitations of a hierarchy chart
Back: - detailed program structures are not shown
- selection and iteration not specified

Front: Define class in OOP
Back: A blueprint for an object: specifying the attributes and methods which capture common characteristics and behaviours

Front: Define object in OOP
Back: An abstract data type and one instance of a class

Front: Define instantiation in OOP
Back: Creating an object based on a class, using a constructor method

Front: Define state of an Object in OOP
Back: The current values of one instance of a class' attributes

Front: Define encapsulation in OOP
Back: All of an objects methods, procedures and data are wrapped into a single entity

Front: Explain the purpose for encapsulation in OOP
Back: It uses the concept of information hiding, so that many developers may interact with an object as an abstract data type written by others without knowing how its methods are implemented.

Front: Define inheritance in OOP
Back: Subclasses may share all the attributes and methods of the superclass, and then extend it with new attributes and methods

Front: Explain the difference between polymorphism and overriding
Back: - polymorphism describes the ability to process objects differently based on their class
- overriding describes defining a method within a subclass with the same identifier as method in the superclass, but changing its implementation
- polymorphism is achieved through overriding

Front: Compare how you would identify the difference between a inheritance relationship and an associative relationship in OOP
Back: - inheritance: x "is a" type of y
- association: x "has a" y

Front: State the two forms of association in OOP
Back: - Aggregation
- Composition

Front: Define Aggregation in OOP
Back: If the container object is destroyed, the constituent objects still exist independently

Front: Define Composition in OOP
Back: If the container object is destroyed, then the constituent objects are also destroyed

Front: State the three principles of good OOP design
Back: - favour composition over inheritance
- encapsulate what varies
- program to interfaces not implementation

Front: Explain why you should favour composition over inheritance in OOP
Back: - while when a containing object is destroyed so are its constituent objects, constituent objects may not need all the methods and attributes of its parent object
- more flexible relationship

Front: Explain why you should always encapsulate what varies in OOP
Back: reduce maintenance and testing difficulty

Front: Explain the concept of programming to interfaces not implementations
Back: Methods and procedures should be called based on how a third party would like to interact with the abstract data type, not how the abstract data type would carry out its objectives

Front: A driver and a car have associative relationship in an OOP program, draw a class diagram to show this relationship
Back: Aggregation - weaker association - white diamond on the container object: INSERT IMAGE

Front: A wheel and a car have associative relationship in an OOP program, draw a class diagram to show this relationship
Back: Composition - stronger association - black diamond on the container object: INSERT IMAGE

Front: State the three forms of access modifiers as used by both methods and attributes of an object in OOP
Back: - public
- private
- protected

Front: Define a public method in OOP
Back: Can be accessed by methods within the defining class, via inheritance and via reference to object of a class (identifier for an instance)

Front: Define a private method in OOP
Back: Can only be accessed by methods within the defining class

Front: Define a protected method in OOP
Back: Can be accessed by methods within the defining class, via inheritance and only if it is in a subclass definition

Front: State the three respective symbols used to represent public, private and protected methods within a class diagram within OOP
Back: public = +
private = -
protected = #

Front: State 3 advantages of OOP design
Back: - Rigidly enforced modular structure: makes it easier to maintain
- Simpler to extend and adapt programs using composition and inheritance
- Code can be reused in other programs without the other knowing how it works: encapsulation and modular structure

Front: Draw a NOT gate
Other fields (not shown on cards):
MyMedia: abab51d9f45b989a37959eb6af3fa33678ea2c0b.png

Front: Draw a truth table for a NOT gate
Other fields (not shown on cards):
MyMedia: 1e8b59d4dabc9f8a8f3e9b5edc5763b228a89b70.png

Front: Draw an AND gate
Other fields (not shown on cards):
MyMedia: a3c2fc90177bdd99b78853f8d2c6ef8e42a69a1c.png

Front: Draw a truth table for an AND gate
Other fields (not shown on cards):
MyMedia: 0c2ac48255bdc920658d5fab0a966c928427369d.png

Front: Draw an OR gate
Other fields (not shown on cards):
MyMedia: 1849713a4263650715fafc197b7b85023f256ef6.png

Front: Draw a truth table for an OR gate
Other fields (not shown on cards):
MyMedia: 653db17a60831edf1dcb5fbdb5df5d01e9a81696.png

Front: Draw an XOR gate
Other fields (not shown on cards):
MyMedia: 4c99c9379b3881c76a6b90cd599995b44d6c47aa.png

Front: Draw a truth table for an XOR gate
Other fields (not shown on cards):
MyMedia: 81fc368cea9c3d3edf96fbe125ec109f4123ffa8.png

Front: Draw a NAND gate
Other fields (not shown on cards):
MyMedia: 18b369821681fff90b114d7646bc933de3ea6a59.png

Front: Draw a truth table for a NAND gate
Other fields (not shown on cards):
MyMedia: 03b73e2be09d563323457bda0483141e6107320a.png

Front: Draw a NOR gate
Other fields (not shown on cards):
MyMedia: 908dccbef8b4a5dbb6a1cf94d1254cddc47bdd7f.png

Front: Draw a truth table for a NOR gate
Other fields (not shown on cards):
MyMedia: 889904d901f0799cd5256a5b3510aedcf8f95f9a.png

Front: Draw the truth table for binary addition, ignoring the possibility of a carry in
Back: - Isolate the truth table for the SUM output
  - Which logic gate does this truth table resemble?
    - XOR gate
    - Hence SUM = A(*)B
- Isolate the truth table for the Carry Out Output
  - Which logic gate does this truth table resemble
    - AND gate
    - Hence Carry Out (CO) = A*B
- Draw the logic diagram for a half adder
S = A ⊕ B
CO = A * B
Other fields (not shown on cards):
MyMedia: ab5f8b6d85ced5cb3fcc5de67fa129e5b583accb.png,662cdaff949fff14b38d0723688343a4b9645c69.png,42d3b44af322d7b8ebc2e768a385818ba1bf0384.png,119fbb7b7398e1d1e1be7ccbd44614d95a844480.png

Front: Removing the detail of half-adders draw a simplified logic diagram of a full adder
Other fields (not shown on cards):
MyMedia: d75c1d76cd15ff59446ed9380fdf20ff269aef0c.png

Front: Describe the purpose of edge-triggered D-type flip flop
Back: Can store a 1 bit value, on or off

Front: Draw a diagram detailing the only Inputs and Outputs of a D-type flip flop
Other fields (not shown on cards):
MyMedia: 00f1020b6d4ca4d4a499ecda4610e6186f3a21dd.png

Front: Explain the purpose the clock signal within a D-type flip flop
Back: - The state of output Q can only change on the rising edge of the clock signal
- Therefore the clock signal can synchronise many D-type flip flops to store a larger number of bits

Front: Where are D type flip-flops found in a computer system
Back: CPU registers

Front: Why is a NAND gate known as a universal gate
Back: Because all other gates can be derived from just NAND gates, so any circuit can be built using just NAND gates

Front: What is a Database Management System (DBMS)?
Back: Software which processes databases transactions for clients or individual workstations.

Front: Can you explain the advantages of a client-server system?
Back: - Database consistency as only one working copy is held.
- The resources of a powerful computer are available to many less powerful workstations.
- Access rights, security and backup of the database is managed centrally.

Front: Explain what simultaneous access is?
Back: More than one user can access the database at the same time.

Front: What is concurrent access?
Back: Simultaneous access of the same field or record.

Front: What are two potential problems with concurrent access?
Back: Updates are lost and inconsistences occur with simultaneous co-dependent updates.

Front: Give two examples of a database operation?
Back: Copying from a record or modifying a record

Front: Explain what a database transaction is
Back: A group of operations which all must be successful for a transaction to be saved and the database updated.

Front: What occurs is any operation in a database transaction fails?
Back: The DBMS allows the database to revert to a state previous to operations involved in the transaction.

Front: What is the hierarchy of resolving potential client-server database systems?
Back: Record locking >> Time stamp ordering >> Commitment ordering
With timestamp ordering and commitment ordering both being techniques of serialisation.

Front: What problem does record locking fix?
Back: Lost updates and prevents database inconsistencies.

Front: Explain how record locking works?
Back: When the initial request is made on a set of data, and another user attempts to make a second request on the same set of data, the DBMS prevents the second request from occurring, until the initial request is completed.

Front: What problem could occur with record locking?
Back: Database deadlock.

Front: Explain what database deadlock is?
Back: A transaction is made to copy from data set A to data set B, so dataset A is locked. Another transaction is made to copy data set B to data set A, so B is locked. If these occur at the same time, both A and B will be prevented from access so both transactions are waiting for either data set to free up, which will never occur.

Front: What problem does serialisation prevent?
Back: Database deadlock.

Front: What are two methods of serialisation?
Back: Time stamp ordering and commitment ordering.

Front: Explain how timestamp ordering works?
Back: Each transaction updates a read timestamp as it starts. Only The transaction with the earliest timestamp is applied, the other fails.

Front: Why does timestamp ordering prevent updates being lost?
Back: A write timestamp is also given, but only when it has updated the database. Before a write timestamp can be given the DBMS checks that the most recent read timestamp was the same as it was when it started. If not then the most recently requested transaction is doomed to fail, and the transaction requested first triumphs.

Front: Explain commitment ordering?
Back: As well as the read timestamp check, a table of transactional dependencies can be used to provide priority access and also prevent data inconsistencies.

Front: Convert 78 decimal into 8 bit unsigned binary
Back: 128 64 32 16 8 4 2 1
0 1 0 0 1 1 1 0
- 78 - 64 = 14
- 14 - 8 = 6
- 6 - 4 = 2
- 2 - 2 = 0

Front: Convert 10110010 binary to decimal
Back: 8-bit
128 64 32 16 8 4 2 1
1 0 1 1 0 0 1 0
128 + 32 + 16 + 2 = 178

Front: Convert 1101111 binary to hexadecimal
Back: 11011111 → 1101 + 1111
- 8 4 2 1
- 1 1 0 1
8 + 4 + 1 = 13 decimal
- 8 4 2 1
- 1 1 1 1
8 + 4 + 2 + 1 = 15 decimal
10: A, 11: B, 12:C, 13:D, 14:E, 15:F
DF hexadecimal

Front: Convert B2 hexadecimal to binary
Back: B2 = B + 2
B: 11 2: 2
11 → 4 bit binary
- 8 4 2 1
- 1 0 1 1
2 → 4 bit binary
- 8 4 2 1
- 0 0 1 0
1011 + 0010 → 10110010

Front: Convert A3 hexadecimal to decimal
Back: A3 → A + 3
A: 10, 3: 3
10 decimal→ 4 bit binary
- 8 4 2 1
- 1 0 1 0
3 decimal→ 4 bit binary
- 8 4 2 1
- 0 0 1 1
1010 + 0011 → 10100011
10100011 binary → decimal
- 128 64 32 16 8 4 2 1
- 1 0 1 0 0 0 1 1
128 + 32 + 2 + 1 = 163
hexadecimal → binary → decimal

Front: Convert 156 decimal to hexadecimal
Back: 128 64 32 16 8 4 2 1
- 156 - 128 = 28
- 28 - 16 = 12
- 12 - 8 = 4
- 4 - 4 = 0
10011100
10011100 → 1001 + 1100
- 8 4 2 1
- 1 0 0 1
8 + 1 = 9 decimal
- 8 4 2 1
- 1 1 0 0
8 + 4 = 12 decimal
9 = 9 hexadecimal
12 = C hexadecimal
9C
decimal → binary → hexadecimal

Front: Why is hexadecimal used in shorthand for binary
Back: compact: hexadecimal can represent larger numbers using fewer characters
- quicker to record
- less likely for errors in transcription
- simple to convert hexadecimal into binary

Front: Compare physical topology with logical topology
Back: - physical topology refers to the actual architecture of a network, how the wires and nodes are connected in space
- logical topology refers to the flow of data packets within a network's wires and nodes
(a network with a start topology, may behave as a bus network)

Front: Define physical star network topology
Back: - each client has its own private connection to the central hub
- the hub receives packets for all the clients connected to it and redirects it to the intended recipient

Front: Define physical bus network topology
Back: - There is a single cable called the backbone
- 2 devices each on the end of the backbone called terminators

Front: State 4 advantages of a physical star topology
Back: - greater security, packets are only sent to intended recipient, other clients cannot see the data packets of other clients transmissions
- collisions cannot occur as each client has its own private connection to the central hub
- easy to add and remove clients from the network
- The failure of a single cable does not affect the performance of the whole network

Front: State 2 disadvantages of a physical star topology
Back: - the central hub is a single point of failure
- more cabling required so more expensive to install

Front: State 1 advantage of a physical bus network topology
Back: - Inexpensive as a minimum length of cabling is required to install

Front: State 3 disadvantages of a physical bus network topology
Back: - lower security as each client can see every packet traveling on the backbone, regardless of whether they were the intended recipient
- greater likelihood of collisions as each client may not be synchronised with every other client (affects performance)
- backbone is a single point of failure

Front: Define client-server
Back: - One machine is nominated as the server
- They are many client machines
- The server machine provide files and server on request of the client machines

Front: Define peer-to-peer networks
Back: - each device on the network has equal status, it can behave both as a client and a server

Front: State 3 advantages of client-server networking
Back: - The resources of a more powerful machine may be made available to larger number of less powerful machines
- Data on a client-server network is centralised, so backup is centralised and thus easier
- Data on the client-server network is centralised, so centralised management of access rights and file permissions and limits may be enforced easily (greater security)

Front: State 3 disadvantages of client-server networking
Back: - more expensive
- difficult to set up and maintain
- individuals with a high degree of expertise may need to hired in order for central management

Front: State 4 advantages of peer-to-peer networking
Back: - more cost effective
- easier to set up and maintain
- no one machine needs to be particularly more powerful to provide all the services to each client
- if one machine malfunctions only the services it provides become unavailable, compared to all services

Front: State 3 disadvantages of peer-to-peer networking
Back: - All the clients which provide services must be functional in order for the network to be fully operational

Front: Define WIFI
Back: An implementation of a wireless local area network, based upon international standards, used to enable devices to connect to a network wirelessly

Front: Define WAP
Back: - A device connected to the central hub
- which broadcasts and receives radio signals
- which have encoded data packets
- to devices with network interface cards

Front: Define NICs
Back: A device used to receive, decode and translate radio signals containing data packets

Front: Explain why a wireless network is seen as less secure than a wireless network
Back: Data packets are broadcast over a general area
Any NIC within the range can intercept data packets

Front: State 3 methods which when implemented make a network more secure
Back: - WPA/2 encryption
- disable SSID broadcast
- MAC address filtering

Front: Explain how WPA makes a network more secure
Back: - Encrypts all data packets broadcast, required a password to decrypt.
- Only those devices with password can understand data packets broadcast

Front: Explain how disabling SSID broadcast makes a network more secure
Back: - A SSID identifies a WAP
- Disabling SSID broadcast, means the network is not shown in the list of available network produced by computers
- Only those who know a wireless network exists and its SSID can attempt to connect to it

Front: Explain how MAC address filtering makes a network more secure
Back: - Each NIC has a MAC address which uniquely identifies it
- Each request sent to the WAP includes this information
- By creating a whitelist, only those approved devices can successfully connect
- By creating a blacklist, known individuals can be prevented from accessing the network

Front: What does WPA stand for
Back: Wireless Protected Access

Front: What does SSID stand for
Back: Service Set Identifier

Front: What does MAC address stand for
Back: Media Access Control

Front: State the protocol used to avoid collisions within a small wireless network
Back: CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance)

Front: Explain why CSMA/ CA alone is not sufficient to avoid collisions within a large wireless network
Back: - Hidden nodes,
- where a device checking an idle channel is blocked from seeing some other nodes,
- and thus views an channel as idle, when the other node is communicating

Front: State the protocol implemented on top of CSMA/CA in order to solve the problem of hidden nodes
Back: RTS/ CTS (Request To Send/ Clear To Send)

Front: Describe the CSMA/ CA protocol
Back: 1. A transmitting device checks to see if the channel is idle
1. If the channel is idle, then transmission begins
1. If the channel is busy then an exponential back-off algorithm is used to wait a random, increasing period of time before checking the channel again
Other fields (not shown on cards):
MyMedia: f81b6fe868888f29101daf6f04488d7c5cff1bcd.png

Front: Describe the CSMA/ CA protocol with RTS/ CTS
Back: 1. A transmitting device checks to see if the channel is idle
1. If the channel is busy then an exponential back-off algorithm is used to wait a random, increasing period of time before checking the channel again
1. If the channel is idle, then a request to send signal is transmitted
1. The transmitting device waits for a clear to send signal for a set period of time
1. If a CTS received then transmission begins
1. If a CTS is not received with in a period of time, the device will use a exponential back off algorithm to wait a random, increasing period of time, before checking of the channel is idle again
Other fields (not shown on cards):
MyMedia: c0734e143090ac8db2a9fd898a2c85c73a69b1bc.png

Front: State two forms of high level languages
Back: - imperative
- declarative

Front: Define imperative high level languages
Back: Languages which provide instructions on how a computer should perform a task

Front: Define declarative high level languages
Back: Languages which focus on what the result of a computer program should be

Front: State two forms of low level languages
Back: - Machine code
- Assembly Language

Front: Define machine code
Back: Binary instructions which directly manipulates the processor and space in memory

Front: Define assembly language
Back: - An abstraction of machine code, with a 1-1 correspondence with binary instructions.
- Mnemonics replace binary instructions, register name codes and hexadecimal replace binary data

Front: State the four categories of comparison between machine code, assembly language and high level languages
Back: 1. portability
1. ease of use
1. ease of debugging
1. speed of execution

Front: Compare the portability of machine code, assembly language and high level languages
Back: - Both machine code and assembly language are processor type specific and different due to different instruction sets
- High level languages can used across a range of processor types

Front: Compare the ease of use of machine code, assembly language and high level languages
Back: - machine code is difficult for humans to understand, which increases development time and frequency of errors
- assembly language implements mnemonics which, makes it slightly easier for humans to understand, but less so than high-level languages
- high level languages are very easy for humans to understand as they close to human language, include many more programming structures such as iteration

Front: Compare the ease of debugging of machine code, assembly language and high level languages
Back: - High level languages are far easier to debug than low level languages because of named variables, indentations and human language commenting

Front: Compare the speed of machine code, assembly language and high level languages
Back: - Machine code requires no translation as the processor can directly understand binary instruction, fastest
- Assembly language requires translation into machine code by an assembler, however due to the 1-1 correspondence this is very quick and execution speed is comparable to machine code
- High level languages must use a complier or interpreter, to translate program code into machine code.
  - This is slow, time-consuming and the potential for code to optimised to the hardware instance it will run on is limited so even execution time is slower

Front: Describe a situation where an assembly language would be an appropriate choice, giving reasons why
Back: - Device drivers for keyboards or other peripheral devices.
- Here a low level language must be used because it requires manipulation of individual bits, which a high level language cannot do.
- Furthermore they may have a built in embedded system, using which they interface with the CPU’s IO controller. These often have low main memory requirements, and assembly code usually takes less space in memory than an equivalent high level language

Front: For the list [4, 3, 5], return the head
Back: [4]
The first element in the list is the head

Front: For the list [4, 3, 5] return the tail
Back: [3,5]
Everything apart from the first element in the list is the tail

Front: State and explain is the result of null []
Back: True, this means the list is empty

Front: State and explain is the result of null [4, 3, 5]
Back: False

Front: n = [1, 2, 3] /n n = n ++ [4, 5], what is the result of length[n]
Back: lists are immutable, the second line would return an error, while length[n] would be 3

Front: What is the result of Map (+1) {8, 11, 21}
Back: {9, 12, 22}

Front: What is the result of Filter (>4) {8, 2, 3, 7}
Back: {8, 7}

Front: What is the result of Foldl (+) {8,2,3,7}
Back: (((8+2)+3)+7) = 10+3+7 = 13+7 = 20

Front: Define ℕ
Back: Natural numbers: the set of positive whole numbers and zero

Front: Define ℤ
Back: Integer numbers: the set of whole numbers, including both positive and negative numbers including zero

Front: Define ℚ
Back: Rational numbers: the set of all numbers which can written as a fraction, including both positive and negative numbers including zero

Front: Define Irrational numbers
Back: Irrational numbers: cannot be written exactly as a fraction: surds, pi, Euler's number

Front: Define ℝ
Back: Real numbers: all possible real world numbers: irrational, rational ℚ, integers ℤ and natural ℕ

Front: Define Ordinal numbers
Back: Integer numbers used to describe numerical positions of objects in relation to each other: 1st, 2nd, 3rd

Front: Which set of numbers would you use for counting how many computer science topics are left?
Back: ℕ - natural numbers

Front: Which set of numbers would you use for measuring the the length of a football field?
Back: ℝ - real numbers

Front: Define a finite state machine
Back: An abstract representation of how something changes from one state to another in response to an input, condition or event
The machine can only have 1 state at a time and is defined as a list of states and conditions for transitions

Front: Define a finite state automaton
Back: A FSM with no outputs, one start state and a series of accept states

Front: State 4 uses of finite state machines
Back: 1. Robotics
1. Video Game Design
1. Design of compilers
1. Definition of programming languages

Front: Define a mealy machine
Back: A type of finite state machine, where an output is produced on each transition and determined by the current state and its input

Front: State 3 uses of a mealy machine
Back: - Map an input sequence to an output sequence
- Language parsing
- Language translation

Front: Define a set
Back: A well-defined collection of unordered objects, where each member only appears once

Front: What does x ∈ S mean
Back: x is a member of set S

Front: What does x ∉ S mean
Back: x is not a member of set S

Front: Write in plain English the meaning of this expression S = { x | x ∈ N ᴧ x is even }
Back: - x | = x is such that
- x ∈ N = x is a member of the set of Natural numbers
- ᴧ = and
- x is even
x is such that x is a member of a set of Natural numbers and is even

Front: How might the empty set be represented?
Back: {} or ø
A empty set is a set with no members

Front: How many empty sets are there
Back: Only one empty set exists, because all members of a set can only appear once

Front: Explain x = {x | A ∪ B}
Back: Union
x is such that it is a member of set A, or a member of set B, or a member of set A and B

Front: Explain x = {x | A ∩ B}
Back: intersection
x is such that it is a member of both set A and set B only

Front: Explain x = {x | A \ B}
Back: Difference
x is such that it is a member of set A, but not a member of set B

Front: Describe set A such that this expression is true A ⊆ B
Back: A is a subset of B as long as every member of set A is also a member of set B

Front: Describe set A such that this expression is true A ⊂ B
Back: A is a proper subset of B when members of set A is also a member of set B, but not all of them

Front: Define in words the cartesian product of two sets
Back: The set of all ordered pairs (a, b) such at a ∈ A and b ∈ B

Front: Write the state comprehension for A x B
Back: A x B = {(a, b) | a ∈ A ᴧ b ∈ B}

Front: A = {1,2} and B = {4,8} What is A X B?
Back: {(1,4), (1,8), (2,4), (2,8)}

Front: A = {2,4,6,8}, what is |A|
Back: The cardinality of set A is the number of elements in the finite set
which is 4

Front: Define a countably infinite set
Back: A set where there are an infinite number of distinct numbers which can be counted using N

Front: State the three essential properties of Big Data
Back: 1. Volume
1. Velocity
1. Variety

Front: Explain what is meant when big data is said to have a large volume
Back: - too much data to fit on one server computer, even with many hard drives
- data must be distributed across multiple servers, each with many hard drives

Front: Explain what is meant when big data is said to have a large velocity
Back: New data is created rapidly
Data sets can frequently change each millisecond

Front: Explain what is meant when big data is said to have a wide variety
Back: Data is in multiple formats, such as photos, videos and text and unstructured

Front: Give three examples of big data
Back: - video surveillance
- traffic data
- bank transaction monitoring

Front: Explain why relational databases are not suited for analysing big data
Back: big data is unstructured, so cannot fit within rigid row, column format of relational databases
big data is hosted across many server computers, relational database management systems will slow down greatly if scaled with many machines

Front: State three features of functional programming languages, which make it ideal for processing functional data
Back: 1. immutable data structures
1. statelessness
1. higher order functions

Front: Explain what is meant by a higher order function in functional programming
Back: A function which takes functions as its input and/ or outputs a function

Front: Explain what is meant by statelessness in functional programming
Back: A function call will always return the same result, not side effects

Front: Explain what is meant by immutable data structures in functional programming
Back: Data structures, such as arrays, lists, floats cannot be changed during execution, only new data structures made from existing data structures

Front: Explain why the three essential features of the functional programming paradigm make it ideal for processing big data
Back: - allows for the distributed, parallel processing, where many computers perform operations on the same data set, to provide a very quick response
- makes it easier to write correct code, which is already optimised for distributed parallel processing

Front: State the three essential features of the fact based model
Back: no index, new data appended with timestamp
each fact captures a single piece of information
each fact is immutable (no risk of losing data due to human error)

Front: Define symbol
Back: A particular pattern of bits represented by a signal

Front: Define Baud rate
Back: The number of signal changes in the medium per second
(1Bd = 1 symbol change per second)

Front: Define Bit rate
Back: The number of bits which are transmitted over a medium per second (bps)

Front: State the formula used to calculate bit rate
Back: bit rate = baud rate * bits per signal

Front: State the case where bit rate is equal to baud rate, greater than baud rate and less than baud rate
Back: bit rate = baud rate * bits per signal
- bit rate > baud rate if there is more than 1 bit sent per signal
- bit rate = baud rate if there is 1 bit sent per signal
- bit rate can not be lower than baud rate

Front: Define bandwidth
Back: The range of frequencies that a communication medium is capable of transmitting (Hz)

Front: Describe the relationship between bandwidth and bitrate
Back: A higher bandwidth is directly proportional with an increase bit rate.
However, there is not a causal relationship.

Front: Define latency
Back: The difference in time (milliseconds) between an action (signal sent) being initiated and its effect being noticed (signal received)

Front: Describe the relationship between latency and distance
Back: The greater the distance, the greater the latency

Front: Define protocol
Back: A set of rules defining methods of communication, agreed upon by manufacturers to enable seamless communication

Front: Define serial data transmission
Back: Data is sent one bit at a time over a single communication line

Front: Define parallel data transmission
Back: Multiples bits are sent simultaneously over many parallel wires

Front: Define skew
Back: Due to tiny differences in the electrical properties of parallel wires, during parallel transmission the time taken for each bit to transferred not be the same.

Front: Define crosstalk
Back: Electrical interference between tightly packed adjacent wires causes signal data to change, which leads to corruption

Front: Describe the relationship between skew, crosstalk and distance in parallel transmission
Back: The greater the distance, data to be corrupted because
- Over long distances different signals may overlap due to skew
- Over long distances there is more opportunity for crosstalk

Front: State and Explain the type of transmission best suited for long distance communication
Back: serial data transmission
at long distances data is susceptible to corruption due to skew and crosstalk with parallel transmission
at long distances cabling is cheaper with serial transmission as many more wires are required at the same distance for parallel transmission

Front: Define synchronous transmission
Back: A clock signal, which is share by both the sender and recipient, is used to time when signals are sent
This means data will be sent at regular intervals and received in the same order they were sent

Front: Define asynchronous transmission
Back: - no clock signal required
- replaced by stop and start bit system
- where sender and receiver must use the same baud rate for the duration of the transmission

Front: State the purpose of start and stop bits within asynchronous transmission
Back: Use to synchronise only for the period of transmission, so that the recipient systems will understand when a character ends and another begins

Front: Why must all databases be fully normalised?
Back: - No duplication of data leads to…
  - Easier to update and change data, as changes will only need to occur in one field.
  - Maintaining data integrity, and removes the possibility of one record having two different values for attributes
- Having smaller tables with fewer fields
  - means faster queries.
  - means more data can fit inside the same amount of space

Front: What causes non-atomic fields?
Back: Many-to-Many relationships

Front: How to resolve non-atomic fields?
Back: Split an entity into two relations.

Front: What causes repeating groups of attributes?
Back: Many-to-many relationships

Front: How to resolve repeating sets of attributes?
Back: Introduce link tables.

Front: Describe a link table?
Back: A relation with all of the attributes being both foreign keys of other relations and composite primary keys of itself.

Front: What is a partial key dependency?
Back: Where an entity has a composite primary key and another attribute is dependent on only one of the attributes that make up the primary key.

Front: What is a non-key dependency?
Back: Where an attribute is not dependant on the primary key.

Front: What is 1st normal form (1NF)?
Back: - No-non atomic fields
- No repeating sets of data

Front: What is 2nd normal form (2NF)?
Back: - No-non atomic fields
- NO repeating sets of data
- No partial key dependencies

Front: What is 3rd normal form?
Back: - No-non atomic fields
- No repeating sets of data
- No partial key dependencies
- No non-key dependencies

Front: Compare the method of error checking during translation between compliers and interpreters
Back: - Compilers check source code line-line for errors before translating
- While translators will translate program code line by line until they reach an line with an error where an interrupt will be thrown

Front: Compare the method of translation between compilers and interpreters
Back: - Compilers translate the entire source code at once
- While translators will translate and execute code sequentially after checking line by line for errors

Front: Compare the final product of compilers and interpreters
Back: Final binary output of compilers can be executed independently of source code, and so offers code extraction protection
Both the interpreter and the source code must be present for the program to execute, so offers no protection against code extraction

Front: Compare the speed of execution of the final product of compilers and interpreters
Back: - Compilers produce binaries, which are essentially pure machine code which can be directly executed by the processor. Compiled code has a faster execution time
- While translation must occur before each line is executed using an interpreter

Front: Compare source code and object code
Back: Source code is the input program code of a translator
Object code is the machine code/ byte code output of a translator

Front: Explain the purpose of a translator producing bytecode output instead of machine code
Back: Bytecode is an intermediate language, which enables code to platform independent, while still offering code extraction prevention and faster-than-interpreter execution speeds

Front: Explain how bytecode allows for platform independent execution, without all the disadvantages of a interpreter
Back: Software will run on many target machines called virtual machines. Virtual machines possess the ability to understand and execute bytecode, as all virtual machine will share an instruction set.

Front: Within a regular expression what does this metacharacter mean "*"
Back: - 0 or more repetitions
  - ab* is {a, ab, abb, abbb …}

Front: Within a regular expression what does this metacharacter mean "+"
Back: - 1 or more repetitions
  - c*d is {cd, ccd, cccd…}

Front: Within a regular expression what does this metacharacter mean "?"
Back: - Previous character optional
- Colou?r is {Colour, Color}

Front: Within a regular expression what does this metacharacter mean "|"
Back: - alternative, on or the other but not both
- previous character could be...
- e|f is {e, f}

Front: Within a regular expression what does this metacharacter mean "()"
Back: - Grouping of regular expressions
- (ab)|(cd)e is {abe, cde}

Front: Describe the relationship between FSM and regular expressions
Back: For each regular expression, there is an equivalent FSM

Front: Draw the FSM machine for this regular expression "a|b"
Other fields (not shown on cards):
MyMedia: 71c4002e149a57dbc1342f337a9f07b6e7f25037.png

Front: Draw the FSM machine for this regular expression "a+"
Other fields (not shown on cards):
MyMedia: 59dab115204ad4bdbe1ace6ab31717718f4ac9a2.png

Front: Draw the FSM machine for this regular expression "a*"
Other fields (not shown on cards):
MyMedia: d1b1f72bcd168bc1d5097dad6c8cf205039dc492.png

Front: Draw the FSM machine for this regular expression "ab"
Other fields (not shown on cards):
MyMedia: daa4ceb64e54f2ace22daf1ae7c0bc2406cdea8a.png

Front: Draw the FSM machine for this regular expression "(abc*)|(d+e)"
Other fields (not shown on cards):
MyMedia: ef8b5cbedab2e7c60197a870437670513c4159cc.png,524888720fcf9f3c6a675db82cd45163248351f3.png

Front: Define regular language
Back: A language is regular if it can defined with a FSM

Front: Explain how data is written to and read from a hard disk drive
Back: - There is magnetic disk.
- Disk has many platters
- Disk is continually spinning
- Each platter has its own drive head
- Drive head moves radially in and out, parked when not in use
- Data is store in concentric tracks, tracks are made up of sectors of data
- There a positively magnetised regions and negatively magnetised regions, where a change from positive to negative represents a 1 and a magnetised region is a 0

Front: Explain how data is written to and read from an optical disk
Back: - high-powered laser burns pits into CD surface on single spiral track
- a low-powered laser reflects light on surface
- pits and land, reflect light back into the sensor, which is read as 0
- a change from pit to land and vice versa, does not reflect light back into the sensor which is read as a 1

Front: Explain how data is written to and read from a solid state drive
Back: - SSD have NAND flash memory and controller
- memory cells are made from floating gate transistors
- floating gate transistors trap charge, where trapped is 1 and not trapped is 0
- one SSD has many block and many blocks contain many pages
- to overwrite data and entire page must be erased before new information can be written into it

Front: State the factors of comparison between digital storage mediums
Back: - Maximum capacity
  - Hard disk drives → highest capacity → up to 12TB
  - Optical disk drives → Lowest capacity → Single Sided Blu Rays up to 25G
  - SSDs → low capacity → normally under 2TB
- Read/Write Speeds
  - Hard disk drives → 100MB/s → Good
  - SSDs → 500MB/s → Very fast
  - Optical Disk → 30 MB/s → Very slow
- Portability
  - Hard drives → bulky, heavy, easier damaged by movement
  - Optical disks → Lightweight, easily scratched
  - SSDS → Lightweight, no moving parts so resistant to movement
- Power Consumption
  - Hard disk drive + Optical disk → high
  - SSD → very low
- Latency
  - Hard disk drive + Optical disk → high
  - SSD → very low

Front: Explain how data is read from a bar code
Back: - A bar code is strip of alternating black and white stripes.
- A laser is shone at a mirror, which directs it towards the barcode
- Light portions reflect incident light, while dark portions absorb incident light.
- Reflected light is read as 0 and no light is read as 1 by a photodiode behind a lens
- Built in checking methods: parity bits, check digits and millisecond read speeds

Front: Explain how an image is captured using a digital camera
Back: - Incident light rays are focussed onto a CCD by a lens
- CCD is divided into a number of cells representing a pixel
- Each cell produces a larger voltage depending on the intensity of light reaching it
- There are multiple cells for each pixel, each behind a different colour filter
- The filter only transmits certain wavelengths of light
- Each image is combined to form a full colour image

Front: Explain how a laser printer works
Back: - laser is shone at mirror, which reflects ray onto drum
- Drum is positively charged and laser discharges regions
- This leaves an impression on the drum
- A toner roller dispenses negatively charged toner onto drum and is attracted to remaining positive regions on drum
- Drum presses toner onto paper
- Paper is heated to fuse toner to paper

Front: Explain how passive RFID system works
Back: - Radio waves emitted by reader pass through coils on tag
- electromagnetic induction generate enough power for microchip to transmit data through the same coil
- Reader decodes information

Front: Compare active RFID systems to passive RFID systems
Back: - Passive RFID systems require no batteries on tags, but have a shorter effective range
- Active RFID systems require batteries on tags, but have a longer effective range

Front: Describe the ASCII system
Back: Each character from English A-Z, a-z, 0-9 and other symbols each have a 7 bit binary character code and are in sequence

Front: Describe the Unicode system
Back: Each character from many alphabet systems, all punctuation, special symbols and emojis have a 8-48 bit bit binary character code and are in sequence

Front: ASCII was introduced in 1963. Explain why Unicode was later introduced in 1991
Back: more bits per character code, wider range of different characters

Front: Explain even parity bit error checking
Back: A single bit is added to the end of a transmission
This is to be 1, if after adding the bit, the total number of 1s is even
This is to be 0, if after adding the bit, the total number of 1s is even
During the parity check if there is an odd number of 1s, an error in transmission has detected

Front: Explain odd parity but checking
Back: A single bit is added to the end of a transmission
This is to be 1, if after adding the bit the total number of 1s is odd
This is to be a 0 if after adding the bit the total number of 1s is odd
During the parity check if there is an even number of 1s, an error in transmission has been detected

Front: Describe the major issue with parity bit error checking
Back: If an even number of bits are changed during transmission, the number of 1s will remain even or odd,
The error is not therefore detected in the corrupt data

Front: Explain majority voting error checking
Back: Data is transmitted three times. Each bit is compared with two other bits in the same position. The bit which was most frequently received is assumed to be correct

Front: State the advantage of majority voting error checking over parity bits, checksums and check-digits
Back: majority voting requires no retransmission of data if an error has been detected, because it can correct for errors

Front: State the disadvantage of majority voting error checking over parity bits, checksums and check-digits
Back: A larger volume of data has to be transmitted and a larger number of transmission must be made.
This will significantly increase the time taken to transmit data

Front: Explain checksum error checking
Back: The data to be sent is processed using an algorithm, and appended to the end of original data in binary
The recipient uses the same algorithm to recalculate a checksum, and compares for a match with the checksum received
If the two results don't match, then error has been detected and a request to resend is sent

Front: Explain check-digit error checking
Back: The data to be sent is processed using an algorithm, and a single bit is appended to the end of original data in binary
The recipient uses the same algorithm to recalculate a check-digit, and compares for a match with the check-digit received
If the two check-digits don't match, then error has been detected and a request to resend is sent

Front: State the disadvantage of check-digit error checking to error checking
Back: Smaller range of algorithms can be used to calculate a check-digit, so a smaller range of errors can be detected using check-digit over checksum

Front: State the disadvantage of checksum error checking to check-digit error checking
Back: algorithm for calculating checksums can be more complex and less efficient than the algorithm for calculating check-digits

Front: Compare the efficiency of parity bit, majority voting, checksum and check-digit error checking
Back: parity but > check-digit > checksum > majority vote

Front: Define hardware
Back: The physical, tangible components of a computer system

Front: Define software
Back: The intangible program code, which contains instructions executed by the hardware to accomplish a task

Front: State the two classifications of hardware in a computer system
Back: - internal components
- external components

Front: State the two classifications of software in a computer system
Back: - Application Software
- System Software

Front: Define application software
Back: Programs which complete a specific user-defined task

Front: Give some examples of application software
Back: - Spreadsheet software
- Word proccessors
- Web browsers

Front: Compare general purpose and special purpose software
Back: - general purpose software performs a range of often related and generic tasks
- special purpose software only performs one task

Front: State the advantages of bespoke software over off-the-shelf software
Back: - bespoke software will be made to the users exact specification so provide all the functionality the user needs
- user has control over what features are in or not in the software

Front: State the advantages of off-the-shelf software over bespoke
Back: - off the shelf software is immediately, readily available
- bespoke software is often more expensive as you need to pay for developers and development time

Front: Define system software
Back: Programs which controls, maintains and manages the hardware components of a computer system and application software.

Front: State the four classifications of system software
Back: - Operating Systems
- Utility Programs
- Library Programs
- Translators

Front: What is the function of the system software: utility programs
Back: Programs which run are designed to run periodically to keep the computer system at optimised performant

Front: Give three examples of utility programs
Back: - Data backup software
- Hard disk drive defragmenters
- Data encryption

Front: State the purpose of hard disk drive defragmenters
Back: reorganises the physical location of data on a hard drive, for sequential access of files, in order to improve speed of access

Front: What is the function of System Software: Library Programs
Back: A library is a set of precompiled subroutines that may be called by another program, used to interact with the hardware or frequently used by programs, to simplify the development process

Front: What is the role of an operating system
Back: Hide the true complexities of the operation of hardware in computer system, to make computing more accessible and increase ease of use

Front: State four tasks which an operating system must be able to do
Back: - Manages and controls access to space in main memory
- Manages and controls access to processor time by way of processor scheduling for competing processes and multitasking
- handles interrupt tasks from I/O devices by way of device drivers

Front: Describe analogue data
Back: Continuous - can take any value on a scale

Front: Describe digital data
Back: Discrete - can only take particular values

Front: Describe analogue signals
Back: - Analogue signals can take any values on a scale
- Analogue signals can change as frequently as required

Front: Describe digital signals
Back: - Digital signals can only take one of a specified range of values
- Digital signals can only change at specified intervals

Front: Describe how an Analogue to Digital Converter (ADC) works with sound waves
Back: The device measures the amplitude of the analogue wave at regular time intervals to produce samples. Each sample is stored in binary and a sequence a samples represents sound.

Front: Describe how a Digital to Analogue Converter (DAC) works with sound waves
Back: The device reads the sequence of binary samples and outputs an alternating, analogue, electrical current. A speaker dome will move in/ out depending on the amplitude of this signal

Front: Define Sampling Rate
Back: The number of samples measured per second in Hz

Front: Define Sample Resolution
Back: The number of bits used to record each sample

Front: A 60 second stereo audio file was sampled at 44kHz and has a sample resolution of 24 bits. Calculate the file size in MB
Back: stereo * length in seconds * sample rate in Hz * sample resolution in bits = file size in bits
\(2 *60s*44,000 Hz*24bits = 126,720,000bits\)2 ∗ 60s ∗ 44, 000 Hz ∗ 24bits = 126, 720, 000bits
126,720,000bits / 8 = 15,840,000bytes
bytes → kb → mb
15,840,000 / 1,000,000 = 15.84MB

Front: Explain how increases the sampling resolution will affect the properties of an audio file
Back: File size will increase, but the quality of audio will be higher, that is to say more accurate

Front: Explain Nyquist's theorem
Back: Sampling rate must be at least twice the highest frequency of the sound, in order for an accurate binary representation

Front: Explain how MIDI stores sound?
Back: MIDI stores sound as a series of event messages
Each event message holds data as a series of instructions to reproduce that sound

Front: Give some pieces of information which event messages store
Back: - duration of a note
- how loud a note is
- the pitch of a note
- the octave within with the note is to be played

Front: State 3 advantages of MIDI over sound sampling
Back: - Easy manipulation: event messages can be played by many instruments, notes can be transposed and the duration of notes can be altered
- MIDI files are often smaller than sampled audio files
- MIDI files are a lossless format, so no information is lost

Front: State 2 disadvantages of MIDI over sound sampling
Back: - MIDI music can sound less realistic and "faked" which listeners might not appreciate
- MIDI music cannot accurately represent human speech

Front: Explain how raster images are stored in a bitmap file
Back: Images are series of ordered picture elements, known as pixels

Front: Define pixel
Back: picture element, the smallest identifiable area of an raster image,
containing a binary value representing a single colour

Front: State the two properties of an image that image resolution could refer to
Back: The size of the image in pixels
The Pixels Per Inch

Front: How would you calculate image resolution in pixels
Back: image resolution = height in pixels * width in pixels

Front: Define colour depth of a raster image
Back: The number of bits per pixel used to store colour information
A measure of the range of colours which are present in the image

Front: An image can store 256 colours, calculate its colour depth
Back: bit depth = log(256) / log(2) = 8 bits

Front: An image with 32 bits of metadata, a height of 100 pixels, a width of 250 pixels and has a range of 8 colours. Calculate the size of the image in KB
Back: log(8) / log(2) = 3 bits
height * width * colour depth + metadata = 100 *250 * 3 + 32 = 75,032 bits
75,032 bits / 8 = 9379 bytes
9379 bytes / 1000 = 9.379 KB

Front: State some pieces of information that may be stored within the metadata of image file
Back: - resolution
- colour depth
- date created
- geolocation co-ordinates
- author

Front: Explain how vectors images store data
Back: A list of geometric objects and shapes and their corresponding properties

Front: Give four typical properties of geometric object in a vector image
Back: - stroke width
- stroke colour
- fill colour
- start position, end position

Front: State 2 advantages of vector images over bitmapped images
Back: - Can be scaled up or down (larger, or smaller) without becoming blurry or pixelated, because objects are simply redrawn
- Often uses less storage space than bitmapped graphics

Front: State 2 disadvantages of vector images over bitmapped images
Back: - fine details such as strands of hair are more accurately represented with pixels than geometric shapes
- modification of raster images is more precise than geometric shapes
- so unsuitable for applications such as photography

Front: Explain 2 advantages of compression of images, sound, text and other binary data
Back: - reduces file size
  - more data can be stored per unit of storage space
    - more economical
  - speeds of transmission across a network are faster
    - more data can be transferred per unit of time

Front: Describe lossy compression
Back: some information is lost:
such as reducing sample resolution or the size of a image
in order to decrease file size

Front: Describe lossless compression
Back: no information is lost, patterns in data are identified and made concise

Front: State the advantage of lossy compression over lossless compression
Back: lossy compression is faster to execute, so for network transmissions which require a small latency such as phone call
can in some cases result in smaller file size than lossless

Front: State the disadvantage of lossy compression over lossless compression
Back: as some information is lost, the accuracy of the digital representation is reduced.
this means ugly artefacts in images and a perceptible loss of quality

Front: State the advantage of lossless compression over lossy compression
Back: no information is lost, no reduction in quality of image or sound

Front: State the disadvantage of lossless compression over lossy compression
Back: lossless compression algorithms are slower
lossless compression algorithms may not in all cases produce a great reduction in file size
there is a limit to how much a file can be compressed

Front: State two methods of lossless compression
Back: - Run Length Encoding (RLE)
- Dictionary

Front: Explain how run length encoding works
Back: A series of contiguous repeated pixels are replaced with one pixel value and a the length of repetitions
data is stored as a series of these elementary units

Front: Explain how one can use a dictionary to perform lossless compression
Back: A dictionary is used to store large patterns of repeating data
The file references the dictionary so such patterns are only stored once
The included dictionary may increase file size

Front: Describe the best case and worst case for lossless compression
Back: Many sets of repeating sequential data
No repeating sets of sequential data at all

Front: Define encryption
Back: The transformation of data into another form to prevent unauthorised parties from understanding the message

Front: Define cipher
Back: The algorithm used to encrypt data/ transform data into another form

Front: Define plaintext
Back: The original data or message to be sent and understood by authorised users

Front: Define ciphertext
Back: The encrypted data to be transmitted

Front: Describe how the Caesar cipher works
Back: This is a substitution cipher, where each character of the alphabet is shifted to the left or right by a set value

Front: Describe how the Vernam cipher works
Back: 1. Align the characters of the plaintext and the key
1. Convert each character to binary
1. Apply a logical xor operation on each of the two bit patterns
1. convert the result back into a character

Front: Give another name for the key used in the Vernam cipher
Back: One-time pad

Front: Explain what must be required of the one-time pad for perfect computational security to be achieved
Back: - OTP must be at least as long as the plaintext message
- OTP must only be used once
- OTP must be chosen uniformly at random
- OTP must be transmitted using other communication channels

Front: Explain the concept of computational security
Back: - Given enough time all cipher algorithms can be broken by cryptanalytic attack
- Cryptanalytic attack relies on the frequency analysis
- Since computers cannot produce random numbers any key will eventually be found
- A cipher is more secure the longer it takes for cryptanalysis
- Some ciphers may take longer than age of the universe but can theoretically be cracked

Front: Explain why the Vernam cipher is considered perfectly secure
Back: Since the key is chosen uniformly at random, the ciphertext data is also uniformly randomly distributed
This means frequency analysis and cryptanalytic attacks will always fail mathematically

Front: Delete syntax SQL
Back: DELETE FROM table
WHERE attribute = “A”

Front: Update syntax SQL
Back: UPDATE table
SET attribute = 2, attr2 = 3
WHERE pKey = 000

Front: Insert new record syntax SQL
Back: INSERT INTO table(attr1, attr2, attr3)
VALUES (1,2,3)

Front: Remove a table syntax SQL
Back: ALTER TABLE table
DROP attr

Front: Add an column to a table syntax SQL
Back: ALTER TABLE table
ADD attr3

Front: Change the data type of a column syntax SQL
Back: ALTER TABLE
MODIFY attr INT, NOT NULL

Front: Create a table syntax SQL
Back: CREATE TABLE table
(
Attr1 INT, NOT NULL
Attr2 VARCHAR(20), NOT NULL
Attr3 CHAR(5), NOT NULL
PRIMARY KEY (Attr1, attr2)
FOREIGN KEY attr3 REFERENCES table2(attr3)
)

Front: Define internet
Back: A network of interconnected computer networks, which use a common end-to-end protocol (TCP/ IP)

Front: State the physical structure of the internet
Back: Mostly wired, with cables which pass under oceans to connect many continents

Front: Explain the role of an ISP
Back: - Internet Service Provider, is a company which provides access to the internet.
- Larger national ISPs provide internet access to smaller, regional and local ISPs.
- Customers mostly interact with local ISPS

Front: Define packet switching network
Back: - A network where data is split into multiple parts called packets.
- Where each packet may take its own route to its destination, as each packet takes the fastest path
- And packets are reassembled by the recipient

Front: Explain the role of the router in a packet switching network
Back: A router uses the recipient address on each packet to determine which router to send the packet next for its next hop

Front: Define TTL in a packet switching network
Back: Time to Live, is the number of hops the packets can take, before being deleted and a request for retransmission is sent to the sender.

Front: State the 5 primary components of a packet
Back: 1. Sender's IP address
1. Receiver's IP address
1. Packet contents
1. TTL number
1. Sequence number

Front: Explain how a router determines the fastest possible route for a packet
Back: The router keeps a table relating to latency between other routers, which is frequently updated
It uses this data and an algorithm such as Dijkstra's to determine the fastest path

Front: State the purpose of a gateway
Back: A gateway will strip each packet of its headers, leaving just the content.
This enables new headers to be set, which enable the packet to conform to many different transmission protocols

Front: Define URL?
Back: A uniform resource locator is used to assign a unique readable address to files on servers connected to the internet

Front: Define Domain Name
Back: A string of alphanumeric characters, which aim to be memorable and identify an individual or an organisation on the internet.
Each domain is mapped to the IP address of a computer

Front: Define FQDN
Back: A Fully Qualified Domain Name, is domain which species that an exact resource can only be interpreted one way.
Rules such as always including the servers host name are requisite

Front: Explain how a computer might find the corresponding IP address of a domain
Back: A domain name server (DNS) contains a table of domains and related IP addresses
The DNS will accept requests to translate domain names, and reply with IP addresses

Front: Why might a rarely visited site have slower access times than a frequently accessed site
Back: Domain name is stored on a smaller domain name servers
A request for corresponding IP address must form multiple hops to be resolved

Front: State the role of Internet registries
Back: Global organisations protect the fast depleting resource of unallocated IP addresses.

Front: Explain one method Internet registries use to protect the depleting resource of unallocated IP addresses
Back: Replace a previously unused IP address, rather than distribute a new IP address

Front: Describe the role of a firewall
Back: Hardware or software which sits between a router and the internet, to regulate which packets pass into and out of the private network, by acting as a proxy server.
These proxy servers employ two main methods:
1. packet filtering
1. stateful inspection

Front: Explain the role of a proxy server
Back: - A server which sits between a public network and a private network, which controls the movement of packets out of and into the private network.
- Provides some anonymity, as the private IP is send out of the private network

Front: Define packet filtering
Back: Accepts and blocks packets based upon their source IP address or port number. May be manual or automatic using blacklists.

Front: Define stateful inspection
Back: - Examination of the contents of the packet, in order to identify suspicious packets.
- Recording the current connections in a network, for activity based filtering

Front: Define symmetric encryption
Back: Both the sender and receiver share the same private key.
The private key is used to both encrypt and decrypt the data.

Front: State the major flaw of all symmetric encryption methods
Back: Sender and receiver must participate in private key exchange, which is vulnerable to interception

Front: Describe the keys used within asymmetric encryption
Back: 1. Four different keys are used.
1. Both the sender and the receiver have a pair of keys.
1. One key from each pair is private and the other public.
1. The keys are mathematically related.

Front: Define asymmetric encryption
Back: Messages are encrypted with the public key, but can only be decrypted by a corresponding private key.
Messages are encrypted with the recipients public key, so that only the recipient can decrypt the message

Front: Explain the purpose of a digital signature
Back: Verifies the sender of the message is who he say he is
Verifies that the message has not be tampered with

Front: Describe the process of sending a message with asymmetric encryption
Back: 1. A digest of the message is created using a hashing algorithm or a checksum, based on the contents of the message
1. The digest is encrypted with the sender private key, meaning anyone can decrypt the digest using the senders public key
1. The encrypted digest is appended to the message
1. Both the encrypted digest and the message are encrypted with the recipients public key, meaning only the recipient can decrypt the whole message
1. The recipient decrypts the whole message using its own private key
1. The recipient decrypts the digest using the senders public key
1. The same hashing algorithm or checksum is used to recalculate the digest, and see if it matches

Front: State the purpose of digital certificates
Back: Verifies ownership of key pair used in asymmetric encryption.

Front: Describe a digital certificate
Back: Issued by a certificate authority, which ensures validity, each certificate contains:
1. serial number
1. owner's name
1. expiration date
1. owner's public key
1. authorities digital signature

Front: Define malware
Back: software designed to disrupt, damage, or gain unauthorized access to a computer system

Front: State three types of malware
Back: 1. worms
1. trojans
1. viruses

Front: Define worm
Back: malware which can self-replicate, spread through a network by downloading and autorunning

Front: Define trojan
Back: malware disguised as a benign file, which the user is tricked into running
most often received as email attachments or malicious websites

Front: Define viruses
Back: malware which requires a host file in which to reside - typically executables
will lie dormant until file is opened or program is run
has the ability to spread through file sharing on a network or physical media, but not by itself

Front: State 4 methods to reduce the risk of exploitation by malware
Back: 1. train employees on social engineering methods within emails etc
1. install anti-malware software to detect and quarantine malware
1. update out-of-date software
1. write good code, enforce programming practices which reduce the likelihood of bugs being shipped to production environments, so malware cannot exploit flaws

Front: Define a function in functional programming
Back: A rule that for each element is set A, assigns a output chosen from set B, but not necessarily using every member of B

Front: Define a function in functional programming with domains and sets
Back: A mapping of a domain to a co-domain, where both a subsets of an object of some data type

Front: State the types in function f: A → B, and describe B
Back: - A is the argument type
- B is the result type
- f is the function type (the operation performed on domain A)
B does not need to contain all members of its co-domain

Front: Explain why in functional programming a function can be argument and the result of a functional call
Back: In functional programming languages, functions are first class objects

Front: State the requirements for a first class object
Back: 1. appear in expressions
1. be assigned to a variable
1. be assigned as arguments
1. be returned in function calls

Front: Define function application, giving an example
Back: The process of giving inputs to a particular function
ex. add(3,4)
where a set of two numbers is the single argument taken and all functions only take a single argument

Front: Define partial function application, giving an example
Back: fixing one argument, to create a more restricted, specialised function, based on the fact that a function can only take one input
Add3Numbers x y z = x + y + z
Add3To2Numbers = Add3Numbers 3
Add3To2Numbers must be called with 2 arguments to fulfil the number of inputs for Add3Numbers, hence
Add3To2Numbers 4 1
>>> 8

Front: Define composition of functions
Back: Combining two functions to create a new function, so that each function may be called separately and in conjunction

Front: Explain the restriction for combining functions
Back: A domain of one function must be same as the co-domain of the other function
ex. where bold is the domain
f ::: real → real → real
g ::: real → real
f o g is not possible, because the domain of f is a pair of reals, while the co-domain of g is a single real
g o f is possible, because the domain of g is a single real, and the co-domain of f is a single real

Front: If f(x) = 3x + 4, and g(x) = x*2, what is the result of g o f (2) and f o g (2)
Back: - g o f (2)
3(2) + 4 = 10
10 * 2 = 20
g o f = 20
- f o g (2)
(2)*2 = 4
3(4) + 4 = 16
f o g = 16
💡
The right most function is applied first

Front: How would a computer distinguish between signed and unsigned binary
Back: It cannot, the computer must be told

Front: Compare the set of number represented by signed and unsigned binary
Back: Unsigned binary can only represent positive whole numbers
Signed binary can only represent both positive and negative whole numbers

Front: State an expression which describes the range of numbers which unsigned binary can represent
Back: 0 to (2^n-1)

Front: Boolean Addition Rules
Back: - 0 + 0 + 0 = ?
0
- 0 + 0 + 1 = ?
1
- 0 + 1 + 1 = ?
0 carry 1
- 1 + 1 + 1 = ?
1 carry 1

Front: Multiplication of two unsigned binary numbers
Back: https://www.youtube.com/watch?v=mAxUtloyk_I

Front: State an expression which describes the range of numbers which signed binary with twos complement can represent
Back: \(-2^{(n-1)}\)−2 (n−1)
to
\(2^{(n-1)}-1\)2 (n−1) − 1

Front: Write decimal -5 in signed with twos complement 4 bit binary
Back: -8 4 2 1
1 0 1 1
-8 + 2 + 1 = -5 decimal
the (leftmost) significant bit is a negative number

Front: State the steps needed to convert an unsigned to two's complement (positive to negative)
Back: 1. invert every bit
1. add 1

Front: State the steps needed to convert a negative two's complement to (negative to positive)
Back: 1. sub 1
1. invert bits

Front: Subtract 12 from 8 in binary
Back: -12 in signed two's complement binary is:
-16 8 4 2 1
1 0 1 0 0
8 in signed twos complement binary is:
-16 8 4 2 1
0 1 0 0 0
Add -12 binary to 8 binary
1 0 1 0 0
0 1 0 0 0
1 1 1 0 0
11100 signed two's complement binary in decimal is:
-16 8 4 2 1
1 1 1 0 0
-16 + 8 + 4 = -4 decimal

Front: Convert 11.75 to fixed point unsigned binary
Back: 16 8 4 2 1 . 0.5 0.25
0 1 1 0 1 . 1 1

Front: Convert 01101 . 011 floating point two's complement signed binary to decimal
Back: calculate the decimal value of the exponent
0 1 1 = 3 decimal
place a binary point between the first and second digits of the mantissa
0 1 1 0 1 → 0 . 1 1 0 1
move the binary point specified by the decimal exponent
0 . 1 1 0 1 → 0 1 1 0 . 1
three places to the right
convert to decimal
-8 4 2 1 . 0.5
0 1 1 0 . 1
4 + 2 + 0.5 = 6.5

Front: Convert decimal 14.625 to floating point signed binary
Back: 1. convert to fixed point signed binary
-16 8 4 2 1 . 0.5 0.25 0.125
0 1 1 1 0 . 1 0 1
1. normalise
  - positive number so mantissa starts with 01
  - if negative number, mantissa starts with 10
01110.101 → 01.110101
  - since we've shifted left 3, exponent is 3
  - if we've shifted right 3 exponent is -3
convert -3 to two's complement signed binary
-4 2 1
0 1 1
answer in floating point signed binary is:
01110101 . 011

Front: The number 14.6 is represented in fixed point binary as 1110.1. Calculate the absolute error
Back: 8 4 2 1 . 0.5
1 1 1 0 . 1
8 + 4 + 2 + 0.5 = 14.5
absolute error = actual value - given value
14.6 - 14.5 = 0.1 decimal absolute error

Front: The number 12.4 is represented in fixed point binary as 1100.011. Calculate the relative error as a percentage 4 s.f.
Back: 8 4 2 1 . 0.5 0.25 0.125
1 1 0 0 . 0 1 1
8 + 4 + 0.25 + 0.125 = 12.375
relative error = absolute error / actual value
absolute error = actual value - given value
12.4 - 12.375 = 0.025
0.025 / 12.4 = 0.2016 4 s.f.

Front: Compare qualitatively and explain the ranges of fixed point binary and floating point binary
Back: range of floating point binary > range of fixed point binary
because, exponent of floating point binary can be both positive and negative

Front: Compare qualitatively and explain the ranges of a floating point binary number with (large mantissa and small exponent) and a (small mantissa and a large exponent)
Back: (large mantissa and small exponent) = large range + little precision
(small mantissa and a large exponent) = small range + large precision
exponent size directly proportional to range
mantissa size directly proportional to precision

Front: State when an underflow error might occur
Back: not enough bits to represent very small number

Front: State when an overflow error might occur
Back: not enough bits to represent a large number

Front: Explain why simplification of logic circuits is often required in industry
Back: fewer logic gates
- speed up processing time
- minimise cost of production

Front: State the distributive law
Back: \(a+(b*c) = (a+b)*(a+c)\)a + (b ∗ c) = (a + b) ∗ (a + c)
\(a*(b+c) = (a*b) + (a*c)\)a ∗ (b + c) = (a ∗ b) + (a ∗ c)

Front: State the complement law
Back: \(a + a' = 1\)a + a ′ = 1
\(a*a' = 0\)a ∗ a ′ = 0

Front: State lemma 1
Back: \(X + X = X\) X + X = X
\(X*X = X\) X ∗ X = X

Front: State lemma 2
Back: \(X+1 = 1\) X + 1 = 1
\(X*0 = 0\) X ∗ 0 = 0

Front: State the implementation of De Morgan's law
Back: 1. Break apart overbar
1. Change * → + and + → *

Front: Define bit
Back: The fundamental unit of information: 0 or 1

Front: Define byte
Back: A set of 8 bits

Front: Define nyyble
Back: A set of 4 bits

Front: How many numbers can unsigned 7 bit binary represent
Back: 2^7 = 128 numbers
128 combinations of a set of 1s or 0s

Front: Write the series of values for binary prefixes: kibi, mebi, gibi, tebi
Back: binary is base 2
kibi: 2^10, mebi: 2^20, gibi: 2^30, tebi 2^40
exponent increases in powers of ten

Front: Write the series of values for decimal prefixes: kilo, mega, giga, tera
Back: decimal is base 10
kilo: 10^3, mega: 10^6, giga: 10^9, tera: 10^12
exponent goes up in powers of 3

Front: State the three components of a Turing Machine
Back: - A FSM
- A read-write head
- A tape which is infinitely long in one direction

Front: State the purpose of the read-write head of a Turing Machine
Back: Focusing on one cell at a time, the read-write head can read from, and overwrite the symbols on each cell, in sequential order.
It may move or right along the infinite tape

Front: Describe the tape used within a Turing Machine
Back: 1. Infinitely long in one direction
1. Divided into cells
1. Each cell contains a symbol
1. The set of symbols used is called an alphabet
1. The alphabet must be finite

Front: Explain why Turing Machines are thought to be more "powerful" than FSM as a model of computation
Back: The tape is infinitely long in one direction, so it can utilise a greater range of languages than a FSM

Front: In plain English, describe this Transition Function
Back: - Answer
From current state S0, if the input is [],
write 1 to the current cell,
move to S1 state,
Move Right along the tape
Other fields (not shown on cards):
MyMedia: 6a967904a3183f3213bdea55ed590b1c635239e7.png

Front: Write a transition function for S0 to S1 in this FSM
Back: - Answer
δ (S0, 1) = (S1, 1, R)
Other fields (not shown on cards):
MyMedia: 519c6c674456e9a86b153aece9e8102a5bb9422d.png

Front: Compare regular Turing Machines to Universal Turing Machine
Back: - regular Turing Machines are limited to one FSM, and thus specific to one computational problem
- Universal Turing machines can represent any FSM

Front: Explain how Universal Turing Machines can represent any FSM
Back: - A description of the FSM is stored on the same tape, the input data which is to be processed is
- Therefore is an implementation of the stored-program concept

Front: State the moniker given to a Universal Turing Machine which reads instructions in sequence before executing operations on their input data
Back: Interpreter

Front: Explain the importance of Turing Machines to computation
Back: - It is a formal model of computation, which defines what can be computable
- It can be used to ascertain which problems are solvable by computers

Front: Define a context-free language
Back: A set of strings and symbols which follow the rules of context-free grammar

Front: Define context-free grammar
Back: Context free grammars describe which strings are and not possible by laying out production rules

Front: Define production rules
Back: The replacement of one character with another
- a → ab
- a → aa
- b → a

Front: What is BNF used for
Back: notation of context-free languages

Front: Describe the basic structure of BNF expressions
Back: - Left hand side if defined by the right hand side
- Each component is a non-terminal or a terminal value
- <FullName> ::= <Title><Forename><Surname>

Front: Define BNF non-terminal
Back: Text which is placed inside of angle brackets which can be broken down further into either more non-terminals, terminals or a combination of the two
- <FullName> ::= <Title><Forename><Surname>

Front: Define BNF terminal
Back: Text without any brackets, which cannot be broken down any further and must be taken to be the written value
- <Number> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
- Number is a non-terminal which is defined by nine terminals from 1 to 9. The pipe symbol, which looks like a straight vertical line, represents the OR operator.

Front: Explain why you would use BNF over regular expressions
Back: BNF can represent some languages which cannot be represented by expressions, because only BNF supports recursion, which allows for more complex definitions

Front: Describe in plain English this BNF definition: <Integer> ::= <Digit>|<Digit><Integer> <Digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Back: An integer is defined as a digit or as a digit followed by an integer” and “A digit is defined as one the the numbers from 0 to 9”.

Front: Define syntax diagrams
Back: A syntax diagram is a visual representation of a regular language. Where rectangles represent non-terminals and ellipses represent terminals.

Front: Draw a syntax diagram for this BNF definition <Integer> ::= <Digit>|<Digit><Integer> <Digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Other fields (not shown on cards):
MyMedia: 9f917d51c25640d75b53e8449e2b8f709a229a53.png

Front: What is a system bus
Back: A set of parallel wires which transfer data and signal components between internal CPU components

Front: State the purpose of the control bus

Front: State the purpose of the data bus
Back: - Transmit data between each component of the CPU
- bidirectional connection to all components

Front: State the purpose of the address bus
Back: Transmit memory addresses from the processor to every other CPU components
Unidirectional connection from the CPU to each CPU component

Front: State five control signals sent on the control bus
Back: - Memory Read
data from the addressed location placed on the data bus
- Memory Write
data from the data bus to be written into addressed location
- Bus request
A device is asking for permission to use the data bus
- Bus grant
A signal giving permission for access of the data bus
- Clock Signal
Synchronise operations of the CPU components

Front: Define word length
Back: The smallest addressable unit of memory

Front: Explain what determines the word length of a CPU
Back: The width of the data bus, number of wires used for parallel transmission

Front: Explain how increasing the width of the address bus affects the performance of the CPU
Back: - Increasing the width of the data bus will increase the word length.
- This increases the range of memory addresses which it can specify, which increases the amount of addressable memory.
- More addressable main memory, the greater the performance

Front: Explain how increasing the width of the data bus affects the performance of the CPU
Back: - Increases the volume of data which can transferred over the bus at any one time.
- Faster data transfer speeds, greater performance

Front: State the purpose of main memory
Back: Stores program code and the data they are using, which are to be processed

Front: An address bus has a width of 16 bits, what is the maximum amount of addressable memory
Back: 2^16 / 8 64KB

Front: State the 2 tasks of an I/O controller
Back: Part of the CPU which
- converts signals received from a peripheral device to a format the computer can understand
- receives requests from the CPU and sends device specific control signals to peripheral devices

Front: State the purpose of an I/O controller
Back: Manages data flow to and from device in order to free up processor time

Front: Describe the Harvard architecture, and explain why it is more suitable the von Neuman architecture for an oscilloscope
Back: oscilloscope → digital signal processing
- data and instructions are store in separate physical memory locations and transferred to the processor on their own buses
- separate memory pools for data and program instructions means instructions and data are no longer competing or waiting to use the same buses.
- A greater volume of information can be transferred to and worked on by the processor at any one time

Front: Describe the von Neumann architecture
Back: Instructions and data are stored in the same physical memory pools and share the same data buses

Front: What innovation has allowed for general purpose computers
Back: The stored program concept has allowed for a computer to have unfixed programming and perform many different tasks at different times

Front: Explain what is meant by the stored program concept
Back: - Data and instructions are stored in main memory
- Instructions are fetched one at a time by the processor and executed immediately in sequential order

Front: State the purpose of TCP / IP Protocol
Back: Enables communication across the internet between different devices

Front: State from top-down the layers of TCP / IP Protocol
Back: 1. Application
1. Transport
1. Network
1. Link

Front: State the purpose of the Application Layer when sending data across the internet
Back: Interact with the user, using application software (e.g. web browser) and select the correct protocol to use

Front: State the purpose of the Transport Layer when sending data across the internet
Back: Establishes a virtual path
Then splits the transmission into equal sized packets
Assigns packages a sequence number and port number

Front: State the purpose of the Network Layer when sending data across the internet
Back: Provides the correct source and destination IP addresses,
The routers within the network layer, use these to send each packet to its destination

Front: State the purpose of the Link Layer when sending data across the internet
Back: Controls the physical connections between hardware in the network
Add MAC addresses to packets, which change from each "hop" through the network

Front: Define virtual path
Back: An end-to-end connection between the sender and the recipient

Front: Describe what the port number assigned to each packet on the transport layer signifies
Back: Used to identify which protocol is in use

Front: Describe how data is received through the TCP / IP Stack
Back: 1. Link layer removed MAC addresses
1. Network Layer removes IP addresses
1. Transport layer ensures that packages are in correct sequence
1. Transport layer uses the port number to route the packet to the appropriate application
1. Application Layer receives packets and displays information to the user

Front: What is the port(s) for FTP
Back: 20 & 21

Front: What is the port for SSH
Back: 22

Front: What is the port for HTTP
Back: 80

Front: What is the port for HTTPS
Back: 443

Front: What is the port(s) for POP3
Back: 110 & 995

Front: What is the port(s) for SMTP
Back: 25, 587 & 465

Front: What is the purpose of FTP
Back: Sending files between devices on a network, anonymously or with a login & password
There is an FTP sever and many clients

Front: What is the purpose of SSH
Back: makes a TCP connection
remote management of computers, provides command line access
requires username & password for security
and provides encryption

Front: What is the purpose of HTTP and HTTPS
Back: Web servers deliver content to clients with HTTP or HTTPS
Clients render HTML files
Only HTTPS encrypts the information and prevents unauthorised or unintended modification during transmission

Front: What is the purpose of POP3
Back: Post-Office-Protocol 3 retrieves emails from an email server
checks for new messages and downloads them on the client

Front: What is the purpose of SMTP
Back: Used for sending emails, to and between email servers

Front: State the two component parts of an IP address
Back: 1. The first part is network identifier
1. The second part host identifier

Front: State the purpose of the subnet mask
Back: Identify which part of the IP address is the network identifier
Identify if the IP address is within the same network or outside of our network

Front: Explain how you would use the subnet mask
Back: 1. Convert the subnet mask to binary
e.g. 255.255.255.244.0 → 11111111.11111111.11100000.00000000
1. There are 19 "1"s → so the network identifier part is 19 bits
1. Then subnet mask and IP addresses is ANDed bitwise
- 107.56.94.111 → 01101011.00111000.01011110.01101111
- 01101011.00111000.01011110.01101111
- 11111111.11111111.11100000.00000000
- 01101011.00111000.01000000.00000000
- 01101011.00111000.01000000.00000000 → 107.56.94.111/19
1. Since these results match this IP is within the same network, if these results did not match then we know how to send the data onto the router of the destination device

Front: State the purpose of subnetting
Back: Dividing a large organisation into a small subnetworks can improve speed, stability, reduce network traffic and collision frequency

Front: Explain how subnetting is implemented on the IP address
Back: Host identifier made longer, split into subnet identifier and host identifier
Network identifier made a few bits shorter

Front: Describe the structural differences between IPv4 standard and IPv6
Back: - IPv4 = dotted quad numbers = 192.168.43.7
- IPv6 = eight blocks of 4 hexadecimal characters, separated by colons = 2071:0eb8:85a3:8a2f:0000:0000:0370:7264

Front: Explain why IPv6 was introduced when IPv4 already existed
Back: 4 parts (quad), each 8 bits = 4*8 = 32
IPv4 = 32 bits = 2^32 unique addresses
8 parts (blocks), each 16 bits = 8*`6 = 128
IPv6 = 128 bits = 2^128 unique addresses
IoT and increasing number of connected devices reduce supply of unique IPv4 addresses

Front: What problem does the routable (public) non-routable (private) IP address split solve
Back: Unique IP addresses are in short supply, so each site is given a few or one routable (public) IP addresses
While each device within the network is given its own non-routable private IP address

Front: Describe the difference between routable (public) IP addresses and non-routable (private) IP addresses
Back: Only public IP addresses are globally unique
Public IP addresses are assigned to sites by global authorities, ensuring no address is issued twice

Front: State the purpose of DHCP
Back: Ensures that the limited number of private IP addresses is never reached. So that devices which join once and never again do not take up unique addresses

Front: Explain how DHCP works
Back: Dynamic Host Configuration Protocol assigns each device its own private IP address from a pool of available IP addresses for the duration of its session
When a device disconnects its IP address returns to the pool

Front: Describe the process of NAT when sending messages
Back: As the packet leaves the private network the router makes a record of the packet's private sender IP and replaces it with the sides routable IP

Front: Describe the process of NAT when receiving responses
Back: Router receives response at the public routable IP, uses the record previously made to forward the response packets to the device at the correct private IP

Front: State the purpose of NAT
Back: Network Address Translation enables one device with only a private IP address to communicate with another similar device across the internet.

Front: State the purpose of port forwarding
Back: Enables communication between a client and a sever on a private network with a non-routable IP

Front: Explain how port forwarding works
Back: - The clients sends messages to the public IP belonging the servers private network.
- The port number on the packets is used by router of the private network to forward it to the correct server computer via NAT

Front: Describe the client-server model
Back: A client computer sends request messages to server computers
Server computers reply with response messages
Each server is specialised in one task (file server, database server, web server, email server)

Front: Define API
Back: An Application Programming Interface is a set of protocols relating to how different applications may communicate with each other.
Standard definitions allows applications to make use of other applications

Front: Explain the purpose web socket protocol
Back: Provides a constant stream of information between two devices (client web browser, and server)

Front: Explain how the web socket protocol works
Back: The API, operates on the application layer of the TCP /IP
where it establishes a full-duplex connection, for bidirectional transmission

Front: State 1 advantage and 1 disadvantage of the web socket protocol over TCP
Back: - data transmission is fast, because there are smaller packet headers
- data packets are frequently lost and must be retransmitted, as only TCP has error checking functions

Front: State three uses of the web socket protocol
Back: 1. video streaming
1. online games
1. instant messaging

Front: For each CRUD command, state the SQL equivalent
Back: - Create → INSERT
- Retrieve → SELECT
- Update → UPDATE
- Delete → Delete

Front: State the four HTTP request methods used within the REST design methodology
Back: 1. POST
1. GET
1. PUT
1. DELETE

Front: For each HTTP verb, state the SQL equivalent
Back: - POST → INSERT
- GET → SELECT
- PUT → UPDATE
- DELETE → DELETE

Front: Explain the process of making a HTTP request
Back: 1. client makes HTTP request to web server
1. web server responds with HTML web page
1. browser displays web page
1. JavaScript calls API, which uses the REST methodology to make a HTTP request to the database server using a HTTP verb
1. Database server responds with XML or JSON formatted data
1. JavaScript processes XML or JSON to display information on web page

Front: State the advantages of JSON compared to XML
Back: 1. more compact
1. easier to read
1. easier to create
1. dictionary implementation, makes it faster to process

Front: State the advantages of XML compared to JSON
Back: 1. more flexible
1. more extensible

Front: Define thin-client networks
Back: Majority of networks processing power is at server computer, while clients are far less powerful

Front: Define thick-client networks
Back: Each client pc is powerful enough to provide for its owns processing and storage needs

Front: State the advantages of thin-client networks over thick-client networks
Back: Cheap to add new clients
Easier to add new clients
greater security possible through centralisation of management

Front: State the advantages of thick-client networks over thin-client networks
Back: Network hardware is expensive to set up
Cost and expertise of maintenance is drastically lower
Lower volumes of traffic, lower likelihood of collisions

Front: State the disadvantages of thin-client networks over thick-client networks
Back: Server pcs may be much more expensive than the combined total of a few thick clients
There is cost to hiring experts to manage, maintain and setup a thin-client network
Higher volumes of traffic, so higher likelihood of collisions

Front: State the disadvantages of thick-client networks over thin-client networks
Back: Harder to maintains as no centralisation of updates, security and backup