Back to marketplace

2.3 Producing Robust Algorithms

No description yet. This curated deck is ready for daily study.

Total cards: 14•Content version: v4•Public deck•Updated: 8/1/2026

Card preview (14)

#1
Front (Question)

Robust program

Back (Answer)

A program that is fault-tolerant and difficult to break/crash.

#2
Front (Question)

Defensive design

Back (Answer)

programs should be designed to be robust and to not crash if a user does something unexpected.

#3
Front (Question)

Defensive design considerations

Back (Answer)

• Input sanitisation/validation • Anticipating misuse • Authentication

#4
Front (Question)

Input sanitisation/validation -

Back (Answer)

validation checks such as length checks and format checks can help to avoid causing errors.

#5
Front (Question)

Anticipating misuse -

Back (Answer)

assume that users will try to break the program.

#6
Front (Question)

Authentication

Back (Answer)

using logon systems with passwords to make sure the user is who they say they are.

#7
Front (Question)

Iterative testing -

Back (Answer)

testing that is carried out during production.

#8
Front (Question)

Final/terminal testing -

Back (Answer)

Carried out just before the final program is released.

#9
Front (Question)

Testing techniques

Back (Answer)

• Test with erroneous data • Test with valid data • Test with boundary data

#10
Front (Question)

Erroneous data -

Back (Answer)

Data that is not valid.

#11
Front (Question)

Boundary data

Back (Answer)

Data ‘on the edges’ of being acceptable

#12
Front (Question)

Logic errors

Back (Answer)

Errors that mean your code works but not as intended e.g < instead of >. These will not be picked up by the IDE.

#13
Front (Question)

Maintainability

Back (Answer)

Ensuring that code is easy to follow and repair/improve/edit.

#14
Front (Question)

Ways of making code more maintainable -

Back (Answer)

Comments, indentation, meaningful variable names and use sub-routines.