في بداية تسعينيات القرن الماضي اصطحبني والدي لمركز تعليمي للبدء بدورة برمجة للصغار. في ذلك الوقت كانت هناك لغة برمجة سهلة تسمى "اللوغو" (logo) تستخدم لتعليم الصغار التفكير البرمجي وهو أساس تعلم البرمجة.
في ذلك الوقت لم أفهم المغزى من الدورة وأنها كانت تركز على التفكير البرمجي، وتوقعت منها كطفل أن أتعلم كيف أقوم ببرمجة الألعاب التي لطالما أحببتها، ولكن مع الأسف خاب ظني وخرجت من الدورة من دون تحقيق ما كنت أتوقعه. بعد سنوات من هذه الحادثة وتحديدا بعد دخولي تخصص برمجة الحاسوب، فهمت ما كان يجب أن تعلمني إياه تلك الدورة وهو التفكير البرمجي.
التفكير البرمجي
يجب أن يعرف الآباء أن تعليم البرمجة للصغار يبدأ من تعليمهم التفكير البرمجي وليس البرمجة بشكلها الجاف، فالتعليم البرمجي هو من الأساسيات التي يجب على الأطفال البدء بها، فمن خلال فهمهم لهذه المبادئ يمكن أن تكون الخطوة الأولى لهم في عالم البرمجة.
فالتفكير البرمجي يعطي الطفل القدرة على فهم كيفية عمل البرامج والحواسيب، والتي هي بلا شك تختلف عن طريقة التفكير الإنساني المنطقية، فلجعل الآلة تقوم بعملية بسيطة يجب على المبرمج كتابة عدة أوامر، وليس أمر واحدا كما هو الحال عندما تطلب من الإنسان تنفيذ نفس العملية.
على سبيل المثال:
عملية جمع بسيطة مثل جمع 2+1+4 = 7 قد تكون تنفذ في عقل الإنسان بشكل سريع، ولكن في عقل الآلة الأمر مختلف للقيام بهذه العملية، حيث يجب تطبيق الأوامر التالية التي يتحدث فيها المبرمج مع الآلة:
1- عرف الرمز "إكس" (x) على أنه مساحة في الذاكرة لتخزين الرقم 2.
2- عرف الرمز "واي" (y) على أنه مساحة في الذاكرة لتخزين الرقم 1.
3- عرف الرمز "إف" (F) على أنه مساحة في الذاكرة لتخزين الرقم 4.
4- عرف الرمز "زد" (Z) على أنه مساحة في الذاكرة لتخزين رقم مجهول.
5- عرف الرمز "في" (V) على أنه مساحة في الذاكرة لتخزين رقم مجهول.
6- الآن اجمع "إكس" (x) و"واي" (y) وخزن الناتج الذي هو الرقم 3 في المساحة الفارغة "زد" (Z).
7- الآن اجمع الرمز "زد" (Z) و"إف" (F) وخزن الناتج وهو الرقم 7 في الرمز "في" (V).
8- أخيرا اظهر الرقم المخزن في الرمز "في" (V) على الشاشة بجانب الرمز (=).
(ملاحظة: المثال فقط للتوضيح وليس أسطرا برمجية دقيقة ويمكن أن يختلف في طريقة الترتيب المنطقي أو البرمجة).
يمكن أن ترى من المثال السابق أنني احتجت لحوالي 8 أسطر لإظهار نتيجة جمع بسيطة، لكن هذه الأسطر البرمجية القليلة توضح الكثير عن طريقة التعامل مع الحاسوب سواء للكبار أو الصغار.
ولهذا السبب لا بد من توظيف لغة برمجة مبسطة لتعليم الأطفال المبادئ والخطوات من أجل تأسيس وعي تقني وبرمجي بشكل عام، ومن هذه اللغات لغة لوغو التي تعد أهم لغة تعليم لدى الأطفال.
لوغو السلحفاة
نشأت لغة لوغو في أواخر ستينيات القرن الماضي كلغة مبسطة للاستخدام في التعليم، استخدمها سيمور بابرت وآخرون في معهد "ماساتشوستس" (MIT) للتكنولوجيا لتدريس التفكير الرياضي لأطفال المدارس. وكان لها بنية أكثر تقليدية من لغة البرمجة "ليزب" (LISP) وظهرت "رسومات السلاحف"، وهي طريقة بسيطة لتوليد رسومات الحاسوب.
هناك 197 نسخة من لغة لوغو، وتعد نسخة "يو سي بي لوغو" (UCBLogo) من جامعة كاليفورنيا هي الأكثر قوة.
وصممت لغة لوغو لتساعد الأطفال على تعلم البرمجة بشكل مبسط، بدلا من حفظ النظرية أو استخدام بنية برمجة معقدة، ويتعلم مستخدمو لوغو الصغار أساسيات البرمجة باستخدام كلمات واتجاهات بسيطة من خلال توجيه كائن، عادة ما يكون سلحفاة للقيام بتنفيذ جمل برمجية بسيطة.
وتستخدم لغة لوغو وحدات برمجية قابلة للتوسع، وهي تفاعلية، ومرنة، حيث تم تصميمها لتكون بسيطة على الفهم للفئات العمرية الصغيرة، وبشكل يسهل على الأطفال استخدامها.
تضم لغة لوغو سلحفاة صغيرة روبوتية مقيدة على جهاز حاسوب بشكل أساسي، وفي بعض الحالات، كان هناك قلم يعلق على رسم الخطوط التي رسمت الأشكال والأنماط، لكن الميزة الأكثر شهرة في لوغو هي السلحفاة، وهي عبارة عن مؤشر على الشاشة، والتي يمكن إعطاؤها تعليمات للحركة والرسم، ويتم استخدامها لإنتاج الرسومات الخطية برمجيا.
من الأب للابن ومن السلحفاة للقط
في عام 2007 تم إطلاق مشروع لغة "سكراتش" (SCRATCH) أيضا من مختبرات معهد ماساتشوستس للتكنولوجيا المتخصصة في مجالات البرمجة والحاسوب. وذلك لأهداف تربوية تعليمية لتمكن الطلاب من التعلم والتعبير عن قدراتهم من خلال لغة برمجة سهلة وبسيطة.
استبدل المعهد السلحفاة التي كانت موجودة في لغة اللوغو وتقوم بتنفيذ الأوامر بقط في لغة سكراتش ليقوم بعمل لبنات برمجية، وأصبح القط أكثر ذكاء من السلحفاة، حيث لا تعتمد لغة سكراتش على الأوامر البسيطة كما كان الحال في لغة اللوغو.
وتزايد عدد الطلاب ومستخدمو السكراتش حول العالم، ليصل لأكثر من 11 مليون برنامج، ويقومون بنشر أعمالهم في موقع السكراتش الرسمي (scratch.mit.edu).
وأصبحت الحاجة ملحة لتطوير لغة البرمجة التي تخاطب طلاب المدارس بسبب الصعوبات التي تواجه الطلاب في المراحل الثانوية في فهم البرمجة وخاصة "برمجة الكائنات" (Object Oriented Programming). لذلك، فإنّ التعلم المبكر والمبسّط لهذا النوع من البرمجة، من شأنه أن يهيئ الجيل الجديد للمرحلة القادمة.
يتعلم الطالب من خلال هذه اللغة مفاهيم برمجية أساسية كالتكرار والشروط، وكذلك المفاهيم الأكثر تعقيدا كالكائنات واللبنات، بالإضافة إلى مفاهيم وأفكار رياضية مهمة كنظام الإحداثيات والمتغيرات والأعداد العشوائية. كل ذلك من خلال منظومة تعلم في إطار شائق وذي معنى.
في برنامج السكراتش يمكن تطوير قصص تفاعلية، ورسوم متحركة، وألعاب موسيقية وفنية، وغيرها من الإبداعات المحوسبة.
وتمكن سكراتش المستخدم من إدخال صور، أصوات وفيديو، كما تمكنه من إجراء تغييرات عليها والتحكم فيها. وتعتمد السكراتش على الكائنات المدخلة للبرنامج، حيث إن الكائنات يمكنها أن تكون نصوصا، أو صورا أو رسومات.
كيف نستخدم سكراتش؟
للاستفادة من الإمكانات الهائلة والمجانية التي يتيحها برنامج سكراتش، يكفي زيارة موقع سكراتش الذي قام معهد ماساتشوستس ببنائه خصيصا لهذا الغرض، وإنشاء حساب عليه، حيث يمكن استخدام بيئة برنامج سكراتش على الموقع من دون الحاجة لتحميله وتنصيبه على الحاسوب، كما يمكن أيضا تنصيب البرنامج على الحاسوب لمن أراد ذلك.
سكراتش واللغة العربية
تم نقل مشروع سكراتش إلى العربية بواسطة فريق من كلية تقنية المعلومات في جامعة الإمارات العربية المتحدة، وبالتعاون مع مجموعة من المتخصصين في الأولمبياد المعلوماتي السوري، وبفضل ذلك أصبح من الممكن تغيير لغة القوائم والمقاطع البرمجية في البرنامج الى اللغة العربية. كما أصبح لسكراتش موقعا يدعم اللغة العربية بشكل كامل.
الصورة التالية تشرح كيفية التعامل مع الواجهة العربية لبرنامج سكراتش:
كيف تبدأ تعليم الأولاد البرمجة؟
عندما بدأت تعليم أولادي على سكراتش بدأت في إعطائهم مشاريع صغيرة تستهويهم وتجعلهم يحبون العمل على سكراتش وتقدم شيئا يحبونه.
لذلك طلبت منهم أن يقوموا بعمل مشروع صغير تعريفي عن لعبة "الفورتنايت" (Fortnite) التي يحبونها بحيث يشرحوا للآباء ما قواعد اللعبة بشكل بسيط، وقد تفاجأت بانسجامهم وقدرتهم على تعلم أشياء جديدة ليكملوا المشروع.
إن تعلم البرمجة ليس بالعملية السهلة خصوصا للأطفال إذا قدمت لهم بشكل تعليمي أو تقليدي، لذلك يجب فتح المجال لهم لينطلقوا كل وفق اهتمامه وقدراته بحيث يتم بناء اللبنات الأساسية للتفكير البرمجي والذي سيفتح لهم آفاقا كبيرة في عالم البرمجة فيما بعد إذا ما قرروا التوسع في هذا المجال.
وفي الختام نقترح عليكم العديد من الروابط التي يمكن أن تفيدكم فيما يخص التعامل مع بيئة سكراتش:
صفحة المعلمين للتعرف على المزيد من الأفكار التي يقوم عليها سكراتش.
صفحة الدعم الخاصة بسكراتش.
رابط الموسوعة.
رابط المنتدى.
دروس مهمة حول كيفية التعامل مع سكراتش.