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

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|Mind sport}}
{{Short description|Mind sport}}
[[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>
एक प्रोग्रामिंग प्रतियोगिता में सामान्यतः होस्ट सम्मिलित होता है जो तार्किक या [[गणितीय समस्या]]ओं का एक सेट प्रस्तुत करता है, जिसे [[पहेली]] या चुनौतियों के रूप में भी जाना जाता है, प्रतियोगियों के लिए (जो दसियों या सैकड़ों से कई हजारों की संख्या में भिन्न हो सकते हैं)। प्रतियोगियों को इन समस्याओं को हल करने में सक्षम [[कंप्यूटर प्रोग्राम]] लिखने की आवश्यकता होती है। जजिंग अधिकतर हल की गई समस्याओं की संख्या और सफल समाधान लिखने में लगने वाले समय पर आधारित होती है, किंतु इसमें अन्य कारक भी सम्मिलित हो सकते हैं (उत्पादित आउटपुट की गुणवत्ता, निष्पादन समय, मेमोरी उपयोग, प्रोग्राम का आकार, आदि)।
एक प्रोग्रामिंग प्रतियोगिता में सामान्यतः होस्ट सम्मिलित होता है जो तार्किक या [[गणितीय समस्या]]ओं का एक सेट प्रस्तुत करता है, जिसे [[पहेली]] या चुनौतियों के रूप में भी जाना जाता है, प्रतियोगियों के लिए (जो दसियों या सैकड़ों से कई हजारों की संख्या में भिन्न हो सकते हैं)। प्रतियोगियों को इन समस्याओं को हल करने में सक्षम [[कंप्यूटर प्रोग्राम]] लिखने की आवश्यकता होती है। जजिंग अधिकतर हल की गई समस्याओं की संख्या और सफल समाधान लिखने में लगने वाले समय पर आधारित होती है, किंतु इसमें अन्य कारक भी सम्मिलित हो सकते हैं (उत्पादित आउटपुट की गुणवत्ता, निष्पादन समय, मेमोरी उपयोग, प्रोग्राम का आकार, आदि)।


Line 8: Line 8:
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>
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 के बाद से हजारों प्रतिभागियों (या उल्लेखनीय प्रतियोगिताओं को देखें) में बड़े मापदंड पर बढ़ी है, और इंटरनेट के विकास से शक्ति से जुड़ी हुई है, जो भौगोलिक समस्याओं को दूर करते हुए अंतरराष्ट्रीय प्रतियोगिताओं को ऑनलाइन आयोजित करने की सुविधा प्रदान करती है।


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


समस्या श्रेणी के अतिरिक्त, किसी समस्या को हल करने की प्रक्रिया को दो व्यापक चरणों में विभाजित किया जा सकता है: एक कुशल एल्गोरिथ्म का निर्माण, और एल्गोरिदम को एक उपयुक्त [[प्रोग्रामिंग भाषा]] में प्रयुक्त करना (अनुमत प्रोग्रामिंग भाषाओं का सेट प्रतियोगिता से प्रतियोगिता में भिन्न होता है)। प्रोग्रामिंग प्रतियोगिताओं में ये दो सबसे अधिक परीक्षण किए गए कौशल हैं।
समस्या श्रेणी के अतिरिक्त, किसी समस्या को हल करने की प्रक्रिया को दो व्यापक चरणों में विभाजित किया जा सकता है: एक कुशल एल्गोरिथ्म का निर्माण, और एल्गोरिदम को एक उपयुक्त [[प्रोग्रामिंग भाषा]] में प्रयुक्त करना (अनुमत प्रोग्रामिंग भाषाओं का सेट प्रतियोगिता से प्रतियोगिता में भिन्न होता है)। प्रोग्रामिंग प्रतियोगिताओं में ये दो सबसे अधिक परीक्षण किए गए कौशल हैं।
Line 66: Line 66:
|[https://www.topcoder.com/community/member-programs/topcoder-open/ https://www.topcoder.com/community/member-programs/टोपकोडर-विवर्त/]
|[https://www.topcoder.com/community/member-programs/topcoder-open/ https://www.topcoder.com/community/member-programs/टोपकोडर-विवर्त/]
|}
|}
उपरोक्त अधिकांश प्रतियोगिताओं में, प्रतियोगिताएं सामान्यतः कई सीमा में आयोजित की जाती हैं। वे सामान्यतः ऑनलाइन सीमा से प्रारंभ होते हैं, जो ऑनसाइट फाइनल सीमा में समाप्त होते हैं। आईओआई और आईसीपीसी में शीर्ष प्रदर्शन करने वालों को स्वर्ण, रजत और कांस्य पदक प्राप्त होते हैं। अन्य प्रतियोगिताओं में, शीर्ष फिनिशरों को नकद पुरस्कार प्रदान किए जाते हैं। प्रतियोगिताएं कई सॉफ्टवेयर और इंटरनेट कंपनियों के नियोक्ताओं की रुचि को भी आकर्षित करती हैं, जो प्रायः संभावित नौकरी के प्रस्तावों के साथ प्रतियोगियों तक पहुंचते हैं।
उपरोक्त अधिकांश प्रतियोगिताओं में, प्रतियोगिताएं सामान्यतः कई सीमा में आयोजित की जाती हैं। वे सामान्यतः ऑनलाइन सीमा से प्रारंभ होते हैं, जो ऑनसाइट फाइनल सीमा में समाप्त होते हैं। आईओआई और आईसीपीसी में शीर्ष प्रदर्शन करने वालों को स्वर्ण, रजत और कांस्य पदक प्राप्त होते हैं। अन्य प्रतियोगिताओं में, शीर्ष फिनिशरों को नकद पुरस्कार प्रदान किए जाते हैं। प्रतियोगिताएं कई सॉफ्टवेयर और इंटरनेट कंपनियों के नियोक्ताओं की रुचि को भी आकर्षित करती हैं, जो प्रायः संभावित नौकरी के प्रस्तावों के साथ प्रतियोगियों तक पहुंचते हैं।


=== आर्टिफिशियल इंटेलिजेंस और मशीन लर्निंग ===
=== आर्टिफिशियल इंटेलिजेंस और मशीन लर्निंग ===
Line 72: Line 72:
* [[कागल]] - डेटा साइंस और मशीन लर्निंग प्रतियोगिताएं।
* [[कागल]] - डेटा साइंस और मशीन लर्निंग प्रतियोगिताएं।
* कोडकप - बोर्ड गेम एआई प्रतियोगिता 2003 से प्रतिवर्ष आयोजित की जाती है। खेल के नियम सितंबर में प्रकाशित होते हैं और अंतिम टूर्नामेंट जनवरी में आयोजित किया जाता है।<ref>{{cite web|url=https://www.codecup.nl/intro.php|title = कोडकप|work=www.codecup.nl}}</ref><ref name="hak11">Lasse Hakulinen. [https://www.academia.edu/1606336/Survey_on_Informatics_Competitions_Developing_Tasks  Survey on Informatics Competitions: Developing Tasks] – Olympiads in Informatics, 2011, Vol. 5, 12–25.</ref><ref name="les14"/>* गूगल AI चुनौती - 2009 से 2011 तक चलने वाले छात्रों के लिए द्वि-वार्षिक प्रतियोगिताएं।
* कोडकप - बोर्ड गेम एआई प्रतियोगिता 2003 से प्रतिवर्ष आयोजित की जाती है। खेल के नियम सितंबर में प्रकाशित होते हैं और अंतिम टूर्नामेंट जनवरी में आयोजित किया जाता है।<ref>{{cite web|url=https://www.codecup.nl/intro.php|title = कोडकप|work=www.codecup.nl}}</ref><ref name="hak11">Lasse Hakulinen. [https://www.academia.edu/1606336/Survey_on_Informatics_Competitions_Developing_Tasks  Survey on Informatics Competitions: Developing Tasks] – Olympiads in Informatics, 2011, Vol. 5, 12–25.</ref><ref name="les14"/>* गूगल AI चुनौती - 2009 से 2011 तक चलने वाले छात्रों के लिए द्वि-वार्षिक प्रतियोगिताएं।
*[[हैलाइट एआई प्रोग्रामिंग प्रतियोगिता|हैलाइट]]<ref>{{cite web|url=https://www.halite.io|title=Halite आर्टिफिशियल इंटेलिजेंस प्रोग्रामिंग चैलेंज|work=www.halite.io}}</ref> - टू सिग्मा, कॉर्नेल टेक और गूगल द्वारा प्रायोजित एक एआई प्रोग्रामिंग चुनौती।<ref>{{cite web|url=https://tech.cornell.edu/news/two-sigma-announces-public-launch-of-halite-ai-coding-game|title=टू सिग्मा ने हैलाइट के सार्वजनिक लॉन्च की घोषणा की|work=tech.cornell.edu|date=2 November 2016}}</ref> <ref>{{cite web|url=https://cloud.google.com/blog/big-data/2017/10/halite-helps-students-and-developers-compete-to-build-better-ai-on-google-cloud-platform|title=Halite helps students and developers compete to build better AI on Google Cloud Platform}}</ref>
*[[हैलाइट एआई प्रोग्रामिंग प्रतियोगिता|हैलाइट]]<ref>{{cite web|url=https://www.halite.io|title=Halite आर्टिफिशियल इंटेलिजेंस प्रोग्रामिंग चैलेंज|work=www.halite.io}}</ref> - टू सिग्मा, कॉर्नेल टेक और गूगल द्वारा प्रायोजित एक एआई प्रोग्रामिंग चुनौती।<ref>{{cite web|url=https://tech.cornell.edu/news/two-sigma-announces-public-launch-of-halite-ai-coding-game|title=टू सिग्मा ने हैलाइट के सार्वजनिक लॉन्च की घोषणा की|work=tech.cornell.edu|date=2 November 2016}}</ref> <ref>{{cite web|url=https://cloud.google.com/blog/big-data/2017/10/halite-helps-students-and-developers-compete-to-build-better-ai-on-google-cloud-platform|title=Halite helps students and developers compete to build better AI on Google Cloud Platform}}</ref>
* [[रूसी एआई कप]] - ओपन आर्टिफिशियल इंटेलिजेंस प्रोग्रामिंग प्रतियोगिता।
* [[रूसी एआई कप]] - ओपन आर्टिफिशियल इंटेलिजेंस प्रोग्रामिंग प्रतियोगिता।
* [[कोडिनगेम]] - मौसमी बॉट प्रोग्रामिंग प्रतियोगिताओं का आयोजन करता है।
* [[कोडिनगेम]] - मौसमी बॉट प्रोग्रामिंग प्रतियोगिताओं का आयोजन करता है।
Line 115: Line 115:


== ऑनलाइन प्लेटफॉर्म ==
== ऑनलाइन प्लेटफॉर्म ==
दुनिया भर के प्रोग्रामिंग समुदाय ने प्रतिस्पर्धी प्रोग्रामिंग के लिए समर्पित कई इंटरनेट-संसाधनों को बनाया और बनाए रखा है। वे सामान्य पुरस्कारों के साथ या उनके बिना स्टैंडअलोन प्रतियोगिताओं की प्रस्तुत करते हैं। साथ ही समस्याओं के पिछले संग्रह प्रतिस्पर्धी प्रोग्रामिंग में प्रशिक्षण के लिए एक लोकप्रिय संसाधन हैं। ऐसे कई संगठन हैं जो नियमित रूप से प्रोग्रामिंग प्रतियोगिताओं की होस्ट करते हैं। इसमे सम्मिलित है:
दुनिया भर के प्रोग्रामिंग समुदाय ने प्रतिस्पर्धी प्रोग्रामिंग के लिए समर्पित कई इंटरनेट-संसाधनों को बनाया और बनाए रखा है। वे सामान्य पुरस्कारों के साथ या उनके बिना स्टैंडअलोन प्रतियोगिताओं की प्रस्तुत करते हैं। साथ ही समस्याओं के पिछले संग्रह प्रतिस्पर्धी प्रोग्रामिंग में प्रशिक्षण के लिए एक लोकप्रिय संसाधन हैं। ऐसे कई संगठन हैं जो नियमित रूप से प्रोग्रामिंग प्रतियोगिताओं की होस्ट करते हैं। इसमे सम्मिलित है:
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
Line 146: Line 146:
|-
|-
|[[HackerRank|हैकररैंक]]
|[[HackerRank|हैकररैंक]]
| हैकररैंक कंप्यूटर साइंस के विभिन्न डोमेन में प्रोग्रामिंग समस्याएं प्रस्तुत करता है। यह वार्षिक कोडप्रिंट भी होस्ट करता है जो कोडर्स और सिलिकॉन वैली स्टार्टअप को जोड़ने में सहायता करता है।
| हैकररैंक कंप्यूटर साइंस के विभिन्न डोमेन में प्रोग्रामिंग समस्याएं प्रस्तुत करता है। यह वार्षिक कोडप्रिंट भी होस्ट करता है जो कोडर्स और सिलिकॉन वैली स्टार्टअप को जोड़ने में सहायता करता है।
| {{URL|hackerrank.com}}
| {{URL|hackerrank.com}}
|-
|-
Line 192: Line 192:


== लाभ और आलोचना ==
== लाभ और आलोचना ==
प्रोग्रामिंग प्रतियोगिताओं में भाग लेने से [[कंप्यूटर विज्ञान]] की पढ़ाई के लिए छात्रों का उत्साह बढ़ सकता है। आईसीपीसी जैसी प्रोग्रामिंग प्रतियोगिताओं में अर्जित कौशल भी कैरियर की संभावनाओं में सुधार करते हैं, क्योंकि वे विधि साक्षात्कारों को पास करने में सहायता करते हैं, जिसके लिए प्रायः उम्मीदवारों को जटिल प्रोग्रामिंग और एल्गोरिथम समस्याओं को अवसर पर हल करने की आवश्यकता होती है।<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="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" /> एक महत्वपूर्ण बिंदु यह है कि कई तेज़-तर्रार प्रोग्रामिंग प्रतियोगिताएँ प्रतियोगियों को खराब प्रोग्रामिंग आदतें और कोड शैली सिखाती हैं (जैसे [[मैक्रो (कंप्यूटर विज्ञान)]] का अनावश्यक उपयोग, ओओपी अमूर्तता और टिप्पणियों की कमी, छोटे चर नामों का उपयोग, आदि)।<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" /> इसके अतिरिक्त, अपेक्षाकृत कम समाधान के साथ केवल छोटी एल्गोरिथम पहेलियाँ प्रस्तुत करके, आईसीपीसी और आईओआई जैसी प्रोग्रामिंग प्रतियोगिताएं आवश्यक रूप से अच्छे सॉफ़्टवेयर इंजीनियरिंग कौशल और अभ्यास नहीं सिखाती हैं, क्योंकि वास्तविक सॉफ़्टवेयर परियोजनाओं में सामान्यतः कोड की हजारों स्रोत पंक्तियाँ होती हैं और बड़ी टीमों द्वारा विकसित की जाती हैं। लंबे समय तक<ref name="rg15">{{cite web |url=https://www.redgreencode.com/the-competitive-programming-debate/ |title=प्रतिस्पर्धी प्रोग्रामिंग बहस|date=December 2, 2015 |first=Duncan |last=Smith }}</ref> [[पीटर नॉरविग]] ने कहा कि उपलब्ध आंकड़ों के आधार पर, प्रोग्रामिंग प्रतियोगिताओं का विजेता होने के नाते गूगल में उनके काम पर प्रोग्रामर के प्रदर्शन के साथ ऋणात्मक रूप से सहसंबद्ध होता है (तथापि प्रतियोगिता विजेताओं को काम पर रखने की संभावना अधिक थी)।<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>{{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" /> इसके अतिरिक्त, अपेक्षाकृत कम समाधान के साथ केवल छोटी एल्गोरिथम पहेलियाँ प्रस्तुत करके, आईसीपीसी और आईओआई जैसी प्रोग्रामिंग प्रतियोगिताएं आवश्यक रूप से अच्छे सॉफ़्टवेयर इंजीनियरिंग कौशल और अभ्यास नहीं सिखाती हैं, क्योंकि वास्तविक सॉफ़्टवेयर परियोजनाओं में सामान्यतः कोड की हजारों स्रोत पंक्तियाँ होती हैं और बड़ी टीमों द्वारा विकसित की जाती हैं। लंबे समय तक<ref name="rg15">{{cite web |url=https://www.redgreencode.com/the-competitive-programming-debate/ |title=प्रतिस्पर्धी प्रोग्रामिंग बहस|date=December 2, 2015 |first=Duncan |last=Smith }}</ref> [[पीटर नॉरविग]] ने कहा कि उपलब्ध आंकड़ों के आधार पर, प्रोग्रामिंग प्रतियोगिताओं का विजेता होने के नाते गूगल में उनके काम पर प्रोग्रामर के प्रदर्शन के साथ ऋणात्मक रूप से सहसंबद्ध होता है (तथापि प्रतियोगिता विजेताओं को काम पर रखने की संभावना अधिक थी)।<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:49, 13 May 2023

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

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

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

इतिहास

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

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

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

अवलोकन

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

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

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

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


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

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

प्रतियोगिता का नाम [6] आयोजकों श्रोता विवरण प्रतिभागियों की संख्या वेबसाइट
गूगल कोड जैम (जीसीजे) गूगल विवर्त 2003 से 2023 में इसके समाप्त होने तक Google द्वारा आयोजित और प्रायोजित वार्षिक प्रतियोगिता।[7] 32,702 (2022)[8] https://codingcompetitions.withgoogle.com/codejam
अंतर्राष्ट्रीय कॉलेजिएट प्रोग्रामिंग प्रतियोगिता (आईसीपीसी)[9] आईसीपीसी फाउंडेशन विश्वविद्यालय के छात्र विश्वविद्यालय के छात्रों के लिए टीम प्रतियोगिता, इस प्रतियोगिता में कई क्षेत्रीय समय सम्मिलित होते हैं जो वार्षिक रूप से आयोजित एक विश्व फाइनल में समाप्त होते हैं। टीमों में एक ही विश्वविद्यालय के तीन छात्र सम्मिलित हैं और उन्हें केवल एक कंप्यूटर का उपयोग करने की अनुमति है। 50,000+ (2022)[10] https://icpc.global/
सूचना विज्ञान में अंतरराष्ट्रीय ओलंपियाड (आईओआई) (आईओआई) माध्यमिक विद्यालय के छात्र माध्यमिक विद्यालय के छात्रों के लिए अंतर्राष्ट्रीय प्रतियोगिता। 1989 से वार्षिक रूप से आयोजित। प्रत्येक देश प्रतिस्पर्धा के लिए अधिकतम 4 प्रतिभागियों को भेज सकता है। 349 from 88 countries (2022)[11] https://ioinformatics.org/
मेटा हैकर कप (पूर्व में फेसबुक हैकर कप) मेटा प्लेटफार्म विवर्त 2011 से आयोजित वार्षिक प्रतियोगिता। मेटा (पूर्व में फेसबुक) द्वारा आयोजित और प्रायोजित। 27,604 (2022)[12] https://www.facebook.com/codingcompetitions/hacker-cup
टोपकोडर विवर्त (टीसीओ) टोपकोडर विवर्त वार्षिक एल्गोरिथम प्रतियोगिता 2001 से 2023 में समाप्त होने तक आयोजित की गई [13] https://www.topcoder.com/community/member-programs/टोपकोडर-विवर्त/

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

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

[14]

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

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

  • सूची अधूरी हो सकती है
प्रतियोगिता का नाम मुख्य उन्नायक विवरण से चल रहा है सामान्य समय अगला आवेदन चक्र स्थिति
मल्टी-एजेंट प्रोग्रामिंग प्रतियोगिता क्लॉस्टल यूनिवर्सिटी ऑफ टेक्नोलॉजी एजेंट-उन्मुख कार्यशालाओं के संयोजन के साथ मल्टी-एजेंट प्रणाली डेवलपमेंट और प्रोग्रामिंग के क्षेत्र में अनुसंधान को प्रोत्साहित करने के लिए वार्षिक अंतर्राष्ट्रीय प्रोग्रामिंग प्रतियोगिता। 2005 सितंबर Sept 2011 सक्रिय
गूगल समर ऑफ कोड गूगल इंक. एक वार्षिक कार्यक्रम जिसमें गूगल उन सैकड़ों छात्रों को वजीफा देता है जो गर्मियों के समय अनुरोधित मुफ्त सॉफ्टवेयर / विवर्त-स्रोत कोडिंग परियोजना को सफलतापूर्वक पूरा करते हैं। 2005 मार्च-अगस्त Mar 23- Apr 3 सक्रिय
गूगल अत्यधिक विवर्त भागीदारी प्रतियोगिता गूगल इंक. 2007-8 में हाई स्कूल के छात्रों के उद्देश्य से गूगल द्वारा संचालित एक प्रतियोगिता। प्रतियोगिता हाई स्कूल के छात्रों को विवर्त स्रोत परियोजनाओं में भाग लेने के लिए प्रोत्साहित करने के लिए डिज़ाइन की गई है। 2007 नवम्बर-फरवरी अज्ञात अज्ञात


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

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

नाम विवरण वेबसाइट
beecrowd लैटिन अमेरिका में स्थित सबसे बड़ा प्रतिस्पर्धी प्रोग्रामिंग प्लेटफॉर्म। 3 अलग-अलग भाषाओं (अंग्रेजी, पुर्तगाली और स्पेनिश) में 2300+ प्रोग्रामिंग चुनौतियां सम्मिलित हैं, जिन्हें 9 श्रेणियों और कठिनाई के 10 विभिन्न स्तरों में वर्गीकृत किया गया है। यह निगमों द्वारा और स्वयं द्वारा प्रायोजित प्रतियोगिताओं की लगातार होस्ट करता है। इसे पहले यूआरआई ऑनलाइन न्यायाधीश के रूप में जाना जाता था। www.beecrowd.com.br
कोडशेफ [21][22] अकादमी द्वारा अनुरक्षित, यह हर महीने 3-दिवसीय प्रतियोगिता और कुछ छोटी प्रतियोगिताओं का आयोजन करता है (एक आईओआई शैली जिसे लंचटाइम कहा जाता है और अन्य आईसीपीसी शैली जिसे कुक-ऑफ कहा जाता है), और मुफ्त में शैक्षणिक संस्थानों को एक प्रतियोगिता होस्टिंग मंच प्रदान करता है। लंबी प्रतियोगिता के शीर्ष दो विजेताओं ने नकद पुरस्कार जीते जबकि शीर्ष 10 वैश्विक को एक टी-शर्ट मिली है । www.codechef.com
कोडकप 2003 से इंफॉर्मेटिक्स में डच ओलंपियाड द्वारा आयोजित वार्षिक अंतर्राष्ट्रीय बोर्ड गेम एआई प्रोग्रामिंग प्रतियोगिता।[16][17] codecup.nl
कोडबल [23][21] आईटीएमओ विश्वविद्यालय द्वारा अनुरक्षित रूसी संसाधन, जो अधिकतर बार-बार (प्रति सप्ताह दो तक) छोटी प्रतियोगिताएं प्रदान करता है। विशेष विशेषताएं: सभी समाधान विवर्त स्रोत हैं, "हैकिंग चरण", आभासी प्रतियोगिता, प्रशिक्षण आदि के समय अन्य प्रतियोगियों के समाधानों की शुद्धता की जांच करने की क्षमता। codeforces.com
कोडिनगेम पहेलियाँ (बढ़ती कठिनाई), कोड गोल्फ नियमित रूप से ऑनलाइन प्रतियोगिताओं की होस्ट करता है (एआई चुनौतियां, अनुकूलन समस्याएं)। www.codingame.com
हैकरअर्थ [21] भर्ती मूल्यांकन समाधान प्रदान करने के उद्देश्य से पर्यावरण जैसी ऑनलाइन प्रतियोगिता प्रदान करने वाली बैंगलोर भारत स्थित कंपनी। www.hackerearth.com
हैकररैंक हैकररैंक कंप्यूटर साइंस के विभिन्न डोमेन में प्रोग्रामिंग समस्याएं प्रस्तुत करता है। यह वार्षिक कोडप्रिंट भी होस्ट करता है जो कोडर्स और सिलिकॉन वैली स्टार्टअप को जोड़ने में सहायता करता है। hackerrank.com
प्रोजेक्ट यूलर [22] कम्प्यूटेशनल गणित की समस्याओं का बड़ा संग्रह (यानी सीधे प्रोग्रामिंग से संबंधित नहीं है किंतु प्रायः हल करने के लिए प्रोग्रामिंग कौशल की आवश्यकता होती है)। projecteuler.net
टोपकोडर[23][21] अमेरिकी संसाधन और कंपनी, जो प्रतियोगिताओं का आयोजन करती है और एक प्रकार की फ्री-लांस नौकरी के रूप में औद्योगिक समस्याएं भी प्रदान करती है; यह हर साल दर्जनों छोटी प्रतियोगिताएं और कई लंबी ("मैराथन") प्रदान करता है। विशिष्ट विशेषता - प्रतिभागियों के पास कोडिंग चरण के बाद और अंतिम स्वचालित परीक्षण (तथाकथित "चुनौती चरण") से पहले अन्य प्रतियोगियों के समाधानों की शुद्धता की जांच करने का अवसर होता है। www.topcoder.com
यूवीए ऑनलाइन न्यायाधीश [23][21] अभ्यास के लिए 4,500 से अधिक समस्याएं सम्मिलित हैं। नियमित ऑनलाइन प्रतियोगिताओं की होस्ट करता है। 1995 में खोला गया, यह ऐसी सबसे पुरानी वेबसाइटों में से एक है। onlinejudge.org
एसपीओजे [21] पोलिश ऑनलाइन न्यायाधीश प्रणाली जो प्रशिक्षण के लिए बहुत सारी समस्याएं प्रदान करती है, और अन्य आयोजकों को उनके प्रोग्रामिंग प्रतियोगिताओं की होस्ट करने के लिए एक मंच प्रदान करती है। www.spoj.com
विवर्त कट्टी 2600 से अधिक समस्याओं के संग्रह के साथ कट्टिस प्रतियोगिता प्रबंधन प्रणाली का सार्वजनिक संस्करण। कट्टिस को कंप्यूटर विज्ञान पाठ्यक्रमों में सहायता के लिए विकसित किया गया था,[23] किंतु इसका उपयोग आईसीपीसी वर्ल्ड फ़ाइनल जैसी प्रतिष्ठित प्रतियोगिताओं की होस्ट के लिए भी किया जाता है।[24] open.kattis.com
कोडर पर जापान में स्थित, एटकोडर साप्ताहिक आधार पर ऑनलाइन प्रोग्रामिंग प्रतियोगिताएं प्रदान करता है। प्रतियोगिताएं जापानी और अंग्रेजी में प्रस्तुत की जाती हैं।

2020 तक, यह अपनी तरह के सबसे लोकप्रिय प्लेटफार्मों में से एक है।.[25]

atcoder.jp
थाइमस यूराल क्षेत्र में प्रतियोगिताओं से समस्याएं सम्मिलित हैं। acm.timus.ru
वी जज कई ऑनलाइन न्यायाधीशों से समस्याएं सम्मिलित हैं। vjudge.net
बेकजून ओजे कोरियाई ऑनलाइन न्यायाधीश। acmicpc.net
लीटकोड लीटकोड में 2,300 से अधिक प्रश्न हैं जो कई अलग-अलग प्रोग्रामिंग अवधारणाओं को कवर करते हैं और साप्ताहिक और द्वि-साप्ताहिक प्रतियोगिताओं की पेशकश करते हैं। प्रोग्रामिंग कार्य अंग्रेजी और चीनी में प्रस्तुत किए जाते हैं। leetcode.com


लाभ और आलोचना

प्रोग्रामिंग प्रतियोगिताओं में भाग लेने से कंप्यूटर विज्ञान की पढ़ाई के लिए छात्रों का उत्साह बढ़ सकता है। आईसीपीसी जैसी प्रोग्रामिंग प्रतियोगिताओं में अर्जित कौशल भी कैरियर की संभावनाओं में सुधार करते हैं, क्योंकि वे विधि साक्षात्कारों को पास करने में सहायता करते हैं, जिसके लिए प्रायः उम्मीदवारों को जटिल प्रोग्रामिंग और एल्गोरिथम समस्याओं को अवसर पर हल करने की आवश्यकता होती है।[23][26]

विशेष रूप से कुशल सॉफ्टवेयर डेवलपर्स द्वारा प्रतिस्पर्धी प्रोग्रामिंग की भी आलोचना की गई है।[27] एक महत्वपूर्ण बिंदु यह है कि कई तेज़-तर्रार प्रोग्रामिंग प्रतियोगिताएँ प्रतियोगियों को खराब प्रोग्रामिंग आदतें और कोड शैली सिखाती हैं (जैसे मैक्रो (कंप्यूटर विज्ञान) का अनावश्यक उपयोग, ओओपी अमूर्तता और टिप्पणियों की कमी, छोटे चर नामों का उपयोग, आदि)।[28][27] इसके अतिरिक्त, अपेक्षाकृत कम समाधान के साथ केवल छोटी एल्गोरिथम पहेलियाँ प्रस्तुत करके, आईसीपीसी और आईओआई जैसी प्रोग्रामिंग प्रतियोगिताएं आवश्यक रूप से अच्छे सॉफ़्टवेयर इंजीनियरिंग कौशल और अभ्यास नहीं सिखाती हैं, क्योंकि वास्तविक सॉफ़्टवेयर परियोजनाओं में सामान्यतः कोड की हजारों स्रोत पंक्तियाँ होती हैं और बड़ी टीमों द्वारा विकसित की जाती हैं। लंबे समय तक[27] पीटर नॉरविग ने कहा कि उपलब्ध आंकड़ों के आधार पर, प्रोग्रामिंग प्रतियोगिताओं का विजेता होने के नाते गूगल में उनके काम पर प्रोग्रामर के प्रदर्शन के साथ ऋणात्मक रूप से सहसंबद्ध होता है (तथापि प्रतियोगिता विजेताओं को काम पर रखने की संभावना अधिक थी)।[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.


बाहरी संबंध

विवर्त-source project for running contests