Set 11 Flashcards

1
Q

What is representational abstraction?

A

A representation arrived at by removing unnecessary details

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is abstraction by generalisation or categorisation?

A

A grouping by common characteristics to arrive at a hierarchical relationship of the ‘is a kind of’ type.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is information hiding?

A

The process of hiding all details of an object that do not contribute to its essential characteristics

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is procedural abstraction?

A
  • Procedural abstraction involves breaking down a complex model into a series of reusable procedures.
  • The actual values used in a computation are abstracted away and a computational method is achieved
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How is functional abstraction different from procedural abstraction?

A
  • Functional abstraction requires yet another abstraction from procedural abstraction
  • While the result of a procedural abstraction is a computational method, the function disregards the particular computation method
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is data abstraction? Give an example

A
  • The process of isolating how a compound data object is used from the details of how it is constructed. Data abstraction forms the basis of abstract data types
  • For example, a stack could be implemented as an array and a pointer for the top of the stack
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is problem abstraction/reduction?

A

The process of removing details until the problem is represented in a way that is possible to solve, because the problem reduces to one that has already been solved

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is (procedural) decomposition?

A

The process of breaking a problem into a number of sub-problems, so that each sub-problem accomplishes an identifiable task, which might itself be further subdivided

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is (procedural) composition?

A

The process of combining procedures to form compound procedures

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is automation? How is it achieved?

A

The process of putting models (abstractions of real world objects/phenomena) into action to solve problems. This is achieved by:
1. creating algorithms
2. implementing the algorithms in program code
3. implementing the models in data structures
4. executing the code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

When is a problem “computable”?

A

If there is an algorithm (in principle) that solves the problem

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

When is a problem “non-computable”?

A

If no algorithm can ever exist which solves the problem

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is a intractable problem?

A

A computable problem for which a polynomial time (or better) algorithm does not exist

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

How do programmers find “solutions” to intractable problems?

A

By developing tractable heuristic algorithms and methods, which find approximate (but not necessarily optimal) solutions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the trade-off that must be considered when developing heuristic algorithms?

A

speed vs correctness

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is an undecidable problem? Give an example

A
  • A decision problem that is non-computable
  • e.g. the halting problem
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is the halting problem?

A

The undecidable problem of determining whether any program will eventually halt on given particular input without running the program

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is the significance of the halting problem?

A

The halting problem demonstrates that some problems are non-computable, meaning they cannot be solved by a computer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Why can a Universal Turing Machine be considered to be more powerful than any computer that you can purchase?

A

Because it has an infinite amount of memory

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Name one example of a model of computation

A

Turing machine

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Describe the importance of Turing machines

A
  • Turing machines provide a formal model of computation and provide a definition of what is computable
  • They can be used to prove that there are problems which cannot be solved by computers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What makes up a Turing machine?

A
  • Finite set of states
  • Set of transition rules
  • Finite set of symbols
  • Infinite tape with marked off squares
  • Sensing read-write head that can travel along the tape, one square at a time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is a halting state in a Turing machine?

A

A state with no outgoing transitions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is meant by a Universal Turing machine?

A
  • A Turing machine that can simulate the behaviour of any other Turing machine, by acting as an interpreter
  • It faithfully executes operations on the data precisely as the simulated TM does
  • Both the transition rules for the TM as well as the input data would be stored on the tape
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

What is another way to represent the state transition diagram of a Turing machine?

A
  • Transition function
  • δ (current state, input symbol) = (next state, output symbol, movement)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

One example of where composition is used

A

In abstract data types, where a complex abstract data type is formed from smaller and simpler data types

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

3 differences between symmetric and asymmetric encryption

A

S: Uses same key for both encryption and decryption
A: Doesn’t

S: Have to distribute the key without interception
A: Don’t

S: Faster
A: Slower, but provides both confidentiality and authentication

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Asymmetric encryption: A sends to B

A
  1. A encrypts the message with B’s public key
  2. B decrypts with their own private key (the only key that can do this)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Asymmetric encryption: A sends to B, and B can verify that A is the sender

A
  1. A encrypts the message with B’s public key and A’s private key
  2. B will decrypt with B’s private and A’s public key
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

What is the purpose of digital signatures?

A

To confirm the identity of the sender, and to detect if a message or document has been tampered with

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Describe how A can use a digital signature when sending a document to B

A
  1. A hashes the document, creating a message digest
  2. A encrypts this message digest with their private key. This encrypted hash is known as the digital signature
  3. The digital signature is appended to the message
  4. (This may now be encrypted with B’s public key, sent to B, and decrypted by B using their own private key as normal)
  5. B decrypts the digital signature with A’s public key, to reveal the message digest. B also hashes recalculates the hash for the document. If the result of these procedures is the same, then the message has not been tampered with and the identity of the sender is authenticated.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Anyone could create a digital signature and claim they are a trusted individual. How do we solve this?

A

Digital certificates are used to verify the sender’s identity

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

What is a digital certificate? (2*)

A
  • An electronic document that authenticates a message sender or a website
  • It contains the sender’s public key as well as some information about them
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

How can a digital certificate be created for A? What do they contain?

A

A trusted individual (certificate authority) signs a copy of A’s public key as well as some information about A.
Digital certificates will contain:
- Serial number
- Name (e.g. domain name for website digital certificates)
- Expiration date
- Copy of the certificate holder’s public key

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

How are digital certificates used by modern web browsers?

A
  • Modern web browsers check the digital certificate of each secure website as a standard security measure.
  • If the certificate is suspicious or out of date, the site is blocked.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Why are key-exchange algorithms needed?

A

In order to distribute the key securely in symmetric encryption systems.

  • Asymmetric encryption algorithms are nearly always much more computationally expensive than symmetric ones
  • So in many cases it is common to exchange a shared key using a key-exchange algorithm, and then to transmit the data using that key and a symmetric key algorithm.
    (e.g. SSH and SSL/TLS)
37
Q

What is CRUD?
CRUD stands for…

A

The four fundamental operations for any database or content management system:
- Create
- Retrieve
- Update
- Delete

38
Q

What does REST stand for?

A

Representational State Transfer

39
Q

What is the relationship between REST, CRUD and SQL?

A

REST enables CRUD to be mapped to SQL database functions

40
Q

Create keywords: CRUD → HTTP request → SQL

A

Create → POST → INSERT

41
Q

Retrieve keywords: CRUD → HTTP request → SQL

A

Retrieve → GET → SELECT

42
Q

Update keywords: CRUD → HTTP request → SQL

A

Update → PUT → UPDATE

43
Q

Delete keywords: CRUD → HTTP request → SQL

A

Delete → DELETE → DELETE

44
Q

Explain how a REST API allows a client browser to access a database

A

The REST API allows JavaScript to talk to a database through HTTP.

  1. The client browser creates a HTTP request, calling the REST API
  2. The REST API is created and run on the server
  3. The server responds to the client’s requests using either JSON or XML
  4. The client’s browser processes the JSON or XML and displays the response to the user
45
Q

What is the advantage of using REST?

A
  • The client computer needs no knowledge at all of how the database server works
  • So clients and servers can be developed independently
46
Q

What are JSON and XML both examples of?

A

Standards for transferring data between a server and an application

47
Q

What does JSON stand for?

A

Java script object notation

48
Q

4 advantages of JSON over XML

A
  1. Easier for a human to read
  2. More compact (so quicker to transmit)
  3. Easier to create (as syntax is simpler)
  4. Easier for computers to parse and therefore quicker to parse
49
Q

What is thin-client computing?

A
  • When the processing / storage is carried out on the server
  • The server needs lots of RAM, many secondary storage devices, and more processors
  • The client needs a high bandwidth internet connection
50
Q

What is thick-client computing?

A
  • When the processing / storage is carried out on the client
  • The client needs greater RAM, secondary storage and processing capacity than more thin clients
  • Less reliance on an internet connection to do stuff
51
Q

3 examples where thick-client computing is preferred

A
  • gaming
  • (professional) video editing
  • simulation/research
52
Q

3 advantages of thick-client computing

A
  1. Internet connection not needed to do useful stuff
  2. More flexible in what can be done (not limited by what cloud-based services exist)
  3. Users can more easily keep data private
53
Q

3 advantages of thin-client computing

A
  1. Cheaper to purchase, due to the lower hardware specification
  2. Simpler updating of software, as this is done by the server
  3. Server is also responsible for backups
54
Q

3 disadvantages of thin-client computing

A
  1. Higher bandwidth internet connection is needed to be useful
  2. Limited to what cloud-based services exist and how they work
  3. Potential privacy concerns as entrusting a third-party to look after your files
55
Q

4 reasons why setting up and maintaining client-server networks is more expensive (than P2P)

A
  • The servers need to be more powerful machines
  • The servers need more secondary storage space
  • They need to be always on
  • As more hosts connect to a P2P network, the resource supply increases. Whereas when more hosts connect to a single server, the more powerful and expensive the machines need to be
56
Q

6 differences between client-server and peer-to-peer networks

A

CS : The server has authority over the service
P2P : All computers have equal status - clients share resources and computing power

CS : Clients access resources from the server
P2P : Resources are stored on the computers, and any computer can access resources directly from any other - there is no dependence on a central server

CS : Server failure disrupts all computers on the network
P2P No single point of failure

CS : Configuration is more complex, and setting up and maintaining the network is more expensive
P2P : Cheaper to set up and maintain

CS : Supports centralised backups
P2P : Backups need to be made locally

CS : Improved security management, as security management can be centralised
P2P : Management of security must be managed individually on each computer

57
Q

3 examples of where a client-server network might be used

A
  • Personal web server for hosting a simple website with a limited number of users
  • Cloud-based gaming platforms
  • College
58
Q

3 examples of where peer-to-peer networks are/could be used

A
  • Home network with a small number of trusted devices
  • Decentralised cryptocurrencies (e.g. Bitcoin)
  • BitTorrent protocol
59
Q

What is the purpose of wireless networks / WiFi?

A

To allow devices to communicate within a network without being physically connected to it

60
Q

What is WiFi?

A

A type of wireless local area network (WLAN) that is based on international standards

61
Q

2 components needed for wireless networking

A
  • Wireless network interface card
  • Wireless Access Point
62
Q

3 ways to secure a wireless network

A
  • Encryption of data using WPA or WPA2
  • Disabling the SSID broadcast
  • MAC address allow lists
63
Q

What does WPA stand for?

A

Wifi Protected access

64
Q

What is the main difference between WPA and WPA2?

A

WPA2 is more secure

65
Q

What is an SSID?

A
  • A Service Set Identifier (SSID) is a locally unique identifier for a wireless network
  • They use alphanumeric characters that are specified during the setup of the wireless network
  • This SSID is used by all devices which want to connect to that network
66
Q

How can disabling the SSID broadcast improve security on a wireless network?

A

The SSID broadcast can be disabled in order to make it hidden, only allowing those who know the SSID to try to connect

67
Q

How can a MAC address allow list be used to improve security on a wireless network?

A
  • MAC address allow lists can be created to only allow specific devices to connect to a network
  • Each MAC address is unique to each NIC
  • The WAP checks the MAC addresses of devices trying to connect against a list of allowed devices
  • Only devices with an allowed MAC address are able to connect
68
Q

What does CSMA/CA stand for?

A

Carrier Sense Multiple Access with Collision Avoidance

69
Q

What do RTS / CTS stand for?

A

Request to Send / Clear to send

70
Q

How does CSMA/CA work (without RTS/CTS)?

A
  1. When a device is ready to transmit, it listens to its communication channel to check if it is idle
  2. If there is a data signal present, it means another transmission is in progress, so the device waits for a random period of time
  3. When no data signal is present, the device sends its data
  4. Once the destination device (e.g. WAP) receives the data, it will respond back with an acknowledgment
  5. If this acknowledgement is not received, the sending device waits for a random time period and the process begins again
71
Q

What extra steps are required in CSMA/CA in order for RTS/CTS to be used?

A
  1. Before a device sends a message, a Request to Send is sent
  2. The WAP responds with a Clear to Send signal to only one device at a time, and only that device transmits its data
  3. If a CTS is not received the device must wait a random amount of time and try again
72
Q

Describe the Hidden Node problem in the context of computers A and B both trying to transmit data to a WAP

A

If A is transmitting data to the WAP, and B is outside the transmission range of A, then B might start transmitting its own data, causing a collision

73
Q

What is the key exchange problem?

A

How do we pass the key from sender to receiver without it being intercepted?

74
Q

What is Big Data?

A

A catch-all term for data that won’t fit the usual containers, cannot be stored/processed on a single server, and that must be processed at very high speeds.

75
Q

What are the three Vs of big data?

A
  • (very large) Volume (of data)
  • Velocity (at which data is generated)
  • Variety (of data types in the data)
76
Q

What does Volume mean?
Why is it a problem?
How is it solved?

A

what it means
- Data is too big to be stored/processed on a single server

why it’s a problem
- relational databases don’t scale well across multiple machines
- and the processing associated with the data must be split across multiple machines

how it’s solved
- Functional programming is a solution

77
Q

What does Velocity mean?

A

The data is generated and/or processed at very high speed - need to respond in seconds or milliseconds

78
Q

What does Variety mean?

A
  • The data is in many forms such as structured, unstructured, text, multimedia.
  • The most difficult aspect of Big Data involves its lack of structure.
79
Q

What is the most difficult aspect of Big Data? Why?

A

Its lack of structure (under Variety). This poses challenges because:

  • Analysing the data is made significantly more difficult
  • Relational databases are not appropriate because they require data to fit into a row-and-column format
80
Q

What technique is used to discern patterns in data and to extract useful information?

A

Machine learning

81
Q

What is the advantage of functional programming for big data?

A

Its features make it easier to write
- Correct code
- Code that can be distributed to run across more than one server

82
Q

4 features of functional programming that make it suitable for Big Data

A
  1. Immutable data structures
  2. Statelessness
  3. Higher-order functions
  4. Programs do not specify order of execution (meaning they work well on parallel processing systems)
83
Q

What about immutable data structures makes them suitable for Big Data?

A
  • Immutable data structures cannot be changed during program execution
  • Same input always gives same output
  • Makes parallel processing extremely easy
84
Q

What about statelessness makes it suitable for Big Data?

A
  • Statelessness means there are no side-effects of computations
  • so code is easy to write correctly, and it is easy to understand and predict how the program will behave
85
Q

What about higher order functions makes them suitable for Big Data?

A
  • Higher-order functions take a function as an argument, return a function as a result, or both.
  • Higher-order functions can be easily parallelised
86
Q

How is machine learning used in Big Data?

A

Machine learning is used to discern patterns in data and to extract useful information

87
Q

What is meant by “parallel processing” in Big Data?

A

When more than one processor can work on different parts of a large data set at the same time without changing any other part

88
Q

What is a graph schema?

A
  • Graph schemas can be used to capture the structure of a dataset. They can be easily extended, without impacting existing facts (because the facts are immutable)
  • Nodes are used to represents the core entities in the data set
  • Edges are used to represent the relationships between the nodes
  • Properties are used to capture information about the nodes
89
Q

What is a fact in a fact-based model?

A
  • Each fact within a fact based model captures a single piece of information.
  • Each fact is immutable and timestamped