Algorithms and Data Structures
Development Models and Project Management
Requirements, Constraints, and Design
Security and Legal Issues
Software Testing and Evaluation
100

What is the main difference between a linear search and a binary search?

A linear search checks each element one by one, while a binary search divides a sorted list in half to find the target faster.

100

Which development model breaks the project into iterations called sprints?

Agile development model.

100

What is the difference between functional and non-functional requirements in a software solution?

  • Functional requirements define what the software should do (e.g., features, tasks).
  • Non-functional requirements define how the software should perform (e.g., usability, security).
100

What is two-factor authentication, and how does it increase security?

Two-factor authentication requires users to provide two forms of verification (e.g., password and phone code) to enhance security.

100

What is the purpose of conducting a usability test on a software solution? 

To ensure the solution is user-friendly and easy to navigate for its intended users.

200

What type of data structure uses key-value pairs to store information, and is known for fast searching?

An associative array (also known as a dictionary).

200

In a Waterfall development model, which phase comes directly after the design phase? 

Development (or coding) phase.

200

Which type of design technique uses mock-ups to represent the user interface of a software solution?

Mock-ups represent the user interface design visually, showing layout and design elements.

200

Under the Privacy Act 1988, what must organizations do when collecting personal data?

Organizations must notify individuals of the reasons for collecting their personal data.

200

What is the difference between validation and verification in software testing?

Validation checks whether the software meets user needs.

Verification checks whether the software works as intended without bugs.

300

In a bubble sort algorithm, how is data sorted?

Data is sorted by repeatedly swapping adjacent elements if they are in the wrong order.

300

What is a Gantt chart, and how is it used in project management?

A Gantt chart is a timeline that shows the start and finish dates of tasks in a project. It helps in tracking progress and dependencies between tasks.

300

What is an existence check in data validation?

An existence check ensures that required fields in data input are not left blank.

300

What is a man-in-the-middle attack in cybersecurity?

A man-in-the-middle attack occurs when a hacker intercepts and possibly alters communication between two parties.

300

What does timeliness refer to when evaluating the efficiency of a software solution?

Timeliness refers to how quickly the software responds to user inputs or processes tasks.

400

Which control structure is used to repeatedly execute a block of code while a condition remains true?

A while loop.

400

What is the significance of identifying a task on the critical path in project management?

A task on the critical path must be completed on time, or the entire project will be delayed.

400

Social constraints are an important consideration during the development of a solution. Give one example of a social constraint.

Accessibility for people with disabilities or catering to users from diverse cultural backgrounds.

400

What is the role of encryption in protecting data?

Encryption transforms readable data into unreadable code to prevent unauthorized access.

400

Give an example of how you could test a software solution’s accuracy.

Testing calculations by providing known inputs and checking if the outputs are correct.

500

In the context of efficiency, what are the key differences between the selection sort and quick sort algorithms, and which one would you choose for large datasets, based on time complexity?

  • Selection sort has a time complexity of O(n²), as it repeatedly selects the smallest element from an unsorted portion and places it at the beginning. It is inefficient for large datasets due to its quadratic time complexity.
  • Quick sort, on average, has a time complexity of O(n log n), as it uses a divide-and-conquer approach by selecting a pivot and partitioning the array into two halves. It is generally faster for large datasets because it performs fewer comparisons and swaps compared to selection sort.
  • For large datasets, quick sort is the better choice due to its more favorable time complexity, especially in the average case.
500

Name one advantage and one disadvantage of using the Agile development model.

  • Advantage: Flexibility in responding to changes.
  • Disadvantage: Difficult to manage project scope, especially in large teams.
500

What is a data dictionary, and why is it important in software design?

A data dictionary is a document that lists all variables, data structures, and their characteristics. It helps ensure clarity in how data is managed.

500

In terms of software development, what is the difference between legal and ethical issues?

Legal issues involve breaking laws, while ethical issues involve violating moral standards even if not illegal.

500

What is the purpose of developing evaluation criteria during the design phase of a project?

Evaluation criteria help assess whether the final product meets the original requirements and goals.