:: كل المقالات ::

Tue, 13 Dec 2016

تجربة مختصرة مع مشروع اويلر

بسم الله الرحمن الرحيم
  الكثير من القراء الكرام يعرفون موقع مشروع اويلر ، و لمن لا يعرفه فهو موقع يقدم مسائل تعتمد على الرياضيات و البرمجة لحلها .. للمزيد من المعلومات :
http://www.projecteuler.net
طبعا تعرفت على الموقع منذ زمن طويل و لكن لم اشارك الا قريبا جدا لانني كنت ابحث عن تحد جديد .. في الوهلة الاولى اعجبتني فكرة الموقع مسائل تحتاج رياضيات و برمجة هذا شيء جميل جدا و مثير للاهتمام .. علاوة على ذلك يعطون وساما بعدد المسائل التي حللتها .
اردت ان اخذ فكرة اجمالية عن الوضع فذهبت الى الاحصائيات عن لغات البرمجة المستخدمة و عن الدول التي ينتمي اليها الاعضاء .. و من المؤسف و ربما من المعتاد ان ارى دولتي المملكة العربية السعودية لا تتمتع بمشاركين كثر و مستوى الحلول ايضا متدني فأعلى شخص لدينا حل 102 مسألة و الـ 6 الاوائل فقط هم من وصلوا الى بحر الـ 50 مسألة من مجموع كلي وصل الى 42 عضوا فقط .. هذا قليل ، قليل جدا .
فبدأت رحلة الحل بنشاط جيد فكنت احل في اليوم 3 – 5 مسائل على حسب الفراغ الذي اتحصل عليه و ذلك في محاولة لتكثير السواد العربي على هذا الموقع و كنت اطمح للمواصلة و لكنني الان توقفت عند حاجز الـ 50 مسألة و لا اعتقد اني سأواصل الا اذا كنت سأسترق لي دقائق للتسلية بين الفينة و الاخرى ..
اما الاسباب فببساطة :
1-  عندما علمت ان الحلول متناثرة و جاهزة للغش على الانترنت لم يعد هناك ميزة للانجاز .. أقصد مثلا الان لو نشاهد اعضاء دولة معينة هل يعني ذلك شيئا؟ لا، فربما الكثير منهم مجرد سارق للاجابات .. لا ادعي طبعا ان لا احد يستطيع حل المسائل الا بالغش و لكن اقول عندما تبقى هناك احتمالية في ان العضو غش ان لم يكن كليا فلنقل جزئيا ..  يعني انه لا يحق لي ان استشهد بحلولي كانجاز لانها لن تعني لاحد شيئا الا الاشخاص الذين يعرفونني  شخصيا و يعرفون انني احل المسائل بنفسي و هؤلاء عادة لا يحتاجون ان اثبت لهم شيئا :)…
2-  السبب الثاني هو كون المسائل متفرقة جدا يجعلها نوعا من الالغاز و كلنا نعرف ان الالغاز تمل بسرعة .. أقصد انني لن اخرج بشيء مميز عندما انهي حل كل المسائل لانها ليست متسلسلة تسلسلا يجعلها تبني على بعضها كما يحصل في الدورات مثلا بل تكون حالها كحال من ينتقي من هنا و هناك و في النهاية المحصلة معلومات مشتتة من هنا و هناك .
و هنا خلاصة لبعض النقاط التي تعلمتها من المشروع :
1-  لا تحتاج المسائل الى معرفة عميقة في الرياضيات (مثلا انا لم ادرس الرياضيات و جئت من خلفية ادبية و لكنني استطعت حل الكثير من المسائل بدون اي صعوبات ) و لكن ما تحتاجه هو معرفة اجمالية بالرياضيات و في حالة ان المسألة تحتوي على مفاهيم جديدة ترجع الى الويكيبيديا و تقرا عن النظرية المرتبطة .
2-  ايضا لا تحتاج ان تكون مبرمجا خبيرا ، بعض المسائل مجرد رياضيات صرفة ستفي بالغرض ، و لكن من خلال حلولي و اطلاعي على بقية المسائل لم ار هناك صعوبة في البرمجة فأي شخص لديه الاساسيات يستطيع ان يكتب الحلول .
3-  تحتاج احيانا الى مكتبات مساعدة لتسريع عملية حل بعض المسائل ، و هذه عادة مكتبة الاعداد المرافقة للغة البرمجية .
4-  في الموقع الرسمي يقولون ان البرنامج من المفترض ان لا يتجاوز اكثر من دقيقة لايجاد الحلول .. اي ان البرنامج الذي يأخذ اكثر من دقيقة يحتاج الى اعادة صياغة من ناحيته الخوارزمية .. و انا اضيف ان الحل من المفترض ان يكون قصيرا في الاسطر البرمجية و اذا رايت انك تكتب العشرات من السطور فالاغلب ان هناك مشكلة ما في فهمك للمسألة .
الان ارجو ان لا يفهم من كلامي انني لا اؤيد المشاركة في الموقع بل على العكس اتمنى ان يشارك اكبر عدد ممكن من العرب كي نضع بصمة في مثل هذه المواقع.
لكن بالنسبة لهواة البرمجة لا اعتقد ان الموقع يقدم الشيء الكثير فالمسائل بعيدة  عن البرمجة الحقيقية ، و اعتقد ان كثيرا من المبرمجين خاصة من هم في جانب الويب و الموبايل و غيره لن يستطيعوا حل الكثير من هذه الاسئلة لانها ببساطة عن الخوارزميات الرياضية اكثر منها عن البرمجة الواقعية فمثلا مبرمج الويب لا يحتاج ان يعرف شيئا من هذه المسائل و لن يستفيد من الاكواد التي كتبها في حل هذه المسائل بتوظيفها في برامج واقعية لاحقا الا ما ندر جدا… بعبارة اخرى المسألة اشبه بالالغاز النظرية من كونها مسائل برمجية واقعية .. لذلك اخالف البعض ممن يقول للمبتدئين تعلم لغة برمجتك الجديدة من خلال حل مسائل مشروع اويلر ؟! الفائدة لن تخلو هذا اكيد و لكن يمكن التعلم بطرق اكثر عملانية و انتاجية .
اما انا شخصيا فبدأت العمل على مشروع اكثر تحد و اثارة …
دمتم في الرضا