الجمعة، 19 أغسطس، 2011

البرمجة للأطفال (2) : المهارات اللازمة قبل البدء

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

أولاً : مهارات التفكير المنطقي وحل المشكلات :

نقصد بالتفكير المنطقي القدرة على :

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

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

  • ماهي المشكلة ؟ ( سمعت إجابات مثل : ضياع الماء ، هدر المال ، التبذير … الخ )
  • ماهي أسباب المشكلة ؟ ( صدأ الحديد ، عدم الصيانة ، التبخر ، أعمال التخريب … )
  • كيف نحل المشكلة ؟ ( نعمل صيانة للأنابيب ، نصمم روبوت داخل الأنبوب يجد مكان التسرب ، نغير الأنابيب كاملة … )

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

المقصود هو أن يعرف الطالب كيف يحلل المشكلة بطريقة منطقية وأن يختار الطريق الأفضل لحلها .

ثانياً : مهارات إعطاء الأوامر :

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

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

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

ثالثاً : مهارة رسم المخطط الانسيابي FlowChart :

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

رابعاً : مهارة العمل الجماعي :

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

teamwork

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

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

سعدت جداً بالتواصل الكبير بعد التدوينة السابقة ، منهم الزميل أنس من مصر، لديهم مشروع مماثل لتعليم البرمجة للأطفال بمستويات ومناهج متعددة ، سعدت جداً بوجود مثل هذا الفكر لدى شبابنا ، بإمكانكم الاطلاع على المزيد عن مجموعتهم من هذا الرابط http://p4y.lvadonline.com/

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

ليست هناك تعليقات:

إرسال تعليق

تستطيع التعليق أخي المشاهد للمدونة :)