Thinking Ahead Flashcards

1
Q

What is the purpose of thinking ahead?

A

To make programs easy and intuitive for users to use.

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

Define inputs.

A

Any data that is required to solve a problem, usually entered into the system by the user.

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

Define outputs.

A

The results that are passed back once the inputs have been processed and the problem solved.

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

What three considerations do programmers need to make regarding inputs and outputs when thinking ahead?

A
  • Method of input/output (device used)
  • Data structures used
  • Data types used
  • Order of data
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Identify the inputs and outputs that are likely to be used in a book reservation system i.e. at a library.

A

Inputs:
Book details: name, author
ISBN
Borrowers details: name, library card number
Collection point

Outputs:
Expected waiting time
Confirmation
Availability at other libraries

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

What are preconditions?

A

Requirements which must be met before a program can be executed.

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

Where can preconditions be defined?

A

Within the code or within documentation.

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

Give an example where preconditions are required.

A
  • Stack functions
  • Check that a stack is not empty when popping an element from a stack
  • Check that a stack is not full when pushing an element onto a stack
  • Factorial function
  • The number passed to the function cannot be negative
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

State two advantages of including preconditions within the documentation accompanying a subroutine.

A
  • Reduces the length of the program
  • Reduces the complexity of the program
  • Saves time needed to debug and maintain a longer program
  • Makes subroutine more reusable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Define caching

A

The process of storing instructions or values in cache memory after they have been used, as they may be used again.

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

How is caching used in storing web pages?

A

Web pages that a user frequently accesses are cached, so the next time one of these pages is accessed, content
can be loaded without any delay.

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

What are the advantages of caching web pages?

A
  • Content can be loaded without delay
  • Images and text do not have to be downloaded again multiple times
  • Frees bandwidth for other tasks on a network
  • Less time is spent waiting
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the name given to the technique in which instructions are fetched based on algorithms which predict which instructions are likely to soon be used?

A

Prefetching

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

Give a limitation of caching.

A
  • Accuracy of the algorithms used
  • Effectiveness of algorithm in managing the cache
  • Size of the cache
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Give three advantages of using reusable program components.

A
  • More reliable than new components, as they have already been tested.
  • As developing from scratch is not required, this saves time, money and resources
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Give two examples of reusable program components

A
  • Abstract data structures eg. queues and stacks
  • Classes
  • Subroutines