7 ساعات من البرمجة: تجربتي في مسابقة AlCPC

كانت لي الفرصة للمشاركة في أحد أفضل المسابقات البرمجية في الجزائر، وهي مسابقة AlCPC Algerian Collegiate Programming Contest هذه المسابقة نظمتها جامعة خنشلة، وهي مؤهلة للمسابقة العربية للبرمجة التي تقام في مصر. سأحكي لكم عن تجربتي في هذه المسابقة وما تعلمته منها.

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

المسابقة استغرقت 7 ساعات مقسمة إلى قسمين، في البداية كان لدينا ساعتين للتدريب من خلال حل 5 مسائل برمجية، ارتكبنا القليل من الأخطاء هنا من بينها عدم العمل كفريق وكنا مشتتين في العمل، لأنها المرة الأولى التي نشارك فيها معا، بعد الانتهاء بدأت المسابقة المتكونة من 5 ساعات، وكان علينا حل حوالي 10 تمرين برمجي. الأسئلة كانت متنوعة في الصعوبة والموضوعات، وبعضها كان يتطلب فكرة إبداعية أو خوارزمية معقدة. في هذه المرحلة تداركنا الأخطاء و حاولنا حل الأسئلة بأفضل طريقة ممكنة، وكان لدينا تواصل جيد بيننا. استخدمنا لغة Python وPycharm لكتابة وتجربة الأكواد، وأرسلنا حلولنا إلىOnline Judge (OJ) لتقييمها. كان هناك لوحة تحكم تظهر ترتيب الفرق حسب عدد الأسئلة التي حلوها وزمن إرسالها.

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

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

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

لذا هل تعتقد أنه يجب تضمين مسابقات البرمجة كجزء من مناهج الجامعات والتعليم العالي لتعزيز مهارات الطلاب في مجال البرمجة والحوسبة؟

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

وهل تعتقد أنه يجب أن يكون الفوز هو الهدف الرئيسي في المسابقات البرمجية، أم يمكن أن تكون التجارب الفاشلة أيضا قيمة؟

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

وهل تعتقد أنه يجب أن يكون الفوز هو الهدف الرئيسي في المسابقات البرمجية، أم يمكن أن تكون التجارب الفاشلة أيضا قيمة

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

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

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

و نحن عازمون في المسابقات القادمة على عدم تكرارها، 

لكن هل يمكن أن تبقوا فريق واحد في المسابقات القادمة، لأنه تعارفكم كفريق وتدربكم مع بعض يساعدم في الفوز في المرات القادمة، صحيح المرة الأولى تكون صعبة قليلة لكن المرات المستقبلية تكون أسهل، موفق في المرات القادمة.

لكن هل تقومون بالترب لوحدكم لأجل المسابقات القادمة أم تنتظرون حتى تأتي المسابقة؟

لا اعتقد اننا سنبقى في نفس الفريق، يمكن ان يتم تغيير العضو الغير مساعد في الفريق، اما من ناحية التدريب في الحقيقة لم نتدرب لانه لم نكن نعلم بالمسابقة من قبل و سجلنا في الدقائق الاخيرة و مشاركتنا كانت بلا تدريب، لذا حتى بدون الفوز و بما اننا كنا في المراكز لا اقول الاولى و لكن من ال 10 الاوائل من بين 50 فريق، اراه انجاز يعني.

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

 لذا هل تعتقد أنه يجب تضمين مسابقات البرمجة كجزء من مناهج الجامعات والتعليم العالي لتعزيز مهارات الطلاب في مجال البرمجة والحوسبة؟

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

وهل تعتقد أنه يجب أن يكون الفوز هو الهدف الرئيسي في المسابقات البرمجية، أم يمكن أن تكون التجارب الفاشلة أيضا قيمة؟

كونها اول مرة لكم، فمن الجيد ان تتعلموا من هذه التجربة، وتعرفون مواضع الضعف لتعالجوها، بجانب العمل تحت ضغط، فوضع وقت محدد للحل يضع الفرد منا تحت ضغط كبير وبالتالي هي مفيدة بكل الأحوال، والمرة القادمة تفوزون بالمركز الأول.

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

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

فمن الجيد ان تتعلموا من هذه التجربة، وتعرفون مواضع الضعف لتعالجوها، بجانب العمل تحت ضغط

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