## Overview Problem solving is a core skill in digital support and services. Technicians and analysts must be able to break down complex issues, identify patterns, design algorithms, and propose efficient solutions using structured approaches. --- ## Computational Thinking ### 1. Decomposition Breaking down a complex problem into smaller, more manageable parts. > Example: Troubleshooting a network issue by isolating whether it’s a device, cable, or router fault. ### 2. Pattern Recognition Identifying similarities or trends in problems or data sets. > Example: Spotting that error messages only appear when a specific device connects to the network. ### 3. Abstraction Removing unnecessary detail to focus on what's important. > Example: Focusing only on software configurations rather than hardware when resolving an application crash. ### 4. Algorithm Design Creating a step-by-step procedure to solve a problem or perform a task. > Example: Writing a flowchart to represent the steps for logging a support ticket and escalating it. --- ## Problem-Solving Strategies ### Top-Down Approach Start with the overall system and break it down into sub-components. > Used when: Designing a new helpdesk system from scratch. ### Bottom-Up Approach Start by solving or understanding low-level components, then integrate them into a system. > Used when: Testing network cables before examining routers or servers. ### Modularisation Divide a system into independent modules that can be developed and tested separately. > Used when: Updating the authentication module of a larger user management system. --- ## Root Cause Analysis (RCA) A technique used to find the original cause of a problem. - **5 Whys**: Ask "why" multiple times until you reach the root. - **Fishbone Diagram (Ishikawa)**: Visual tool categorising potential causes. > Example: A server crash due to overheating may trace back to blocked airflow caused by poor cable management. --- ## Testing & Evaluation - **Test Plan**: Structured document outlining tests to validate functionality. - **Iteration**: Repeating a process until the correct outcome is achieved. - **Selection**: Using decision points (e.g., `if`, `else`) to choose actions based on conditions. --- ## Flowcharts in Problem Solving Flowcharts are useful for visualising algorithms and decision-making processes. **Example Symbol Use:** - Terminator → Start/End - Process → Action Step - Decision → True/False Output ```text [Start] → [Is device powered on?] → Yes → [Check cable] → ... ↓ No [Plug in device] ``` ## Further Reading - [[Kolb's Experiential Learning Cycle]] - [[Agile vs Waterfall Methodologies]] - [[IEEE and ISO Problem Resolution Guidlines]]