Let's Learn it Together !

ِAn educational blog from FCIS'2011 students ..


هذا الموضوع مقسم كالتالى:
  1. تاريخ المسابقة ومراحلها.
  2. 5 ساعات من التحدى.
  3. فوائد المشاركة فى المسابقة.
  4. نصائح للفريق. 
 

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

بدأت ال ACM بتنظيم المسابقات البرمجية الجامعية العالمية " International Collegiate Programming Contest ICPC" منذ عام 1977, وتتكون المسابقة من ثلاث مراحل:
  1. Local Contest: ويتم بها اختيار الفريق الذى سيمثل الكلية.
  2. Regional Contest: ويتم بها اختيار الفريق الذى سيمثل الاقليم فى النهائيات العالمية, ونحن نتبع أقليم العرب وشمال أفريقيا "The Arab & North Africa Regional Programming Contest ANARC".
  3. World Finals: ويتسابق فيها الفرق المؤهلة من ال Regionals حول العالم, ويتم اختيار الفريق بطل العالم.
شعار المسابقة Think, Create, Solve, Observe & Get Balloon.



5 ساعات من التحدي :

مدة المسابقة 5 ساعات, كل فريق مكون من 3 أفراد وجهاز كمبيوتر واحد, وبالتالى فإن عدد أفراد الفريق يساوى 4 ... لا تستغرب, فجهاز الكمبيوتر فرد مهم جدا فى الفريق, ويجب استغلاله بصورة جيدة, حتى تتمكن من الفوز.
يتراوح عدد ال Problems فى المسابقة بين 8 - 12, يقوم الفريق بحلّ المسألة وارسال الكود عبر برنامج PC^2 لل Judge, وينتظر منه الرد اذا كان الحلّ صحيحا أم خطأ, اذا كان الحل صحيحا فان الفريق يحصل على بالونة.


 فى المسابقة يمكنك الاستعانة بأى Resources طالما أنها Hard Copy, يمكنك أستخدام أى كتب أو أوراق مطبوعة, وتمنع اى Soft Copy Resources, وممنوع استخدام اى الة الكترونية (معدا الكمبيوتر طبعا) مثل الالة الحاسبة والموبايل وال Flash Memory ... الخ.

عادة ما يتم استخدام برنامج Eclipse ك Editor للكتابة الكود فى المسابقة.
 

فوائد المشاركة فى المسابقة:

المشاركة فى مسابقات ال ACM له فوائد كثيرة منها:
  • معرفة طرق جديدة للتفكير.
  • التدرب على Techniques جديدة للبرمجة.
  • تعلم Algorithms جديدة والتدريب عليها.
  • الاستمتاع بالبرمجة, فجو المسابقات ممتع.
  • روح المنافسة والتحدى بين الزملاء.
  • التعرف على مبرمجين من بلدك, وأحيانا من أنحاء العالم اذا شاركت فى المسابقات الاقليمية والعالمية.

نصائح للفريق:

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

هنا نسخة PDF من المقال.


    يعتبر برنامج PC^2 أهم ما فى مسابقات ال ACM, وذلك لأن عن طريقه يمكن أدارة المسابقة من كافة النواحى, ويعتبر قناة الوصل الوحيدة بين المتسابقين "Teams" والحكّام "Judges".

    وفى هذا الموضوع سنتناول الاتى :
    • كيفية الدخول الى البرنامج.
    • ارسال الحلول "Submit".
    • نتائج الحلول "Run Results".
    • التوضيحات والأسألة "clarification".
    • تغير ال Password.
    • ال Score Board.



    كيفية الدخول الى البرنامج :


    1- ادخل على الجزء المخصص لل Teams من البرنامج.


    2- أكتب أسم ال Team وال Password, غالبا ما يكون اسم ال team هو "Team + Number", سيعطى لك ورقة بها اسم ال Team وال Password.



    ارسال الحلول"Submit" :



    1. تأكد من أسم فريقك, فى هذا المثال اسم الفريق "FCIS Champion".
    2. عداد تنازلى يحسب الوقت المتبقى من المسابقة, تأكد من أنك تتابعه جيدا, لأن فى تلك المسابقات الوقت من ذهب.
    3. Problem : أذا أردت أن ترسل حلّ لمسألة, أختار اسم المسألة من هنا.
    4. Language : اختار لغة البرمجة التى ترسل بها كود المسألة, اللغات المتاحة فى الغالب هى C, C++, Java.
    5. Main File : اختار ال File الذى يحتوى على كود المسألة.
    6. Test : قبل أن ترسل الكود تأكد من أنه يعمل ولا يحتوى على أى Compile Error, ولكن أحيانا هذه الخاصية لا تعمل فى بعض المسابقات.
    7. Submit : أرسل الكود الى ال Judge.
    بعد عمل Submit ستظهر لك رسالة تاكيدية, بها اسم ال Team, وأسم ال Problem, وPath ال File الذى يحتوى على الكود, ولغة البرمجة التى أرسلت بها الكود.


    تأكد أن كل البيانات صحيحة ثم Submit.

    بعد ارسال الحلّ ستصل لك رسالة تفيد بأنك قد أرسلت الكود ووصل الى ال Judge بصورة صحيحة.



    اذا لم تصلك هذه الرسالة, فتأكد من أن الكود قد تم ارساله من "Runs".


    اذا تم ارسال الكود فستجد اسم ال Problem , وستجد ال Status لها New, وهذا يعنى أنك أرسلت المسألة ولم يصلك حتى الأن رد اذا كانت المسألة صحيحة أم لا.

    قائمة Run ستجد بها نتائج كل الحلول التى أرسلتها أثناء المسابقة, وبها أيضا الوقت الذى أرسلتها به.


    نتائج الحلول"Run Results" :


    عندما ينتهى ال Judge من معرفة اذا كان الحل الذى أرسلته صحيح أم لا, بإدخال File به Input معيّن لكودك, ومقارنة ال Output الخارج من الكود الذى أرسلته, بال Output الصحيح, يرسل لك رسالة بها نتيجة الحلّ الذى أرسلته.

    "Yes" فقط هى الرسالة الوحيدة التى تعنى أن الكود الذى أرسلته صحيح.



    التوضيحات والأسألة "Clarification" :


    أثناء المسابقة, إذا أردت أن تستفسر عن أى شئ فى أى مسألة, أو أن تسأل سؤالا تقنيا, أو أى سؤال آخر, يمكنك أرسال Clarification الى ال Judges, وهم سوف يجيبوا على استفسارك.

    1- اختر Request Clar.


    2- اكتب سؤالك واختار اسم ال Problem إذا كان سؤالك حول مسألة معينة, أو اختار General اذا كان سؤالك عام.
    واذا تم الرد على سؤالك سيتم ارسال رسالة لك مثل رسالة ال Run Result.



    لأظهار أى Clarification أضغط View Clarification.




    تغير ال Password :


    اذا أردت تغير ال Password المستخدمة لدخول فريقك الى البرنامج يمكنك تغيرها من Settings.


    ولكن لا ننصح بهذه الخطوة, لأنها قد تتسبب فى بعض المشاكل اذا نسيت ال Password الجديد.



    ال Score Board :


    صفحة بها ملخص لنتائج الفرق المشتركة فى المسابقة, وتكون مرتبة حسب الأكثر حلاً, ثم الأقل وقتا, وهذه الصفحة تتجدد تلقائيا أول 4 ساعات من المسابقة, والساعة الخامسة والأخيرة تسمى "Freeze Hour", وفيها لا تتجدد ال Score Board.

    A, B, C, ..... , H ترمز الى أرقام المسائل, وبجوار كل فريق تجد عدد المسائل الذى قام بحلّها (Solved), والوقت الذى استغرقه فى حلّ كل المسائل (Time), وتحت كل مسألة يُكتب (عدد مرات ارسال الحلّ / الوقت الذى استغرقه فى الحلّ).



    يتم حساب الوقت لكل مسألة من بداية المسابقة, فمثلا فريق CSC06 قاموا بحلّ المسألة E بعد 84 دقيقة من بداية المسابقة, ثم C بعد 225 دقيقة من بداية المسابقة.

    فى حالة ارسال حلّ خاطئ مرة أو أكثر, وبعد ذلك مرة صحيحة, فأن وقت حلّ المسألة يضاف اليه Penalty Time ويكون 20 دقيقة زائدة عن كل Submission خاطئ, مثال على ذلك فرق CSC06 قاموا بارسال المسألة G مرة خاطئة والثانية صحيحة, وأرسلوا الحلّ الصحيح بعد 140 دقيقة من بداية المسابقة, يضاف عليهم 20 دقيقة Penalty, اذن الوقت المحتسب للمسألة 160 دقيقة.

    لاحظ أن الوقت الكلّى للTeam يضاف اليه فقط وقت المسائل التى حصل ال Team بها على Yes.

    ال Score Board مفيدة للغاية, يمكنك من خلالها معرفة المسائل التى قام بحلّها كل الفرق, وغالبا ما تكون المسائل الأكثر سهولة هى الأكثر حلاً.


    ملحوظة : هنا نسخة PDF من المقال.