feat: add content

This commit is contained in:
2025-11-07 18:48:00 +03:30
parent 2841af195e
commit d43833ed57
10 changed files with 317 additions and 71 deletions
@@ -1,46 +1,43 @@
# 🧭 Topic: Basics of C++ & Data Types
# 🧭 Topic: Problem Solving
> [!info] Quick Overview
> This topic introduces how to compile and run C++ code, basic input/output, variables, built-in data types, and the math library.
> By the end, students will be able to write simple C++ programs using variables and standard input/output streams.
> 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
- Introduction to compilation and code editors
- `cin` / `cout` basic usage
- Variables and naming conventions
- Built-in data types (`int`, `float`, `double`, `char`, `bool`)
- Type conversion
- Using the math library
- **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
- 👨‍🏫 [Professor Slides (PDF)](./slides/prof.pdf)
- 🧑‍🏫 [TA Workshop Slides (PDF)](./slides/ta.pdf)
---
## 🛠️ Workshop & Assignments
- 💬 [Workshop Questions](./workshops)
- 🧮 [Assignments](01-topics/01-problem-solving/1-Workshop.md)
- ❓ [Q&A and Common Issues](./resources/qa.md)
- 🧮 [Assignments](2-Assignment.md)
---
## 🌐 Additional Resources
- [C++ Reference](https://cplusplus.com/reference/)
- [Learn C++](https://www.learncpp.com/)
- [Data Types in C++ (W3Schools)](https://www.w3schools.com/cpp/cpp_data_types.asp)
_Add more useful links here as the course progresses._
---
## ⏩ Navigation
- [Previous Topic: Problem Solving](../02-problem-solving/topic.md)
- ➡️ [Next Topic: Conditions & Loops](../04-conditions-loops/topic.md)
- [Next Topic: Basics of C++ & Data Types](../02-basics-and-data-types/0-Overview.md)
---