اكاديميبرمجة

مُسابقات البرمجه – Competitive programming

إن كنت احد طُلاب تخصصات تكنولوجيا المعلومات في إحدى الجامعات فلا بدك أنك قد سمعت عن مُسابقات البرمجه من قبل كمُسابقه الـ ACM ICPC المشهوره. هذا المقال سيشرح عن محتوايات هذه المسابقات و انواعها و شروطها.

ما هي البرمجه التنافسيه ؟


هي احدى مهارات البرمجه التي لا تهتم بشكل رئيسي على تقديم البرمجيات المتكامله او البرامج ذات الفائده بالضروره، إنما تركز على القدره على حل المُشكلات البرمجيه(problem solving) و التي غالبا ما تحتاج الى مهاراتٍ منطقيه و رياضيه و إيجاد الخوارزميات لحلها.

تحتوي هذه الجزئيه على بعضٍ من رأي الكاتب

فوائد البرمجه التنافسيه

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

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

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

أهم المُسابقات البرمجية


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

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


1.ACM ICPC

اختصاراً لـ International Collegiate Programming Contest اي المُسابقه العالميه الجامعيه للبرمجه، و تعد هذه المُسابقه احدى أهم و أقدم المُسابقات البرمجيه حيث أنها بدأت منذ عام 1970 و تقوم بتنظيمها مؤسسة ACM.

القواعد:

  1. يسمح بمشاركة طُلاب الجامعات فقط
  2. تتم المشاركه على شكل افرقه، كل فريق يتكون من 3 اشخاص يتشاركون جهاز حاسوب واحد
  3. مدة المُسابقه 5ساعات لحل 8-12 سؤال
  4. يتم التنافس على شكل مراحل محدده حسب المنطقه الجغرافيه للجامعه التي تنتسب لها،مثال جامعه العلوم و التكنولوجيا الأردنيه موضح في الصوره
  5. الجوائز الماليه: فقط لاخر مرحله، موضحه في الصوره

2.IEEExtreme

IEEEXtreme contest

IEEExtreme و تقرأ إكستريم، هي عباره عن هاكثون يقام سنوياً انطلق أول مره عام 2006 و يتم تنظيمه من قِبل معهد مهندسي الكهرباء والإلكترونيات (IEEE). توصف هذه المُسابقه بأنها أسهل نسبيا بالرغم من احتوائها على اسئله أكثر نسبيا.

القواعد:

  1. يسمح بمشاركة أي عضو في مؤسسة IEEE بغض النظر عن حالته الجامعيه
  2. يتكون كل فريق من 3 أعضاء
  3. تستمر مُدة المُسابقه لـ24 ساعه تبدأ تمام الساعه 00:00 حسب التوقيت العالمي UTC، يتم طرح سوال جديد كل ساعه.
  4. الجوائز متغيره و تكون غالبا غير ماليه، ويحصل اول 10 فائزين على هذه الجوائز. الجائزه للفريق الاول هي عباره عن رحله مدفوعة التكاليف إلى احد مقرات IEEE الرئيسيه

كيف أستعِد للمُسابقات


هل تريد اختراق ناسا و اكتشاف سر المنطقه 51؟. تحتاج مُسابقات البرمجه الى مهاراتٍ متنوعه من البرمجه و الرياضيات و المنطق و تختلف مستوياتها حسب قوة المُسابقه و مرحلتها، و بشكلٍ عامٍ غالبا ما يتم استعمال لُغة سي بلس نظراً لأدائها العالي في هذه المُسابقات.
بعد إتقانك للغة سي بلس، هذه بعض المواضيع التي تحتاج لدراستها: (ليس بالترتيب)

  • هياكل البيانات -Data Structures
  • نطرية الأعداد – Number theory
  • خوارزميات البحث و غيرها – Search Algorithms, Greedy Algorithm
  • البرمجه الديناميكيه – Dynamic Programming

و غيرها الكثير الكثير من المواضيع، لكن لا تقلق ليس عليك ان تتعلم كل شيء لتتأهل للمستوايات المتوسطه في المسابقات. تعد هياكل البيانات الأساسيه (Basic Data structures) هي الخطوه الاولى للغوص في مُسابقات البرمجه حيث أنها ضروريه لحل كل المُشكلات تقريبا، يمكنك تعلمها من خلال سلسلتنا التعليميه من هنا قريباً ?

بعض المواقع المُفيده جداً للتدريب على الأسئله البرمجيه و تعلم الطرق البرمجه و غيرها:


المصادر:

1)About-ICPC
2)Codechef-ICPC prizes
3)IEEExtreme Rules

Ahmad Shawkat AL-Momani

CPE Student at JUST, IT lover :))

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

برجاء دعمنا عن طريق تعطيل إضافة Adblock