اذهب إلى المحتوى

لغة سكراتش: تعرف على البرمجة السهلة


ابراهيم الخضور

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

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

نظرة أقرب إلى لغة سكراتش

صُممت لغة سكراتش في مخابر معهد ماساتشوستس للتكنولوجيا (MIT Media Lab) لتكون لغة برمجة عالية المستوى ومرئية. ويُقصد بلغة البرمجة المرئية -ببساطة- أنها لغة تقدم التعليمات البرمجية على شكل كتل يجري سحبها أو نقلها إلى نافذة البرمجة دون أن تكتب أية شيفرة، ثم ترتب هذه الكتل بالشكل الصحيح لبناء البرنامج.

لغة سكراتش

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

لقد لاحظ العديد من المطورين هذه الميزة البديهية -إن جاز لنا التعبير- واستعملوها في بناء مكتبات تساعد في موضوع الحوسبة الفيزيائية أو في برمجة الأنظمة المدمجة والروبوتات وقد حققت بالفعل هذه المكتبات نجاحات مهمة.

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

تعتمد فكرة سكراتش على تحريك شخصيات رسومية تُدعى sprite تظهر ضمن نافذة تُدعى المسرح stage، ثم تُبنى برامج للتحكم بهذه الشخصيات. وبإمكان المبرمج النقر على كل شخصية وبرمجتها بشكل منفصل عن الأخرى ثم تشغيل هذه الشخصيات معًا أو وفق تسلسل محدد لبناء القصة أو الاستعراض أو اللعبة المطلوبة. يمكنك اختيار هذه الشخصيات من المكتبة الافتراضية التي تٌثبّت مع البرنامج أو من خلال تصميمها بنفسك.

بيئة عمل سكراتش

تتكون واجهة عمل سكراتش من الأقسام التالية:

واجهة لغة سكراتش

  1. فئات الكتل البرمجية code: تضم هذه الشيفرة أنواعًا مختلفة من الكتل البرمجية التي تؤدي وظائف محددة. صمم شكل هذه الكتل بطريقة هندسية يمكنك خلالها أن تقدر إن كانت الكتلة البرمجية ملائمة لأن توضع ضمن كتلة أخرى أو تحتها أم لا. وتصنف الكتل البرمجية إلى عدة أقسام:
    • كتل الحركة motion: لوّنت هذه الكتل باللون الأزرق وتضم مجموعة تعليمات برمجية لتحريك الشخصية أو تدويرها.
    • كتل الأحداث Events: لوّنت هذه الكتل بالبني الفاتح وتضم تعليمات برمجية للتفاعل مع الأحداث كأن تنفّذ شيئًا ما عند النقر على الشخصية أو الخلفية بزر الفأرة.
    • كتل الهيئة Looks: لوّنت هذه الكتل بالبنفسجي وتضم كتل برمجية تتحكم بمظهر الشخصية من ناحية الشكل والحجم، كما تساعد على التحكم بمظهر خلفية المسرح إضافة إلى تعليمات أخرى كعرض كلمات تقولها الشخصية وهكذا.
    • كتل الأصوات Sound: لوّنت هذه الكتل باللون النهدي (موف) وتضم تعليمات تشغيل سلسلة من الأصوات الجاهزة أو المسجّلة.
    • كتل التحكم Control: لوّنت هذه الكتل باللون البرتقالي الغامق وتضم تعليماتٍ تتحكم بتدفق بمسار التعليمات كالحلقات والتكرار والعبارات الشرطية.
    • كتل الاستشعار Sensing: لوّنت هذه الكتل باللون السماوي وتضم تعليمات التحكم بطريقة تفاعل الشخصية كأن تنفّذ عملًا ما عند ضغط زر معين من أزرار لوحة المفاتيح.أو استخدام مؤقتات زمنية.
    • كتل المتغيرات Variables: لوّنت باللون البني وتضم التعليمات التي تعرّف المتغيرات وتعليمات استخدامها.
    • كتل العمليات Operators: لوّنت بالأخضر وتضم تعليمات إجراء العمليات الرياضية الأساسية وعمليات الموازنة بين الكميات العددية (أكبر وأصغر ويساوي).
    • لبناتي Myblocks: لوّنت بالزهري وهي سلسلة من الكتل التي ترتبها بنفسك لأداء وظيفة معينة متكررة ضمن مشروعك بدلًا من إعادة كتابة هذه السلسلة كل مرة تحتاجها.
  2. نافذة الكتل البرمجية: عند النقر على أي فئة من فئات الكتل البرمجية مثل "المظهر" تُعرض في هذه النافذة جميع الكتل التي تضمها هذه المجموعة.
  3. نافذة بناء البرنامج: تُسحب الكتل المطلوبة لبناء البرنامج إليها انطلاقًا من نافذة الكتل البرمجية، وتساعدك هذه النافذة على ضبط محاذاة الكتل وتلميحات إلى الأماكن التي تصلح أن توضع فيها عن طريق تظليل هذه الأماكن.
  4. المسرح: وهي النافذة التي يُنفَّذ البرنامج ضمنها وفي أعلاها أيقونة "علم أخضر" لبدء التنفيذ وأيقونة "دائرة حمراء" لإيقافه.
  5. نافذة الشخصيات: يمكنك ضمن هذه النافذة اختيار شخصيات البرنامج من خلال عدد من الشخصيات المتاحة، كما يمكنك اختيار عدة أوضاع مختلفة للشخصية إن أردت أن تحرّكها. ولاختيار شخصية انقر على الأيقونة الزرقاء أسفل ويمين النافذة.
  6. نافذة خلفيات المسرح: وتضم قائمة بجميع الخلفيات التي ستستخدمها في برنامجك. يمكنك اختيار خلفية بالنقر على الأيقونة الزرقاء أسفل النافذة.

البرمجة باستخدام سكراتش

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

برنامج "مرحبا أيها العالم!"

تقول الأسطورة أن كل مبرمج ينفّذ برنامج "مرحبًا أيها العالم!" عندما يبدأ تعلم لغة برمجة جديدة سيكون محظوظًا! لهذا سيكون أول برنامج نبنيه في سكراتش هو هذا البرنامج.

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

  • انقر بداية على أيقونة الفئة "أحداث Events" ثم انتقل إلى نافذة الكتل البرمجية وانقر على الكتلة when clicked block ثم اسحبها وافلتها في نافذة بناء البرنامج.
  • انقر بعد ذلك على أيقونة الفئة "حركة Motion" ثم اختر الكتلةmove block وضعها أسفل الكتلة السابقة وستلاحظ أنها ستأخذ مكانها. عدّل الرقم الموجود قبل كلمة "خطوة" إلى 200 لتظهر الحركة على الشاشة بوضوح.
  • انقر بعد ذلك على أيقونة الفئة "هيئة Looks" ثم اختر الكتلة say block وضعها تاليًا. اكتب عبارة "مرحبًا أيها العالم!" ضمن الكتلة في المكان المخصص واضبط زمن عرض العبارة على "3 ثوان" كي تبقى العبارة فترة أطول من الزمن قبل أن تختفي.
  • عد بعد ذلك إلى الفئة "حركة Motion" ثم اختر الكتلة move block وضعها في الأسفل لتتابع الشخصية المشي بعد الترحيب بك، وعدّل الرقم الموجود قبل كلمة "خطوة" إلى 200 أيضًا.

هذا هو البرنامج! ماعليك الآن سوى النقر على أيقونة "الراية الخضراء" أعلى نافذة المسرح لترى نتيجة عملك.

برنامج بلغة سكراتش

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

مجالات استخدام لغة سكراتش

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

  • تعليم اليافعين مبادئ الخوارزميات وأساسيات البرمجة.
  • تصميم رسوم متحركة وعروض تفاعلية.
  • تصميم الألعاب ثنائية البعد.
  • البرمجة الفيزيائية لمكوّنات بعض الأنظمة المدمجة.
  • برمجة بعض أنواع الروبوتات.

تعليم اليافعين مبادئ الخوارزميات وأساسيات البرمجة

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

تصميم رسوم متحركة وعروض تفاعلية

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

تصميم الألعاب ثنائية البعد

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

البرمجة الفيزيائية لمكونات بعض الأنظمة المدمجة

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

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

برمجة الروبوتات

تقدّم سكراتش مجموعة من البرمجيات الإضافية التي تُدعى "موسّعات Extensions" وتهدف إلى زيادة وظائفية اللغة في مجال برمجة التطبيقات والتحكم بالعتاد الصلب. تُعد هذه الموسّعات مفيدة جدًا في التحكم ببعض الألعاب الروبوتية والروبوتات التعليمية مثل Lego Education WeDo لتلقي إشارات الحساسات في روبوت Lego WeDo و Text To Speech لجعل الشخصية تتكلم.

خاتمة

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

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...