الهندسة والآليات > مهندسون مبدعون

المسابقة البرمجيّة للجامعيّين - ACM CPC تحدٍّ جديد للمبرمجين الشباب

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

انطلاقاً من هذا المبدأ تمّ إنشاء المسابقة البرمجية للجامعيّين

(ACM International Collegiate Programming Contest)

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

تشرف على المسابقة رابطة آلات الحوسبة

(ACM - Association for Computing Machinery)

مقرها مدينة نيويورك بالتعاون مع جامعة

Baylor University في ولاية تكساس وأيضاً شركة IBM.

تاريخ المسابقة :

يعود تاريخ المسابقة إلى عام 1970 حيث أقيمت أول مسابقة برمجيّة محليّة في جامعة Texas A&M في ولاية تكساس الأمريكيّة، وحتى عام 1989 ضمّت المسابقة بشكل رئيسي فِرَقاً من الولايات المتحدة الأمريكيّة وكندا، لكن منذ ذلك العام بدأت المسابقة بالتوسّع لتضم فرقاً من كافة أنحاء العالم. وفي عام 2005 ضمّت المسابقة العالميّة فرقاً من 84 دولة من كل أنحاء العالم، وتعد هذه المسابقة مركزاً لتجمع كبريات الشركات العالميَة التي تسعى لاقتناص العقول المبدعة وتبنيها.

المشاركة في المسابقة؟ وكيفية التأهل للمسابقة العالميّة؟

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

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

كما يتمّ أيضاً دعوة بعض الفرق القويّة ذات التصنيف العالي إلى النهائيات العالميّة (يحدّد ذلك من خلال مشاركات هذه الفرق السابقة وحلّها لعدد كبير من المسائل بالإضافة إلى العديد من المؤهلات الأخرى... ). لا يمكن أن يزيد عدد الفرق المشاركة عن 128 فريق.

طبيعة المسائل المطروحة:

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

C++ ،C ،Java

وعلى المتسابقين حلّ أكبر عدد من المسائل خلال خمس ساعات هي مدّة المسابقة، وعند حلّ أي مسألة يتمّ إرسالها للحكام عبر الشبكة.

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

كيف يتم احتساب النقاط وتحديد الفائز في المسابقة؟

الفائز في المسابقة هو الّذي يحلّ أكبر عدد من المسائل، وفي حال تماثل عدد المسائل المحلولة بين الفرق الأولى يتم اختيار الفريق الّذي استغرق أقل وقت ممكن لحل المسائل.

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

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

والكتابة بلغات البرمجة تتطلب الكثير من الدقة ، في استخدام الأقواس وعلامات الترقيم لذلك فإنّ نسيان أيِّها يمكن أن يسبب إرسالاً خاطئ للبرنامج، وهذه هي أكثر مشكلة شائعة في المسابقة وتواجه معظم الفرق، لذلك تعدّ الدقة أهم عوامل المشاركة في هذه المسابقة.

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

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

مشاركات سوريا في المسابقة:

تقيم سوريا المسابقة الوطنيّة البرمجيّة للجامعيّين منذ عام 2011، وشاركت في المسابقة العالميّة ثلاث مرّات أوّلها عام 2013 وحصلت على المرتبة 95، ومن ثمّ العام الّذي يليه بالمرتبة 84 وكانت آخر مشاركة لها حتى الآن عام 2015.

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

وتأتي الأهمية الكبيرة لهذه المسابقة بأنها تؤمن لطلاب المرحلة الجامعية اللقاء بأهم الشركات المحلية والعالميّة وبالتالي تأمين فرص عمل لهم والتي من خلالها قد يتم تبنيهم من قبل هذه الشركات.

للاطلاع على شروط المسابقة الإقليمية:

هنا

للاطلاع على شروط المسابقة العالميّة:

هنا

للتعرّف أكثر على أجواء المسابقة يمكن متابعة الفيديو التالي

كما يمكنكم مشاهدة الفيديو التالي للتعرف على التحضيرات للمسابقة الوطنية السوريّة

المصدر:

هنا