المفاهيم الرئيسية

التكنولوجيا

المنطق

البرمجة الحاسوبية

معالجة الأخطاء الحاسوبية

مقدمة

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

معلومات أساسية

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

لكن تخيَّل أنك سوف تطلب من أيٍّ من تلك الروبوتات أداء مهمة منزلية بسيطة، مثل طي ملابسك بعد غسلها أو إعداد العشاء. إنها لا تستطيع فعل ذلك! بل يجب صنعها وبرمجتها خصيصًى لأداء تلك المهمات. في هذا المشروع، سوف نركِّز الاهتمام على الجانب البرمجي من هذه المسألة. يتألف البرنامج الحاسوبي من مجموعة من التعليمات التي ينبغي على الحاسوب أو الروبوت اتباعها. والحواسيب تأخذ الأمور على نحوٍ حَرْفي جدًّا، ولذا فإنها سوف تتبع التعليمات بحذافيرها حتى لو صدر منك خطأ في أثناء كتابتك لتلك التعليمات. إن الأشياء التي قد تبدو بسيطةً أو واضحةً بالنسبة للبشر، ومنها إعداد شطيرة مثلًا، ليست واضحةً للروبوت إطلاقًا. بل يجب تعليم الروبوت ما يجب عليه فعله وبالضبط. في هذا المشروع، سوف تقوم بكتابة ’برنامج‘ ليستخدمه أحد الأشخاص في إعداد شطيرة زبدة الفول السوداني والهُلام. وسوف تطلب من الشخص أن ’يفكر كروبوت‘ وأن يتبع تعليماتك بشكل حَرْفي جدًّا. إن إعداد شطيرة أمر غاية في البساطة. لا بد أن هذا سيكون أمرًا سهلًا، أليس كذلك؟ لكن قد تكون ثمة مفاجأة بانتظارك!

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

المواد المستخدمة

  • خبز
  • زبدة الفول السوداني
  • هُلام
  • سكين
  • طبق
  • مناديل ورقية
  • متطوع
  • قلم رصاص وورقة
  • سطح يمكن استخدامه دون مشكلات في حالة حدوث القليل من الفوضى.

التحضير

  • فكِّر في الإجراء الذي تتَّبعه في العادة لعمل شطيرة زبدة الفول السوداني والهُلام، وقسِّم الإجراء إلى سلسلة من الخطوات التي يتم تنفيذها واحدةً تلو الأخرى.
  • اكتب هذا الإجراء على شكل لائحة مُرقَّمة (الخطوة 1، الخطوة 2، ...)، وتأكد من أنك قد أدرجت جميع الخطوات، حتى تلك الخطوات التي ترى أنها بدهية.


 

الطريقة

  • أعطِ إجراءك المكتوب والمواد الأخرى إلى متطوعك. ربما يعلم المتطوع بالفعل كيفية صنع شطيرة زبدة الفول السوداني والهُلام، لكن أخبره أنك تريده أن يتظاهر بأنه لم يسبق له صنع شطيرة، وأنك تريده أن يصنعها باتباع توجيهاتك المكتوبة بالضبط، وأن عليه أن يتصرف كروبوت وأن ينفذ ما تمليه عليه التعليمات مهما كان، حتى لو أدى ذلك إلى حدوث خطأ. وعليه أيضًا ألا يفترض أي خطوات غير موجودة ضمن الإجراء.
  • راقب متطوعك بعناية وهو يتبع الإجراء. هل يرتكب أيّ أخطاء؟ إذا كان الأمر كذلك، عند أي خطوة أو خطوات من برنامجك تحدث الأخطاء؟ سجل تلك الخطوات والمشكلات التي حدثت.
  • عليك الآن ’معالجة أخطاء‘ برنامجك عن طريق تصحيح العيوب أو الأخطاء الموجودة في الكود. وبناءً على ملحوظاتك حول أية أخطاء ترصدها، اكتب نسخةً جديدةً من برنامجك واطلب من المتطوع المحاولة مرة أخرى. هل يرتكب الأخطاء نفسها كما في المرة السابقة؟ هل ثمة أخطاء جديدة؟
  • كرر عملية معالجة الأخطاء إلى أن ينجح متطوعك في صنع شطيرة عادية من زبدة الفول السوداني والهُلام. كم عدد المحاولات التي استلزمها الأمر؟
  • إجراء إضافي: يمكنك أيضًا محاولة تنفيذ هذا المشروع باستعمال تعليمات منطوقة بدلًا من التعليمات المكتوبة.
  • إجراء إضافي: كَرِّر هذا المشروع مع مهمات منزلية أخرى، مثل غسل الصحون، وطي الملابس المغسولة، وتنظيف غرفتك.

الملحوظات والنتائج

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

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

التنظيف

يمكن لهذا المشروع أن يكون قد تَسبَّب في بعض الفوضى إذا كان هناك الكثير من العيوب في الكود. استعمل المناديل الورقية الرطبة لتنظيف أيّة انسكابات من زبدة الفول السوداني والهُلام.

 

استكشف المزيد

Program with Paper: A-Maze Your Friends with a Hand-Written Computer Program, from Scientific American
Build an Artificial Hand, from Scientific American
Study Skills Science: Investigating Memory Mnemonics, from Scientific American
Science Activities for All Ages!, from Science Buddies

This activity brought to you in partnership with Science Buddies