جلسة في أساسيات البرمجة 1

من ويكي أضِف
اذهب إلى التنقل اذهب إلى البحث

أساسيات البرمجة - جلسة 2 ◀  ⏮

موجز الجلسة

هذه الجلسة هي أولى جلسات تعليم البرمجة. و تهدف هذه الجلسات في مجملها إلى تمكين الطلاب من استخدام الأدوات الأساسية اللازمة تحويل أفكارهم و ما يبتكرونه من خوارزميات إلى برمجيات صالحة للإستخدام. و تشمل هذه الأدوات لغات البرمجة، و بالذات لغة Python و بيئات كتابة البرامج و المترجمات و المفسرات (Compilers and Interpreters). و تعد هذه الجلسات حجر الأساس اللازم لتنفيذ و تجربة الخوارزميات بشكل عملي على الحاسوب، على هذا، يجب أن يتم تضمين ما يكفي من هذه الجلسات قبل البدء في تقديم و شرح الخوارزميات و اسسها.

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

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

كما تعرض الجلسة ايضا من خلال الأمثلة لمفهوم أولويات تنفيذ العمليات الحسابية (precedence) و استخدام الأقواس لتغيير هذه الأولويات.

بالإضافة إلى ذلك، تهدف الجلسة (و كل جلسات البرمجة) إلى غرس ثقافة التعاون و الاستفادة من آراء الآخرين و تقبل النقد عن طريق الحرص على ان يقوم الطلاب بالعمل كثنائيات في كتابة البرامج بحيث يقوم احد الطلاب بالكتابة و يقوم الآخر بمراجعة الكود المكتوب ـ على أن يتبادلا الأدوار لاحقاً.

مدة الجلسة الزمنية

أربع ساعات تتخللها فترة أو فترتي راحة

المرحلة العمرية المستهدفة

من 10 سنوات إلى 15 سنة

مهارات و معارف متوقعة من المتدربين

  1. القراءة و الكتابة.
  2. اتباع التعليمات.
  3. الحساب (العد و الجمع و الطرح).
  4. أستخدام الحاسوب و البرامج الحاسوبية.
  5. كيفية تمثيل الأرقام و المحارف في الحاسوب.
  6. مفهوم الملفات و الأدلة و المسارات و استخداماتهم.
  7. استخدام المتصفح و محركات البحث.

موضوعات الجلسة

  • مقوّمات البرمجة
    • فهم ماهية البرمجة و لغات البرمجة
    • فهم العناصر العامة للغات البرمجة و صفاتها
    • القدرة على إدارة الكود المصدري و تنظيم ملفاته
    • القدرة على استخدام مفسّر أو مترجم اللغة المختارة لمعالجة ملفات الكود المصدرية و إخراج نتائج، على سطر الأوامر أو في بيئة تطوير متكاملة
  • تأليف برنامج حاسوبي
    • القدرة على اتّباع أساليب اختبار البرنامج و اكتشاف البقّات

الأثر القيمي

غرس و تأصيل القيم التالية

  • الفضول العلمي
  • السعي إلى المعرفة
  • الإبداع
  • التعاون
  • التعلم من خبرات و تجارب الآخرين
  • تقبل النقد

النتائج المتوقعة

  1. كتابة برمجية خطية بسيطة باستخدام لغة Python.
  2. تشغيل البرمجية باستخدام مفسر Pyhton من على سطر الأوامر.
  3. اختبار البرمجية و اكتشاف الأخطاء البسيطة في بناء الأوامر البرمجية للغة Python .
  4. وصف كيفية تنفيذ الحاسوب لبرامج بلغة الآلة.
  5. تحديد الفروق بين لغة الآلة و اللغات عالية المستوى.
  6. شرح أثر نموذج عمل الحاسوب على كيفية تنفيذ البرامج المكتوبة باللغات عالية المستوى.
  7. شرح دور المفسر و المترجم في تنفيذ البرمجيات المكتوبة بلغات عالية المستوى.
  8. تعريف البيانات العددية و البيانات النصية كنوعين من الأنواع الرئيسية للبيانات التي يتعامل معها الحاسوب، و التعرف عليهما و توضيح ما بينهما من فروق.

وسائل تعليمية مطلوبة

  • حواسيب بحيث يكون عدد الحواسيب هو نصف عدد المتدربين (حاسوب لكل متدربين اثنين) بالإضافة إلى حاسوب للميسّر. كل حاسوب يوجد عليه حسابات لكل طالب من الطلاب المشاركين في البرنامج.
  • جهاز عرض بيانات
  • اتصال بالإنترنت
  • لوحة كتابة (Flip Chart)

تتابع الجلسة

مقدمة

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


  1. ينوه الميسر إلى ان هذه الجلسة هي أول جلسات نعلم البرمجة.
  2. يسأل الميسر الطلبة عن ماهية البرمجة و يناقش إجاباتهم وصولا إلى بناء فهم مبسط عن ماهية البرمجة.
  3. يعرض الميسر أمثلة لبرمجيات تستخدم وحدة turtle المتوفرة مع لغة pyhton في رسم اشكال و رسوم مشوقة.
  4. يقوم الميسر بتشغيل هذه البرامج لإظهار مخرجات هذه البرامج.
  5. يقوم الميسر بتعديلات بسيطة على البرامج بحيث تٌغَيّر المخرجات المتوقعة.
  6. يعيد الميسر تشغيل البرامج و يستعرض المخرجات الجديدة.
  7. يشير الميسر إلى مدى سهولة تنفيذ و تعديل هذه الرسوم عن طريق البرمجة.
  8. يوضح الميسر للطلاب أنهم سيكونون قادرين على كتابة برمجيات مماثلة بعد عدد صغير من الجلسات.

كتابة و تشغيل البرنامج الأول

  1. يعرض الميسر على الطلاب برنامج يقوم بطباعة عبارة بسيطة على الشاشة ثم يطلب منهم فتح محرر نصوص و كتابة البرنامج نقلا عما هو معروض امامهم و حفظ الملف بأسم يختاره هو.
  2. يعرض الميسر كيفية تشغيل البرنامج باستخدام مفسر python من سطر الأوامر ثم يطلب من الطلاب تشغيل البرامج التي كتبوها و يساعدهم في حل أي مشاكل يواجهونها، مع شرح اسباب هذه المشاكل.
  3. يشرح الميسر مكونات البرنامج و يشير إلى ان هذا البرنامج مكتوب بلغة python و يوضح كيف استخدمنا مفسر python لتشغيله.

مقدمة إلى فكرة لغات البرمجة عالية المستوى و كيفية تنفيذ برامجها

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

الربط ما بين نموذج عمل الحاسوب و كيفية تنفيذ البرامج

  1. يسأل الميسر الطلاب عن كيف يقوم الحاسوب بتنفيذ البرامج المكونة من أوامر مكتوبة بلغة الألة طبقا لما تعلموه في الجلسات السالفة.
  2. يستمع الميسر لإجابات الطلاب و يراجع معهم نموذج عمل الحاسوب.
  3. يطلب الميسر من الطلاب استخدام محرر النصوص لفتح ملف البرنامج الذي كتبوه في أول الجلسة و إضافة بضع أوامر لطابعة بعض العبارات الإضافية ثم حفظ الملف.
  4. يطلب الميسر من الطلاب تشغيل الملف باستخدام مفسر python كما تعلموا سلفا في هذه الجلسة.
  5. يراجع الميسر مع الطلاب و يتأكد من نجاحهم في تنفيذ ما طلبه و يساعد من يواجه صعوبة أو مشكلة في التنفيذ في فهم اسباب هذه الصعوبة أو المشكلة و حلها.
  6. يطلب الميسر من الطلاب ملاحظة أن العبارات ظهرت على الشاشة بنفس ترتيب الأوامر في البرنامج.
  7. يشير الميسر إلى التشابه بين تنفيذ أوامر لغة الألة بالترتيب كما تعلموا في نموذج عمل الحاسوب و تنفيذ الأوامر التي كتبوها في برنامجهم بالترتيب.
  8. يوضح الميسر أن المفسر يقوم بقراءة سطور الكود المصدري بالترتيب و تحويل كل منها إلى أوامر عديدة بلغة الألة ثم تنفيذ هذه الأوامر بالترتيب، و أن هذا ما يحدث ما لم يحدث ما يغير ترتيب التنفيذ.
  9. يؤكد الميسر على وجود تناظر ما بين ترتيب تنفيذ أوامر الكود المصدري و ترتيب تنفيذ أوامر لغة الألة.

أستخدام البرنامج في القيام بعمليات حسابية

  1. يوضح الميسر للطلاب أننا نستطيع أن نستخدم لغة python و دالة print في القيام بعمليات حسابية
  2. يفتح الميسر البرنامج السابق و يضيف سطر يستخدم دالة print في القيام بعملية حسابية بسيطة (جمع، طرح، إلخ...) ثم يقوم بتشغيل البرنامج.
  3. يطلب الميسر من الطلاب إعادة فتح ملف البرنامج وكتابة مجموعة من الأسطر تستخدم دالة print للقيام بعمليات حسابية مختلفة ثم إعادة تشغيل البرنامج، و يساعدهم في كتابة هذه السطور و حل ما يواجههم من مشاكل مع توضيح الرموز المختلفة المستخدمة في التعبير عن العمليات الحسابية في الحاسوب.
  4. يعرض الميسر على الطلاب مسألة حسابية مركبة من خلال قصة بحيث تتطلب المزج بين عمليات الجمع و الضرب و يطلب منهم حلها باستخدام ما تعلموه من عمليات حسابية باستخدام لغة python على الحاسوب. على سبيل المثال، تاجر يكسب سبعة جنيهات يوميا من بيع الجبن و ثلاثة جنيهات يوميا من بيع الزيتون، فكم سيكسب من بيع الجبن و الزيتون في شهر فبراير القادم؟
  5. يراجع الميسر حلول الطلاب و يوضح لهم ان المفسر يقوم بتنفيذ عمليات الضرب قبل عمليات الجمع، وعليه، فإذا قاموا بكتابة العملية الحسابية كالآتي 7+3*28 سيحصلون على نتيجة خطأ.
  6. يشرح الميسر أولويات تنفيذ العمليات الحسابية، و يدعو الطلاب لتجربة بناء صيغ حسابية مركبة تستخدم مختلف العمليات الحسابية و توقع نتائجها بناء على اولوية تنفيذ العمليات الحسابية.
  7. يشرح الميسر كيفية استخدام الأقواس لتجاوز الترتيب الطبيعي لتنفيذ العمليات.
  8. يطلب الميسر كتابة الأمر الازم لحل المسألة التي عرضها عليهم من خلال القصة باستخدام الأقواس للوصول للنتيجة الصحيحة و يساعدهم في حل ما يستعصي عليهم حتى يتأكد من نجاحهم جميعا في ذلك.
  9. يشير الميسر اننا بهذا نكون قادرين على إجراء أي عمليات حسابية و اختيار الترتيب الصحيح للقيام بهذه العمليات.

البيانات العددية و البيانات النصية

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

خاتمة

  1. يطلب الميسر من كل طالب كتابة أهم ما تعلمه في هذه الجلسة على ورقة و يقوم بجمع هذه الأوراق منهم لتقييم مدى استفادتهم من الجلسة.
  2. يبين الميسر إلى أننا تعرضنا في هذه الجلسة للموضوعات الأتية:
    • اللغات عالية المستوى و ما بينها وبين لغة الآلة من فروق
    • ما هو المترجم و ما هو المفسر و ما الفروق بينهما
    • اسماء بعض لغات البرمجة عالية المستوى
    • كتابة برنامج بسيط بلغة python
    • استخدام دالة print في طباعة رسائل على الشاشة.
    • التناظر بين كيفية تنفيذ المفسر لبرنامج بلغة pyhton و نموذج عمل الحاسوب
    • القيام بعمليات حسابية بستخدام لغة python، و فهم أولوية تنفيذ هذه العمليات و تغيير ترتيب تنفيذ هذه العمليات باستخدام الأقواس عندما نحتاج لذلك.
    • نوعين من الأنواع الأساسية للبيانات التي يتعامل معها الحاسب
    • كيفية التفرقة بين النصوص و البيانات العددية و كيفية تعامل الحاسوب مع كل منهما.
  3. يختم الميسر الجلسة بالإجابة عن أي أسئلة في هذه الموضوعات

قراءات و تدريبات إضافية

  1. بحث: التعرف على اسماء لغات برمجة عالية المستوى بخلاف ما ذكر في الجلسة و استخدامات هذه اللغات و اسباب وجود هذا التنوع في اللغات عالية المستوى
  2. بحث: التعرف على بعض المصادر الموجودة على شبكة الأنترنت لتعلم البرمجة و بعض مصادر تعلم لغة python