شرح الموضوع
تُعرّف لغات البرمجة، وبيان تصنيفاتها (لغات البرمجة عالية المستوى، لغات البرمجة مُنخفضة المستوى، لغات البرمجة الكتلية، لغات البرمجة النصية)، والمقارنة بينها، فضلاً عن تعرّف العلاقة بين الخوارزميات والبرمجة، وتمثيل البرامج بالخوارزميات ومُخطّطات سير العمليات.
مُنتجات التعلّم
وكيف تسير اللعبة من أولها؟
نتاجات التعلّم
- أُعرّف المقصود بلغة البرمجة.
- أُعدّد بعض لغات البرمجة التي تختلف في مزاياها ووظائفها.
- أُقارن بين لغة البرمجة الكتلية ولغة البرمجة النصية.
- أُقارن بين لغات البرمجة عالية المستوى ولغات البرمجة مُنخفضة المستوى.
- أُوضّح العلاقة بين الخوارزميات والبرمجة.
- أُمثّل البرامج بالخوارزميات ومُخطّطات سير العمليات.
لغة البرمجة: كيف نكلّم الحاسوب؟
تعَلّمتُ في صفوف سابقة كيف أُطوّر برامج باستخدام برمجية سكراتش (Scratch) كما تعلمت تطوير مواقع الويب باستخدام لغة توصيف النص (HTML).
وكيف نصنّف هذه اللغات الكثيرة؟
لغة البرمجة
- وهي تُعدّ الأداة الرئيسة التي يستخدمها المُبرمجون في التفاعل مع جهاز الحاسوب، وتوجيهه لتنفيذ مهام مُعيّنة.
- تُصنّف لغات البرمجة إلى أنواع عِدّة، بناءً على وظائف كلّ منها، وتطبيقاتها، وطرائق معالجتها، وغير ذلك من المعايير والضوابط.
- توجد جملة من المعايير والضوابط الرئيسة التي تَحكُم تصنيف لغات البرمجة، ويأتي في مُقدّمة هذه المعايير والضوابط درجة قرب لغات البرمجة من اللغات الإنسانية، أنظر الشكل (1-1).
- وتأسيساً على ذلك، يُمكن تصنيف لغات البرمجة إلى نوعين، هما: لغات البرمجة عالية المستوى، ولغات البرمجة مُنخفضة المستوى.

إضاءة
أولاً: لغات البرمجة مُنخفضة المستوى :
المستوى المنخفض: قريبة من الآلة وبعيدة عنّا
- تمتاز هذه اللغة بأنّها سريعة مقارنةً بلغات البرمجة عالية المستوى.
- تمتاز هذه اللغة بأنّها أسهل من لغة الآلة؛ نظراً إلى احتوائها على بعض مفردات اللغة الإنجليزية؛ ما يُسهّل قراءة برامجها وفهمها.
- غير أنّ تنفيذ البرامج المكتوبة بلغة التجميع يكون أبطأ مقارنةً بلغة الآلة.
ثانياً: لغات البرمجة عالية المستوى :
المستوى العالي: قريبة من الإنسان ومناسبة لكل الأجهزة
- وقد سُمّيت هذه اللغات بهذا الاسم لقربها من لغة الإنسان وبعدها عن اللغة التي يفهمها جهاز الحاسوب؛ أي لغة الآلة.
- ومن ثمّ، فهي لا تعتمد على أنواع أجهزة الحاسوب في أداء وظائفها، وإنّما صُمّمت على نحو يجعلها موائمة لجميع أجهزة الحاسوب، بغضّ النظر عن نوع هذه الأجهزة وأنظمة تشغيلها.
وبطريقة البرمجة نفسها، كيف تُصنَّف اللغات؟
نشاط: أقارن وأناقش
المُترجم والمُفسّر
المُترجم والمُفسّر: من النص إلى لغة الآلة
- المُترجم والمُفسّر هما برنامجان يعملان على تحويل البرنامج المكتوب بلغة برمجة عالية المستوى إلى أوامر يفهمها جهاز الحاسوب، ويُسارع إلى تنفيذها.
- ويُمكن للمُترجم اكتشاف بعض أنواع الأخطاء في البرنامج أثناء مرحلة الترجمة، وقبل البدء بتنفيذه، أنظر الشكل (1-2).

- غير أنّ المُفسّر لا يعمل أحياناً على تحويل البرنامج إلى لغة الآلة بصورة مباشرة، وإنّما يقوم بتحويل البرنامج إلى لغة وسيطة أولاً، ثمّ يُحوّل كل جزء من أجزاء البرنامج الناتج إلى لغة الآلة، أنظر الشكل (1-3).

(جلب التعليمة التالية)
- بعد ذلك يعمل الحاسوب على تنفيذ الأوامر التي خضعت للترجمة أو التفسير، ثمّ يتولّى المُعالج تنفيذ (Execution) التعليمات تباعاً وفق ترتيبها في البرنامج.
نشاط: أبحث وأقارن
المواطنة الرقمية
المواطنة الرقمية: برمجيات مرخّصة فقط
- أحرص دائماً على استخدام البرمجيات المُرخّصة قانونياً، واحترام حقوق المُلّكية الفكرية للمُطوّرين والشركات.
- أتجنّب استخدام البرمجيات المُقرصنة أو البرمجيات غير المُرخّصة؛ لأنّها قد تكون غير آمنة، وتُعرّض جهازي ومعلوماتي الشخصية للخطر.
مشروع (1): تصميم برنامج وإعداده لإنشاء لعبة تخمين الأرقام باستخدام لغة بايثون (Python) / المهمة
مشروع «نجوم وأقمار»: نخطّط قبل أن نبرمج
- أتعاون مع مجموعتي على البدء بالتحضيرات اللازمة لتصميم لعبة تخمين للأرقام ذات واجهة نصية عبر برمجية بايثون، حيث سيكون التركيز في هذا الدرس على مرحلة التخطيط والتحليل باتباع الخطوات الآتية:
- التعريف للمشكلة/ فكرة اللعبة التي تم اختيارها وتوضيح الهدف منها، وتحديد الجمهور المستهدف.
- فكرة اللعبة قائمة على إضمار عدد مكون من 4 أرقام مختلفة يتم اختيار عدد مكون من عدة منازل (عادةً 4 منازل) بشكل عشوائي.
- ومحاولة اللاعب تخمين العدد المضمر بشكل صحيح فيقوم بإدخال عدد مكون من نفس عدد المنازل الموجود في العدد المضمر، يتم تحقيق هذا الهدف من خلال تقديم مجموعة من التخمينات والحصول على تلميحات من عدد النجوم والأقمار بناءً على مدى صحة التخمين.
- ويشارك باللعبة لاعبين، يظهر لهم في البداية قائمة تتضمن تعليمات اللعبة وقواعدها، وبدء اللعبة والخروج
- تبدأ اللعبة باختيار اللاعب خيار ابدأ اللعبة، حيث يتم الترحيب باللاعبين والطلب منهم التعريف بأنفسهم عبر إدخال أسمائهم
| عدد النجوم | عدد الأقمار | عدم الحصول على شيء |
|---|---|---|
| عدد النجوم: إذا أدخل اللاعب رقماً في إحدى منازل العدد المضمر وكان التخمين صحيحاً، يحصل اللاعب على نجمة؛ | عدد الأقمار: إذا أدخل اللاعب رقماً في إحدى منازل العدد المضمر وكان هذا الرقم موجوداً في العدد المضمر، ولكن ليس في مكانه الصحيح، يحصل اللاعب على قمر. | عدم الحصول على شيء: إذا كان الرقم المدخل غير موجود في العدد المضمر، فلا يحصل اللاعب على أي شيء. |
- يسمح للاعب بعدد محدد من التخمينات (10 محاولات) لتخمين العدد المضمر بشكل صحيح.
- وصف لسيناريو اللعبة: رسم مخطط لسير العمل في اللعبة في محاولة تشكيل فهم شامل للعمل الذي سنقوم به والبدء بتجزئته لنتمكن من إنجازه على مراحل:
- كيف نبدأ؟ ما عدد اللاعبين؟ ما قواعد اللعبة واجراءاتها؟ متى يعتبر اللاعب فائزاً؟ متى تنتهي اللعبة؟ ...الخ.
- فريق العمل: توزيع الأدوار مع الزملاء في المجموعة للعمل على المشروع.
أُقيّم تعلّمي
أُوضّح المقصود بكلّ ممّا يأتي: لغة البرمجة.
لغة الآلة.
البرنامج.
السؤال الثاني: أُقارن بين لغات البرمجة عالية المستوى ولغات البرمجة مُنخفضة المستوى من حيث سهولة القراءة، والتطوير، والأداء، والكفاءة.
السؤال الأوّل: أُميّز بين لغات البرمجة الكتلية ولغات البرمجة النصية من حيث آليّة تمثيل الأوامر، ثمّ أذكر مثالاً على كلّ منهما.
السؤال الثاني: لماذا يُعدّ المُترجم أسرع تنفيذاً من المُفسّر؟
السؤال الثالث: ما التحدّيات التي قد يواجهها المُبرمج عند استخدام لغات البرمجة النصية بدلاً من لغات البرمجة الكتلية؟
السؤال الرابع: بناءً على دراستي موضوع (المُفسّر والمُترجم)، أيّهما أفضل لتطوير برامج كبيرة ومُعقدة؟ أُبرّر إجابتي.