กลับไปหน้าบทความ

อ่าน 4 นาที

การเขียนโปรแกรมเชิงแข่งขัน

การเขียนโปรแกรมเชิงแข่งขันหรือการเขียนโปรแกรมกีฬาเป็นกีฬาทางความคิดที่ผู้เข้าร่วมพยายามเขียนโปรแกรมตามข้อกำหนดที่ให้ไว้ การแข่งขันมักจัดขึ้นทางอินเทอร์เน็ตหรือเครือข่ายท้องถิ่น...

การเขียนโปรแกรมเชิงแข่งขัน

ชายสองคนนั่งอยู่ที่โต๊ะทำงาน โดยมีคอมพิวเตอร์และเอกสารวางเกลื่อนอยู่บนโต๊ะ
เปตร มิทริเชฟ (ซ้าย) และเกนนาดี โคโรตเควิช (ขวา) สองนักเขียนโปรแกรมแข่งขันชื่อดังในงานYandex Algorithm Cup ปี 2013

การเขียนโปรแกรมเชิงแข่งขันหรือการเขียนโปรแกรมกีฬาเป็นกีฬาทางความคิดที่ผู้เข้าร่วมพยายามเขียนโปรแกรมตามข้อกำหนดที่ให้ไว้ การแข่งขันมักจัดขึ้นทางอินเทอร์เน็ตหรือเครือข่ายท้องถิ่น การเขียนโปรแกรมเชิงแข่งขัน ได้รับการยอมรับและสนับสนุนโดยบริษัทซอฟต์แวร์และอินเทอร์เน็ตข้ามชาติหลายแห่ง เช่นGoogle [ 1 ] [ 2 ]และMeta [ 3 ]

โดยทั่วไป การแข่งขันเขียนโปรแกรมจะเริ่มต้นด้วยผู้จัดงานนำเสนอชุดปัญหาเชิงตรรกะหรือ คณิตศาสตร์ หรือที่เรียกว่าปริศนาหรือความท้าทาย ให้แก่ผู้เข้าแข่งขัน (ซึ่งอาจมีจำนวนตั้งแต่หลักสิบหรือหลักร้อยไปจนถึงหลายพันคน) ผู้เข้าแข่งขันจะต้องเขียนโปรแกรมคอมพิวเตอร์ที่สามารถแก้ปัญหาเหล่านี้ได้ การตัดสินส่วนใหญ่จะพิจารณาจากจำนวนปัญหาที่แก้ได้และเวลาที่ใช้ในการเขียนโปรแกรม แต่ก็อาจรวมถึงปัจจัยอื่นๆ ด้วย (คุณภาพของผลลัพธ์ที่ได้ เวลาในการประมวลผล การใช้หน่วยความจำ ขนาดของโปรแกรม ฯลฯ)

ประวัติศาสตร์

หนึ่งในการแข่งขันที่เก่าแก่ที่สุดที่รู้จักกันคือการแข่งขันการเขียนโปรแกรมระดับวิทยาลัยนานาชาติ (ICPC) ซึ่งมีต้นกำเนิดในช่วงทศวรรษ 1970 [ 4 ]และได้ขยายไปสู่การรวม 88 ประเทศในการแข่งขันปี 2011

ตั้งแต่ปี พ.ศ. 2533 ถึง พ.ศ. 2537 Owen Astrachan , Vivek Khera และ David Kotz ได้จัดการแข่งขันเขียนโปรแกรมแบบกระจายศูนย์บนอินเทอร์เน็ตเป็นครั้งแรก โดยได้รับแรงบันดาลใจจาก ICPC [ 5 ]

ความสนใจในการเขียนโปรแกรมเชิงแข่งขันเติบโตขึ้นอย่างมากตั้งแต่ปี 2000 จนมีผู้เข้าร่วมหลายหมื่นคน (ดูการแข่งขันที่น่าสนใจ ) และมีความเชื่อมโยงอย่างแน่นหนากับการเติบโตของอินเทอร์เน็ต ซึ่งอำนวยความสะดวกในการจัดการแข่งขันระดับนานาชาติทางออนไลน์ ขจัดปัญหาด้านภูมิศาสตร์

ภาพรวม

จุดมุ่งหมายของการเขียนโปรแกรมเชิงแข่งขันคือการเขียนโปรแกรมคอมพิวเตอร์ที่สามารถแก้ปัญหาที่กำหนดได้ ปัญหาส่วนใหญ่ที่ปรากฏในการแข่งขันเขียนโปรแกรมมีลักษณะทางคณิตศาสตร์หรือตรรกะ งานทั่วไปดังกล่าวจัดอยู่ในหมวดหมู่ใดหมวดหมู่หนึ่งต่อไปนี้: คณิตศาสตร์เชิงการจัดเรียง , ทฤษฎีจำนวน , ทฤษฎีกราฟ , ทฤษฎีเกมเชิงอัลกอริทึม , เรขาคณิตเชิง คำนวณ , การวิเคราะห์สตริง,คณิตศาสตร์เชิงดิสครีตและโครงสร้างข้อมูล[ 6 ]ปัญหาที่เกี่ยวข้องกับการเขียนโปรแกรมแบบมีข้อจำกัดและปัญญาประดิษฐ์ก็เป็นที่นิยมในการแข่งขันบางรายการเช่นกัน

ไม่ว่าจะเป็นปัญหาประเภทใด กระบวนการแก้ปัญหาโดยทั่วไปสามารถแบ่งออกเป็นสองขั้นตอนหลักๆ คือ การสร้างอัลกอริทึม ที่มีประสิทธิภาพ และการนำอัลกอริทึมไปใช้งานในภาษาโปรแกรม ที่เหมาะสม (ชุดภาษาโปรแกรมที่อนุญาตจะแตกต่างกันไปในแต่ละการแข่งขัน) นี่คือสองทักษะที่ถูกทดสอบบ่อยที่สุดในการแข่งขันเขียนโปรแกรม

ในการแข่งขันส่วนใหญ่ การตัดสินจะทำโดยอัตโนมัติโดยเครื่องโฮสต์ ซึ่งโดยทั่วไปเรียกว่าเครื่องตัดสิน ทุกโซลูชันที่ผู้เข้าแข่งขันส่งมาจะถูกทดสอบบนเครื่องตัดสินกับชุดกรณีทดสอบ (โดยปกติจะเป็นความลับ) โดยทั่วไปแล้ว ปัญหาในการแข่งขันจะมีระบบการให้คะแนนแบบ "ได้ทั้งหมดหรือไม่ได้เลย" หมายความว่า โซลูชันจะ "ได้รับการยอมรับ" ก็ต่อเมื่อให้ผลลัพธ์ที่น่าพอใจในทุกกรณีทดสอบที่เครื่องตัดสินทดสอบ และจะถูกปฏิเสธหากไม่เป็นเช่นนั้น อย่างไรก็ตาม ปัญหาในการแข่งขันบางข้ออาจอนุญาตให้มีการให้คะแนนบางส่วน ขึ้นอยู่กับจำนวนกรณีทดสอบที่ผ่าน คุณภาพของผลลัพธ์ หรือเกณฑ์อื่นๆ ที่ระบุไว้ การแข่งขันบางรายการกำหนดให้ผู้เข้าแข่งขันส่งเฉพาะผลลัพธ์ที่สอดคล้องกับข้อมูลอินพุตที่กำหนดเท่านั้น ในกรณีนี้ เครื่องตัดสินจะต้องวิเคราะห์เฉพาะข้อมูลผลลัพธ์ที่ส่งมาเท่านั้น

ระบบตัดสินออนไลน์คือสภาพแวดล้อมออนไลน์ที่ใช้ในการทดสอบ ระบบตัดสินออนไลน์มีรายการจัดอันดับที่แสดงผู้ใช้ที่มีจำนวนโซลูชันที่ได้รับการยอมรับมากที่สุดและ/หรือเวลาในการดำเนินการที่สั้นที่สุดสำหรับปัญหาเฉพาะ[ 7 ]

การแข่งขันที่น่าสนใจ

การแข่งขันอัลกอริทึม

ชื่อของการแข่งขัน[ 8 ]ผู้จัดงาน ผู้ชม คำอธิบาย จำนวนผู้เข้าร่วม
Google Code Jam (GCJ) Googleเปิด การแข่งขันประจำปีที่จัดและสนับสนุนโดยGoogleตั้งแต่ปี 2003 จนกระทั่งถูกยกเลิกในปี 2023 [ 9 ]32,702 (2022) [ 10 ]
การแข่งขันการเขียนโปรแกรมระดับวิทยาลัยนานาชาติ (ICPC) [ 11 ]มูลนิธิ ICPC นักศึกษามหาวิทยาลัย การแข่งขันแบบทีมสำหรับนักศึกษามหาวิทยาลัย การแข่งขันประกอบด้วยรอบระดับภูมิภาคหลายรอบ ซึ่งจะสิ้นสุดลงด้วยรอบชิงชนะเลิศระดับโลกที่จัดขึ้นทุกปี ทีมประกอบด้วยนักศึกษา 3 คนจากมหาวิทยาลัยเดียวกัน และอนุญาตให้ใช้คอมพิวเตอร์ได้เพียงเครื่องเดียว[ 12 ]50,000+ (2022) [ 13 ]
การแข่งขันโอลิมปิกวิชาการนานาชาติสาขาสารสนเทศศาสตร์ (IOI) ไอโอไอ นักเรียนเตรียมเข้ามหาวิทยาลัย การแข่งขันระดับนานาชาติสำหรับนักเรียนมัธยมศึกษา จัดขึ้นทุกปีตั้งแต่ปี 1989 แต่ละประเทศสามารถส่งผู้เข้าร่วมแข่งขันได้ไม่เกิน 4 คน 349 จาก 88 ประเทศ (2022) [ 14 ]
Meta Hacker Cup (เดิมชื่อFacebook Hacker Cup ) แพลตฟอร์มเมตาเปิด การแข่งขันประจำปีที่จัดขึ้นตั้งแต่ปี 2011 จัดและสนับสนุนโดยMeta (เดิมคือFacebook ) 27,604 (2022) [ 15 ]
Topcoder Open (TCO) ท็อปโค้ดเดอร์เปิด การแข่งขันอัลกอริทึมประจำปีจัดขึ้นตั้งแต่ปี 2001 จนกระทั่งถูกยกเลิกในปี 2023 [ 16 ]

ในการแข่งขันส่วนใหญ่ที่กล่าวมาข้างต้น การแข่งขันมักจะจัดขึ้นหลายรอบ โดยปกติจะเริ่มต้นด้วยรอบออนไลน์ และจบลงด้วยรอบชิงชนะเลิศแบบจัดขึ้นจริง ผู้ที่ได้อันดับสูงสุดในการแข่งขัน IOI และ ICPC จะได้รับเหรียญทอง เงิน และทองแดง ส่วนในการแข่งขันอื่นๆ จะมีการมอบเงินรางวัลให้แก่ผู้ที่ได้อันดับสูงสุด การแข่งขันเหล่านี้ยังดึงดูดความสนใจจากผู้สรรหาบุคลากรจากบริษัทซอฟต์แวร์และบริษัทอินเทอร์เน็ตหลายแห่ง ซึ่งมักจะติดต่อผู้เข้าแข่งขันเพื่อเสนองานให้

ปัญญาประดิษฐ์และการเรียนรู้ของเครื่องจักร

  • รายชื่ออาจไม่ครบถ้วน
ชื่อ ผู้จัดงานหลัก คำอธิบาย สถานะ
แค็กเกิลGoogle แพลตฟอร์มการแข่งขันและชุมชนออนไลน์ด้านวิทยาศาสตร์ข้อมูล การเรียนรู้ของเครื่อง และการเพิ่มประสิทธิภาพทางคณิตศาสตร์ คล่องแคล่ว
ความท้าทายด้าน AI มหาวิทยาลัยวอเตอร์ลู การแข่งขันเขียนโปรแกรมปัญญาประดิษฐ์ระดับนานาชาติที่จัดขึ้นระหว่างปี 2009 ถึง 2011 ไม่ใช้งาน
การแข่งขันเขียนโปรแกรม AI Haliteทูซิกมา, คอร์เนลล์เทค การแข่งขันเขียนโปรแกรมคอมพิวเตอร์ที่ผู้เข้าร่วมสร้างบอทด้วยภาษาโปรแกรมที่ต้องการเพื่อแข่งขันกันในสนามรบสองมิติ ไม่ทราบ
ถ้วย AI ของรัสเซียกลุ่ม Mail.Ru, My.com การแข่งขันเขียนโปรแกรมปัญญาประดิษฐ์ประจำปี ไม่ทราบ

การประกวดที่เน้นเทคโนโลยีโอเพนซอร์ส

  • รายชื่ออาจไม่ครบถ้วน
ชื่อการประกวด ผู้สนับสนุนหลัก คำอธิบาย ดำเนินการตั้งแต่ เวลาปกติ รอบการสมัครถัดไป สถานะ
การแข่งขันการเขียนโปรแกรมแบบหลายเอเจนต์มหาวิทยาลัยเทคโนโลยีคลอสทาลร่วมกับเวิร์กช็อปที่เน้นตัวแทน (agent-oriented workshops) การแข่งขันเขียนโปรแกรมระดับนานาชาติประจำปี เพื่อกระตุ้นการวิจัยในด้านการพัฒนาและการเขียนโปรแกรมระบบหลายเอเจนต์ 2548 กันยายน กันยายน 2554 คล่องแคล่ว
โครงการ Google Summer of Codeบริษัท กูเกิล อิงค์โครงการประจำปีที่ Google มอบทุนสนับสนุนแก่นักเรียนหลายร้อยคนที่ทำโครงการเขียนโค้ดซอฟต์แวร์โอเพนซอร์ส/ฟรีซอฟต์แวร์ตามที่ร้องขอสำเร็จในช่วงฤดูร้อน 2548 มี.ค.-ส.ค. 23 มี.ค. - 3 เม.ย. คล่องแคล่ว
การประกวดแบบเปิดกว้างของ Googleบริษัท กูเกิล อิงค์ การประกวดที่จัดโดย Google ในปี 2007-2008 สำหรับนักเรียนมัธยมปลาย การประกวดนี้ออกแบบมาเพื่อส่งเสริมให้นักเรียนมัธยมปลายมีส่วนร่วมในโครงการโอเพนซอร์ส 2007 พฤศจิกายน-กุมภาพันธ์ ไม่ทราบ ไม่ทราบ

แพลตฟอร์มออนไลน์

ชุมชนโปรแกรมเมอร์ทั่วโลกได้สร้างและดูแลรักษาแหล่งข้อมูลทางอินเทอร์เน็ตหลายแห่งที่อุทิศให้กับการเขียนโปรแกรมเชิงแข่งขัน แหล่งข้อมูลเหล่านี้จัดการแข่งขันแบบเดี่ยวๆ โดยมีหรือไม่มีรางวัลเล็กน้อย โดยทั่วไปผู้ใช้จะได้รับการจัดอันดับตามผลงานในการแข่งขันเหล่านั้น คลังเก็บโจทย์เก่าๆ เป็นแหล่งข้อมูลยอดนิยมสำหรับการฝึกฝนการเขียนโปรแกรมเชิงแข่งขัน นอกจากนี้ยังมีองค์กรหลายแห่งที่จัดการแข่งขันเขียนโปรแกรมเป็นประจำ ได้แก่:

ชื่อ คำอธิบาย
การกำเนิดของโค้ดการแข่งขันเขียนโปรแกรมประจำปีที่จัดขึ้นในช่วงเทศกาล เตรียมรับวันคริสต์มาส โดยจะมีการปล่อยโจทย์ใหม่สองข้อในแต่ละวัน ไปจนถึงวันคริสต์มาส โจทย์ข้อที่สองของแต่ละวันจะถูกล็อกไว้จนกว่าจะแก้ข้อแรกเสร็จ และโดยปกติแล้วจะเป็นโจทย์ที่ต่อเนื่องจากข้อแรก มีการจัดอันดับทั้งแบบรวมทั่วโลกและแบบส่วนตัวในแต่ละปี โดยการจัดอันดับจะขึ้นอยู่กับว่าใครแก้โจทย์ได้ก่อนเป็นคนแรก
CodeChef [ 17 ] [ 18 ]โครงการนี้ดูแลโดย Unacademy โดยจัดการแข่งขันระยะยาว 3 วัน และการแข่งขันระยะสั้นอีกสองรายการทุกเดือน (รายการหนึ่งคล้ายรูปแบบ IOI ชื่อ Lunchtime และอีกรายการคล้ายรูปแบบ ICPC ชื่อ Cook-Off) และให้บริการแพลตฟอร์มการจัดแข่งขันแก่สถาบันการศึกษาโดยไม่เสียค่าใช้จ่าย ผู้ชนะสองอันดับแรกของการแข่งขันระยะยาวจะได้รับรางวัลเป็นเงินสด ในขณะที่ 10 อันดับแรกของโลกจะได้รับเสื้อยืด
Codeforces [ 19 ] [ 17 ]แพลตฟอร์มของรัสเซียที่ดูแลโดยมหาวิทยาลัย ITMOจัดการแข่งขันบ่อยครั้ง (สูงสุดสองครั้งต่อสัปดาห์) แต่ละครั้งใช้เวลา 2-3 ชั่วโมง (มีให้เลือกทั้งภาษาอังกฤษและรัสเซีย) ผู้ใช้ยังสามารถเข้าร่วมการแข่งขันที่ผู้ใช้รายอื่นเผยแพร่ในส่วน "gym" ส่งกรณีทดสอบเพิ่มเติมเพื่อ "แฮ็ก" ผลงานของผู้เข้าร่วมแข่งขันคนอื่น ๆ ในระหว่างการแข่งขัน เขียนบล็อกเพื่อแบ่งปันเทคนิคระหว่างกัน และดูซอร์สโค้ดของวิธีแก้ปัญหาจากผู้ใช้รายอื่น ผู้เข้าร่วมแข่งขันที่ได้รับคะแนนสูงพออาจได้รับคุณสมบัติเพิ่มเติม เช่น ความสามารถในการเพิ่มแท็กให้กับปัญหาและเสนอชุดปัญหาเพื่อเข้าร่วมการแข่งขันอย่างเป็นทางการ
โคดินเกมเกมปริศนา (ระดับความยากเพิ่มขึ้นเรื่อยๆ), เกมเขียนโค้ดแบบกอล์ฟจัดการแข่งขันออนไลน์เป็นประจำ (เกมเขียนโค้ดและความท้าทายด้านการเขียนโปรแกรม)
Codewarsแพลตฟอร์มที่ขับเคลื่อนโดยชุมชน พร้อมสภาพแวดล้อมการพัฒนาแบบบูรณาการออนไลน์ที่ผู้ใช้สามารถแก้โจทย์ ปัญหาการเขียนโค้ดขนาดเล็ก (kata ) ในภาษาโปรแกรมที่หลากหลาย ผู้ใช้จะได้รับอันดับและเกียรติยศเมื่อทำโจทย์สำเร็จและสร้างโจทย์ใหม่ เน้นการเรียนรู้ผ่านการฝึกฝนและการตรวจสอบโดยเพื่อนร่วมทีม โดยมีเฉลยและบทสนทนาให้ดูหลังจากทำโจทย์แต่ละข้อเสร็จแล้ว
HackerEarth [ 17 ]บริษัทที่ตั้งอยู่ในเมือง บังกาลอร์ประเทศอินเดียให้บริการสภาพแวดล้อมการแข่งขันออนไลน์ โดยมีเป้าหมายเพื่อให้บริการด้านการประเมินผลการสรรหาบุคลากร
แฮ็กเกอร์แรงค์HackerRank นำเสนอโจทย์การเขียนโปรแกรมในหลากหลายสาขาวิทยาการคอมพิวเตอร์ นอกจากนี้ยังจัดงาน Codesprint ประจำปี ซึ่งช่วยเชื่อมโยงนักเขียนโค้ดและสตาร์ทอัพ ในซิลิคอนแวลลี ย์เข้าด้วยกัน
ลีทโค้ดLeetCode มีคำถามมากกว่า 2,300 ข้อ ครอบคลุมแนวคิดการเขียนโปรแกรมที่หลากหลาย และมีการจัดการแข่งขันรายสัปดาห์และรายสองสัปดาห์ โจทย์การเขียนโปรแกรมมีให้เลือกทั้งภาษาอังกฤษและภาษาจีน
โครงการออยเลอร์[ 18 ]แหล่งรวม โจทย์ คณิตศาสตร์เชิงคำนวณ ขนาดใหญ่ (เช่น โจทย์ที่ไม่เกี่ยวข้องกับการเขียนโปรแกรมโดยตรง แต่ส่วนใหญ่มักต้องใช้ทักษะการเขียนโปรแกรมในการแก้ปัญหา) แตกต่างจากระบบตรวจสอบโจทย์ออนไลน์อื่นๆ ตรงที่ ไม่จำเป็นต้องส่งโค้ดต้นฉบับเพื่อส่งคำตอบ แต่ละโจทย์ต้องการเพียงคำตอบเชิงตัวเลข (ซึ่งโดยปกติแล้วจะมีขนาดใหญ่เกินกว่าจะเดาหรือคำนวณด้วยมือได้) ทำให้ผู้ใช้สามารถใช้วิธีการใดๆ ก็ได้ตามที่เห็นสมควรในการแก้ปัญหา รวมถึงการเลือกใช้หรือไม่ใช้ภาษาโปรแกรมก็ได้
SPOJ [ 17 ]ระบบ ตัดสินออนไลน์ของโปแลนด์ที่ให้โจทย์ปัญหามากมายสำหรับการฝึกฝน และเป็นแพลตฟอร์มสำหรับผู้จัดงานอื่นๆ ในการจัดการแข่งขันเขียนโปรแกรมของตนเอง
ท็อปโคเดอร์[ 19 ] [ 17 ]บริษัทและแหล่งข้อมูลจากสหรัฐอเมริกา ซึ่งจัดกิจกรรมการแข่งขันและให้โจทย์ปัญหาทางอุตสาหกรรมในรูปแบบงานฟรีแลนซ์ โดยจัดกิจกรรมการแข่งขันระยะสั้นหลายสิบรายการและการแข่งขันระยะยาว ("มาราธอน") อีกหลายรายการในแต่ละปี จุดเด่นคือ ผู้เข้าร่วมมีโอกาสตรวจสอบความถูกต้องของคำตอบของผู้เข้าร่วมคนอื่นๆ หลังจากขั้นตอนการเขียนโค้ดและก่อนการทดสอบอัตโนมัติขั้นสุดท้าย (ที่เรียกว่า "ขั้นตอนการตรวจสอบความถูกต้อง")
UVa Online Judge [ 19 ] [ 17 ]มีโจทย์ให้ฝึกฝนมากกว่า 4,500 ข้อ จัดการแข่งขันออนไลน์เป็นประจำ เปิดให้บริการตั้งแต่ปี 1995 จึงเป็นหนึ่งในเว็บไซต์ประเภทนี้ที่เก่าแก่ที่สุด

ข้อดีและข้อเสีย

การเข้าร่วมการแข่งขันเขียนโปรแกรมอาจเพิ่มความกระตือรือร้นของนักเรียนใน การศึกษาด้าน วิทยาการคอมพิวเตอร์ทักษะที่ได้รับจากการแข่งขันเขียนโปรแกรมแบบ ICPC ยังช่วยปรับปรุงโอกาสในอาชีพการงาน เนื่องจากช่วยให้ผ่าน "การสัมภาษณ์ทางเทคนิค" ซึ่งมักต้องการให้ผู้สมัครแก้ปัญหาการเขียนโปรแกรมและอัลกอริทึมที่ซับซ้อนได้ทันที[ 19 ] [ 20 ]

นอกจากนี้ยังมีการวิพากษ์วิจารณ์การเขียนโปรแกรมเชิงแข่งขัน โดยเฉพาะจากนักพัฒนาซอฟต์แวร์ มือ อาชีพ[ 21 ]ประเด็นสำคัญประการหนึ่งคือ การแข่งขันเขียนโปรแกรมที่รวดเร็วหลายรายการสอนให้ผู้เข้าแข่งขันมีนิสัยการเขียนโปรแกรมและรูปแบบโค้ดที่ไม่ดี (เช่น การใช้มาโคร โดยไม่จำเป็น การ ขาด นามธรรม เชิงวัตถุและคำอธิบาย การใช้ชื่อตัวแปรสั้นๆ เป็นต้น) [ 22 ] [ 21 ]นอกจากนี้ การแข่งขันเขียนโปรแกรมอย่าง ICPC และ IOI ที่นำเสนอเพียงปริศนาอัลกอริทึมขนาดเล็กที่มีวิธีแก้ปัญหาค่อนข้างสั้น ไม่ได้สอน ทักษะและแนวปฏิบัติ ด้านวิศวกรรมซอฟต์แวร์ ที่ดีเสมอไป เนื่องจากโครงการซอฟต์แวร์จริงมักมีโค้ดหลายพันบรรทัดและได้รับการพัฒนาโดยทีมขนาดใหญ่ในช่วงระยะเวลานาน[ 21 ]ปีเตอร์ นอร์วิกกล่าวว่า จากข้อมูลที่มีอยู่ การเป็นผู้ชนะการแข่งขันเขียนโปรแกรมมีความสัมพันธ์เชิงลบกับประสิทธิภาพของโปรแกรมเมอร์ในการทำงานที่ Google (แม้ว่าผู้ชนะการแข่งขันจะมีโอกาสได้รับการว่าจ้างสูงกว่าก็ตาม) [ 23 ]ต่อมานอร์วิกกล่าวว่า ความสัมพันธ์นี้พบในชุดข้อมูล ขนาดเล็ก แต่ไม่สามารถยืนยันได้หลังจากตรวจสอบชุดข้อมูลขนาดใหญ่ขึ้น[ 24 ]

ความคิดเห็นอีกประการหนึ่งคือ แทนที่จะใช้เวลาไปกับการแข่งขันมากเกินไปในการแก้ปัญหาที่มีวิธีแก้ปัญหาที่ทราบอยู่แล้ว โปรแกรมเมอร์ที่มีชื่อเสียงควรลงทุนเวลาในการแก้ปัญหาในโลกแห่งความเป็นจริงแทน[ 21 ]

วรรณกรรม

  • Halim, S., Halim, F. (2013). การเขียนโปรแกรมเชิงแข่งขัน 3: ขีดจำกัดล่างใหม่ของการแข่งขันการเขียนโปรแกรม Lulu.
  • Laaksonen, A. (2017). คู่มือการเขียนโปรแกรมเชิงแข่งขัน (หัวข้อระดับปริญญาตรีในสาขาวิทยาการคอมพิวเตอร์). Cham: Springer International Publishing.
  • Xu, X. (2020) การพัฒนา ความเจริญรุ่งเรือง และความเสื่อมถอยของโอลิมปิกในสาขาวิทยาการสารสนเทศเผยแพร่ทางออนไลน์
  • คอสท์กา บี. (2021). โปรแกรมกีฬาในทางปฏิบัติมหาวิทยาลัยวรอตซวาฟ

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Competitive_programming&oldid=1352785104 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การเขียนโปรแกรมเชิงแข่งขัน

การเขียนโปรแกรมเชิงแข่งขันหรือการเขียนโปรแกรมกีฬาเป็นกีฬาทางความคิดที่ผู้เข้าร่วมพยายามเขียนโปรแกรมตามข้อกำหนดที่ให้ไว้ การแข่งขันมักจัดขึ้นทางอินเทอร์เน็ตหรือเครือข่ายท้องถิ่น...

ประวัติศาสตร์

หนึ่งในการแข่งขันที่เก่าแก่ที่สุดที่รู้จักกันคือ การแข่งขันการเขียนโปรแกรมระดับวิทยาลัยนานาชาติ (ICPC) ซึ่งมีต้นกำเนิดในช่วงทศวรรษ 1970 [ 4 ] และได้ขยายไปสู่การรวม 88 ประเทศในการแข่งขันปี 2011

ภาพรวม

จุดมุ่งหมายของการเขียนโปรแกรมเชิงแข่งขันคือการเขียนโปรแกรมคอมพิวเตอร์ที่สามารถแก้ปัญหาที่กำหนดได้ ปัญหาส่วนใหญ่ที่ปรากฏในการแข่งขันเขียนโปรแกรมมีลักษณะทางคณิตศาสตร์หรือตรรกะ งานทั่วไปดังกล่าวจัดอยู่ในหมวดหมู่ใดหมวดหมู่หนึ่งต่อไปนี้: คณิตศาสตร์เชิงการจัดเรียง...

การแข่งขันอัลกอริทึม

ในการแข่งขันส่วนใหญ่ที่กล่าวมาข้างต้น การแข่งขันมักจะจัดขึ้นหลายรอบ โดยปกติจะเริ่มต้นด้วยรอบออนไลน์ และจบลงด้วยรอบชิงชนะเลิศแบบจัดขึ้นจริง ผู้ที่ได้อันดับสูงสุดในการแข่งขัน IOI และ ICPC จะได้รับเหรียญทอง เงิน และทองแดง ส่วนในการแข่งขันอื่นๆ...