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

الحمد لله رب العالمين، والصلاة والسلام على إمام المرسلين، محمد المبعوث رحمةً للعالمين، وعلى آله وصحبه ومن تبعهم بإحسان إلى يوم الدين.

السلام عليكم ورحمة الله وبركاته.

هذه ترجمة مقال من تأليف الفريق المطور للغة البرمجة سكراتش، نشرت عام 2009 في مجلة Communications of the ACM، يطرحون فيها المبادئ التصميمية التي قادتهم أثناء تطويرهم لسكراتش، واستراتيجياتهم لجعل البرمجة جذابةً وسهلة المنال للجميع.

يمكنك تنزيل نسخة PDF من هذا المقال.

ينبغي أن يعني مفهوم ”الطلاقة الرقمية“ التصميم والإنشاء والمزج، وليس مجرد التصفح والدردشة والتفاعل.

عندما دعانا موشيه فاردي Moshe Y. Vardi رئيس تحرير مجلة Communications of the ACM لإرسال المقال، ذكر كيف سمع بسكراتش للمرة الأولى: ”أخبرتني زميلة لي (وهي أستاذة جامعية في علوم الحاسوب) كيف حاولت أن تجعل ابنتها ذات السنوات التسع تهتم بالبرمجة، وأن الشيء الوحيد الذي راق لها كان سكراتش.“

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

منذ خروج سكراتش للعلن في أيار/مايو 2007، صار موقع سكراتش على الوب مجتمعًا رقميًا ضاجًا بالنشاط، بوجود أناس يشاركون ويناقشون ويمزج بعضهم مشاريع بعض، حتى صار موقع سكراتش يدعى ”يوتيوب الوسائط التفاعلية.“ يرفع مبرمجو سكراتش من أنحاء العالم ما يزيد عن 1500 مشروع جديد إلى الموقع يوميًا [كان هذا عام 2009، أما اليوم فالأرقام أكبر بكثير]، وكلها متاحة مع رماز المصدر source code مجانًا مع إمكانية المشاركة والمزج. يتنوع محتوى الموقع من المشاريع بشكل كبير، متضمنًا الألعاب والصحف الإخبارية التفاعلية وبرامج المحاكاة العلمية والجولات الافتراضية وبطاقات التهنئة بالمناسبات المختلفة ومسابقات الرقص الرسومية والدروس التفاعلية، وكلها مبرمجة بواسطة سكراتش.

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

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

تستمتع بالا برسم شخصيات الرسوم المتحركة، ولذا كان من الطبيعي عند بدئها استخدام سكراتش أن تأخذ ببرمجة قصص متحركة تجسد هذه الشخصيات. وبعدما شرعت بمشاركة مشاريعها عبر موقع سكراتش، استجاب أعضاء المجتمع الآخرون بشكل إيجابي مبدين إعجابهم من خلال تعليقاتهم على هذه المشاريع (مثل: ”هذا رائع!“ و ”يا إلهي كم أحب هذا المشروع!!!!!!“)، إضافةً إلى سؤالهم عن كيفية قيامها بتأثيرات رسومية معينة (مثل: ”كيف تجعلين كائنًا ما يبدو شفافًا؟“). شجع ذلك بالا على إنشاء ومشاركة مشاريع سكراتش جديدة بانتظام، بشكل يشبه حلقات مسلسل تلفزيوني.

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

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

لماذا البرمجة؟

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

إن الطلاقة الرقمية digital fluency كما نراها ليست مجرد القدرة على المحادثة والتصفح والتفاعل مع الوسائط المختلفة، وإنما تعني كذلك القدرة على التصميم والإنشاء والابتكار بواسطة الوسائل الحديثة [16]، كما فعلت بالا في مشاريعها. ولتكون كذلك عليك تعلّم شيء من البرمجة. إن للقدرة على البرمجة فوائد عظيمة، فهي توسع بشكل كبير مثلًا مجال ما يمكنك إنشاؤه بواسطة الحاسوب (وكذلك الكيفية التي تعبّر بها عن نفسك)، كما توسع كذلك مجال ما يمكنك تعلّمه. تدعم البرمجة تحديدًا ما يسمى بالتفكير الحسابي computational thinking، إذ تساعد على تعلّم استراتيجيات هامة للتصميم وحل المعضلات (مثل التجزئة إلى وحداتmodularization  والتصميم التكراري)، والتي يمكن تطبيقها في مجالات أخرى بعيدة عن البرمجة [18]. وبما أن البرمجة تتضمن إنشاء تمثيلات خارجية لإجراءاتك في حل المعضلات، فإنها توفر لك فرصة التأمل في تفكيرك الخاص، وحتى التفكّر في عملية التفكير بحد ذاتها [2].

الأبحاث السابقة

عندما بدأت الحواسيب الشخصية بالظهور في أواخر عشر السبعينات وعشر الثمانينات من القرن الماضي، كان هناك حماس مبدئي لتعليم الأطفال كلهم كيفية البرمجة، فعلّمت آلاف المدارس الملايين من التلاميذ كيفية كتابة برامج بسيطة باستخدام لوغو Logo أو بيسك Basic. كما قدّم كتاب سيمور بابرت Seymour Papert الصادر عام 1980 والمسمّى Mindstorms [13] لغة لوغو كحجر أساس في إعادة النظر بأساليب التعلّم والتعليم. ولكن رغم أن هذه الإمكانيات الجديدة ملأت بعض الأطفال والمعلمين بالحماس ودفعتهم باتجاه تحولات إيجابية، إلا أن معظم المدارس سرعان ما أخذت تتجه إلى استخدامات أخرى للحواسيب، وصار الحاسوب منذ ذلك الوقت واسع الحضور في حياة الأطفال، إلا أن القليل منهم فقط تعلّم البرمجة. وينظر معظم الناس اليوم إلى البرمجة كنشاط تقني ضيق لا يناسب إلا شريحةً محدودةً من الأشخاص.

ما الذي حلّ بالحماس المبدئي لتعليم الأطفال البرمجة؟ ولمَ لم ترقَ لوغو والمبادرات الأخرى إلى مستوى الآمال المبكرة التي علقت عليها؟ كانت هناك عدة عوامل وراء ذلك:

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

حاجَّ سيمور بابرت بأن على لغات البرمجة أن تكون ذات ”أرضية منخفضة“ (يسهل البدء باستخدامها)”وسقف مرتفع“ (توفر باستمرار فرصًا لإنشاء مشاريع متزايدة التعقيد بمرور الوقت). تحتاج لغات البرمجة إضافةً إلى ذلك ”جدرانًا عريضةً“ (تدعم العديد من أنماط المشاريع المختلفة ليستطيع ذوو الاهتمامات وأنماط التعلّم المختلفة جميعهم أن ينخرطوا في الأمر). إن تحقيق ثلاثية الأرضية المنخفضة/السقف المرتفع/الجدران العريضة لم يكن قط بالأمر السهل [3].

سعت العديد من المحاولات في الأعوام الأخيرة إلى تقديم البرمجة للأطفال والمراهقين [7]، فاستخدم البعض لغات برمجة احترافيةً (مثل Flash/ActionScript، بينما استخدم آخرون لغات جديدةً طُوّرت خصيصًا للمبرمجين الناشئين (مثل Alice [7] و Squeak Etoys [5]). لقد ألهمَنا هؤلاء وأغنوا عملنا في سكراتش، ولكننا لم نكن راضين تمامًا عن الخيارات المتوفرة. وتحديدًا فقد شعرنا أن علينا أن نجعل الأرضية أكثر انخفاضًا والجدران أكثر عرضًا، مع المحافظة على دعم تطوّر التفكير الحسابي.

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

أكثر قابلية ً للعبث

عملت مجموعتنا البحثية في الميديالاب بجامعة إم آي تي MIT Media Lab، روضة أطفال مدى الحياة Lifelong Kindergarten، بشكل وثيق مع شركة ليغو لعدة سنوات، مساعدةً في تطوير مجموعة ليغو مايندستورمز LEGO Mindstorms ومجموعات روبوتية أخرى [17]. ولطالما كنا مفتونين بالطريقة التي يلعب بها الأطفال ويبنون بواسطة مكعبات ليغو، وكان ذلك مصدر إلهام لنا. أعط الأطفال صندوقًا مليئًا بهذه المكعبات وسيباشرون على الفور بالعبث، مركبين بضعة مكعبات معًا، وسيعطيهم الشكل الناتج عندئذٍ أفكارًا جديدةً، فالخطط والأهداف تتطور متكاملةً مع الأشكال والقصص التي يخرجون بها أثناء لعبهم وبنائهم.

الشكل 2: نماذج لمقاطع برمجية في سكراتش.

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

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

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

صُمّمت سكراتش لتكون تفاعليةً بقدر كبير، فما عليك سوى نقر كدسة من اللبنات ليبدأ تنفيذها مباشرةً. ويمكنك كذلك إجراء تعديلات على الكدسة فيما هي قيد التنفيذ، مما يسهِّل اختبار أفكار جديدة بشكل تصاعدي وتكراري. أتريد إنشاء مقاطع برمجية تعمل على التوازي؟ ما عليك سوى إنشاء كدسات متعددة من اللبنات البرمجية، وهدفنا من ذلك إلى جعل التنفيذ المتوازي بديهيًا كالتنفيذ التسلسلي.

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

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

الشكل 3: واجهة المستخدم العربية في سكراتش.

ذات مغزىً أكبر

إننا نعلم أن الناس يتعلَّمون بشكل أفضل ويستمتعون أكثر عندما يعملون على مشاريع ذات قيمة لهم شخصيًا، ولذلك وضعنا أثناء تصميمنا لسكراتش أولويةً عاليةً لمعيارين تصميميين:

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

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

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

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

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

عندما يعمل مستخدمو سكراتش على مشاريع ذات مغزىً لهم شخصيًا فإننا نجدهم جاهزين وتواقين إلى تعلّم مفاهيم حسابية ورياضية هامة تتعلق بمشاريعهم (انظر الشكل 5). خذ مثلًا راؤول، الصبي ذا الثلاثة عشر ربيعًا، الذي أراد استخدام سكراتش لبرمجة لعبة تفاعلية في مركز الأنشطة الذي يزوره بعد المدرسة [9]. فقد قام بإنشاء الرسومات والأفعال الأساسية للعبة، ولكنه لم يعرف كيفية الاحتفاظ برصيد النقاط. عندما زار باحث من فريقنا هذا المركز طلب راؤول منه المساعدة، فأراه الباحث كيفية إنشاء متغير في سكراتش، وهنا أدرك راؤول مباشرةً كيف يمكنه استخدامه للاحتفاظ بمجموع النقاط، فبدأ يلعب باللبنات المسؤولة عن زيادة المتغيرات، وبعدها مدّ يده مصافحًا الباحث قائلًا: ”شكرًا، شكرًا، شكرًا.“ هنا تساءل الباحث في نفسه كم من معلّمي الصف الثامن يتلقون الشكر من طلابهم عندما يدرّسونهم المتغيرات؟

الشكل 5: مثال عن مقطعي برمجي في سكراتش (من لعبة عن ارتداد الكرة) يشير إلى المفاهيم الحسابية والرياضية.

أكثر اجتماعيةً

يرتبط تطوير سكراتش بشكل وثيق بتطوير موقعها على الوب [12]، فلكي تنجح سكراتش ينبغي أن ترتبط اللغة بمجتمع يستطيع أفراده دعم ونقد بعضهم والتعاون فيما بينهم والاستفادة من أعمال بعضهم والبناء عليها [1].

إن مفهوم المشاركة مضمن في واجهة سكراتش بوجود قائمة وأيقونة ”مشاركة“ البارزتين في أعلى الواجهة. انقر أيقونة المشاركة ليُرفع مشروعك إلى موقع سكراتش (انظر الشكل 6)، حيث سيظهر في قمة الصفحة الرئيسة لموقع سكراتش مع ”أحدث المشاريع.“ حال وجود المشروع على الموقع سيستطيع أي عضو تشغيل المشروع في متصفحه (باستخدام مشغل مبني بلغة جافا)، والتعليق عليه والتصويت لصالحه (بنقر زر ”أحببته؟ Love it?“)، وتنزيله لرؤيته ومراجعة المقاطع البرمجية المستخدمة (تغطي رخصة المشاع الإبداعي جميع المشاريع المشاركة على موقع سكراتش).

تمت مشاركة أكثر من نصف مليون مشروع على موقع سكراتش في السبعة والعشرين شهرًا التي تلت إطلاقها. وبالنسبة للعديد من مستخدمي سكراتش فإن فرصة عرض مشاريعهم على جمهور كبير – وتلقي التعليقات والنصائح من مستخدمي سكراتش الآخرين – هي حافز كبير لهم، كما تشكل المكتبة الضخمة من المشاريع الموجودة على الموقع مصدرًا للإلهام، إذ يطّلع مستخدمو سكراتش على أفكار لمشاريع جديدة ويتعلمون تقنيات جديدة في البرمجة من خلال استكشاف المشاريع الموجودة على الموقع. قال مارفن منسكي Marvin Minsky ذات مرة إن للغة لوغو قواعد لغويةً عظيمةً ولكن ليس الكثير من الأدب [11]. فبينما يحصل الكتاب المبتدئون على الإلهام عادةً بقراءة الأعمال الأدبية العظيمة، فإنه لم توجد مكتبة مماثلة لمشاريع لوغو العظيمة لتلهم المبرمجين الصغار، إلا أن موقع سكراتش هو طليعة ”الأدب“ المكتوب بلغة سكراتش.

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

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

ينصَبُّ تركيز بعض المشاريع على موقع سكراتش نفسه، إذ تقدِّم مراجعات وتحليلات عن المشاريع الأخرى الموجودة هناك. كان أحد الأمثلة المبكرة يدعى SNN (شبكة أخبار سكراتش)، والذي أظهر هرّ سكراتش (الكائن الافتراضي في مشاريع سكراتش) ليقدم أخبار مجتمع سكراتش، كما لو كان مقدم أخبار في CNN. ظننا أولًا أن المشروع محاكاة لنشرة الأخبار، ولكن تبين لنا لاحقًا أنه كان نشرة أخبار حقيقية تقدم أخبارًا تمس اهتمامات مجتمع حقيقي هو مجتمع سكراتش الافتراضي. ألهم مشروع SNN آخرين، مؤديًا إلى تزايد النشرات الإخبارية والمجلات وعروض التلفاز على الموقع، وكلها مبرمجة بسكراتش لتعرض تقارير عن مجتمع سكراتش.

الشكل 6: الصفحة الرئيسة لموقع سكراتش.

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

تفتح هذه الأشكال من التعاون فرصًا لأنواع متعددة من التعلّم، وفيما يلي ما وصفت به بنت من كاليفورنيا عمرها ثلاثة عشر عامًا خبرتها بعد أن بدأت إحدى شركات سكراتش:

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

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

التوجهات المستقبلية

يستخدم عدد متزايد من المدارس حول العالم (وحتى بعض الجامعات مثل جامعة هارفارد وجامعة كاليفورنيا بيركلي [8]) سكراتش كخطوة أولى في البرمجة. السؤال الطبيعي هنا: ما الذي سيأتي بعد؟ هناك عدد من النقاشات الدائرة الآن على منتديات سكراتش عن لغة البرمجة التي ينبغي استخدامها بعد سكراتش، ونتلقى العديد من الطلبات لإضافة ميزات متقدمة إلى سكراتش (مثل وراثة الأغراض وإعطاء اللوائح بنىً عودية) على أمل أن تكون سكراتش نفسها هي ”الخطوة التالية.“

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

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

ربما تكون أكبر التحديات التي تواجه سكراتش ثقافيةً وتربويةً وليست تقنيةً [10]، فقد نجحت سكراتش مع من تبنوها في مراحلها المبكرة، ولكننا بحاجة لتقديم دعم تربوي أفضل لنشرها على نطاق أوسع. أطلقنا مؤخرًا مجتمعًا رقميًا جديدًا هو Scratch-Ed، حيث يشارك المربّون أفكارهم وخبراتهم وخطط دروسهم لسكراتش. عمومًا، هناك حاجة إلى نقلة نوعية في نظرة الناس إلى البرمجة خصوصًا والحواسيب بشكل عام، فنحن بحاجة إلى توسيع مفهوم ”الطلاقة الرقمية“ ليتضمن التصميم والإنشاء وليس مجرد التصفح والتفاعل، وعندئذ فقط ستمتلك مبادرة مثل سكراتش فرصة الارتقاء إلى أقصى إمكاناتها.

عرفان بالجميل

ساهم العديد من الأشخاص في تطوير سكراتش، وأسهم أكثر منهم في الأفكار التي بُنيت عليها سكراتش. نود أن نشكر الأصدقاء والأعضاء السابقين في مجموعة Lifelong Kindergarten الذين عملوا على سكراتش، ونخص منهم Tammy Stern و Dave Feinberg و Han Xu و Margarita Dekoli و Leo Burd و Oren Zuckerman و Nick Bushak و Paula Bonta. كما أننا ممتنون لـKylie Peppler و Grace Chui والأعضاء الآخرين في الفريق البحثي للأستاذة Yasmin Kafai والذين أجروا وشاركوا في أبحاث ميدانية في المراحل المبكرة من تطوير سكراتش. تأثرت سكراتش بشكل كبير وألهمتها أعمال Seymour Papert و Alan Kay. نقدر الدعم المادي المقدم من National Science Foundation (المنحة ITR-0325828) و Microsoft و Intel Foundation و Nokia و MIT Media Lab. كل أسماء الأطفال المذكورة في هذه المقال هي أسماء وهمية.

المراجع

  1. Bransford, J., Brown, A., and Cocking, R. How People Learn: Mind, Brain, Experience, and School. National Academies Press, Washington, D.C., 2000.
  2. diSessa, A. Changing Minds: Computers, Learning, and Literacy. MIT Press, Cambridge, MA, 2000.
  3. Guzdial, M. Programming environments for novices. In Computer Science Education Research, S. Fincher and M. Petre, Eds. Taylor & Francis, Abingdon, U.K., 2004, 127–154.
  4. Kafai, Y., Peppler, K., and Chiu, G. High-tech programmers in low-income communities: Seeding reform in a community technology center. In Communities and Technologies, C. Steinfield, B. Pentland, M. Ackerman, and N. Contractor, Eds. Springer, New York, 2007, 545–564.
  5. Kay, A. Squeak etoys, children, and learning; http://www.squeakland.org/resources/articles.
  6. Kelleher, C. and Pausch, R. Using storytelling to motivate programming. Communications of the ACM 50, 7 (July 2007), 58–64.
  7. Kelleher, C. and Pausch, R. Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Computing Surveys 37, 2 (June 2005), 83–137.
  8. Malan, D. and Leitner, H. Scratch for budding computer scientists. ACM SIGCSE Bulletin 39, 1 (Mar. 2007), 223–227.
  9. Maloney, J., Peppler, K., Kafai, Y., Resnick, M., and Rusk, N. Programming by choice: Urban youth learning programming with Scratch. ACM SIGCSE Bulletin 40, 1 (Mar. 2008), 367–371.
  10. Margolis, J. Stuck in the Shallow End: Education, Race, and Computing. MIT Press, Cambridge, MA, 2008.
  11. Minsky, M. Introduction to LogoWorks. In LogoWorks: Challenging Programs in Logo, C. Solomon, M. Minsky, and B. Harvey, Eds. McGraw-Hill, New York, 1986.
  12. Monroy-Hernández, A. and Resnick, M. Empowering kids to create and share programmable media. Interactions 15, 2 (Mar.–Apr. 2008), 50–53.
  13. Papert, S. Mindstorms: Children, Computers, and Powerful Ideas. Basic Books, New York, 1980.
  14. Peppler, K. and Kafai, Y. From SuperGoo to Scratch: Exploring creative media production in informal learning. Journal on Learning, Media, and Technology 32, 7 (2007), 149–166.
  15. Prensky, M. Digital natives, digital immigrants. On the Horizon 9, 5 (Oct. 2001), 1–6.
  16. Resnick, M. Sowing the seeds for a more creative society. Learning and Leading with Technology (Dec. 2007), 18–22.
  17. Resnick, M. Behavior construction kits. Communications of the ACM 36, 7 (July 1993), 64–71.
  18. Wing, J. Computational thinking. Communications of the ACM 49, 3 (Mar. 2006), 33–35.

المقال الأصلي: Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K., Millner, A., Rosenbaum, E., Silver, J., Silverman, B., & Kafai, Y. (2009). Scratch: programming for all. Communications of the ACM, 52(11), 60-67.

رأيان حول “سكراتش: البرمجة للجميع

اترك تعليقًا

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

شعار ووردبريس.كوم

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   /  تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   /  تغيير )

Connecting to %s

%d مدونون معجبون بهذه:
search previous next tag category expand menu location phone mail time cart zoom edit close