Chapter 9
Chapter 10
Chapter 11
Chapter 12
100

Describe what is meant by the term abstraction

Hiding or omitting unneccessary details when solving a problem

100

Identify 5 different data types

INTEGER

REAL

BOOLEAN

CHAR

STRING


100

Define a variable and a constant in programming.

  • A variable is a named storage location in memory whose value can change during program execution.

  • A constant is a named storage location whose value remains fixed throughout the program's execution.

100

What are the main stages of the software development lifecycle?

Analysis

Design

Coding

Testing

Maintenance

200

Identify three benefits of decomposition

Simplifies Complex Problems 

Encourages Reusability 

Supports Teamwork 

Makes Debugging Easier

200

Define a composite data type and provide an example.

A composite data type is a data type that can store multiple values, potentially of different types, grouped together. An example is a record, which can hold various fields such as a student's name (string), age (integer), and grade (character).

200

Explain the difference between a procedure and a function.

  • A procedure is a subroutine that performs a specific task but does not return a value.

  • A function is a subroutine that performs a specific task and returns a value to the part of the program that called it.

200

Differentiate between black-box testing and white-box testing.

  • Black-box testing focuses on testing the software's functionality without knowledge of its internal code structure.

  • White-box testing involves testing the internal structures or workings of an application, requiring knowledge of the code.

300

Describe the purpose of a flowchart in algorithm design

A flowchart is a visual representation of the sequence of steps and decisions needed to perform a process. In algorithm design, flowcharts help in planning

300

Differentiate between a stack and a queue.

A stack is a linear data structure that follows the Last-In-First-Out (LIFO) principle, meaning the last element added is the first to be removed. In contrast, a queue follows the First-In-First-Out (FIFO) principle, where the first element added is the first to be removed.

300

Write pseudocode for a function that checks if a number is even.

FUNCTION IsEven(number)

    IF number MOD 2 == 0 THEN

        RETURN TRUE

    ELSE

        RETURN FALSE

    ENDIF

END FUNCTION

300

Explain the difference between syntax errors and logic errors.

  • Syntax errors occur when the code violates the grammatical rules of the programming language, such as missing semicolons or misspelled keywords.

  • Logic errors happen when the program runs without crashing but produces incorrect results due to flawed logic.

400

Explain what is meant by stepwise refinement in the context of algorithm design, and describe how it helps in developing programs.

Stepwise refinement is a method of developing an algorithm by breaking it down into a series of smaller, more detailed steps. The steps are numbered in order and the programmer will describe the constructs involved. 

400
Describe how you would insert an item in a linked list, that currently contain 2 items. The new item will be inserted between the two existing item.

Add data item to first available free node

Change the pointer from the first node to point at the new node. 

Add a pointer from the newly inserted free node to previously second item. 

Make sure the pointer in the second item points to a null value. 

400

Explain the concept of parameter passing and differentiate between pass-by-value and pass-by-reference.

  • Pass-by-value: A copy of the actual parameter's value is passed. Changes made inside the function do not affect the original variable.

  • Pass-by-reference: A reference to the actual parameter is passed. Changes made inside the function affect the original variable.

400

Explain the key features of Rapid Application Development (RAD) and discuss one advantage and one disadvantage of using this methodology.

  • Focuses on rapid prototyping 

  • Involves continuous user involvement throughout the development process.

  • Breaks the project into small, manageable modules that are developed in parallel.

  • Uses reusable components and software tools to accelerate development.


+ Faster development and delivery 

- Less suitable for large or complex system