प्रतिस्पर्धी प्रोग्रामिंग: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Mind sport}} {{third-party|date=February 2018}} 300px|thumb|[[पेटर मित्रीचेव (बाए...")
 
No edit summary
Line 1: Line 1:
{{Short description|Mind sport}}
{{Short description|Mind sport}}
{{third-party|date=February 2018}}
[[File:ЯндексАлгоритм.jpg|300px|thumb|[[पेटर मित्रीचेव]] (बाएं) और [[गेन्नेडी कोरोटकेविच]] (दाएं), एक प्रतियोगिता के दौरान दो प्रमुख प्रतिस्पर्धी प्रोग्रामर।]]प्रतिस्पर्धी प्रोग्रामिंग (जिसे स्पोर्ट्स प्रोग्रामिंग के रूप में भी जाना जाता है) सामान्यतः [[इंटरनेट]] या [[स्थानीय नेटवर्क]] पर आयोजित एक [[दिमागी खेल]] है, जिसमें प्रतिभागियों को दिए गए विनिर्देशों के अनुसार [[कंप्यूटर प्रोग्रामिंग]] की प्रयाश  करना सम्मिलित है। प्रतियोगियों को ''खेल प्रोग्रामर'' कहा जाता है। प्रतिस्पर्धी प्रोग्रामिंग को कई बहुराष्ट्रीय सॉफ्टवेयर और इंटरनेट कंपनियों, जैसे कि [[Google|गूगल]] और [[फेसबुक]] द्वारा मान्यता प्राप्त और समर्थित है।<ref>{{cite web|url=http://code.google.com/codejam|title=Google कोड जाम|work=google.com|accessdate=2016-02-20}}</ref><ref>{{cite web|url=http://community.topcoder.com/tco12/overview-sponsor/tco12-sponsor-google/ |title=TCO12 Sponsor: Google - TCO 12 |work=topcoder.com |url-status=dead |archiveurl=https://web.archive.org/web/20120216103218/http://community.topcoder.com/tco12/overview-sponsor/tco12-sponsor-google/ |archivedate=February 16, 2012 }}</ref><ref>{{cite web|url=http://www.facebook.com/hackercup|title=फेसबुक हैकर कप|work=Facebook|accessdate=2016-02-20}}</ref>
[[File:ЯндексАлгоритм.jpg|300px|thumb|[[पेटर मित्रीचेव]] (बाएं) और [[गेन्नेडी कोरोटकेविच]] (दाएं), एक प्रतियोगिता के दौरान दो प्रमुख प्रतिस्पर्धी प्रोग्रामर।]]प्रतिस्पर्धी प्रोग्रामिंग (जिसे स्पोर्ट्स प्रोग्रामिंग के रूप में भी जाना जाता है) आमतौर पर [[इंटरनेट]] या [[स्थानीय नेटवर्क]] पर आयोजित एक [[दिमागी खेल]] है, जिसमें प्रतिभागियों को दिए गए विनिर्देशों के अनुसार [[कंप्यूटर प्रोग्रामिंग]] की कोशिश करना शामिल है। प्रतियोगियों को ''खेल प्रोग्रामर'' कहा जाता है। प्रतिस्पर्धी प्रोग्रामिंग को कई बहुराष्ट्रीय सॉफ्टवेयर और इंटरनेट कंपनियों, जैसे [[Google]] द्वारा मान्यता प्राप्त और समर्थित है<ref>{{cite web|url=http://code.google.com/codejam|title=Google कोड जाम|work=google.com|accessdate=2016-02-20}}</ref><ref>{{cite web|url=http://community.topcoder.com/tco12/overview-sponsor/tco12-sponsor-google/ |title=TCO12 Sponsor: Google - TCO 12 |work=topcoder.com |url-status=dead |archiveurl=https://web.archive.org/web/20120216103218/http://community.topcoder.com/tco12/overview-sponsor/tco12-sponsor-google/ |archivedate=February 16, 2012 }}</ref> और [[फेसबुक]]।<ref>{{cite web|url=http://www.facebook.com/hackercup|title=फेसबुक हैकर कप|work=Facebook|accessdate=2016-02-20}}</ref>
एक प्रोग्रामिंग प्रतियोगिता में सामान्यतः होस्ट सम्मिलित होता है जो तार्किक या [[गणितीय समस्या]]ओं का एक सेट प्रस्तुत करता है, जिसे [[पहेली]] या चुनौतियों के रूप में भी जाना जाता है, प्रतियोगियों के लिए (जो दसियों या सैकड़ों से कई हजारों की संख्या में भिन्न हो सकते हैं)। प्रतियोगियों को इन समस्याओं को हल करने में सक्षम [[कंप्यूटर प्रोग्राम]] लिखने की आवश्यकता होती है। जजिंग अधिकतर हल की गई समस्याओं की संख्या और सफल समाधान लिखने में लगने वाले समय पर आधारित होती है, किंतु इसमें अन्य कारक भी सम्मिलित हो सकते हैं (उत्पादित आउटपुट की गुणवत्ता, निष्पादन समय, मेमोरी उपयोग, प्रोग्राम का आकार, आदि)।
एक प्रोग्रामिंग प्रतियोगिता में आम तौर पर मेजबान शामिल होता है जो तार्किक या [[गणितीय समस्या]]ओं का एक सेट प्रस्तुत करता है, जिसे [[पहेली]] या चुनौतियों के रूप में भी जाना जाता है, प्रतियोगियों के लिए (जो दसियों या सैकड़ों से कई हजारों की संख्या में भिन्न हो सकते हैं)। प्रतियोगियों को इन समस्याओं को हल करने में सक्षम [[कंप्यूटर प्रोग्राम]] लिखने की आवश्यकता होती है। जजिंग ज्यादातर हल की गई समस्याओं की संख्या और सफल समाधान लिखने में लगने वाले समय पर आधारित होती है, लेकिन इसमें अन्य कारक भी शामिल हो सकते हैं (उत्पादित आउटपुट की गुणवत्ता, निष्पादन समय, मेमोरी उपयोग, प्रोग्राम का आकार, आदि)।


== इतिहास ==
== इतिहास ==
ज्ञात सबसे पुरानी प्रतियोगिताओं में से एक [[अंतर्राष्ट्रीय कॉलेजिएट प्रोग्रामिंग प्रतियोगिता]] (आईसीपीसी) है जो 1970 के दशक में उत्पन्न हुई थी, और इसके 2011 संस्करण में 88 देशों को शामिल करने के लिए बढ़ी है।
ज्ञात सबसे पुरानी प्रतियोगिताओं में से एक [[अंतर्राष्ट्रीय कॉलेजिएट प्रोग्रामिंग प्रतियोगिता]] (आईसीपीसी) है जो 1970 के दशक में उत्पन्न हुई थी, और इसके 2011 संस्करण में 88 देशों को सम्मिलित करने के लिए बढ़ी है।


1990 से 1994 तक, [[ओवेन एस्ट्राचन]], विवेक खेरा और डेविड कोटज़ ने ICPC से प्रेरित पहली वितरित, इंटरनेट-आधारित प्रोग्रामिंग प्रतियोगिताओं में से एक का संचालन किया।<ref>{{cite journal |last1=Khera |first1=Vivek |last2=Astrachan |first2=Owen |last3=Kotz |first3=David |title=इंटरनेट प्रोग्रामिंग प्रतियोगिता|url=https://www.cs.dartmouth.edu/~dfk/papers/astrachan-contest.pdf |journal=ACM SIGCSE Bulletin |volume=25 |issue=1 |year=1993 |pages=48–52 |issn=0097-8418 |doi=10.1145/169073.169105}}</ref>
1990 से 1994 तक, [[ओवेन एस्ट्राचन]], विवेक खेरा और डेविड कोटज़ ने आईसीपीसी से प्रेरित पहली वितरित, इंटरनेट-आधारित प्रोग्रामिंग प्रतियोगिताओं में से एक का संचालन किया।<ref>{{cite journal |last1=Khera |first1=Vivek |last2=Astrachan |first2=Owen |last3=Kotz |first3=David |title=इंटरनेट प्रोग्रामिंग प्रतियोगिता|url=https://www.cs.dartmouth.edu/~dfk/papers/astrachan-contest.pdf |journal=ACM SIGCSE Bulletin |volume=25 |issue=1 |year=1993 |pages=48–52 |issn=0097-8418 |doi=10.1145/169073.169105}}</ref>
प्रतिस्पर्धी प्रोग्रामिंग में रुचि 2000 के बाद से हजारों प्रतिभागियों (#उल्लेखनीय प्रतियोगिताओं को देखें) में बड़े पैमाने पर बढ़ी है, और इंटरनेट के विकास से मजबूती से जुड़ी हुई है, जो भौगोलिक समस्याओं को दूर करते हुए अंतरराष्ट्रीय प्रतियोगिताओं को ऑनलाइन आयोजित करने की सुविधा प्रदान करती है।


== सिंहावलोकन ==
प्रतिस्पर्धी प्रोग्रामिंग में रुचि 2000 के बाद से हजारों प्रतिभागियों (या उल्लेखनीय प्रतियोगिताओं को देखें) में बड़े मापदंड पर बढ़ी है, और इंटरनेट के विकास से शक्ति  से जुड़ी हुई है, जो भौगोलिक समस्याओं को दूर करते हुए अंतरराष्ट्रीय प्रतियोगिताओं को ऑनलाइन आयोजित करने की सुविधा प्रदान करती है।
प्रतिस्पर्धी प्रोग्रामिंग का उद्देश्य उन कंप्यूटर प्रोग्रामों के स्रोत कोड लिखना है जो दी गई समस्याओं को हल करने में सक्षम हैं। प्रोग्रामिंग प्रतियोगिताओं में दिखाई देने वाली अधिकांश समस्याएं गणितीय या तार्किक प्रकृति की होती हैं। विशिष्ट ऐसे कार्य निम्न श्रेणियों में से एक हैं: संयोजन विज्ञान, [[संख्या सिद्धांत]], [[ग्राफ सिद्धांत]], [[ कलन विधि ]] खेल सिद्धांत, [[कम्प्यूटेशनल ज्यामिति]], [[स्ट्रिंग (कंप्यूटर विज्ञान)]] और [[डेटा संरचना]]एं। कुछ प्रतियोगिताओं में [[ बाधा प्रोग्रामिंग ]] और [[ कृत्रिम होशियारी ]] से संबंधित समस्याएं भी लोकप्रिय हैं।


समस्या श्रेणी के बावजूद, किसी समस्या को हल करने की प्रक्रिया को दो व्यापक चरणों में विभाजित किया जा सकता है: एक कुशल एल्गोरिथ्म का निर्माण, और एल्गोरिदम को एक उपयुक्त [[प्रोग्रामिंग भाषा]] में लागू करना (अनुमत प्रोग्रामिंग भाषाओं का सेट प्रतियोगिता से प्रतियोगिता में भिन्न होता है)। प्रोग्रामिंग प्रतियोगिताओं में ये दो सबसे अधिक परीक्षण किए गए कौशल हैं।
== अवलोकन ==
प्रतिस्पर्धी प्रोग्रामिंग का उद्देश्य उन कंप्यूटर प्रोग्रामों के स्रोत कोड लिखना है जो दी गई समस्याओं को हल करने में सक्षम हैं। प्रोग्रामिंग प्रतियोगिताओं में दिखाई देने वाली अधिकांश समस्याएं गणितीय या तार्किक प्रकृति की होती हैं। विशिष्ट ऐसे कार्य निम्न श्रेणियों में से एक हैं: संयोजन विज्ञान, [[संख्या सिद्धांत]], [[ग्राफ सिद्धांत]], [[ कलन विधि | कलन विधि]] खेल सिद्धांत, [[कम्प्यूटेशनल ज्यामिति]], [[स्ट्रिंग (कंप्यूटर विज्ञान)]] और [[डेटा संरचना]]एं कुछ प्रतियोगिताओं में [[ बाधा प्रोग्रामिंग | बाधा प्रोग्रामिंग]] और [[ कृत्रिम होशियारी | कृत्रिम होशियारी]] से संबंधित समस्याएं भी लोकप्रिय हैं।


अधिकांश प्रतियोगिताओं में, जज स्वचालित रूप से मेजबान मशीनों द्वारा किया जाता है, जिन्हें आमतौर पर न्यायाधीशों के रूप में जाना जाता है। एक प्रतियोगी द्वारा सबमिट किया गया प्रत्येक समाधान न्यायाधीश पर (आमतौर पर गुप्त) परीक्षण मामलों के एक सेट के खिलाफ चलाया जाता है। आम तौर पर, प्रतियोगिता की समस्याओं में एक ऑल-ऑर-नो मार्किंग सिस्टम होता है, जिसका अर्थ है कि एक समाधान केवल तभी स्वीकार किया जाता है जब यह जज द्वारा चलाए गए सभी परीक्षण मामलों पर संतोषजनक परिणाम देता है, और अन्यथा खारिज कर दिया जाता है। हालाँकि, कुछ प्रतियोगिता समस्याएँ आंशिक स्कोरिंग की अनुमति दे सकती हैं, जो पास हुए परीक्षण मामलों की संख्या, परिणामों की गुणवत्ता, या कुछ अन्य निर्दिष्ट मानदंडों पर निर्भर करती है। कुछ अन्य प्रतियोगिताओं में केवल यह आवश्यक होता है कि प्रतियोगी दिए गए इनपुट डेटा के अनुरूप आउटपुट सबमिट करें, इस मामले में जज को केवल सबमिट किए गए आउटपुट डेटा का विश्लेषण करना होता है।
समस्या श्रेणी के अतिरिक्त, किसी समस्या को हल करने की प्रक्रिया को दो व्यापक चरणों में विभाजित किया जा सकता है: एक कुशल एल्गोरिथ्म का निर्माण, और एल्गोरिदम को एक उपयुक्त [[प्रोग्रामिंग भाषा]] में प्रयुक्त करना (अनुमत प्रोग्रामिंग भाषाओं का सेट प्रतियोगिता से प्रतियोगिता में भिन्न होता है)। प्रोग्रामिंग प्रतियोगिताओं में ये दो सबसे अधिक परीक्षण किए गए कौशल हैं।
 
अधिकांश प्रतियोगिताओं में, जज स्वचालित रूप से होस्ट मशीनों द्वारा किया जाता है, जिन्हें सामान्यतः न्यायाधीशों के रूप में जाना जाता है। एक प्रतियोगी द्वारा सबमिट किया गया प्रत्येक समाधान न्यायाधीश पर (सामान्यतः गुप्त) परीक्षण स्थिति के एक सेट के विरुद्ध चलाया जाता है। सामान्यतः, प्रतियोगिता की समस्याओं में एक ऑल-ऑर-नो मार्किंग प्रणाली होता है, जिसका अर्थ है कि एक समाधान केवल तभी स्वीकार किया जाता है जब यह जज द्वारा चलाए गए सभी परीक्षण स्थिति पर संतोषजनक परिणाम देता है, और अन्यथा खारिज कर दिया जाता है। चूँकि, कुछ प्रतियोगिता समस्याएँ आंशिक स्कोरिंग की अनुमति दे सकती हैं, जो पास हुए परीक्षण स्थिति की संख्या, परिणामों की गुणवत्ता, या कुछ अन्य निर्दिष्ट मानदंडों पर निर्भर करती है। कुछ अन्य प्रतियोगिताओं में केवल यह आवश्यक होता है कि प्रतियोगी दिए गए इनपुट डेटा के अनुरूप आउटपुट सबमिट करें, इस स्थिति में जज को केवल सबमिट किए गए आउटपुट डेटा का विश्लेषण करना होता है।


ऑनलाइन न्यायाधीश ऑनलाइन वातावरण होते हैं जिसमें परीक्षण होता है। ऑनलाइन न्यायाधीशों के पास रैंकलिस्ट हैं जो उपयोगकर्ताओं को किसी विशेष समस्या के लिए स्वीकृत समाधानों की सबसे बड़ी संख्या और/या कम से कम निष्पादन समय दिखाते हैं।<ref>[https://www.amazon.com/Programming-Challenges-Steven-S-Skiena/dp/0387001638 Programming Challenges (Skiena & Revilla)] {{ISBN|0387001638}}, {{ISBN|978-0387001630}}</ref>
ऑनलाइन न्यायाधीश ऑनलाइन वातावरण होते हैं जिसमें परीक्षण होता है। ऑनलाइन न्यायाधीशों के पास रैंकलिस्ट हैं जो उपयोगकर्ताओं को किसी विशेष समस्या के लिए स्वीकृत समाधानों की सबसे बड़ी संख्या और/या कम से कम निष्पादन समय दिखाते हैं।<ref>[https://www.amazon.com/Programming-Challenges-Steven-S-Skiena/dp/0387001638 Programming Challenges (Skiena & Revilla)] {{ISBN|0387001638}}, {{ISBN|978-0387001630}}</ref>
Line 21: Line 21:


== उल्लेखनीय प्रतियोगिताएं ==
== उल्लेखनीय प्रतियोगिताएं ==
<!-- PLEASE RESPECT ALPHABETICAL ORDER -->
=== एल्गोरिथम प्रतियोगिताएं ===
=== एल्गोरिथम प्रतियोगिताएं ===
{| class="wikitable"
{| class="wikitable"
Line 69: Line 66:
|https://www.topcoder.com/community/member-programs/topcoder-open/
|https://www.topcoder.com/community/member-programs/topcoder-open/
|}
|}
उपरोक्त अधिकांश प्रतियोगिताओं में, प्रतियोगिताएं आमतौर पर कई राउंड में आयोजित की जाती हैं। वे आमतौर पर ऑनलाइन राउंड से शुरू होते हैं, जो ऑनसाइट फाइनल राउंड में समाप्त होते हैं। आईओआई और आईसीपीसी में शीर्ष प्रदर्शन करने वालों को स्वर्ण, रजत और कांस्य पदक प्राप्त होते हैं। अन्य प्रतियोगिताओं में, शीर्ष फिनिशरों को नकद पुरस्कार प्रदान किए जाते हैं। प्रतियोगिताएं कई सॉफ्टवेयर और इंटरनेट कंपनियों के नियोक्ताओं की रुचि को भी आकर्षित करती हैं, जो अक्सर संभावित नौकरी के प्रस्तावों के साथ प्रतियोगियों तक पहुंचते हैं।
उपरोक्त अधिकांश प्रतियोगिताओं में, प्रतियोगिताएं सामान्यतः कई राउंड में आयोजित की जाती हैं। वे सामान्यतः ऑनलाइन राउंड से शुरू होते हैं, जो ऑनसाइट फाइनल राउंड में समाप्त होते हैं। आईओआई और आईसीपीसी में शीर्ष प्रदर्शन करने वालों को स्वर्ण, रजत और कांस्य पदक प्राप्त होते हैं। अन्य प्रतियोगिताओं में, शीर्ष फिनिशरों को नकद पुरस्कार प्रदान किए जाते हैं। प्रतियोगिताएं कई सॉफ्टवेयर और इंटरनेट कंपनियों के नियोक्ताओं की रुचि को भी आकर्षित करती हैं, जो अक्सर संभावित नौकरी के प्रस्तावों के साथ प्रतियोगियों तक पहुंचते हैं।


=== आर्टिफिशियल इंटेलिजेंस और मशीन लर्निंग ===
=== आर्टिफिशियल इंटेलिजेंस और मशीन लर्निंग ===
Line 118: Line 115:


== ऑनलाइन प्लेटफॉर्म ==
== ऑनलाइन प्लेटफॉर्म ==
दुनिया भर के प्रोग्रामिंग समुदाय ने प्रतिस्पर्धी प्रोग्रामिंग के लिए समर्पित कई इंटरनेट-संसाधनों को बनाया और बनाए रखा है। वे मामूली पुरस्कारों के साथ या उनके बिना स्टैंडअलोन प्रतियोगिताओं की पेशकश करते हैं। साथ ही समस्याओं के पिछले संग्रह प्रतिस्पर्धी प्रोग्रामिंग में प्रशिक्षण के लिए एक लोकप्रिय संसाधन हैं। ऐसे कई संगठन हैं जो नियमित रूप से प्रोग्रामिंग प्रतियोगिताओं की मेजबानी करते हैं। इसमे शामिल है:
दुनिया भर के प्रोग्रामिंग समुदाय ने प्रतिस्पर्धी प्रोग्रामिंग के लिए समर्पित कई इंटरनेट-संसाधनों को बनाया और बनाए रखा है। वे मामूली पुरस्कारों के साथ या उनके बिना स्टैंडअलोन प्रतियोगिताओं की पेशकश करते हैं। साथ ही समस्याओं के पिछले संग्रह प्रतिस्पर्धी प्रोग्रामिंग में प्रशिक्षण के लिए एक लोकप्रिय संसाधन हैं। ऐसे कई संगठन हैं जो नियमित रूप से प्रोग्रामिंग प्रतियोगिताओं की मेजबानी करते हैं। इसमे सम्मिलित है:
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
Line 196: Line 193:
== लाभ और आलोचना ==
== लाभ और आलोचना ==
प्रोग्रामिंग प्रतियोगिताओं में भाग लेने से [[कंप्यूटर विज्ञान]] की पढ़ाई के लिए छात्रों का उत्साह बढ़ सकता है। ICPC जैसी प्रोग्रामिंग प्रतियोगिताओं में अर्जित कौशल भी कैरियर की संभावनाओं में सुधार करते हैं, क्योंकि वे तकनीकी साक्षात्कारों को पास करने में मदद करते हैं, जिसके लिए अक्सर उम्मीदवारों को जटिल प्रोग्रामिंग और एल्गोरिथम समस्याओं को मौके पर हल करने की आवश्यकता होती है।<ref name="sigcse16">{{cite journal |url=https://people.cs.uchicago.edu/~borja/pubs/sigcse2016-programming-contests.pdf |title=एक प्रोग्रामिंग प्रतियोगिता रणनीति गाइड|first1=Aaron |last1=Bloomfield |first2=Borja |last2=Sotomayor |journal=SIGCSE '16: Proceedings of the 47th ACM Technical Symposium on Computing Science Education }}</ref><ref>{{Cite journal|last=Jackson|first=Dean|date=December 1, 2013|title=Google तकनीकी साक्षात्कार। अपनी ड्रीम जॉब कैसे पाएं।|url=http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41881.pdf|journal=XRDS: Crossroads, the ACM Magazine for Students|volume=20|issue=2|pages=12–14|doi=10.1145/2539270|s2cid=27549057}}</ref>
प्रोग्रामिंग प्रतियोगिताओं में भाग लेने से [[कंप्यूटर विज्ञान]] की पढ़ाई के लिए छात्रों का उत्साह बढ़ सकता है। ICPC जैसी प्रोग्रामिंग प्रतियोगिताओं में अर्जित कौशल भी कैरियर की संभावनाओं में सुधार करते हैं, क्योंकि वे तकनीकी साक्षात्कारों को पास करने में मदद करते हैं, जिसके लिए अक्सर उम्मीदवारों को जटिल प्रोग्रामिंग और एल्गोरिथम समस्याओं को मौके पर हल करने की आवश्यकता होती है।<ref name="sigcse16">{{cite journal |url=https://people.cs.uchicago.edu/~borja/pubs/sigcse2016-programming-contests.pdf |title=एक प्रोग्रामिंग प्रतियोगिता रणनीति गाइड|first1=Aaron |last1=Bloomfield |first2=Borja |last2=Sotomayor |journal=SIGCSE '16: Proceedings of the 47th ACM Technical Symposium on Computing Science Education }}</ref><ref>{{Cite journal|last=Jackson|first=Dean|date=December 1, 2013|title=Google तकनीकी साक्षात्कार। अपनी ड्रीम जॉब कैसे पाएं।|url=http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41881.pdf|journal=XRDS: Crossroads, the ACM Magazine for Students|volume=20|issue=2|pages=12–14|doi=10.1145/2539270|s2cid=27549057}}</ref>
विशेष रूप से पेशेवर सॉफ्टवेयर डेवलपर्स द्वारा प्रतिस्पर्धी प्रोग्रामिंग की भी आलोचना की गई है।<ref name="rg15"/>एक महत्वपूर्ण बिंदु यह है कि कई तेज़-तर्रार प्रोग्रामिंग प्रतियोगिताएँ प्रतियोगियों को खराब प्रोग्रामिंग आदतें और कोड शैली सिखाती हैं (जैसे [[मैक्रो (कंप्यूटर विज्ञान)]] का अनावश्यक उपयोग, OOP अमूर्तता और टिप्पणियों की कमी, छोटे चर नामों का उपयोग, आदि)।<ref>{{cite web |url=https://www.comp.nus.edu.sg/~stevenha/cs3233.html |title=CS3233 - Competitive Programming |last=Halim |first=Steven |website=NUS School of Computing }}</ref><ref name="rg15"/>इसके अलावा, अपेक्षाकृत कम समाधान के साथ केवल छोटी एल्गोरिथम पहेलियाँ पेश करके, ICPC और IOI जैसी प्रोग्रामिंग प्रतियोगिताएं आवश्यक रूप से अच्छे सॉफ़्टवेयर इंजीनियरिंग कौशल और अभ्यास नहीं सिखाती हैं, क्योंकि वास्तविक सॉफ़्टवेयर परियोजनाओं में आमतौर पर कोड की हजारों स्रोत पंक्तियाँ होती हैं और बड़ी टीमों द्वारा विकसित की जाती हैं। लंबे समय तक।<ref name="rg15">{{cite web |url=https://www.redgreencode.com/the-competitive-programming-debate/ |title=प्रतिस्पर्धी प्रोग्रामिंग बहस|date=December 2, 2015 |first=Duncan |last=Smith }}</ref> [[पीटर नॉरविग]] ने कहा कि उपलब्ध आंकड़ों के आधार पर, प्रोग्रामिंग प्रतियोगिताओं का विजेता होने के नाते Google में उनके काम पर प्रोग्रामर के प्रदर्शन के साथ नकारात्मक रूप से सहसंबद्ध होता है (भले ही प्रतियोगिता विजेताओं को काम पर रखने की संभावना अधिक थी)।<ref>{{cite web |url=https://www.youtube.com/watch?v=DdmyUZCl75s |title=प्रोग्रामिंग प्रतियोगिताओं में जीतना काम पर अच्छा होने का एक नकारात्मक कारक है|website=[[YouTube]] |date=April 5, 2015}}</ref> नॉरविग ने बाद में कहा कि यह सहसंबंध एक छोटे डेटा सेट पर देखा गया था, लेकिन बड़े डेटा सेट की जांच के बाद इसकी पुष्टि नहीं की जा सकी <ref>{{cite web |url=https://news.ycombinator.com/item?id=25425718#up_25426329 |title=नौकरी के प्रदर्शन और प्रतिस्पर्धी प्रोग्रामिंग के बीच संबंध पर एचएन चर्चा|date=December 2020}}</ref>{{Unreliable source?|date=June 2021}}
विशेष रूप से पेशेवर सॉफ्टवेयर डेवलपर्स द्वारा प्रतिस्पर्धी प्रोग्रामिंग की भी आलोचना की गई है।<ref name="rg15"/>एक महत्वपूर्ण बिंदु यह है कि कई तेज़-तर्रार प्रोग्रामिंग प्रतियोगिताएँ प्रतियोगियों को खराब प्रोग्रामिंग आदतें और कोड शैली सिखाती हैं (जैसे [[मैक्रो (कंप्यूटर विज्ञान)]] का अनावश्यक उपयोग, OOP अमूर्तता और टिप्पणियों की कमी, छोटे चर नामों का उपयोग, आदि)।<ref>{{cite web |url=https://www.comp.nus.edu.sg/~stevenha/cs3233.html |title=CS3233 - Competitive Programming |last=Halim |first=Steven |website=NUS School of Computing }}</ref><ref name="rg15"/>इसके अलावा, अपेक्षाकृत कम समाधान के साथ केवल छोटी एल्गोरिथम पहेलियाँ पेश करके, ICPC और IOI जैसी प्रोग्रामिंग प्रतियोगिताएं आवश्यक रूप से अच्छे सॉफ़्टवेयर इंजीनियरिंग कौशल और अभ्यास नहीं सिखाती हैं, क्योंकि वास्तविक सॉफ़्टवेयर परियोजनाओं में सामान्यतः कोड की हजारों स्रोत पंक्तियाँ होती हैं और बड़ी टीमों द्वारा विकसित की जाती हैं। लंबे समय तक।<ref name="rg15">{{cite web |url=https://www.redgreencode.com/the-competitive-programming-debate/ |title=प्रतिस्पर्धी प्रोग्रामिंग बहस|date=December 2, 2015 |first=Duncan |last=Smith }}</ref> [[पीटर नॉरविग]] ने कहा कि उपलब्ध आंकड़ों के आधार पर, प्रोग्रामिंग प्रतियोगिताओं का विजेता होने के नाते Google में उनके काम पर प्रोग्रामर के प्रदर्शन के साथ नकारात्मक रूप से सहसंबद्ध होता है (भले ही प्रतियोगिता विजेताओं को काम पर रखने की संभावना अधिक थी)।<ref>{{cite web |url=https://www.youtube.com/watch?v=DdmyUZCl75s |title=प्रोग्रामिंग प्रतियोगिताओं में जीतना काम पर अच्छा होने का एक नकारात्मक कारक है|website=[[YouTube]] |date=April 5, 2015}}</ref> नॉरविग ने बाद में कहा कि यह सहसंबंध एक छोटे डेटा सेट पर देखा गया था, किंतु बड़े डेटा सेट की जांच के बाद इसकी पुष्टि नहीं की जा सकी <ref>{{cite web |url=https://news.ycombinator.com/item?id=25425718#up_25426329 |title=नौकरी के प्रदर्शन और प्रतिस्पर्धी प्रोग्रामिंग के बीच संबंध पर एचएन चर्चा|date=December 2020}}</ref>{{Unreliable source?|date=June 2021}}


फिर भी एक और भावना यह है कि ज्ञात समाधानों के साथ समस्याओं को हल करके अत्यधिक प्रतिस्पर्धा पर अपना समय बर्बाद करने के बजाय, हाई-प्रोफाइल प्रोग्रामरों को अपना समय वास्तविक दुनिया की समस्याओं को हल करने में लगाना चाहिए।<ref name="rg15"/>
फिर भी एक और भावना यह है कि ज्ञात समाधानों के साथ समस्याओं को हल करके अत्यधिक प्रतिस्पर्धा पर अपना समय बर्बाद करने के बजाय, हाई-प्रोफाइल प्रोग्रामरों को अपना समय वास्तविक दुनिया की समस्याओं को हल करने में लगाना चाहिए।<ref name="rg15"/>

Revision as of 10:04, 13 May 2023

पेटर मित्रीचेव (बाएं) और गेन्नेडी कोरोटकेविच (दाएं), एक प्रतियोगिता के दौरान दो प्रमुख प्रतिस्पर्धी प्रोग्रामर।

प्रतिस्पर्धी प्रोग्रामिंग (जिसे स्पोर्ट्स प्रोग्रामिंग के रूप में भी जाना जाता है) सामान्यतः इंटरनेट या स्थानीय नेटवर्क पर आयोजित एक दिमागी खेल है, जिसमें प्रतिभागियों को दिए गए विनिर्देशों के अनुसार कंप्यूटर प्रोग्रामिंग की प्रयाश करना सम्मिलित है। प्रतियोगियों को खेल प्रोग्रामर कहा जाता है। प्रतिस्पर्धी प्रोग्रामिंग को कई बहुराष्ट्रीय सॉफ्टवेयर और इंटरनेट कंपनियों, जैसे कि गूगल और फेसबुक द्वारा मान्यता प्राप्त और समर्थित है।[1][2][3]

एक प्रोग्रामिंग प्रतियोगिता में सामान्यतः होस्ट सम्मिलित होता है जो तार्किक या गणितीय समस्याओं का एक सेट प्रस्तुत करता है, जिसे पहेली या चुनौतियों के रूप में भी जाना जाता है, प्रतियोगियों के लिए (जो दसियों या सैकड़ों से कई हजारों की संख्या में भिन्न हो सकते हैं)। प्रतियोगियों को इन समस्याओं को हल करने में सक्षम कंप्यूटर प्रोग्राम लिखने की आवश्यकता होती है। जजिंग अधिकतर हल की गई समस्याओं की संख्या और सफल समाधान लिखने में लगने वाले समय पर आधारित होती है, किंतु इसमें अन्य कारक भी सम्मिलित हो सकते हैं (उत्पादित आउटपुट की गुणवत्ता, निष्पादन समय, मेमोरी उपयोग, प्रोग्राम का आकार, आदि)।

इतिहास

ज्ञात सबसे पुरानी प्रतियोगिताओं में से एक अंतर्राष्ट्रीय कॉलेजिएट प्रोग्रामिंग प्रतियोगिता (आईसीपीसी) है जो 1970 के दशक में उत्पन्न हुई थी, और इसके 2011 संस्करण में 88 देशों को सम्मिलित करने के लिए बढ़ी है।

1990 से 1994 तक, ओवेन एस्ट्राचन, विवेक खेरा और डेविड कोटज़ ने आईसीपीसी से प्रेरित पहली वितरित, इंटरनेट-आधारित प्रोग्रामिंग प्रतियोगिताओं में से एक का संचालन किया।[4]

प्रतिस्पर्धी प्रोग्रामिंग में रुचि 2000 के बाद से हजारों प्रतिभागियों (या उल्लेखनीय प्रतियोगिताओं को देखें) में बड़े मापदंड पर बढ़ी है, और इंटरनेट के विकास से शक्ति से जुड़ी हुई है, जो भौगोलिक समस्याओं को दूर करते हुए अंतरराष्ट्रीय प्रतियोगिताओं को ऑनलाइन आयोजित करने की सुविधा प्रदान करती है।

अवलोकन

प्रतिस्पर्धी प्रोग्रामिंग का उद्देश्य उन कंप्यूटर प्रोग्रामों के स्रोत कोड लिखना है जो दी गई समस्याओं को हल करने में सक्षम हैं। प्रोग्रामिंग प्रतियोगिताओं में दिखाई देने वाली अधिकांश समस्याएं गणितीय या तार्किक प्रकृति की होती हैं। विशिष्ट ऐसे कार्य निम्न श्रेणियों में से एक हैं: संयोजन विज्ञान, संख्या सिद्धांत, ग्राफ सिद्धांत, कलन विधि खेल सिद्धांत, कम्प्यूटेशनल ज्यामिति, स्ट्रिंग (कंप्यूटर विज्ञान) और डेटा संरचनाएं कुछ प्रतियोगिताओं में बाधा प्रोग्रामिंग और कृत्रिम होशियारी से संबंधित समस्याएं भी लोकप्रिय हैं।

समस्या श्रेणी के अतिरिक्त, किसी समस्या को हल करने की प्रक्रिया को दो व्यापक चरणों में विभाजित किया जा सकता है: एक कुशल एल्गोरिथ्म का निर्माण, और एल्गोरिदम को एक उपयुक्त प्रोग्रामिंग भाषा में प्रयुक्त करना (अनुमत प्रोग्रामिंग भाषाओं का सेट प्रतियोगिता से प्रतियोगिता में भिन्न होता है)। प्रोग्रामिंग प्रतियोगिताओं में ये दो सबसे अधिक परीक्षण किए गए कौशल हैं।

अधिकांश प्रतियोगिताओं में, जज स्वचालित रूप से होस्ट मशीनों द्वारा किया जाता है, जिन्हें सामान्यतः न्यायाधीशों के रूप में जाना जाता है। एक प्रतियोगी द्वारा सबमिट किया गया प्रत्येक समाधान न्यायाधीश पर (सामान्यतः गुप्त) परीक्षण स्थिति के एक सेट के विरुद्ध चलाया जाता है। सामान्यतः, प्रतियोगिता की समस्याओं में एक ऑल-ऑर-नो मार्किंग प्रणाली होता है, जिसका अर्थ है कि एक समाधान केवल तभी स्वीकार किया जाता है जब यह जज द्वारा चलाए गए सभी परीक्षण स्थिति पर संतोषजनक परिणाम देता है, और अन्यथा खारिज कर दिया जाता है। चूँकि, कुछ प्रतियोगिता समस्याएँ आंशिक स्कोरिंग की अनुमति दे सकती हैं, जो पास हुए परीक्षण स्थिति की संख्या, परिणामों की गुणवत्ता, या कुछ अन्य निर्दिष्ट मानदंडों पर निर्भर करती है। कुछ अन्य प्रतियोगिताओं में केवल यह आवश्यक होता है कि प्रतियोगी दिए गए इनपुट डेटा के अनुरूप आउटपुट सबमिट करें, इस स्थिति में जज को केवल सबमिट किए गए आउटपुट डेटा का विश्लेषण करना होता है।

ऑनलाइन न्यायाधीश ऑनलाइन वातावरण होते हैं जिसमें परीक्षण होता है। ऑनलाइन न्यायाधीशों के पास रैंकलिस्ट हैं जो उपयोगकर्ताओं को किसी विशेष समस्या के लिए स्वीकृत समाधानों की सबसे बड़ी संख्या और/या कम से कम निष्पादन समय दिखाते हैं।[5]


उल्लेखनीय प्रतियोगिताएं

एल्गोरिथम प्रतियोगिताएं

Name of the competition[6] Organizers Audience Description Number of participants Website
Google Code Jam (GCJ) Google open Annual competition organized and sponsored by Google from 2003 until its cancellation in 2023.[7] 32,702 (2022)[8] https://codingcompetitions.withgoogle.com/codejam
International Collegiate Programming Contest (ICPC)[9] ICPC Foundation university student Team competition for university students, the contest consists of many regional rounds that conclude in a world final organized yearly. Teams consist of three students from the same university and they are allowed to use only one computer. 50,000+ (2022)[10] https://icpc.global/
International Olympiad in Informatics (IOI) IOI secondary school students International competition for secondary school students. Organized yearly since 1989. Each country can send at most 4 participants to compete. 349 from 88 countries (2022)[11] https://ioinformatics.org/
Meta Hacker Cup (formerly Facebook Hacker Cup) Meta Platforms open Annual competition held since 2011. Organized and sponsored by Meta (formerly Facebook). 27,604 (2022)[12] https://www.facebook.com/codingcompetitions/hacker-cup
Topcoder Open (TCO) Topcoder open Annual algorithm competition held from 2001 until its cancellation in 2023[13] https://www.topcoder.com/community/member-programs/topcoder-open/

उपरोक्त अधिकांश प्रतियोगिताओं में, प्रतियोगिताएं सामान्यतः कई राउंड में आयोजित की जाती हैं। वे सामान्यतः ऑनलाइन राउंड से शुरू होते हैं, जो ऑनसाइट फाइनल राउंड में समाप्त होते हैं। आईओआई और आईसीपीसी में शीर्ष प्रदर्शन करने वालों को स्वर्ण, रजत और कांस्य पदक प्राप्त होते हैं। अन्य प्रतियोगिताओं में, शीर्ष फिनिशरों को नकद पुरस्कार प्रदान किए जाते हैं। प्रतियोगिताएं कई सॉफ्टवेयर और इंटरनेट कंपनियों के नियोक्ताओं की रुचि को भी आकर्षित करती हैं, जो अक्सर संभावित नौकरी के प्रस्तावों के साथ प्रतियोगियों तक पहुंचते हैं।

आर्टिफिशियल इंटेलिजेंस और मशीन लर्निंग

[14]

  • कागल - डेटा साइंस और मशीन लर्निंग प्रतियोगिताएं।
  • कोडकप - बोर्ड गेम एआई प्रतियोगिता 2003 से प्रतिवर्ष आयोजित की जाती है। खेल के नियम सितंबर में प्रकाशित होते हैं और अंतिम टूर्नामेंट जनवरी में आयोजित किया जाता है।[15][16][17]* Google AI चुनौती - 2009 से 2011 तक चलने वाले छात्रों के लिए द्वि-वार्षिक प्रतियोगिताएं।
  • हैलाइट एआई प्रोग्रामिंग प्रतियोगिता[18] - टू सिग्मा, कॉर्नेल टेक द्वारा प्रायोजित एआई प्रोग्रामिंग चुनौती,[19] और गूगल।[20]
  • रूसी एआई कप - ओपन आर्टिफिशियल इंटेलिजेंस प्रोग्रामिंग प्रतियोगिता।
  • कोडिनगेम - मौसमी बॉट प्रोग्रामिंग प्रतियोगिताओं का आयोजन करता है।

मुक्त स्रोत प्रौद्योगिकियों पर केंद्रित प्रतियोगिताएं

  • सूची अधूरी हो सकती है
Contest Name Main Sponsor Description Running Since Usual Time Next Application Cycle Status
Multi-Agent Programming Contest Clausthal University of Technology in conjunction with agent-oriented workshops Annual international programming competition to stimulate research in the area of multi-agent system development and programming. 2005 Sept Sept 2011 Active
Google Summer of Code Google Inc. An annual program in which Google awards stipends to hundreds of students who successfully complete a requested free software / open-source coding project during the summer. 2005 Mar-Aug Mar 23- Apr 3 Active
Google Highly Open Participation Contest Google Inc. A contest run by Google in 2007-8 aimed at high school students. The contest is designed to encourage high school students to participate in open source projects. 2007 Nov-Feb Unknown Unknown


ऑनलाइन प्लेटफॉर्म

दुनिया भर के प्रोग्रामिंग समुदाय ने प्रतिस्पर्धी प्रोग्रामिंग के लिए समर्पित कई इंटरनेट-संसाधनों को बनाया और बनाए रखा है। वे मामूली पुरस्कारों के साथ या उनके बिना स्टैंडअलोन प्रतियोगिताओं की पेशकश करते हैं। साथ ही समस्याओं के पिछले संग्रह प्रतिस्पर्धी प्रोग्रामिंग में प्रशिक्षण के लिए एक लोकप्रिय संसाधन हैं। ऐसे कई संगठन हैं जो नियमित रूप से प्रोग्रामिंग प्रतियोगिताओं की मेजबानी करते हैं। इसमे सम्मिलित है:

Name Description Website
beecrowd Largest competitive programming platform based in Latin America. Contains 2300+ programming challenges in 3 different languages (English, Portuguese and Spanish), classified in 9 categories and 10 different levels of difficulty. It hosts frequent competitions sponsored by corporations and by themselves. It was formerly known as URI Online Judge. www.beecrowd.com.br
CodeChef[21][22] Maintained by Unacademy, it hosts a 3-day-long contest and a couple of short contests every month (one IOI styled called Lunchtime and other ICPC styled called Cook-Off), and provides a contest hosting platform to educational institutions for free. The top two winners of the long contest win cash prizes while the top 10 global get a t-shirt. www.codechef.com
CodeCup Annual international board game AI programming competition organized by the Dutch Olympiad in Informatics since 2003.[16][17] codecup.nl
Codeforces[23][21] Russian resource, maintained by ITMO University, which mostly provides frequent (up to two per week) short contests. Special features: all solutions are open source, ability to check correctness of other contestants' solutions during "hacking phase", virtual contests, trainings etc. codeforces.com
CodinGame Puzzles (increasing difficulty), code golf. Hosts regular online competitions (AI сhallenges, optimization problems). www.codingame.com
HackerEarth[21] Bangalore, India based company providing online contest like environment aiming at providing recruitment assessment solutions. www.hackerearth.com
HackerRank HackerRank offers programming problems in different domains of Computer Science. It also hosts annual Codesprints which help connect the coders and Silicon Valley startups. hackerrank.com
Project Euler[22] Large collection of computational math problems (i.e. not directly related to programming but often requiring programming skills for solving). projecteuler.net
Topcoder[23][21] US resource and company, which organizes contests and also provides industrial problems as a kind of free-lance job; it offers dozens of short contests and several long ("marathons") every year. Specific feature - participants have a chance to check correctness of other contestants' solutions after coding phase and before final automatic testing (so called "challenge phase"). www.topcoder.com
UVa Online Judge[23][21] Contains over 4,500 problems for practising. Hosts regular online competitions. Opened in 1995, it is one of the oldest such websites. onlinejudge.org
SPOJ[21] Polish online judge system which provides a lot of problems for training, and provides a platform for other organizers to host their programming contests. www.spoj.com
Open Kattis Public version of the Kattis contest management system, with an archive of over 2600 problems.[23] Kattis was developed to aid computer science courses, but it's also used to host prestigious competitions, like ICPC World Finals.[24] open.kattis.com
AtCoder Based in Japan, AtCoder offers online programming contests on a weekly basis. The contests are offered in Japanese and English.

As of 2020, it is one of the most popular platforms of its kind.[25]

atcoder.jp
Timus Contains problems from competitions in the Ural region. acm.timus.ru
VJudge Contains problems from many online judges. vjudge.net
Baekjoon OJ Korean online judge. acmicpc.net
LeetCode LeetCode has over 2,300 questions covering many different programming concepts and offers weekly and bi-weekly contests. The programming tasks are offered in English and Chinese. leetcode.com


लाभ और आलोचना

प्रोग्रामिंग प्रतियोगिताओं में भाग लेने से कंप्यूटर विज्ञान की पढ़ाई के लिए छात्रों का उत्साह बढ़ सकता है। ICPC जैसी प्रोग्रामिंग प्रतियोगिताओं में अर्जित कौशल भी कैरियर की संभावनाओं में सुधार करते हैं, क्योंकि वे तकनीकी साक्षात्कारों को पास करने में मदद करते हैं, जिसके लिए अक्सर उम्मीदवारों को जटिल प्रोग्रामिंग और एल्गोरिथम समस्याओं को मौके पर हल करने की आवश्यकता होती है।[23][26] विशेष रूप से पेशेवर सॉफ्टवेयर डेवलपर्स द्वारा प्रतिस्पर्धी प्रोग्रामिंग की भी आलोचना की गई है।[27]एक महत्वपूर्ण बिंदु यह है कि कई तेज़-तर्रार प्रोग्रामिंग प्रतियोगिताएँ प्रतियोगियों को खराब प्रोग्रामिंग आदतें और कोड शैली सिखाती हैं (जैसे मैक्रो (कंप्यूटर विज्ञान) का अनावश्यक उपयोग, OOP अमूर्तता और टिप्पणियों की कमी, छोटे चर नामों का उपयोग, आदि)।[28][27]इसके अलावा, अपेक्षाकृत कम समाधान के साथ केवल छोटी एल्गोरिथम पहेलियाँ पेश करके, ICPC और IOI जैसी प्रोग्रामिंग प्रतियोगिताएं आवश्यक रूप से अच्छे सॉफ़्टवेयर इंजीनियरिंग कौशल और अभ्यास नहीं सिखाती हैं, क्योंकि वास्तविक सॉफ़्टवेयर परियोजनाओं में सामान्यतः कोड की हजारों स्रोत पंक्तियाँ होती हैं और बड़ी टीमों द्वारा विकसित की जाती हैं। लंबे समय तक।[27] पीटर नॉरविग ने कहा कि उपलब्ध आंकड़ों के आधार पर, प्रोग्रामिंग प्रतियोगिताओं का विजेता होने के नाते Google में उनके काम पर प्रोग्रामर के प्रदर्शन के साथ नकारात्मक रूप से सहसंबद्ध होता है (भले ही प्रतियोगिता विजेताओं को काम पर रखने की संभावना अधिक थी)।[29] नॉरविग ने बाद में कहा कि यह सहसंबंध एक छोटे डेटा सेट पर देखा गया था, किंतु बड़े डेटा सेट की जांच के बाद इसकी पुष्टि नहीं की जा सकी [30][unreliable source?]

फिर भी एक और भावना यह है कि ज्ञात समाधानों के साथ समस्याओं को हल करके अत्यधिक प्रतिस्पर्धा पर अपना समय बर्बाद करने के बजाय, हाई-प्रोफाइल प्रोग्रामरों को अपना समय वास्तविक दुनिया की समस्याओं को हल करने में लगाना चाहिए।[27]


साहित्य

  • हलीम, एस., हलीम, एफ. (2013)। प्रतिस्पर्धी प्रोग्रामिंग 3: प्रोग्रामिंग प्रतियोगिताओं की नई निचली सीमा। लुलु।
  • लक्सोनेन, ए। (2017)। प्रतियोगी प्रोग्रामिंग के लिए गाइड (कंप्यूटर विज्ञान में स्नातक विषय)। चाम: स्प्रिंगर इंटरनेशनल पब्लिशिंग।
  • कोस्तका, बी. (2021). अभ्यास में खेल प्रोग्रामिंग। व्रोकला विश्वविद्यालय।

यह भी देखें

संदर्भ

  1. "Google कोड जाम". google.com. Retrieved 2016-02-20.
  2. "TCO12 Sponsor: Google - TCO 12". topcoder.com. Archived from the original on February 16, 2012.
  3. "फेसबुक हैकर कप". Facebook. Retrieved 2016-02-20.
  4. Khera, Vivek; Astrachan, Owen; Kotz, David (1993). "इंटरनेट प्रोग्रामिंग प्रतियोगिता" (PDF). ACM SIGCSE Bulletin. 25 (1): 48–52. doi:10.1145/169073.169105. ISSN 0097-8418.
  5. Programming Challenges (Skiena & Revilla) ISBN 0387001638, ISBN 978-0387001630
  6. Kostka, Bartosz (2021). Sports Programming in Practice (PDF). University of Wrocław.
  7. "Celebrate Google's Coding Competitions with a final round of programming fun". Google Developers Blog. Google. Retrieved 28 February 2023.
  8. "Code Jam - Google's Coding Competitions". Coding Competitions (in English). Retrieved 2023-02-26.
  9. "ICPC". icpc.global (in English). Retrieved 2023-02-26.
  10. "ICPC". icpc.global (in English). Retrieved 2023-02-26.
  11. "Olympiads". stats.ioinformatics.org. Retrieved 2023-02-26.
  12. "Meta Hacker Cup - 2022 - Qualification Round". www.facebook.com. Retrieved 2023-02-26.
  13. "FAQ - Topcoder Community Town Hall with Doug Hanson, Topcoder CEO". Topcoder (in English). Retrieved 28 February 2023.
  14. "14 Active AI Game Competitions to Check Out in 2022 (Ongoing & Upcoming)". www.gocoder.one.
  15. "कोडकप". www.codecup.nl.
  16. 16.0 16.1 Lasse Hakulinen. Survey on Informatics Competitions: Developing Tasks – Olympiads in Informatics, 2011, Vol. 5, 12–25.
  17. 17.0 17.1 Wevers, Lesley (2014). "Monte-Carlo Tree Search for Poly-Y" (PDF). University of Twente. Archived from the original (PDF) on 13 April 2017. Retrieved 16 September 2018.
  18. "Halite आर्टिफिशियल इंटेलिजेंस प्रोग्रामिंग चैलेंज". www.halite.io.
  19. "टू सिग्मा ने हैलाइट के सार्वजनिक लॉन्च की घोषणा की". tech.cornell.edu. 2 November 2016.
  20. "Halite helps students and developers compete to build better AI on Google Cloud Platform".
  21. 21.0 21.1 21.2 21.3 21.4 21.5 Luigi, William Di; Farina, Gabriele; Laura, Luigi; Nanni, Umberto; Temperini, Marco; Versari, Luca (2016). "oii-web: an Interactive Online Programming oii-web: an Interactive Online Programming Contest Training System" (PDF). Olympiads in Informatics. 10: 207–222. doi:10.15388/ioi.2016.13.
  22. 22.0 22.1 Combéfis, Sébastien; Wautelet, Jérémy (2014). "Programming Trainings and Informatics Teaching Through Online Contests" (PDF). Olympiads in Informatics. 8: 21–34.
  23. 23.0 23.1 23.2 23.3 23.4 Bloomfield, Aaron; Sotomayor, Borja. "एक प्रोग्रामिंग प्रतियोगिता रणनीति गाइड" (PDF). SIGCSE '16: Proceedings of the 47th ACM Technical Symposium on Computing Science Education.
  24. Enström, E.; Kreitz, G.; Niemelä, F.; Söderman, P.; Kann, V. (2011). "Five years with Kattis – using an automated assessment system in teaching" (PDF). IEEE Frontiers in Education Conference.
  25. Mirzayanov, Mike; Pavlova, Oksana; Mavrin, Pavel; Melnikov, Roman; Plotnikov, Andrew; Parfenov, Vladimir; Stankevich, Andrew (2020). "Codeforces as an Educational Platform for Learning Programming in Digitalization" (PDF). Olympiads in Informatics. 14. ISSN 1822-7732.
  26. Jackson, Dean (December 1, 2013). "Google तकनीकी साक्षात्कार। अपनी ड्रीम जॉब कैसे पाएं।" (PDF). XRDS: Crossroads, the ACM Magazine for Students. 20 (2): 12–14. doi:10.1145/2539270. S2CID 27549057.
  27. 27.0 27.1 27.2 27.3 Smith, Duncan (December 2, 2015). "प्रतिस्पर्धी प्रोग्रामिंग बहस".
  28. Halim, Steven. "CS3233 - Competitive Programming". NUS School of Computing.
  29. "प्रोग्रामिंग प्रतियोगिताओं में जीतना काम पर अच्छा होने का एक नकारात्मक कारक है". YouTube. April 5, 2015.
  30. "नौकरी के प्रदर्शन और प्रतिस्पर्धी प्रोग्रामिंग के बीच संबंध पर एचएन चर्चा". December 2020.


बाहरी संबंध

Open-source project for running contests