🧩 ALGORITHM DESIGN & PROBLEM-SOLVING
1️⃣ Program Development Life Cycle (PDLC)
You must know the four stages and what happens in each.
🔹 1. Analysis
This is understanding the problem.
Includes:
✅ Identifying the problem
- What needs to be solved?
- Who will use the system?
✅ Requirements
- What inputs?
- What outputs?
- What processing?
- What storage?
✅ Abstraction
Removing unnecessary detail and focusing only on what matters.
Example:
If designing a student grading system:
- Ignore student hobbies.
- Focus on marks, names, averages.
✅ Decomposition
Breaking a large problem into smaller sub-problems.
Example:
School system →
- Input marks
- Calculate average
- Assign grade
- Display result
🔹 2. Design
Planning the solution before coding.
Includes:
- Structure diagrams
- Flowcharts
- Pseudocode
You design:
- Inputs
- Processes
- Outputs
- Storage
🔹 3. Coding
- Writing the actual program.
- Uses a programming language.
- Includes iterative testing (testing as you code).
🔹 4. Testing
- Use test data.
- Identify errors.
- Fix bugs.
2️⃣ Sub-systems & Decomposition
🔹 Computer Systems Have Sub-systems
Large systems are made of smaller systems.
Example: School system
- Attendance system
- Results system
- Library system
Each can be broken down further.
🔹 Decomposition
Breaking a problem into smaller parts makes it:
- Easier to manage
- Easier to test
- Easier to debug
This is frequently examined.
3️⃣ Methods of Designing Algorithms
You must know three:
🔹 1. Structure Diagrams
- Show system broken into modules.
- Hierarchical structure.
- No logic shown.
🔹 2. Flowcharts
Use standard symbols:
| Symbol | Meaning |
|---|---|
| Oval | Start/End |
| Parallelogram | Input/Output |
| Rectangle | Process |
| Diamond | Decision |
| Arrow | Flow line |
🔹 3. Pseudocode
- Structured English.
- Uses programming style.
- Must be precise.
4️⃣ Inputs, Processes, Outputs, Storage (IPOS)
Every system includes:
Input
Data entered.
Process
What happens to the data.
Output
Result produced.
Storage
Data saved for later use.
5️⃣ Standard Methods of Solution (Very Important)
These are guaranteed exam areas.
🔹 1. Linear Search
Searches through a list one item at a time.
Algorithm:
Used when:
- Data is unsorted.
🔹 2. Bubble Sort
Sorts by repeatedly swapping adjacent values.
Steps:
- Compare first two values.
- Swap if wrong order.
- Repeat.
- Largest value "bubbles" to end.
🔹 3. Totalling
Adds values together.
🔹 4. Counting
Counts occurrences.
🔹 5. Maximum / Minimum
Maximum:
🔹 6. Average
6️⃣ Validation & Verification
Very common 6-mark question.
🔹 Validation
Checks that data is sensible and acceptable.
Types:
| Type | Meaning |
|---|---|
| Range check | Value within limits |
| Length check | Correct number of characters |
| Type check | Correct data type |
| Presence check | Not left blank |
| Format check | Correct pattern (e.g. email) |
| Check digit | Mathematical check (e.g. barcodes) |
🔹 Verification
Checks data was entered correctly.
Types:
| Type | Meaning |
|---|---|
| Visual check | Human checks data |
| Double entry | Data entered twice and compared |
⚠️ Key difference:
Validation → Is data sensible?
Verification → Was data entered correctly?
7️⃣ Test Data
You must know 4 types.
🔹 Normal Data
Valid input within range.
Example:
Age 18 (range 0–120)
🔹 Abnormal Data
Invalid data.
Example:
Age = -5
🔹 Extreme Data
Largest/smallest acceptable value.
If range 0–120:
- 0
- 120
🔹 Boundary Data
Largest/smallest acceptable AND corresponding rejected.
If range 0–120:
- 0 (accepted)
- -1 (rejected)
- 120 (accepted)
- 121 (rejected)
Boundary questions are common.
8️⃣ Trace Tables & Dry Runs
Used to:
- Track variables
- Identify logic errors
Trace tables include:
| Step | Variable | Output |
You simulate the algorithm manually.
9️⃣ Errors in Algorithms
You must identify and correct:
🔹 Logical Errors
Program runs but wrong output.
🔹 Syntax Errors
Wrong structure (in code).
🔹 Runtime Errors
Occurs during execution (e.g. divide by zero).
🔟 Writing Algorithms
When writing pseudocode, always include:
- Variables
- User prompts
- Inputs
- Processing
- Outputs
Example:
⚠️ Precision Rules (Exam Critical)
Correct:
Use symbols:
✏️ Exam Strategy Tips
🔹 1. For 6–8 Mark Algorithm Questions
Include:
- Initialization of variables
- Clear loops
- Proper indentation
- End statements (ENDIF, NEXT)
🔹 2. For Test Data Questions
Always provide:
- Value
- Expected result
🔹 3. For Trace Tables
Be slow and careful.
Marks are often 4–6 here.
🔹 4. Always Initialize Variables
📌 Quick Revision Summary
You must confidently understand:
✅ PDLC stages
✅ Decomposition
✅ Structure diagrams
✅ Flowcharts
✅ Pseudocode
✅ Linear search
✅ Bubble sort
✅ Totalling, counting
✅ Max, min, average
✅ Validation vs Verification
✅ Test data types
✅ Trace tables
✅ Error correction