Computational Thinking (III) - Design, Testing and IDEs Flashcards

1
Q

For a computer language to be processed what must happen?

A

It needs to be translated into machine code

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

What are the advantages of high level programming languages?

A

They are close to the spoken and written language of the programmer making it much easier to work with

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

Name some high level languages

A

Python

Java

C++

C#

Visual Basic

JavaScript

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

Programs written in high level language are known as what?

A

Source code

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

What are low level languages?

A

They sit close to the computer’s instruction set

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

What are the two types of low level language?

A

Machine Code

Assembly Language

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

What is machine code?

A

Instructions that a process understands and can act upon

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

What are the advantages of writing in machine code?

A

More flexibility

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

What are the disadvantages of writing in machine code?

A

Very difficult to write in, understand and debug (consisting of binary and hexadecimal)

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

When programmers need direct control of machine code, what is used?

A

Another low level language – assembly language

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

What does assembly language use?

A

Mnemonics, for example:

LDA – load a value from a memory address
STA – store a value in a memory address
ADD – adds the value held in a memory address to the value held in the accumulator
SUB – subtracts from the accumulators the value held in a memory address
MOV – moves the contents of one memory address to another

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

What is Opcode and Operand?

A

Opcode – actual instructions

Operand – this is a value that the instruction uses or manipulates

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

What are translators?

A

A program that converts source code (high level language written program) into object code (a form the computer understand)

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

What are the three types of translator?

A

Compilers

Interpreters

Assemblers

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

What is a compiler?

A

A compiler takes the source code as a whole and translates it into object code, in one go

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

What is an interpreter?

A

An interpreter translates source code into object code one instruction at a time

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

What is an assembler?

A

An assembler translates assembly language into object code

18
Q

What is an IDE?

A

Tools which are gathered together to help write programs

19
Q

What is the Python IDE?

20
Q

What are editors?

A

Editors are software which allow programmers to write and edit code. Editors are often fairly simple, but usually offer facilities such as:

Automatic line numbering
Colour coding
Auto-correct
Auto-suggest
Auto-indent
21
Q

What do editors help with (and are unable to help with)?

A

Editors help the readability of code

They are unable to help identify errors

22
Q

What is a runtime environment?

A

A runtime environment (RTE) is special software that allows a program to run on a computer, even if it is not designed to run on it

23
Q

What debugging tools exist to locate and fix errors?

A

Breakpoints (pause / stop code to check)

Variable tracing (identify changing variable values)

Syntax error pinpoint (error trapping)

24
Q

What is the purpose of defensive design?

A

To ensure that a program runs correctly and continues to run no matter what actions a user takes

25
List some defensive design considerations
Protection against unexpected user inputs or actions, such as a user entering a letter where a number was expected Maintainability - ensuring code is readable and understandable Minimising / removing bugs
26
What is validation? Give some examples
Validation applies rules to inputted data, rejecting it if it doesn’t follow the rules E.g. range check, length check, presence check, format check, type check etc…
27
What is data sanitisation?
Hide / protect data so it cannot be seen or disclosed E.g. masking hides visible data (password entry becomes *****)
28
What is authentication?
Authentication is the process of a user confirming that they are who they say they are on a computer system
29
What are the three authentication groups?
Something you are - username, bank account number, or anything that identifies the user uniquely Something you know - password, pin, secret answer to a question Something you have - swipe card, biometrics, any other physical identifying device
30
What is the purpose of maintainability?
To ensure that, over time, a program can be maintained
31
List how a program can be written in a maintainable style
Comments Sensible variable names Indentation
32
What are the two types of programming error?
Syntax error Logic error
33
What is a syntax error? Give some examples
A syntax error occurs when code written does not follow the rules of the programming language. Misspelling a statement, e.g. writing pint instead of print Using a variable before it has been declared Missing brackets, e.g. opening a bracket but not closing it
34
What is a logic error?
A logic error is an error in the way a program works. The program simply does not do what it is expected to do (usually the program continues to run).
35
Give some examples of a logic error
Incorrectly using logical operators, e.g. expecting a program to stop when the value of a variable reaches 5, but using <5 instead of <=5 Incorrectly using Boolean operators Unintentionally creating a situation where an infinite loop may occur Incorrectly using brackets in calculations Unintentionally using the same variable name at different points in the program for different purposes Referring to an element in an array that falls outside of the scope of the array
36
What is the difference between iterative testing and final (terminal) testing?
Iterative testing – carried out why a program is being being developed Final (terminal) testing – carried out when all modules are complete and the program is tested as a whole
37
What should test data include?
Valid data - sensible, possible data that the program should accept and be able to process Extreme data - valid data that falls at the boundary of any possible ranges Invalid (erroneous) data - data that the program cannot process and should not accept
38
What should a good testing plan include?
The test number A description of what the test intends to check The test data being used The type of test (valid, extreme or invalid) Expected outcome Actual outcome
39
What is a trace table? Complete one for the following code (adding the integers 5, 7 and 9 to make 21)
Trace tables contain all the variable a program contains (and when their value changes, the table indicates this)
40
What can potentially happen if programs aren’t tested fully?
Bugs