2.1.2 Thinking Ahead Flashcards

You may prefer our related Brainscape-certified 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
Borrower 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

Requirement 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