# 🧭 Topic: Problem Solving

> [!info] Quick Overview
> This foundational topic introduces the core skill of programming: problem-solving. It's not about writing code immediately, but about learning how to think logically and systematically. We will explore how to break down complex problems into smaller, manageable steps using a structured approach. By the end of this lecture, students will understand the principles of algorithmic thinking and be able to plan solutions using tools like flowcharts and pseudocode before writing a single line of code.
---
## 📌 Covered in This Topic

-  **The Art of Problem Solving:** An introduction to planning, creativity, innovation, and clearly defining the cause, goal, and potential solutions to a problem.
*   **Stages of Algorithmic Thinking:** A 7-step logical process for solving problems:
```
    1.  Define the Problem
    2.  Analyze and Understand
    3.  Identify Potential Solutions
    4.  Evaluate and Choose a Solution
    5.  Plan Actions
    6.  Implement the Code
    7.  Review the Results
```
*   **What is an Algorithm?** Defining an algorithm as a step-by-step procedure or a recipe for solving a problem.
*   **Introduction to Flowcharts:** Learning to visualize the flow of a solution using standard symbols to represent actions, decisions, and data flow.
*   **Introduction to Pseudocode:** Understanding how to write a plain-language, structured description of an algorithm's steps before translating it into a programming language.
*   **Choosing the Best Algorithm:** An introduction to the criteria for evaluating different solutions, focusing on time and space efficiency, reliability, and simplicity.
---
## 📑 Slides & Materials

- 🧑‍🏫 [TA Workshop Slides (PDF)](01-topics/01-problem-solving/5-TASlides.md)

---
## 🛠️ Workshop & Assignments

- 🧮 [Assignments](01-topics/01-problem-solving/2-Assignment.md)  


---
## 🌐 Additional Resources


---
## ⏩ Navigation

- ➡️ [Next Topic: Basics of C++ & Data Types](../02-basics-and-data-types/0-Overview.md)

---

> [!tip] Tip
> If something doesn’t make sense — **don’t stay stuck alone**. Ask the TA to clarify it right away. Often, a quick question can save you a lot of time and frustration. Remember: if you’re confused, chances are others are too.
