Section 4: Hardware and Software Flashcards

1
Q

Chapter 21:

*What was the first machine designed to fight the Enigma cipher?

A

The Bomba Kryptologiczna.

Polish Invention given to the British in September 1939, when Germany invaded.

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

Chapter 21:
*What was the machine credited for breaking the Enigma cipher?
What month and year was Enigma officially broken?

A

The Bombe.
Designed by Alan Turing as an adaptation to the Bomba Kryptologiczna.
Created first in Bletchley Park
Enigma was broken in July 1941.

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

Chapter 21:

*What was Colossus?

A

Colossus was machine used to break the Lorenz cipher.
Created in Dollis Hill by Tommy Flowers with a bit of help from Alan Turing.
With the creation of Colossus, the Lorenz Cipher was broken in just 4-6 weeks.

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

Chapter 21:

What is the name of the lowest level Programming Language?

A

Machine Code.

Composed of 1s and 0s. (Binary)

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

Chapter 21:

What are the two components for a machine code instruction?

A
Operation Code  (Opcode)
Operand
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Chapter 21:

How many bits long is a standard Machine Code instruction?

A

32 bits.

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

Chapter 21:

What are the low level language steps to switching the values of 2 registers?

A

To switch the values of R1 and R2 where R1, R2, R3 are registers:

Load the value of R1 into the accumulator.
Store the value of the accumulator to R3.
Load the value of R2 into the accumulator.
Store the value of the accumulator to R1.
Load the value of R3 into the accumulator.
Store the value of the accumulator to R2.

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

Chapter 21:

What are the high level language steps to switching the values of 2 variables?

A

To switch the values of x and y where x, y are variables:

x, y = y, x

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

Chapter 21:

When Assembly Language was first introduced, what were the benefits to it?

A

Easier to read, write and fix than Machine Code.

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

Chapter 21:

When Assembly Language was first introduced, what were the drawbacks to it?

A

Every stage still had to be broken down and fed to the computer in an abstracted way.

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

Chapter 21:

What are the 8 main Assembly Language instructions?

A

LDA - Load the value of the given location to the accumulator.

STO - Store the value in the accumulator to the given location.

ADD - Add the value of the given location to the value of the accumulator (and store in the accumulator).

CMP - Compare the values of the given location, and the accumulator.

BLT - Jump to given location if the accumulator had the lesser value (used with CMP).

BGT - Jump to given location if the accumulator had the greater value (used with CMP).

JMP - Jump to the given location.

STOP - Stop the program.

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

Chapter 21:
What was the first high level programming language to release?
*When?
*By Who?

A

Formula Translation (FORTRAN).
Released in 1957.
Developed by IBM, in a small team led by John Backus.

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

Chapter 21:

*What were some of the first high level programming languages?

A

FORTRAN (Formula Translation) [1957]
COMTRAN (COMmercial Translator) [1957]
ALGOL 58 (ALGOrithmic Language) [1958]
COBOL (COmmon Business Oriented Language) [1959]
BASIC (Beginner’s All-purpose Symbolic Instruction Code) [1964]

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

Chapter 21:

What are the three categories of High Level Languages?

A

Procedure-Oriented Language.

Logic-Oriented Language.

Object-Oriented Language.

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

Chapter 21:

What is a Procedure-Oriented Language?

A

High level language category;
Also known as imperative high level language;

Programming language that focuses on what to do, not how to do;
Made up of commands that map to multiple machine level instructions.

e.g. x, y = y, x
(rather than R3 = R1, R1 = R2, R2 = R3).

Examples include: Fortran, Basic.

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

Chapter 21:

What is a Logic-Oriented Language?

A

High level language category;

Programming language that is comprised of logical sentences.

Examples include: Prolog, and SQL languages.

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

Chapter 21:

What is an Object-Oriented Language?

A

High level language category;

Object-Oriented programming languages are based on “objects”.
Objects contain data in the form of fields/attributes/properties.

Examples include: Python, C++, JavaScript.

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

Chapter 21:

What are the advantages to using High Level Languages, over Low Level Languages?

A

Much easier to learn.

Easier and faster to write.

Easier to understand, debug, maintain.

Not machine-specific. High Level Code can be ported to different machines.

Libraries allow for quick and easy use of complex modules.

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

Chapter 21:

What are the disadvantages to using High Level Languages, over Low Level Languages?

A

The CPU can only handle Machine Code, so High Level Languages must be converted down more. This means slower performance.

High Level Languages give you less control of the CPU. In Low Level Languages, you can manipulate registers, and be more efficient with storage.

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

Chapter 22:

What are the three main Programming Language Translators called?

A

Assembler.
Compiler.
Interpreter.

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

Chapter 22:

What is an Assembler?

A

An Assembler converts Assembly Language to Machine Code.

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

Chapter 22:

What are the names of the input and output of a Programming Language Translator?

A

Input: Source Code (Original that has been written)
Output: Object Code (Machine Code)

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

Chapter 22:

What is the name of the Programming Language Translator that converts Assembly Language to Machine Code?

A

Assembler.

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

Chapter 22:

What is a Compiler?

A

A Compiler converts a High-Level Language into Machine Code.

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

Chapter 22:

What is the name of the Programming Language Translator that converts a High Level Language to Machine Code?

A

Compiler.

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

Chapter 22:

How does a Compiler Translate Code?

A

A Compiler uses Source Code as an input.

The Source Code is scanned several times, each performing different checks and building up tables of information.

The Object Code will then be finalised, where you can save and run it without further presence of the compiler.

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

Chapter 22:

What is an Interpreter?

A

An Interpreter converts a High-Level Program into Machine Code instructions line by line.

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

Chapter 22:

What errors are checked before the program runs in an interpreter?

A

Syntax errors.

a = 1
b = 2
c = a + b
print( a, “+”, b, “=” c

(Missing closed bracket)

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

Chapter 22:

What errors are not checked before the program runs in an interpreter?

A

Runtime errors.

a = 1
b = 2
print( a, “+”, b, “=” c )

(c is not defined)

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

Chapter 22:

What does an interpreter do when a program with a syntax error is run?

A

Scan all lines checking syntax.

When the error is found, call the error.
(before the program runs).

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

Chapter 22:

What does an interpreter do when a program with a logical error is run?

A

Scan all lines checking syntax.

Run the program line by line.

When the error is found, crash the program and report the error. (Unless the error is caught in a try-catch).

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

Chapter 22:

What do most new interpreters use to increase execution efficiency?

A

Bytecode.

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

Chapter 22:

What is Bytecode?

A

Low-Level Compilation of a High-Level Program.

High-Level enough that it can be ported easily.

Can be interpreted much quicker than a standard High-Level Language.

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

Chapter 22:

What are some advantages to Bytecode?

A

As easy to read, write, and learn as High-Level Languages.

Then converted into a form that is High-Level enough that it can be ported to other devices with relative ease.

But Low-Level enough that it runs faster and more efficiently.

35
Q

Chapter 22:

What are the advantages of Compilers, against Interpreters?

A

Object Code can be saved and run without any translation needed. As a result, Object Code runs faster.

Object Code can be distributed without needing the compiler.

Source Code can be kept hidden.

36
Q

Chapter 22:

What are the disadvantages of Compilers, against Interpreters?

A

Compilation is slow, and must be done after every edit of the Source Code.

37
Q

Chapter 22:

What are the advantages of Interpreters, against Compilers?

A

Useful in the development process, as constant recompilation is not required.

It is easier to test sections of the program.

38
Q

Chapter 22:

What are the disadvantages of Interpreters, against Compilers?

A

Program may run slower, as every statement must be interpreted. This can be a particular problem when large loops are used.

Interpreter is required to run the code.

Can’t hide Source Code.

39
Q

Chapter 19:

What is the difference between Hardware and Software?

A

Hardware is the electrical or electromechanical parts of a computer.

Software is the programs that are written to make the computer function.

40
Q

Chapter 19:

What are the two different types of Software?

A

System Software.

Application Software.

41
Q

Chapter 19:

What’s the difference between System Software and Application Software?

A

System Software is used for operating computer hardware.

Application Software is used to perform a specific task.

42
Q

Chapter 19:

What is an Operating System?

A

A set of programs between application software and computer hardware.

It is responsible for resource management, and providing an interface to users.

43
Q

Chapter 19:

What is Utility Software?

A
System Software designed to optimise the performance of the computer, such as:
backup files, 
restore corrupted files, 
compressing data, 
decompressing data, 
encrypting data, 
providing a firewall, 
and more.
44
Q

Chapter 19:

What is a Disk Defragmenter?

A

A Utility Program that reorganises a Hard Disk so that files which have been split up, have all of their data in one block.

45
Q

Chapter 19:
What is Application Software?
What are the 3 types?

A

Programs that perform specific user-oriented tasks.

General-Purpose,
Special-Purpose,
Custom-Written (bespoke).

46
Q

Chapter 20:

Where is the Operating System stored?

A

Non-Volatile Storage.
When the computer is switched on, a small program called a loader, stored in ROM, sends instructions to load the operating system by copying it from Storage to RAM.

47
Q

Chapter 20:

What does API stand for?

A

Application Programming Interface.

48
Q

Chapter 20:

What are the specific tasks of the Operating System?

A
User-Hardware Interface,
Memory Management,
Processor Scheduling,
Backing Store Management,
Input Output Management.
49
Q

Chapter 20:

When the RAM is full, and the user wants to open more programs, what happens?

A

A section of Permanent Storage is reassigned as extra “Virtual” Memory.

The least active program will be pushed into the Virtual Memory, and the most active will be present in RAM.

If a program in Virtual Memory becomes active, it must be moved into RAM before it can start functioning.

50
Q

Chapter 20:

What is meant by Processor Multi-Tasking?

A

The OS is responsible for Scheduling the use of the CPU.
The OS will switch between each program requesting the CPU, so that all programs are seemingly processing at the same time.

51
Q

Chapter 20:

What are the objectives of the scheduler?

A

Maximise throughput,
Be fair to all users on a multi-user system,
Provide acceptable response times to all users,
Ensure Hardware resources are kept as busy as possible.

52
Q

Chapter 20:

What is Peripheral Management?

A

The CPU needs to be able to communicate with connected devices in order to accept inputs and give outputs.

53
Q

Chapter 20:

What is an Interupt?

A

A signal from a Peripheral or Software program that causes the Operating System to pause the current instruction and do something else.

54
Q

Chapter 23:

What are the 8 different Logic gates?

A
Buffer,
NOT,
AND,
OR,
XOR,
NAND,
NOR,
XNOR.
55
Q

Chapter 23:

What does the Buffer gate do?

A

Take one boolean input, and return the same value.

It is often used to “refuel” an input that could be losing voltage.

56
Q

Chapter 23:

What does the NOT gate do?

A

Take one boolean input, and invert it.

57
Q

Chapter 23:

What does the AND gate do?

A

Take two boolean inputs, return true if BOTH inputs are true, else return false.

58
Q

Chapter 23:

What does the NAND gate do?

A

NOT AND.

Take two boolean inputs, return false if BOTH inputs are true, else return true.

59
Q

Chapter 23:

What does the OR gate do?

A

Take two boolean inputs, return true if ONE OR BOTH inputs are true, else return false.

60
Q

Chapter 23:

What does the NOR gate do?

A

NOT OR.

Take two boolean inputs, return false if ONE OR BOTH inputs are true, else return true.

61
Q

Chapter 23:

What does the XOR gate do?

A

( NOT(A) AND (B) ) OR ( (A) AND NOT(B) )

Take two inputs, return true if ONE input is true AND the other is false, else return false.

62
Q

Chapter 23:

What does the XNOR gate do?

A

NOT XOR.

Take two inputs, return false if ONE input is true AND the other is false, else return true.

63
Q

Chapter 23:

What is it called when you join multiple logic gates together?

A

Logic Circuit.

64
Q

Chapter 24:

*Who created the De Morgan Boolean Algebra Laws?

A

Augustus de Morgan.

65
Q

Chapter 24:
What is another way of writing

NOT(A AND B)

A

De Morgan

NOT(A) OR NOT(B)

66
Q

Chapter 24:
What is another way of writing

NOT(A OR B)

A

De Morgan

NOT(A) AND NOT(B)

67
Q

Chapter 24:

X.0

A

0

68
Q

Chapter 24:

X.1

A

X

69
Q

Chapter 24:

X.X

A

X

70
Q

Chapter 24:

X.NOT(X)

A

0

71
Q

Chapter 24:

X+0

A

X

72
Q

Chapter 24:

X+1

A

1

73
Q

Chapter 24:

X+X

A

X

74
Q

Chapter 24:

X+NOT(X)

A

1

75
Q

Chapter 24:

NOT(NOT(X))

A

X

76
Q

Chapter 24:

X.Y

A

Y.X

77
Q

Chapter 24:

X+Y

A

Y+X

78
Q

Chapter 24:

X.(Y.Z)

A

(X.Y).Z

79
Q

Chapter 24:

X+(Y+Z)

A

(X+Y)+Z

80
Q

Chapter 24:

X.(Y+Z)

A

(X.Y) + (X.Z)

81
Q

Chapter 24:

X+Y) . (W+Z

A

(X.W) + (X.Z) + (Y.W) + (Y.Z)

82
Q

Chapter 24:

X + (X.Y)

A

X

83
Q

Chapter 24:

X . (X+Y)

A

X