الدرس الأول: الأسلوب العلمي لحل المشكلات ومفهوم الخوارزمية والتفكير الحوسبي المنطقي
يُمثّل حل المشكلات (Problem Solving) جوهر علوم الحاسب والتفكير الحوسبي في العصر الرقمي الحديث. تُعرّف المشكلة في علوم الحاسب بأنها هدف أو ناتج محدد مطلوب الوصول إليه من خلال اتباع سلسلة من الخطوات والعمليات المنطقية والحسابية المنظمة استناداً إلى معطيات ومدخلات محددة. يمر الأسلوب المنهجي العلمي لحل المشكلات بخمس مراحل معيارية متتابعة: أولاً، تحديد المشكلة بدقة عبر حصر المخرجات المطلوبة والمدخلات المتوفرة وعمليات المعالجة. ثانياً، إعداد خطوات الحل الخوارزمية (Algorithm) وتمثيلها بيانياً بخرائط التدفق. ثالثاً، تصميم البرنامج وكتابة كوده بإحدى لغات البرمجة الراقية. رابعاً، اختبار صحة البرنامج وتصحيح الأخطاء عبر بيانات اختبار معلومة النتائج مسبقاً. خامساً وأخيراً، توثيق البرنامج لضمان سهولة صيانته وتطويره مستقبلاً وفق المعايير الوزارية والوطنية المعتمدة.
1. المراحل الخمس لحل المشكلات برمجياً
- 1. تحديد المشكلة (Problem Definition): حصر المخرجات المطلوبة (Outputs)، والمدخلات المتوفرة (Inputs)، وعمليات المعالجة الحسابية والمنطقية (Processing).
- 2. إعداد خطوات الحل الخوارزمية (Algorithm): ترتيب الخطوات المنطقية الواجب اتباعها لحل المشكلة، وتمثيلها بخرائط التدفق (Flowcharts).
- 3. تصميم البرنامج على الكمبيوتر (Coding): ترجمة خريطة التدفق إلى أوامر برمجية بلغة برمجة معتمدة.
- 4. اختبار صحة البرنامج وتصحيح الأخطاء (Testing & Debugging): إدخال بيانات معلومة النتائج مسبقاً لمقارنة مخرجات البرنامج الفعلية بالنتائج المتوقعة.
- 5. توثيق البرنامج (Documentation): تدوين كل خطوات الحل، المدخلات، المخرجات، تاريخ التعديل، والمشاركين لحفظ الحقوق وتسهيل الصيانة.
2. مفهوم الخوارزمية (Algorithm) وخصائصها
سُميت الخوارزمية نسبة إلى عالم الرياضيات المسلم محمد بن موسى الخوارزمي مؤسس علم الجبر، وهي:
- الوضوح التام (Definiteness): كل خطوة يجب أن تكون قاطعة ومحددة لا تحتمل التأويل.
- المحدودية (Finiteness): يجب أن تنتهي الخوارزمية بعد عدد محدد ومنتهٍ من الخطوات.
- الفعالية (Effectiveness): أن تكون كل عملية ممكنة التنفيذ عملياً على الحاسوب.
3. التفكير المنطقي والنمذجة الرياضية
التجريد (Abstraction)
التركيز على الخصائص الجوهرية للبيانات وتجاهل التفاصيل الهامشية غير المؤثرة في منطق الحل.
التفكيك (Decomposition)
تقسيم المشكلة الكبيرة المعقدة إلى مشكلات فرعية أصغر وأبسط يسهل حل كل منها مستقلاً.
التعرف على الأنماط (Pattern Recognition)
اكتشاف التشابه والتكرار بين المشكلة الحالية ومشكلات سابقة تمت برمجتها بنجاح.
تمرين 1: تحديد مشكلة حساب متوسط درجات
المسألة: حدد عناصر المشكلة لبرنامج يقوم بحساب متوسط 3 مواد دراسية لطالب.
• المخرجات: متوسط الدرجات (Average).
• المدخلات: درجات المواد الثلاث (A, B, C).
• المعالجة:
Average = (A + B + C) / 3.
تمرين 2: كتابة خوارزمية مساحة مستطيل
المسألة: اكتب خطوات الخوارزمية لحساب مساحة ومحيط مستطيل بمعلومية طوله L وعرضه W.
1. البداية.
2. أدخل الطول L والعرض W.
3. احسب المساحة:
Area = L × W.4. احسب المحيط:
Perimeter = 2 × (L + W).5. اطبع Area و Perimeter.
6. النهاية.
تمرين 3: أهمية مرحلة التوثيق
المسألة: وضح فائدتين أساسيتين لمرحلة توثيق البرنامج في المؤسسات البرمجية الكبرى.
1. تيسير عمل فريق البرمجة عند اشتراك أكثر من مبرمج في بناء أو تعديل النظام.
2. سهولة الرجوع للبرنامج لتصحيح أخطائه أو إضافة ميزات جديدة مستقبلاً دون الحاجة لإعادة هندسته من الصفر.
تمرين 4: مرحلة اختبار صحة البرنامج
المسألة: كيف نتحقق من صحة برنامج يحسب مساحة دائرة نصف قطرها R؟
• نختار بيانات اختبار محسوبة يدوياً مسبقاً، مثلاً عند R = 7 يكون الناتج المتوقع
Area = (22/7) × 7² = 154.• ندخل R = 7 للبرنامج، فإن أخرج 154 فالبرنامج سليم، وإن أخرج قيمة أخرى نبحث عن الخطأ البرمجي ونصححه.
تمرين 5: خوارزمية تحويل درجات الحرارة
المسألة: اكتب خوارزمية لتحويل درجة الحرارة من سيلزيوس (C) إلى فهرنهايت (F) بالقانون: F = (9/5)C + 32.
1. البداية.
2. اقرأ درجة الحرارة بالسيلزيوس C.
3. احسب
F = (9/5) × C + 32.4. اطبع درجة الحرارة بالفهرنهايت F.
5. النهاية.
تمرين 6: التمييز بين المدخلات والمخرجات
المسألة: في نظام لحساب صافي الراتب، صنف: الراتب الأساسي، الحوافز، الضرائب، وصافي الراتب.
• المدخلات: الراتب الأساسي، الحوافز، نسبة الضرائب.
• المعالجة: إجمالي الراتب = الأساسي + الحوافز، الخصم = الإجمالي × الضرائب.
• المخرجات: صافي الراتب المستحق.
تمرين 7: خاصية المحدودية في الخوارزمية
المسألة: لماذا تُعد الحلقة اللانهائية (Infinite Loop) خرقاً لشروط الخوارزمية الصحيحة؟
• لأن من الشروط الجوهرية للخوارزمية شرط المحدودية (Finiteness)، والذي يقضي بوجوب توقف الخوارزمية والوصول للنهاية بعد عدد محدد ومنته من الخطوات.
تمرين 8: ترتيب مراحل حل المشكلات
المسألة: هل يجوز للمبرمج البدء فوراً في كتابة كود البرنامج قبل تحديد المشكلة وإعداد الخوارزمية؟ ولماذا؟
• لا يجوز إطلاقاً، لأن القفز المباشر لكتابة الكود دون تخطيط خوارزمي يؤدي للوقوع في أخطاء منطقية وتصميمية جسيمة ويهدر الوقت والموارد في تعديل بنية البرنامج.
اضغط على أي بطاقة لاكتشاف المعنى الدقيق، واضغط على أيقونة الصوت للاستماع للنطق:
اضغط على الإجابة لتتحقق من فهمك وتكتشف التفسير النموذجي فورياً: