تفکر محاسباتی روشی برای فهم بهتر

تفکر محاسباتی روشی برای فهم بهتر

مقالۀ «Computational Thinking» نوشته Jeannette M. Wing (۲۰۰۶) بر اهمیت «تفکر محاسباتی» تأکید می‌کند و می‌گوید که این توانایی باید مانند خواندن، نوشتن و محاسبات پایه، جزئی از مهارت‌های بنیادین همه باشد، نه فقط محض دانشمندان کامپیوتر. در ادامه خلاصه‌ای از محتوای مقاله به زبان فارسی و نکات کلیدی آن می‌آورم:


مقدمه و انگیزه

  • Wing می‌گوید که «تفکر محاسباتی» (Computational Thinking) فراتر از نوشتن برنامه است؛ این یک طرز فکر، مجموعه ابزار ذهنی و رویکردی است برای حل مسائل بزرگ و طراحی سیستم‌ها، با الهام از مفاهیم بنیادی رشته کامپیوتر.
  • او مطرح می‌کند که ما باید به مهارت‌های پایه‌ای انسان — خواندن، نوشتن، حساب — مهارت تفکر محاسباتی را هم اضافه کنیم، چون این تفکر به ما کمک می‌کند با پیچیدگی سیستم‌ها بهتر برخورد کنیم.
  • هدفش این نیست که همه مانند کامپیوتر فکر کنند، بلکه انسان‌ها با بهره گرفتن از مفاهیم محاسباتی، بتوانند خلاقانه‌تر مسائل را تحلیل و حل کنند.

چیستی تفکر محاسباتی و ویژگی‌های آن

Wing تعاریف و مؤلفه‌های تفکر محاسباتی را توضیح می‌دهد؛ برخی از ویژگی‌ها و مهارت‌هایی که به آن نسبت می‌دهد عبارت‌اند از:

  • تجرید (Abstraction) و تقسیم مسئله به زیربخش‌ها (Decomposition)
    وقتی مسئله‌ای بزرگ داریم، آن را به بخش‌های کوچکتر تقسیم می‌کنیم، و بخش‌های مختلف را با سطح مناسب از جزئیات مدل می‌سازیم.
  • انتخاب نمایش مناسب (Representation)
    اینکه چگونه اطلاعات را مدل کنیم — چه ساختار داده‌ای، چه مدل مفهومی — تأثیر زیادی بر سادگی و کارایی حل دارد.
  • استفاده از الگوریتم‌ها و روش‌های حل
    مثلاً تبدیل مسئله به یکی که قبلاً می‌دانیم چگونه حلش کنیم (تقلیل)، یا تغییر مسئله برای نزدیک‌تر به ساختارهایی که راه حل دارند.
  • تفکر بازگشتی، موازی، و تبدیل بین کد و داده
    مثل این که بعضی اوقات کد را به‌عنوان داده ببینیم، یا داده را به‌صورت کد در نظر بگیریم، یا از مفاهیم بازگشت و همزمانی استفاده کنیم.
  • تفکر درباره کارایی، منابع، محدودیت‌ها
    در حل مسئله، باید trade-off بین زمان و فضا، محدودیت‌های پردازش و منابع سیستم را در نظر گرفت.
  • استفاده از روش‌های تقریب، روش‌های هِیوِریستیک، تصادفی‌سازی
    گاهی یافتن جواب دقیق ممکن نیست یا بهینه نیست، پس باید راه‌حل تقریباً خوب را بپذیریم، یا از شانس، الگوریتم‌های تصادفی و جستجو استفاده کنیم.
  • پیش بینی، کَشینگ، بازگشت (backtracking)، مدیریت خطا، افزونگی
    مثالی که در مقاله آمده: وقتی فرزندتان چترش را برمی‌دارد، وسایلی که ممکن است لازم باشد را از پیش کَش می‌کند (prefetching / caching).
    مثال دیگر: وقتی یکی از خطوط برق قطع می‌شود، سیستم تلفن همچنان کار می‌کند به دلیل افزونگی (redundancy) و طراحی برای خطا.
    مثال دیگر: انتخاب صف در سوپرمارکت، تحلیل صف‌ها، یعنی مدلسازی عملکرد چند سرور.
  • تمرکز بر زیبایی، سادگی، طراحی خوب
    تنها صحت و کارایی کافی نیست؛ طراحی سیستم از نظر وضوح، زیبایی مفهومی، modular بودن اهمیت دارد.

آنچه تفکر محاسباتی نیست

Wing همچنین تصریح می‌کند که تفکر محاسباتی:

  • فقط برنامه‌نویسی نیست
    توانایی کدنویسی مهم است، اما این تفکر مفهومی‌تر است؛ داشتن دید سطح بالا، تجرید و طراحی.
  • یادگیری صرفاً به صورت مکانیکی یا حفظی نیست
    تفکر محاسباتی بنیادی است و باید درک شود، نه اینکه صرفاً دستورات را حفظ کنیم.
  • به معنای این نیست که انسان‌ها باید مثل کامپیوتر فکر کنند
    بلکه انسان‌ها با توانمندی‌های ویژه‌ی خود — خلاقیت، شهود، تخیل — با ادغام روش‌های محاسباتی می‌توانند قوی‌تر شوند.
  • کاهش به ریاضیات یا مهندسی صرف نیست
    اگرچه با ریاضیات و مهندسی اشتراک دارد، اما صرفاً یکی از آن‌ها نیست. تفکر محاسباتی ابزاری است ترکیبی که در بسیاری از زمینه‌ها کاربرد دارد.

تأثیر و دامنه کاربرد

Wing بیان می‌کند که تفکر محاسباتی در حال اثرگذاری بر رشته‌های دیگر است:

  • در آمار و یادگیری ماشینی، روش‌های آماری با مفاهیم محاسباتی ترکیب شده‌اند.
  • در زیست‌شناسی، بیوانفورماتیک و مدل‌سازی پروتئین، مفاهیم داده‌ساختار و الگوریتم وارد حوزه زیستی شده‌اند.
  • رشته‌هایی مثل اقتصاد، بازی‌شناسی (game theory)، شیمی، فیزیک نیز در حال تغییر طرز تفکر خودند با ورود مفاهیم محاسباتی.

Wing پیش‌بینی می‌کند که در آینده نزدیک تفکر محاسباتی جزئی از طرز فکر عمومی خواهد شد و بسیاری از مردم بدون اینکه بدانند، از آن استفاده می‌کنند.


پیشنهادها و نتیجه‌گیری

مقاله با چند توصیه برای آموزش و ترویج تفکر محاسباتی همراه است:

  • باید دوره‌هایی در دانشگاه و پیش‌دانشگاهی برای «طرز فکر مثل یک دانشمند کامپیوتر» طراحی شود؛ این دوره‌ها نباید فقط به دانشجویان کامپیوتر محدود باشد.
  • باید دانش‌آموزان و معلمان پیش از دوران دانشگاه با مفاهیم محاسباتی آشنا شوند، به جای اینکه دیر اقدام شود.
  • نگرش عمومی به علوم کامپیوتر باید تغییر کند — نه فقط جنبه فنی، بلکه به عنوان زمینه‌ای فکری و مفهومی.

Wing خاتمه می‌دهد که اگر تفکر محاسباتی به قدر کافی فراگیر شود، تبدیل به چیزی می‌شود که همه به آن عادت کرده‌اند، مثل خواندن و نوشتن، و دیگر به عنوان فلسفه‌ای صریح دیده نمی‌شود.

به طور خلاصه، جانت وینگ در این مقاله می‌خواهد بگوید که:

💡 “تفکر محاسباتی” فقط برای برنامه‌نویسان نیست؛ بلکه روشی برای فکر کردن است که همه‌ی انسان‌ها باید یاد بگیرند.

او توضیح می‌دهد که تفکر محاسباتی یعنی:

  • نگاه کردن به مسائل به‌صورت منظم و منطقی؛
  • شکستن مسائل پیچیده به بخش‌های ساده‌تر؛
  • پیدا کردن الگوها و تجریدها (یعنی تمرکز روی چیزهای مهم و حذف جزئیات غیرضروری)؛
  • و طراحی راه‌حل‌های گام‌به‌گام (الگوریتمی) برای حل آن‌ها.

وینگ تأکید می‌کند که:

  • این نوع تفکر، فقط مربوط به علوم کامپیوتر نیست، بلکه می‌تواند در هر زمینه‌ای مثل زیست‌شناسی، اقتصاد، هنر یا آموزش به کار برود.
  • هدف این نیست که همه برنامه‌نویس شوند، بلکه این است که همه بتوانند مثل یک دانشمند کامپیوتر فکر کنند: یعنی خلاقانه، منطقی و ساختارمند.

در پایان، او پیش‌بینی می‌کند که روزی تفکر محاسباتی مثل خواندن و نوشتن به یکی از مهارت‌های پایه‌ای بشر تبدیل خواهد شد.

💻 هفت اشتباه خطرناک در برنامه‌نویسی که باید از آن‌ها دوری کنید

💻 هفت اشتباه خطرناک در برنامه‌نویسی که باید از آن‌ها دوری کنید

برنامه‌نویسی دنیای جذابی است، اما اگر بدون دقت و نظم جلو بروید، خیلی زود به آشفتگی و خستگی می‌رسید. همه ما در مسیر یادگیری اشتباه می‌کنیم، اما مهم این است که آن‌ها را بشناسیم و اصلاح کنیم.
در این مطلب، با هفت اشتباه مهم آشنا می‌شویم که می‌تواند کیفیت کد شما را نابود کند — و البته یاد می‌گیریم چطور از آن‌ها پیشگیری کنیم.


۱. بی‌توجهی به استانداردهای کدنویسی

یکی از بزرگ‌ترین اشتباهات، نداشتن نظم و استاندارد در نوشتن کد است.
استانداردهای برنامه‌نویسی یعنی اینکه همه اعضای تیم از یک شیوه‌ی یکسان برای نوشتن کد، فاصله‌گذاری، نام‌گذاری فایل‌ها و ساختار پروژه استفاده کنند.

وقتی هر کسی به روش خودش کد بنویسد، خواندن و درک آن برای بقیه سخت می‌شود — درست مثل متنی که در هر جمله فونتش عوض شود!
بنابراین اگر در تیم هستید، حتماً استاندارد مشخصی تعیین کنید. و اگر تنها کار می‌کنید، یکی از استانداردهای معروف جامعه‌ی برنامه‌نویسی (مثل PEP8 برای پایتون) را الگو بگیرید.


۲. رعایت نکردن اصول طراحی (SOLID)

کدنویسی فقط نوشتن دستور نیست، بلکه طراحی درست سیستم هم اهمیت زیادی دارد. اصول SOLID به شما کمک می‌کند کد تمیز و قابل نگهداری بنویسید:

  • S – هر بخش فقط یک کار انجام دهد.
    وقتی یک کلاس چند وظیفه دارد، نگهداری و تست آن سخت می‌شود.
  • O – برای گسترش باز، برای تغییر بسته.
    یعنی برای اضافه کردن قابلیت جدید، به جای دست‌کاری مستقیم کدهای قبلی، از گسترش و افزودن استفاده کنید.
  • L – جایگزینی منطقی بین کلاس‌ها.
    کلاس فرزند باید بتواند بدون مشکل جایگزین والدش شود.
  • I – هر بخش فقط چیزهایی را بداند که واقعاً لازم دارد.
    ماژول‌ها را کوچک و تخصصی نگه دارید.
  • D – وابستگی به رابط‌ها، نه پیاده‌سازی‌ها.
    یعنی بخش‌های مختلف سیستم از طریق واسط‌ها (Interface) با هم حرف بزنند تا بتوانید راحت‌تر آن‌ها را تغییر دهید.

با رعایت این اصول، کد شما تمیزتر، قابل‌فهم‌تر و بسیار راحت‌تر برای تست و توسعه خواهد شد.


۳. نادیده گرفتن الگوهای طراحی (Design Patterns)

الگوهای طراحی در واقع میان‌برهایی هستند که برنامه‌نویسان حرفه‌ای برای حل مشکلات تکراری پیدا کرده‌اند.
مثلاً وقتی می‌خواهید اشیاء زیادی از یک نوع بسازید، می‌توانید از Factory Pattern استفاده کنید.
یا وقتی می‌خواهید دو ماژول ناسازگار را به هم وصل کنید، Adapter Pattern راه‌حل شماست.

استفاده از Design Patternها باعث می‌شود کدتان ساختارمندتر، حرفه‌ای‌تر و قابل درک‌تر برای دیگران شود.


۴. نام‌گذاری نامفهوم

کد باید برای انسان‌ها هم قابل فهم باشد، نه فقط برای کامپیوتر!
اگر از نام‌های بی‌معنی مثل x, tmp, obj یا data2 استفاده کنید، بعد از مدتی حتی خودتان هم نمی‌دانید کدتان چه کار می‌کند.

به جای آن:

  • نام‌ها را کامل و واضح بنویسید.
  • از کلمات اختصاری بی‌دلیل پرهیز کنید.
  • از اعداد یا رشته‌های نامفهوم (مثل “magic numbers”) استفاده نکنید و آن‌ها را به ثابت‌های نام‌گذاری‌شده تبدیل کنید.

💬 جمله‌ای از «مارتین فاولر» را به یاد داشته باشید:
«هرکسی می‌تواند کدی بنویسد که کامپیوتر بفهمد؛ ولی برنامه‌نویس خوب کدی می‌نویسد که انسان بفهمد.»


۵. تست نکردن کد

تست کردن یعنی اطمینان از اینکه برنامه همان‌طور که باید کار می‌کند.
بسیاری از برنامه‌نویس‌ها از تست فراری‌اند، اما واقعیت این است که اگر کد شما درست طراحی شده باشد، نوشتن تست هم ساده می‌شود.

سه نوع تست مهم وجود دارد:

  • Unit Test: بررسی بخش‌های کوچک از کد به‌صورت جداگانه.
  • Integration Test: بررسی ارتباط بین بخش‌ها.
  • End-to-End Test: شبیه‌سازی رفتار واقعی کاربر در کل سیستم.

اگر SOLID را رعایت کنید، تست‌هایتان بسیار آسان‌تر خواهند بود.


۶. برآورد اشتباه زمان

یکی از اشتباه‌های رایج این است که فکر می‌کنیم کاری را سریع‌تر از واقعیت تمام می‌کنیم.
اما همیشه مشکلاتی در مسیر پیش می‌آید که قابل پیش‌بینی نیست.

قاعده‌ی ساده:

هر زمان تخمینی را دو یا حتی سه برابر کنید.

بهتر است زودتر از موعد تحویل دهید تا اینکه از زمان عقب بیفتید.


۷. عجله در انجام کار

گاهی از شدت هیجان، پروژه را سریع پیش می‌بریم و به جزئیات توجه نمی‌کنیم.
اما این عجله معمولاً بعدها دردسر درست می‌کند و به «بدهی فنی» منجر می‌شود — یعنی باید وقت زیادی صرف تعمیر و بازنویسی کنید.

برای پروژه‌های بلندمدت، از همان ابتدا با فکر و دقت جلو بروید. تصمیم‌های درست در شروع کار، شما را از صدها مشکل در آینده نجات می‌دهد.


🧭 جمع‌بندی

برنامه‌نویسی خوب فقط در مورد «کار کردن» نیست، بلکه درباره‌ی کیفیت، نظم و تفکر بلندمدت است.
با رعایت این هفت نکته ساده، کدتان تمیزتر، قابل‌فهم‌تر و توسعه‌پذیرتر می‌شود — و خودتان هم در مسیر تبدیل شدن به یک برنامه‌نویس حرفه‌ای قرار می‌گیرید.


آشنایی با متغیرها در PHP

آشنایی با متغیرها در PHP

– variables متغیرها خانه هایی از حافظه هستند که ما به آنها اسم میدهیم و برای آنها مقدار تعیین میکنیم

– مقدار متغیر همانطور که از نامش مشخص هست در طول برنامه می تواند تغییر کند

## نحوه ساختن متغیر

– در زبان PHP برای تعریف متغیر از علامت دلار `$` استفاده می کنیم

– همشیه قبل از نام متغیر بدون فاصله باید دلار باشد

“`php

$x = 5;

$y = “Ali”;

“`

**به مثال بالا دقت کنید برای مقدار دهی به متغیر ها از علامت انتساب `=` استفاده شده است**

– برای مقدار دادن متنی باید از کوتیشن `”` در ابتدا و انتهای متن استفاده شود

## نامگذاری متغیرها

– متغیرها میتوانند نام های خیلی کوتاه مثل x , y  داشته باشند یا بهتر این است بنا به استفاده متغیر نام آن توضیح دهنده استفاده آن باشد مثلا برای متغیر سن افراد از نام متغیر `age$` استفاده شود

### قواعد نام گذاری

– نام متغیر می تواند با حروف کوچک یا بزرگ شروع شود

– در نام متغیر تنها کاراکتری که میتواند وجود داشته باشد آندرلاین `_` است مثل `my_class_nember$`

– نام متغیر میتواند با آندرلاین `_` شروع شود ولی ما به طور معمول این کار را نمی کنیم. چون متغیرهایی از قبل تعریف شده در زبان PHP وجود دارند که نمی خواهیم متغیر ما با آنها اشتباه گرفته شود. مثال `GET_$`

– نام متغیر میتواند دارای عدد باشد ولی نباید با عدد شروع شود به مثال زیر دقت کنید

“`php

$name1 = “ali” ;

$name2 = “hasan” ;

echo $name1 . ” ” . $name2 ;

$adad1 = 12 ;

$adad2 = 46 ;

echo $adad1 . ” ” . $adad2 ;

$25name = “tom” ; // این نام متغیر اشتباه است چرا؟

“`

**<mark>نکته: نام همه متغیرها به حروف کوچک و بزرگ حساس است!</mark>**

– به مثال زیر نگاه کنید؛ فقط عبارت اول مقدار متغیر `color$` را نمایش می‌دهد! دلیل این امر این است که `color$` و `COLOR$` و `coLOR$` به عنوان سه متغیر متفاوت در نظر گرفته می‌شوند

“`php

$color = “red”;

echo “My car is ” . $color . “<br>”;

echo “My house is ” . $COLOR . “<br>”;

echo “My boat is ” . $coLOR . “<br>”;

“`

## خروچی گرفتن از متغیرها

– با استفاده از دستور `echo` میتوان مقدار متغیر را در خروجی نمایش داد

– در کنار عبارت های متنی می توان مقدار متغیر را نمایش داد به شرطی که از دابل کوتیشن استفاده شود

“`php

$class_number = 304 ;

// این خط برای نمایش مقدار متغیر همراه با متن است

echo “من در کلاس شماره $class_number درس میخوانم” ;

echo “<br><br>”;  // فقط برای ایجاد خط جدید

// خط زیر در خروجی درست نمایش داده نمی شود

// چون از سینگل کوتیشن استفاده شده

echo ‘من در کلاس شماره $class_number درس میخوانم’ ;

“`

– میتوان از نقطه `.` هم برای نمایش مقدار چند متغیر در کنار هم در یک دستور `echo` استفاده کرد

“`php

$name = “محمدرضا شجریان” ;

$year_of_death = 1399 ;

echo ” استاد موسیقی ” . $name . ” خواننده بزرگ سبک سنتی در سال  ” . $year_of_death . ” از دنیا رفت ” ;

“`

– با استفاده از دستور `echo` می توان حاصل محاسبات مقدار متغیر ها را در خروجی نمایش داد

“`php

$x = 5;

$y = 4;

echo $x + $y;

“`

## خاصیت Loosely Typed Language

– در مثال های بالا دقت کنید که ما نوع مقدار متغیر را مشخص نکردیم. زبان PHP خودش با هوشمندی نوع آن را تشخصی میدهد، اما در بسیاری از زبان ها لازم هست حتما نوع مقدار مشخص شود

– این امکان وجود دارد که در طول برنامه نوع یک متغیر هم تغییر کند

“`php

$x = 5;      // $x is an integer

$y = “John”; // $y is a string

echo $x;

echo $y;

“`

– مقدار دهی چندتایی همزمان: شما میتوانید در تعریف چند متغیر همزمان همه آنها را یک مقدار بدهد

“`php

$x = $y = $z = “Fruit”;

“`

**درباره دامنه متغیرها Variables Scope مطالبی هست بخاطر راحتی کار برای دانش آموزان اینجا مطرح نمیشود در درس های آینده توابع ارائه خواهد شد**

دستور زبان PHP

دستور زبان PHP

https://github.com/secad135/php1404/blob/main/01_basics/01_syntax.rtl.md
#جزوه دستور زبان PHP

– یک اسکریپت PHP روی سرور اجرا می‌شود و نتیجه HTML ساده به مرورگر ارسال می‌شود
– یک اسکریپت PHP می‌تواند در هر جایی از سند قرار گیرد.
– یک اسکریپت PHP با php?> شروع می‌شود و با <? پایان می‌یابد

PHP

<?php
// کدهای PHP
?>

– اگر در یک اسکریپت هیچ کد دیگری (html, css, javascript) نباشد میتوان تگ پایانی <? را نگذاشت
– پسوند پیش فرض فایل های این زبان php. است
– یک فایل پی اچ پی معمولا شامل تگ های HTML و مقداری کد اسکریپت PHP است
– در زیر، مثالی از یک فایل PHP ساده داریم که دارای یک اسکریپت PHP است که از تابع داخلی echo برای نمایش متن "Hello World!" در یک صفحه وب استفاده می‌کند

PHP

<!DOCTYPE html>
<html>
<body>

<h1>My first PHP page</h1>

<?php
echo "Hello World!";
?>

</body>
</html>

نکته: دستورات PHP با علامت سمی کالن ; به پایان می رسند
– نکته
نکته: کدهای html در فایل PHP نوشته شده

## حساسیت به کوچک یا بزرگ بودن حروف در PHP

– کلمات کلیدی دستورات مثل echo میتوانند با حروف کوچک یا بزرگ نوشته شوند و همچنین کلاس ها و توابع و توابع تعریف شده توسط کاربر به کوچک یا بزرگ بودن حروف حساس نیستند
– اما برای خوانایی کدها بهتر است با حروف کوچک تایپ کنیم
– در مثال زیر هر سه دستور echo برابر و مجاز هستند

PHP

<!DOCTYPE html>
<html>
<body>

<?php
ECHO "Hello World!<br>";
echo "Hello World!<br>";
EcHo "Hello World!<br>";
?>

</body>
</html>

## توضیحات

– یک توضیح در کدها در برنامه خروجی اجرا نمی شود. هدف آن خوانده شدن توسط کسی است که کدها را می بیند
– اهداف نوشتن توضیحات
  – دیگران کدهای شما را درک کنند
  – برنامه نویس برای خودش در آینده یادآوری قرار دهد چکار کرده است
  – بخشی از کد را برای آزمایش یا نیاز دیگری در خروجی بی اثر کنیم

– به دو روش می توان توضیحات نوشت

### توضیحات یک خطی

– توضیحات یک خطی در ابتدای خط از دو علامت اسلش // استفاده می کنیم

PHP

<?php
// یک توضیح یک خطی
// echo "Hello world" ;
// دستور بالا در خروجی اجرا نمی شود چرا؟
?>

### توضیحات چند خطی

– توضیحات چند خطی با */ شروع و با /* تمام می شوند
– هر متنی بین این دو علامت نادیده گرفته می شوند

PHP

/*
The next statement will
print a welcome message
*/
echo "Welcome Home!";

– به این شکل می توان یک قطعه کد را در وسط یک خط دستور تبدیل به توضیحات کرد

PHP

$x = 5 /* + 15 */ + 5;
echo $x;

جزوه پودمان اول اخلاق حرفه ای: امانت‌داری در محیط کار

جزوه پودمان اول اخلاق حرفه ای: امانت‌داری در محیط کار

🔹 ۱. مقدمه

در هر شغل و حرفه‌ای، امانت‌داری یکی از مهم‌ترین اصول اخلاقی است.
کسی که در کار خود امانت‌دار باشد، هم اعتماد دیگران را جلب می‌کند و هم اعتبار و موفقیت شغلی به‌دست می‌آورد.
در محیط کار، امانت فقط به معنی نگهداری پول یا وسایل دیگران نیست، بلکه شامل رفتار، گفتار، اطلاعات، زمان کار و تولید هم می‌شود.


🔹 ۲. مفهوم امانت‌داری

امانت‌داری یعنی حفظ و نگهداری درست چیزی که به انسان سپرده شده است؛
خواه مال باشد، خواه راز، وقت، وظیفه یا مسئولیت.

نمونه‌ها:

  • درست انجام دادن کار و وظیفه محوله.
  • نگهداری از ابزار و وسایل محل کار.
  • حفظ اسرار کاری و اطلاعات مشتریان.
  • رعایت انصاف در تولید و فروش کالا.
  • درست استفاده کردن از زمان کاری.

🔹 ۳. امانت‌داری در محیط کار

در محیط کار، هر کارگر یا کارمند امانت‌دار کارفرما و مشتری است.
اگر در وظیفه خود کوتاهی کند، در واقع به امانت خیانت کرده است.

مصادیق:

  • استفاده درست از تجهیزات و ابزار.
  • عدم اتلاف وقت کاری برای امور شخصی.
  • دقت و صداقت در انجام وظایف.
  • گزارش درست و شفاف از کار انجام‌شده.

مثال:

فردی که در یک کارگاه نجاری کار می‌کند، اگر چوب‌ها را درست اندازه نگیرد و در مصرف آنها اسراف کند، به امانت‌داری آسیب زده است.


🔹 ۴. امانت‌داری در روابط با همکاران

رفتار اخلاقی در محیط کار، پایه روابط سالم است.

اصول مهم:

  1. صداقت و راستگویی در گفتار و رفتار.
  2. احترام به همکاران و پرهیز از غیبت و بدگویی.
  3. پوشاندن اشتباهات همکاران در حد معقول، نه افشای آنها برای تخریب.
  4. همکاری و همدلی برای پیشرفت گروهی.

مثال:

اگر همکار ما در انجام کاری دچار اشتباه شد، به‌جای سرزنش، باید با راهنمایی محترمانه او را یاری کنیم.


🔹 ۵. امانت‌داری در روابط با مشتریان

مشتری سرمایه اصلی هر شغل است. امانت‌داری نسبت به مشتری یعنی رفتار صادقانه و منصفانه با او.

مصادیق:

  • ارائه کالای سالم و با کیفیت واقعی.
  • صداقت در قیمت‌گذاری و اطلاعات محصول.
  • حفظ اطلاعات و اسرار مشتریان.
  • وفای به وعده‌ها (تحویل به‌موقع، خدمات پس از فروش و…).

مثال:

اگر فروشنده‌ای به مشتری کالای دست‌دوم را به‌جای نو بفروشد، اعتماد از بین می‌رود و کسب‌وکار او دوام نمی‌یابد.


🔹 ۶. امانت‌داری در تولید

در بخش تولید، امانت‌داری یعنی تولید کالای باکیفیت و منصفانه با رعایت وجدان کاری.

مصادیق:

  • استفاده از مواد اولیه‌ی مناسب و سالم.
  • پرهیز از تقلب در وزن، کیفیت و بسته‌بندی.
  • رعایت استانداردهای ایمنی و فنی.
  • جلوگیری از تولیدات مضر برای جامعه و محیط زیست.

مثال:

کارخانه‌ای که برای سود بیشتر از مواد بی‌کیفیت استفاده می‌کند، به مردم و اعتماد عمومی خیانت می‌کند.


🔹 ۷. آثار امانت‌داری

✅ افزایش اعتماد و اعتبار شخصی
✅ پیشرفت شغلی و رضایت کارفرما
✅ آرامش وجدان و رضایت درونی
✅ رشد اقتصادی سالم
✅ رضایت خداوند و مردم


🔹 ۸. پیام‌های اخلاقی (از قرآن و احادیث)

  • قرآن کریم: «إِنَّ اللّهَ يَأْمُرُكُمْ أَنْ تُؤَدُّوا الْأَمَانَاتِ إِلَى أَهْلِهَا»
    (خداوند فرمان می‌دهد که امانت‌ها را به صاحبانش بازگردانید.)
  • پیامبر اکرم (ص): «کسی که امانت‌دار نباشد، ایمان ندارد.»

🔹 ۹. فعالیت کلاسی (پیشنهادی برای دبیر)

  1. گفت‌وگو: در گروه‌های ۳ نفره درباره مصادیق امانت‌داری در رشته خودتان بحث کنید.
  2. تمرین نوشتاری: نمونه‌ای از امانت‌داری یا خیانت در امانت در محیط کار بنویسید.
  3. ایفای نقش: نمایش کوتاهی از یک موقعیت کاری که در آن امانت‌داری رعایت می‌شود یا نمی‌شود.

🔹 ۱۰. جمع‌بندی

امانت‌داری پایه‌ی اخلاق حرفه‌ای است.
کسی که امانت‌دار باشد، در هر شغلی موفق و مورد اعتماد دیگران خواهد بود.
یادمان باشد که «وجدان کاری» و «امانت‌داری» دو بال پرواز در مسیر پیشرفت شغلی هستند.

کنجکاوی: گیت‌هاب GitHub و ریپازیتوری Repository چیست؟

گیت‌هاب (GitHub) چیست؟

گیت‌هاب یک پلتفرم آنلاین است که به برنامه‌نویس‌ها و تیم‌های توسعه کمک می‌کند تا کدهای خود را ذخیره، مدیریت و با دیگران به اشتراک بگذارند. این سرویس بر پایه‌ی Git (یک سیستم کنترل نسخه) ساخته شده و امکان همکاری همزمان چند نفر روی یک پروژه، پیگیری تغییرات، و مدیریت نسخه‌های مختلف کد را فراهم می‌کند.


ریپازیتوری (Repository) چیست؟

ریپازیتوری یا به اختصار “ریپو” یک فضای ذخیره‌سازی برای کدها، فایل‌ها و مستندات یک پروژه است.
هر ریپازیتوری معمولاً شامل موارد زیر است:

  • کدهای پروژه
  • تاریخچه تغییرات (Commit ها)
  • شاخه‌ها (Branches) برای توسعه موازی
  • مستندات و فایل‌های راهنما (مانند README.md)

به زبان ساده:

  • GitHub مثل یک شبکه اجتماعی برای برنامه‌نویس‌هاست.
  • Repository مثل یک پوشه‌ی پروژه است که همه کدها و تغییرات در آن نگهداری می‌شوند.

منبع: ریپازیتوری کدهای درس داده شده

این ریپازیتوری شامل کدهای آموزشی درس PHP و MySQL است که در طول کلاس ارائه شده‌اند.
تمام نمونه‌کدهایی که مدرس در جلسات مختلف نوشته، در اینجا قرار داده شده‌اند تا دانشجویان بتوانند آن‌ها را مرور و استفاده کنند.

همچنین کدهایی که دانشجویان در طول کلاس نوشته‌اند، در پوشه‌ای با نام class/ در همین ریپازیتوری ذخیره شده است.
بنابراین علاوه بر دسترسی به نمونه‌های مدرس، می‌توانید نمونه‌کارهای خود و همکلاسی‌هایتان را نیز مشاهده کنید.

منبع: دانلود کتاب PDF آموزش و پرورش PHP , MySQL

کتاب مرجع برای تدریس برنامه نویسی php, MySQL

سر فصل های این کتاب برای تدریس بنده مورد استفاده قرار می گیرد و یکی از منابع آموزشی بنده است.

کنجکاوی: تفاوت های زبان های اسکریپت و برنامه نویسی

کنجکاوی: تفاوت های زبان های اسکریپت و برنامه نویسی

۱. تعریف کلی
🟢 زبان برنامه‌نویسی (Programming Language):
به هر زبانی گفته می‌شود که بتوان با آن منطق، الگوریتم و برنامه‌های کاربردی نوشت. مثال: C، Java، Python.
🟢زبان اسکریپتی (Scripting Language):
نوعی زبان برنامه‌نویسی است که معمولاً روی یک نرم‌افزار یا محیط دیگر اجرا می‌شود و بیشتر برای خودکارسازی کارها و اجرای دستورات نوشته می‌شود. مثال: PHP، JavaScript، Python (وقتی به شکل اسکریپت استفاده شود).

۲. نحوه اجرا
🟢زبان‌های برنامه‌نویسی کلاسیک (مثل C یا Java) معمولاً Compile می‌شوند (کد به زبان ماشین تبدیل و سپس اجرا می‌شود).

🟢زبان‌های اسکریپتی (مثل PHP یا JavaScript) معمولاً Interpret می‌شوند (کد خط‌به‌خط توسط مفسر اجرا می‌شود).

۳. سطح کاری
🟢زبان‌های برنامه‌نویسی می‌توانند نرم‌افزارهای سیستمی یا مستقل بسازند (مثلاً یک سیستم عامل کوچک یا برنامه دسکتاپ).

🟢زبان‌های اسکریپتی بیشتر روی نرم‌افزار موجود اجرا می‌شوند (مثلاً PHP روی وب‌سرور Apache یا Nginx اجرا می‌شود، JavaScript داخل مرورگر).

۴. مثال ساده
🟢اگر بخواهی یک نرم‌افزار حسابداری دسکتاپی بسازی: احتمالاً از C# یا Java استفاده می‌کنی.

🟢اگر بخواهی یک فرم آنلاین حسابداری روی وب درست کنی: از PHP یا JavaScript کمک می‌گیری.

۵. درباره PHP
🟢پی اچ پیPHP یک زبان اسکریپتی است چون:
خودش به‌صورت مستقل اجرا نمی‌شود، بلکه نیاز به وب‌سرور (مثل Apache یا Nginx) و مفسر PHP دارد.
کدهایش برای ایجاد صفحات پویا (Dynamic Pages) روی وب‌سرور تفسیر و سپس نتیجه (معمولاً HTML) به مرورگر ارسال می‌شود.

:key: پس نتیجه:
تمام زبان‌های اسکریپتی، در اصل نوعی زبان برنامه‌نویسی هستند.
اما به آن‌ها “اسکریپتی” می‌گوییم چون معمولاً برای کارهای سبک‌تر، خودکارسازی و اجرای روی یک محیط خاص (وب‌سرور یا مرورگر) استفاده می‌شوند.

مقدمه: آشنایی با مطالب مقدماتی وب

مقدمه: آشنایی با مطالب مقدماتی وب

* وب‌سرور (Web Server) چیست؟
وب‌سرور یک نرم‌افزار (مثل Apache یا Nginx) است که روی سرور نصب می‌شود و وظیفه دارد درخواست‌های مرورگر کاربران را دریافت کرده و پاسخ مناسب (صفحه وب) برگرداند. در واقع پلی است بین کاربر و فایل‌های وب‌سایت.

* چرا ما به شبیه‌ساز سرور مثل زمپ XAMPP نیاز داریم؟
چون برای اجرای زبان‌هایی مثل PHP لازم است فایل‌ها روی سرور پردازش شوند. وقتی اینترنت یا سرور واقعی نداریم، می‌توانیم با نرم‌افزاری مثل XAMPP یک سرور محلی (localhost) روی کامپیوتر خودمان بسازیم و فایل‌های PHP را اجرا کنیم.

* نرم‌افزار زمپ XAMPP چه بخش‌هایی دارد؟
آپاچیApache: وب‌سرور برای اجرای صفحات.
مای اس کیوال MySQL (یا MariaDB): دیتابیس برای ذخیره اطلاعات.
پی اچ پیPHP: زبان برنامه‌نویسی سمت سرور.
پی اچ پی مای ادمینphpMyAdmin: محیط گرافیکی برای مدیریت پایگاه داده‌ها.

* محیط کدنویسی VS Code چیست؟
وی اس کدVisual Studio Code (VS Code) یک ویرایشگر کد رایگان و قدرتمند است که از زبان‌های مختلف پشتیبانی می‌کند. امکاناتی مثل رنگ‌بندی کدها، تکمیل خودکار، خطایابی و نصب افزونه‌ها دارد و برای یادگیری PHP و توسعه وب بسیار مناسب است.

* پی اچ پیPHP چیست و چرا به آن نیاز داریم؟
یک زبان برنامه‌نویسی سمت سرور است. وقتی کاربر فرم را پر می‌کند یا نیاز به ثبت اطلاعات دارد، PHP داده‌ها را پردازش می‌کند و با پایگاه داده ارتباط برقرار می‌کند. بیشتر سیستم‌های مدیریت محتوا (مثل وردپرس) با PHP ساخته شده‌اند.

* تفاوت PHP با HTML و JavaScript چیست؟
اچ تی ام الHTML: فقط ساختار و محتوای صفحه را مشخص می‌کند.
سی اس اس CSS: ظاهر و زیبایی صفحه را طراحی می‌کند.
جاوا اسکریپت JavaScript: تعامل و پویایی سمت کاربر (مرورگر) را مدیریت می‌کند.
پی اچ پی PHP: پردازش داده‌ها و ارتباط با پایگاه داده در سمت سرور را انجام می‌دهد.

* مای اس کیو الMySQL چیست و چه نقشی در کنار PHP دارد؟
یک سیستم مدیریت پایگاه داده است. PHP داده‌ها را دریافت می‌کند و برای ذخیره‌سازی یا خواندن آن‌ها از MySQL استفاده می‌کند. مثلاً وقتی کاربر در یک سایت ثبت‌نام می‌کند، اطلاعاتش در MySQL ذخیره می‌شود.

* چرا PHP یکی از زبان‌های محبوب برنامه‌نویسی وب است؟
چون یادگیری‌اش ساده است، روی اکثر سرورها پشتیبانی می‌شود، رایگان و متن‌باز (Open Source) است و جامعه کاربری بزرگی دارد که منابع آموزشی و افزونه‌های زیادی تولید می‌کنند.

* پی اچ پیPHP چه قابلیت‌های مهمی دارد؟
امکان اتصال و کار با پایگاه داده‌ها (مثل MySQL).
پشتیبانی از کار با فرم‌ها (گرفتن اطلاعات از کاربر).
امکان تولید صفحات پویا (Dynamic Pages) بر اساس نیاز کاربر.
پشتیبانی از کتابخانه‌ها و فریم‌ورک‌های متنوع (مثل Laravel).

* آیا در فایل‌های PHP می‌توان کد HTML هم نوشت؟
بله فایل‌های PHP معمولاً با پسوند .php ذخیره می‌شوند و می‌توانند شامل هر دو نوع کد باشند:
کد HTML: برای نمایش ساختار و محتوای صفحه.
کد PHP: برای پردازش داده‌ها و ایجاد تغییرات پویا در همان صفحه.
مرورگر فقط خروجی نهایی (HTML تولیدشده توسط PHP) را می‌بیند، نه خود کدهای PHP.