Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 2

الخوارزميات في حياتنا اليومية

Recommended resources

أهلاً بك مجدداً في رحلتنا لإعداد منهج تعليمي للبرمجة.

في الدرس السابق، استعرضنا الركائز الأربع للتفكير الحاسوبي، وكانت الركيزة الأخيرة هي تصميم الخوارزميات. لقد عرفناها بأنها "وضع مجموعة من التعليمات الواضحة، خطوة بخطوة، لحل المشكلة".

في هذا الدرس، سنغوص أعمق في هذا المفهوم المحوري. هدفنا هو تحقيق المخرج التعليمي: "شرح مفهوم الخوارزمية باستخدام أمثلة من الحياة اليومية". بما أنك تهدف لتعليم المبتدئين، فإن القدرة على تبسيط هذا المفهوم باستخدام أمثلة ملموسة ومرحة أحياناً هي مهارة أساسية. سنركز على الأساليب والاستعارات التي يمكنك استخدامها لجعل هذا المفهوم بديهياً لطلابك.

1. ما هي الخوارزمية؟ التعريف والتشبيه

عندما تقدم مفهوم الخوارزمية لأول مرة، من المفيد البدء بتعريف بسيط وتشبيه قوي.

التعريف البسيط: الخوارزمية هي مجموعة من التعليمات المرتبة والدقيقة التي تهدف إلى حل مشكلة معينة أو إنجاز مهمة محددة.

التشبيه الأكثر شيوعاً وفعالية هو وصفة الطبخ. تحتوي الوصفة على:

  • مدخلات (Inputs): المقادير (طحين، سكر، بيض...).
  • عملية معالجة (Process): خطوات التحضير بالترتيب (اخلط، اخبز، برّد...).
  • مخرجات (Output): الطبق النهائي (الكعكة).

إذا تم اتباع الخطوات بدقة وبالترتيب الصحيح، نحصل على النتيجة المرجوة. وإذا تم تغيير الترتيب (مثل الخبز قبل الخلط)، تفشل الوصفة. هذا التشبيه يوضح أهمية الدقة والترتيب في الخوارزميات.

للحصول على شرح أكثر تفصيلاً لهذه الأركان الثلاثة (المدخلات، المعالجة، المخرجات)، يمكنك الاطلاع على المقال التالي من أكاديمية حسوب.

المرجع الشامل إلى تعلم الخوارزميات للمبتدئين

يقدم هذا المقال تعريفاً واضحاً للخوارزمية ويشرح أركانها الأساسية باستخدام مثال وصفي الطبخ ومثال رياضي بسيط.

اقرأ قسمي 'ما هي الخوارزمية؟' و'أركان الخوارزمية'. ركز على كيفية استخدام تشبيه وصفة الطبخ، وكيفية تطبيق مفهوم المدخلات والمعالجة والمخرجات على مثال ضرب عددين.


2. لماذا نحتاج إلى خوارزميات؟ قصة لتوضيح الفكرة

بعد تعريف المفهوم، يأتي السؤال المنطقي من المبتدئين: "لماذا يجب أن أكون بهذه الدقة؟". أفضل طريقة للإجابة على هذا السؤال هي إظهار أن الكمبيوتر، على الرغم من قوته، لا يملك القدرة على الفهم أو الاستنتاج مثل البشر. إنه مجرد آلة مطيعة تنفذ التعليمات حرفياً.

الفيديو التالي يقدم قصة فكاهية وممتازة يمكنك استخدامها أو استلهامها لشرح هذه الفكرة.

شرح الخوارزميات بقصة مضحكة من العصر الحجري | cs50

شاهد هذا الفيديو الذي يستخدم قصة من العصر الحجري لتوضيح لماذا يحتاج 'الكمبيوتر الغبي' إلى تعليمات تفصيلية وواضحة جداً (خوارزمية) لتنفيذ مهمة ما.

شاهد من بداية الفيديو حتى الدقيقة 4:49. لاحظ كيف فشلت المحاولة الأولى لإعطاء التعليمات بسبب غموضها، وكيف نجحت المحاولة الثانية عندما تم تحويلها إلى خطوات دقيقة ومتسلسلة (شبه كود أو Pseudocode).

النقاط الرئيسية التي يمكنك استخلاصها لطلابك من هذه القصة:

  • الكمبيوتر لا يفهم النوايا، بل يتبع الأوامر فقط.
  • الغموض في التعليمات يؤدي إلى أخطاء غير متوقعة.
  • نحتاج إلى تقسيم المهمة إلى خطوات بسيطة لا تقبل التأويل.
  • نستخدم أدوات مثل الشروط (if) والتكرار (repeat/loop) للتحكم في تدفق هذه الخطوات.

3. أمثلة من الحياة اليومية: من البسيط إلى المفصّل

الآن، لننتقل إلى أمثلة عملية يمكن للطلاب تحليلها بأنفسهم. الهدف هو تدريبهم على رؤية "الخوارزميات" في كل مكان حولهم.

المثال الأول: تنظيف الأسنان

قد تبدو مهمة "تنظيف الأسنان" بسيطة، لكنها مثال رائع لإظهار عملية بناء خوارزمية بشكل تدريجي والتعامل مع التفاصيل التي قد نغفلها.

Algorithm Examples in Everyday Life

هذا المقال يقدم حواراً طريفاً ولكنه تعليمي جداً حول كيفية كتابة خوارزمية لتنظيف الأسنان. إنه يوضح أهمية التفكير في كل خطوة صغيرة وكل حالة محتملة.

اقرأ الحوار في بداية المقال تحت عنوان 'How to brush your teeth?'. لاحظ كيف تتطور الخوارزمية من 6 خطوات بسيطة إلى 14 خطوة أكثر تفصيلاً لمعالجة المشاكل التي ظهرت (مثل جفاف الفم أو عدم وجود ماء).

هذا المثال يخدم هدفاً تعليمياً مهماً: التحسين التكراري (Iterative Refinement). نادراً ما تكون الخوارزمية الأولى مثالية. من خلال الاختبار وتوقع الأخطاء، نقوم بتنقيحها وتحسينها.

المثال الثاني: تحضير الشاي أو القهوة

هذا مثال كلاسيكي آخر. يمكنك تقديمه لطلابك كنشاط تفاعلي. المقال التالي من أكاديمية حسوب، الذي قرأت جزءاً منه سابقاً، يقدم هذا المثال مع تمثيل مرئي باستخدام المخطط الانسيابي (Flowchart).

المرجع الشامل إلى تعلم الخوارزميات للمبتدئين

يقدم هذا الجزء من المقال مثال خوارزمية تحضير مشروب ساخن، ويمثلها بطريقتين: الشفرة الزائفة والمخطط الانسيابي.

اقرأ قسم 'مثال على استخدام الخوارزمية في حياتنا اليومية'.

يمكنك عرض المخطط الانسيابي التالي لطلابك كطريقة بصرية لتمثيل الخوارزمية.

Flowchart for Making Tea or Coffee
مخطط انسيابي يوضح خطوات تحضير الشاي أو القهوة. لاحظ استخدام شكل المعين (Diamond) لتمثيل نقاط اتخاذ القرار (الشروط)، والأسهم لتوضيح تسلسل الخطوات.

4. كيف نمثل الخوارزمية؟

لقد رأينا بالفعل طريقتين لتمثيل الخوارزميات في الأمثلة السابقة:

  1. اللغة الطبيعية: قائمة مرقمة من الخطوات، كما في مثال تنظيف الأسنان.
  2. المخططات الانسيابية (Flowcharts): تمثيل رسومي للخطوات والقرارات.
  3. الشفرة الزائفة (Pseudocode): وهي طريقة وسط بين اللغة الطبيعية ولغة البرمجة الفعلية.

لشرح مفهوم الشفرة الزائفة بشكل أعمق، الفيديو التالي من TED-Ed يقدم مثالاً ممتازاً ومنظماً.

What's an algorithm? - David J. Malan

يشرح هذا الفيديو القصير ماهية الخوارزمية باستخدام مثال 'عد الأشخاص في غرفة'، ويقدم الشفرة الزائفة (Pseudocode) كطريقة للتعبير عنها بشكل شبه رسمي.

شاهد الفيديو من البداية حتى الدقيقة 4:20. ركز على كيفية: تحويل فكرة بسيطة (العد) إلى خطوات واضحة. استخدام متغير (n) لتخزين قيمة. استخدام حلقة تكرار (For each person). اختبار الخوارزمية للتأكد من صحتها (bug). تحسين الخوارزمية وإضافة شرط (If).

هذا الفيديو، رغم أنه باللغة الإنجليزية، إلا أن مفاهيمه البصرية وكونك مطوراً ستجد أنه يربط بشكل ممتاز بين الفكرة المجردة للخوارزمية والمفاهيم البرمجية الأولية مثل المتغيرات، الحلقات، والشروط، وهو ما ستقوم بتدريسه لاحقاً.

اختبر قدرتك على التدريس!

تخيل أن أحد طلابك يريد كتابة خوارزمية لإرسال رسالة نصية قصيرة (SMS) إلى صديق. كيف ستوجهه لكتابة الخطوات باستخدام لغة طبيعية، مع الأخذ في الاعتبار بعض الحالات الخاصة (Bugs/Edge Cases)؟

اقتراح للحل

يمكنك البدء بسؤاله: "ما هي أول خطوة؟" ثم تتابع معه خطوة بخطوة.

الخوارزمية الأولية (بدون معالجة أخطاء):

  1. افتح تطبيق الرسائل.
  2. ابحث عن اسم الصديق.
  3. اكتب الرسالة.
  4. اضغط على زر "إرسال".

مناقشة الحالات الخاصة (توجيه الطالب للتفكير فيها):

  • "ماذا لو لم تجد اسم الصديق في جهات الاتصال؟" -> يجب إضافته أولاً.
  • "ماذا لو كتبت الرسالة ثم غيرت رأيك؟" -> يمكنك حذفها.
  • "ماذا يحدث بعد الضغط على إرسال؟" -> يجب التحقق من وجود شبكة.
  • "ماذا لو لم تكن هناك شبكة؟" -> ستفشل الرسالة، وقد تحتاج لإعادة الإرسال لاحقاً.

الخوارزمية المحسّنة:

  1. ابدأ.
  2. افتح تطبيق الرسائل.
  3. ابحث عن اسم الصديق.
  4. إذا كان الاسم موجوداً، انتقل للخطوة 6.
  5. إلا (إذا لم يكن موجوداً)، أضف جهة اتصال جديدة بالاسم والرقم، ثم انتقل للخطوة 3.
  6. اكتب نص الرسالة.
  7. اضغط على زر "إرسال".
  8. إذا كانت هناك تغطية شبكة، ستُرسل الرسالة.
  9. إلا (إذا لم تكن هناك تغطية)، ستظهر رسالة خطأ "فشل الإرسال".
  10. انتهِ.

هذا التمرين يعلّم الطلاب ليس فقط كتابة الخطوات، بل أيضاً التفكير المسبق في المشاكل المحتملة، وهي مهارة أساسية في البرمجة.


خلاصة وخطواتك القادمة

لقد رأينا اليوم كيف يمكن شرح مفهوم الخوارزمية للمبتدئين. مهمتك كمعلم هي نقل هذا المفهوم من عالم الحاسوب المجرد إلى واقع الطلاب اليومي.

ملخص الأفكار التعليمية الرئيسية:

  • استخدم تشبيه وصفة الطبخ لتوضيح فكرة المدخلات، المعالجة، والمخرجات.
  • استخدم القصص والأمثلة الفكاهية (مثل مبرمج العصر الحجري) لشرح سبب حاجة الكمبيوتر للدقة المتناهية.
  • اجعل الطلاب يكتشفون الخوارزميات في مهامهم اليومية (تنظيف الأسنان، عبور الشارع، إجراء مكالمة).
  • عرّفهم على طرق تمثيل الخوارزميات مثل اللغة الطبيعية، الشفرة الزائفة، والمخططات الانسيابية كأدوات للتفكير والتخطيط.
  • شجعهم على التفكير في "ماذا لو؟" لتدريبهم على معالجة الأخطاء والحالات الخاصة.

ماذا بعد؟
الآن بعد أن فهمنا كيفية شرح الخوارزمية، سننتقل في الدرس القادم إلى الممارسة الفعلية. سنتعلم كيفية "تصميم تمارين لتحليل المشكلات وتقسيمها إلى خطوات منطقية متسلسلة". سنركز على مهارة التفكيك (Decomposition) التي تعلمناها في الدرس الأول ونطبقها لبناء خوارزميات بسيطة من الصفر.