البرمجة كرياضة: ماذا تفعل للفوز بالمسابقات

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



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





نهائيات مسابقة برمجة فريق الطلاب ICPC لعام 2016 (المصدر: ICPC Live)



Andrey Chumachenko - مؤسس وقائد مجتمع البرمجة في إيركوتسك ، طالب ماجستير في ISU في المعلوماتية الأساسية ، الفائز في الدور نصف النهائي من بطولة العالم للطلاب في برمجة ICPC - 2018 ، 2019 (بين بلدان رابطة الدول المستقلة) ، الفائز في أولمبياد All-Siberian الذي يحمل اسم I.V. بوتوسينا - 2018 ، 2019 (بين بلدان رابطة الدول المستقلة) ، الفائز في الدور ربع النهائي من بطولة العالم الطلابية في البرمجة (بين طلاب شرق سيبيريا) - 2018 ، 2019 ، الفائز في Altai Universiade في البرمجة - 2019 (بين الطلاب وأطفال المدارس في روسيا) ، المتأهل النهائي لبطولة البرمجة BSUIR - عام 2018 ، لفت أندري



انتباه الرادارات لدينا عندما أجرى دورة مكثفة مجانية حول مشاكل البرمجة الرياضية في Irkutsk Boiling Point... نظرًا لأن الموضوع ساخن ، قررنا معرفة كل شيء بالتفصيل.





مع ماذا يؤكل



- ما هي "البرمجة الرياضية" وما هي المهام التي يقومون بحلها هناك الآن؟



- بالنسبة لي ، هذه في المقام الأول مسابقة ، وإعداد لهم ، وبالطبع مجتمع خاص من الناس.



بعد كل شيء ، البرمجة لشخص ما مثل البياتلون لـ Shipulin: رياضة حقيقية ، شغف ، نار.


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





2016 ، فاز طلاب UrFU للتو في بطولة البرمجة الدولية Challenge 24 في بودابست. ثم دخلت سبعة فرق من روسيا المراكز العشرة الأولى (المصدر: codeforces.com)



- ما هي اللغة الأكثر شيوعًا في البرمجة الرياضية اليوم؟ صديقي في موسكو بولي في المعلوماتية التطبيقية (2330) درس البرمجة الرياضية كموضوع واجتاز الاختبار. يقول كان رائعا. تنافسوا مع زملائهم الطلاب وأرسلوا المهام إلى spoj.pl (spoj.com) ، وكتبوا في Ruby on Rails.



- اللغة تنافسية للغاية. غالبًا ما ألتقي بـ C ++ ، كما أن Java و Python شائعة أيضًا. اكتسبت Kotlin "المبتدئ" الآخر زخمًا مؤخرًا. نادرًا ما يتم استخدام Ruby on Rails أو Ruby فقط ، ولكن في بعض المسابقات كانت مدرجة في قائمة اللغات المدعومة. أنا نفسي أكتب دائمًا بلغة C ++ ، وكذلك طلابي. يبدو لي أنه الأكثر ملاءمة عندما تحتاج إلى ترميز شيء ما بسرعة.





اللغات الأكثر استخدامًا في المسابقات





كيف تستعد للفوز



- حدثنا عن الاستعدادات للمسابقة. ربما لديك أسرارك.



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



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


ثم نقوم بتتبع التقدم ، ومقارنة النتائج ، وإعداد استخلاص المعلومات لنكون أكثر نجاحًا في الجولة التالية.





أرشيف مشاكل الأولمبياد codeforces.com



نلقي نظرة أيضًا على acm.timus.ru - أكبر أرشيف لمشاكل البرمجة في روسيا بنظام فحص تلقائي. ظهرت الكثير من الأشياء على YouTube الآن ، لكننا لا نستخدمها بشكل مستمر. إذا كنت مهتمًا ، يمكنني أن أنصح مبرمجًا بولنديًا رائعًا تحت الاسم المستعار Errichto من هناك ، فلديه قناته الخاصة ، حيث يمكنك البحث عن مجموعة من الأشياء المفيدة.





القناة الثانية للمبرمج البولندي تحت الاسم المستعار Errichto على موقع يوتيوب



حسنًا ، والكتب بالطبع بدونها: "فن البرمجة" لدونالد كنوث ، على سبيل المثال. أو “مشاكل برمجة الأولمبياد. دليل التحضير للمسابقة "لستيفن سكيينا وميغيل ريفيلّا.


خارقة الحياة للمشارك



- طيب ما الذي يمنعك من الفوز بأولمبياد البرمجة الرياضية؟



- لعل عدو كل الطلاب هو الكسل (مجرد مزاح). لكن على محمل الجد ، تحتاج إلى التركيز على المهام وإيقاف تشغيل جزء الدماغ المسؤول عن جميع أنواع الشؤون اليومية لفترة وجيزة.



كما أنه ضار جدًا أن تتدرب في الليلة السابقة للمنافسة ، خاصة إذا لم تكن مستعدًا لمدة عام.


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



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



- ماذا عليك أن تفعل للفوز؟



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



متى تصبح مبرمجا



- حدثنا عن مسارك في البرمجة الرياضية.



- أعتقد أنني بدأت في الانغماس في هذا الموضوع في وقت متأخر نوعًا ما: فقط في الصفوف العليا من المدرسة بدأت بجدية في دراسة C ++ والمشاركة في الأولمبياد التي تنظمها جامعات إيركوتسك. بعد ذلك ، بعد أن دخلت وحدة ISU بالفعل ، قابلت مدرسًا دعم حركة البرمجة الرياضية ، وبدأت الدراسة معه. لذلك ، شيئًا فشيئًا ، لم تعد البرمجة الرياضية بالنسبة لي مجرد هواية ، فقد أخذت الأمر على محمل الجد وبدأت في المشاركة بنشاط في المسابقات وتطورت إلى مدرب.





أندريه يفحص إحدى مشكلات الأولمبياد في معسكر التدريب في أغسطس في إيركوتسك



- هل تعتقد أن الوقت قد فات للبدء في المدرسة الثانوية؟ هل يمكن حقًا مقارنة البرمجة برياضة احترافية ، حيث يتم إرسال الأطفال تقريبًا من سن الثالثة؟



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



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


لذلك ، كلما كان ذلك أفضل.



الامتحان موضوع مؤلم



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



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



أما بالنسبة لامتحان الدولة الموحدة ، فهذا موضوع مؤلم. هنا يمكنني أن أحكي قصة مقال آخر.



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



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



الآن يمكنك دخول الجامعات بناءً على نتائج الأولمبياد. وهذا أمر رائع بالنسبة للطلاب المتفوقين ، بنسبة 10٪. ماذا عن البقيه؟ فقط الامتحان.


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



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



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



- ألا ترى صورة نمطية مماثلة في تقييم المعرفة في برمجة الأولمبياد؟ أم أن كل شيء مختلف هناك؟



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



لماذا يتعلم أطفال المدارس البرمجة الرياضية



- ما الدافع لدى الطلاب وأطفال المدارس للانضمام إلى مجتمعات البرمجة الرياضية والمشاركة في الأولمبياد؟ ماذا يمكن أن تعلمهم البرمجة الرياضية ، وما هي المهارات التي تساعد على تطويرها؟



- الدافع مختلف تمامًا: جاء شخص ما لتعلم لغة برمجة والحصول على مزيد من الممارسة والمعرفة بالخوارزميات ، لذلك أراد شخص ما تجربة نفسه وقوته (المشاركة في الأولمبياد اختبار آخر). يقوم البعض بجمع محافظ للقبول في الجامعة أو للعمل في المستقبل ، ويريدون أن تلاحظهم شركات تكنولوجيا المعلومات أثناء المنافسة. هناك من يأتون من أجل التواصل ودعم المجتمع وتطويره.



. , , .


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



- ماذا تفعل في مجتمع البرمجة الرياضية الخاص بك؟



- اليوم أقوم بتدريب الطلاب ونذهب إلى الأولمبياد والمسابقات في البرمجة الرياضية. من بين طلابي الفائزون بجوائز ربع نهائي بطولة العالم الطلابية في البرمجة (بين طلاب شرق سيبيريا) 2019 ، الفائزون بجوائز الموقع السيبيري للدور قبل النهائي لبطولة العالم للطلاب في برمجة ICPC 2019 ، الفائزون بجوائز Altai Universiade في البرمجة -2019 ، الفائزون بنهائي Pottosin Olympiad 2018 و 2019.



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



أحاول أيضًا بناء علاقات مع شركات تكنولوجيا المعلومات من أجل الحصول على فرص عمل لطلابي.



بالإضافة إلى ذلك ، نحن ننظم مسابقات برمجة ، ومنذ وقت ليس ببعيد عقدنا مسابقة مكثفة استمرت 11 يومًا. كانت هناك مسابقة كل يوم تقريبًا لمدة خمس ساعات ، يتبعها تحليل المشكلات - ما يسمى بالعمل على الأخطاء ، والمحاضرات (نظرية صغيرة حول الخوارزميات). عملت أنا وصديقي من MEPhI كمدربين. كان المشاركون في الدورة المكثفة من تلاميذ المدارس من مركز تدريب ENTER Olympiad من أولان أودي (جمهورية بورياتيا) وطلاب من إيركوتسك ، الذين يشاركون بانتظام في أولمبياد البرمجة الرياضية.











— . , , . : , , . — — , , . : ? — , , …



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



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



- شارك بقصص شيقة من المسابقة.



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



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






دقيقة من الإعلان عن مسرّع مشاريع الذكاء الاصطناعي



لدينا لقد بدأنا في قبول الطلبات الخاصة بـ Archipelago 20.35 - وهو برنامج تعليمي مكثف لأولئك الذين يصنعون مشاريع باستخدام أساليب التعلم الآلي وتحليل البيانات. يمكن أن يكون المشروع تجاريًا أو اجتماعيًا أو علميًا - أو اكتب نسختك. في 20.35 Archipelago ، ستكون هناك فرصة كبيرة لترقية نفسك ومشروعك ، وتجميع فريق ، والحصول على منحة ، والعثور على راعٍ ، حيث أعربت صناديق التطوير والشركات التي تطبق الذكاء الاصطناعي عن اهتمامها بالتطورات.



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






All Articles