لماذا يجب أن نعلّم أطفالنا البرمجة؟

الأربعاء 17 شباط 2016
children programming

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

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

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

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

البرمجة طريقة تفكير منظمة

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

إذا (كانت الإشارة خضراء و كان الشارع خاليًا من المشاة) {
عليك بعبور الشارع
}

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

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

تجزئة المشاكل وتبسيطها

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

تكمن بداية الجواب في مبدأ التجريد (Abstraction). يقوم هذا المبدأ على تقسيم المفاهيم التي يتم معالجتها بحسب تعقيدها وترابطها. فمثلًا عملية ترتيب الأرقام هي مبدأ يمكن عزله في Function (اقتران) يتم استدعاؤه وإعادة استخدامه كل ما اقتضت الحاجة دون إعادة كتابة التفاصيل مجددًا، على النحو التالي:

ترتيب الأرقام (5 3 4 1){
نبدأ بمقارنة 5 بـ 3 وفي حال كون العدد الثاني أكبر من الأول نقوم بعكسهما، ثم نقارن 3 بـ 4 إلخ… }

في المرة القادمة التي نحتاج فيها للقيام بعملية ترتيب لسلسلة عددية، فلن نحتاج لكتابة التفاصيل مرة أخرى، بل نقوم فقط باستدعاء الـFunction مجددًا: ترتيب الأرقام (5 6 4 9).

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

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

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

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

* الصورة أعلاه لطالبات البرمجة في الصف الرابع في مدرسة الفرذخ في معان، الأردن.