คอมพิวเตอร์โอลิมปิกระหว่างประเทศ

การแข่งขันคอมพิวเตอร์โอลิมปิกระหว่างประเทศ (International Olympiad in Informatics - IOI) เป็นการแข่งขันเกี่ยวกับวิทยาการคอมพิวเตอร์ประจำปี เป็นหนึ่งในการแข่งขันโอลิมปิกวิชาการสำหรับนักเรียนมัธยมศึกษา คอมพิวเตอร์โอลิมปิกครั้งแรกเริ่มต้นในปี พ.ศ. 2532 (ค.ศ. 1989)
การแข่งขันประกอบด้วยการเขียนโปรแกรมคอมพิวเตอร์สองวัน เป็นการแก้ปัญหาด้วยขั้นตอนวิธีต่างๆ ผู้เข้าแข่งขันจะแข่งเป็นทีม ทีมละไม่เกิน 4 คนจากแต่ละประเทศ (อาจยกเว้นประเทศเจ้าภาพที่สามารถมีผู้เข้าแข่งขันเกิน 4 คนได้) แต่การแข่งขันจะเป็นการแข่งเดี่ยว มีผู้เข้าแข่งขันจาก 81 ประเทศเมื่อปี พ.ศ. 2547 นักเรียนที่เข้าแข่งขันจะมาจากการแข่งขันการเขียนโปรแกรมคอมพิวเตอร์ภายในประเทศ เพื่อเป็นตัวแทนประเทศนั้นๆ
== รูปแบบการแข่งขัน ==
การแข่งขันมีทั้งสิ้นสองวัน ในแต่ละวันนักเรียนแต่ละคนจะได้รับโจทย์ 3 ข้อ (บางปีอาจเป็น 4 ข้อ) และมีเวลาสำหรับแก้ปัญหา 5 ชั่วโมง ผู้เข้าแข่งขันจะต้องแก้ไขปัญหาด้วยตนเอง โดยมีคอมพิวเตอร์หนึ่งเครื่อง และไม่มีการช่วยเหลืออื่นใด เช่น การสื่อสารกับผู้แข่งขันคนอื่น การสื่อสารกับบุคคลภายนอก หนังสือ อินเทอร์เน็ต ฯลฯ โดยปกตินักเรียนจะต้องแก้ปัญหาโดยการเขียนโปรแกรมคอมพิวเตอร์ด้วย ภาษาซี, ภาษาซีพลัสพลัส หรือ ภาษาปาสกาล และส่งภายในเวลา 5 ชั่วโมงของการแข่งขัน หลังจากนั้นจะมีการตรวจโปรแกรมที่ส่งมาด้วยชุดข้อมูลทดสอบอันเป็นความลับ ซึ่งมีข้อมูลทดสอบจำนวนหนึ่ง (ปกติจะเป็น 10 หรือ 20 ข้อ) ผู้เข้าแข่งขันจะได้คะแนนสำหรับชุดทดสอบที่โปรแกรมทำงานถูกต้อง ภายในเวลาที่กำหนด และไม่ใช้หน่วยความจำเกินกำหนด โจทย์บางข้ออาจมีการตอบโต้ระหว่างโปรแกรมและไลบรารีหนึ่งซึ่งเป็นความลับ ทำให้ข้อมูลนำเข้ามีความแตกต่างกัน ขึ้นอยู่กับการตอบโต้ของโปรแกรม เช่นโจทย์เขียนโปรแกรมให้เล่นเกมให้ชนะ นอกจากนี้ยังมีปัญหาอีกชนิดหนึ่งซึ่งเปิดเผยชุดข้อมูลทดสอบให้กับนักเรียนระหว่างการแข่งขัน นักเรียนจะต้องแก้ปัญหาสำหรับข้อมูลทดสอบชุดนี้ และส่งคำตอบเท่านั้นโดยไม่ต้องส่งโปรแกรม ซึ่งนักเรียนอาจใช้การเขียนโปรแกรมแก้ปัญหา อาจทำด้วยมือ หรืออาจใช้การผสมผสานของสองอย่างนี้ก็ได้
คะแนนจากการแข่งขันทั้งสองวันจะนำมารวมกันสำหรับแต่ละคน จะมีการมอบเหรียญรางวัลหลังการแข่งขันจบ เหรียญรางวัลที่ได้ขึ้นอยู่กับคะแนนที่แต่ละคนทำได้ ผู้เข้าแข่งขันประมาณ 50% จะได้รับเหรียญรางวัล โดยมีอัตราส่วนของ เหรียญทอง:เหรียญเงิน:เหรียญทองแดง:ไม่ได้เหรียญรางวัล เป็น 1:2:3:6 (นั่นคือผู้เข้าแข่งขันหนึ่งในสิบสอง จะได้เหรียญทอง)
รูปแบบการแข่งขันอาจมีการปรับเปลี่ยนได้ ในการแข่งขัน IOI 2010 มีการเปลี่ยนมาใช้ระบบ RunC ซึ่งจะตรวจโปรแกรมที่ส่งไปทันที (ต่างจากก่อนหน้านี้ซึ่งการตรวจจะดำเนินการหลังจบการแข่งขันแล้ว) ผูเข้าแข่งขันสามารถใช้โทเค็นในการให้ระบบตรวจแสดงผลลัพธ์จากการตรวจเพื่อที่จะนำมาปรับปรุงโปรแกรมให้ถูกต้องยิ่งขึ้น โทเค็นที่ให้ตอนเริ่มต้นจะมีเพียงเล็กน้อยและจะค่อยๆเพิ่มขึ้นเมื่อเวลาผ่านไป เนื่องจากระบบตรวจโปรแกรมทันทีที่ส่ง จึงได้มีการแสดงตารางคะแนนออนไลน์ เพื่อให้ผู้ชมต่างๆจากทั่วโลกสามารถชมผลการแข่งขันออนไลน์ได้ นอกจากนี้ระบบ RunC ยังถูกพัฒนาให้ใช้งานร่วมกับโปรแกรมแก้ไขข้อความ gedit ได้อีกด้วย
ระบบ RunC ยังปรับเปลี่ยนรูปแบบการแข่งขันในอีกหลายเรื่อง ผู้เข้าแข่งขันจะต้องเขียนฟังก์ชันขึ้นมาเพื่อแก้ไขปัญหาแทนที่จะเขียนโปรแกรมขึ้นมาซึ่งทำให้บางปัญหายากขึ้น สำหรับวิธีการให้คะแนน ข้อมูลทดสอบจะถูกรวมเป็นกลุ่มๆเรียกว่างานย่อย ผู้เข้าแข่งขันจะได้คะแนนในงานย่อยใดๆก็ต่อเมื่อโปรแกรมทำงานถูกต้องสำหรับทุกๆข้อมูลทดสอบในงานย่อยนั้น แต่ละงานย่อยอาจมีข้อกำหนดที่แตกต่างกันเพื่อให้มีความยากง่ายแตกต่างกัน
ในการแข่งขัน IOI 2012 มีการใช้ระบบ CMS  แทนที่ระบบ RunC
== รายชื่อประเทศเจ้าภาพการแข่งขันคอมพิวเตอร์โอลิมปิก ==
{|class="wikitable"
|-
! IOI || เมืองที่จัดการแข่งขัน || ประเทศเจ้าภาพ || วันที่ || เว็บไซต์
|-
| IOI 2026 || ||  ประเทศอุซเบกิสถาน || พ.ศ. 2569 ||
|-
| IOI 2025 || ลาปาซ ||  ประเทศโบลิเวีย || พ.ศ. 2568 ||เว็บไซต์
|-
| IOI 2024 || อะเล็กซานเดรีย ||  ประเทศอียิปต์ || 1 กันยายน|1 - 8 กันยายน พ.ศ. 2567 ||เว็บไซต์
|-
| IOI 2023 || แซแก็ด ||  ประเทศฮังการี || 28 สิงหาคม - 4 กันยายน พ.ศ. 2566 ||เว็บไซต์
|-
| IOI 2022 || ยกยาการ์ตา ||  ประเทศอินโดนีเซีย || 7 สิงหาคม|7 - 15 สิงหาคม พ.ศ. 2565 ||เว็บไซต์
|-
| IOI 2021 || ออนไลน์ ||  ประเทศสิงคโปร์ || 20 มิถุนายน|19 - 25 มิถุนายน พ.ศ. 2564 ||เว็บไซต์
|-
| IOI 2020 || ออนไลน์ ||  ประเทศสิงคโปร์ || 13 กันยายน|13 - 19 กันยายน พ.ศ. 2563 ||เว็บไซต์
|-
| IOI 2019 || บากู ||  ประเทศอาเซอร์ไบจาน || 4 สิงหาคม|4 - 11 สิงหาคม พ.ศ. 2562 ||เว็บไซต์
|-
| IOI 2018 || สึกูบะ ||  ประเทศญี่ปุ่น || 1 กันยายน|1 - 8 กันยายน พ.ศ. 2561 ||เว็บไซต์
|-
| IOI 2017 || เตหะราน ||  ประเทศอิหร่าน || 28 กรกฎาคม - 4 สิงหาคม พ.ศ. 2560 ||เว็บไซต์
|-
| IOI 2016 || คาซาน ||  ประเทศรัสเซีย || 12 - 19 สิงหาคม พ.ศ. 2559 || เว็บไซต์ 
|-
| IOI 2015 || อัลมาเตอ ||  ประเทศคาซัคสถาน || 26 กรกฎาคม - 2 สิงหาคม พ.ศ. 2558 || เว็บไซต์
|-
| IOI 2014 || ไต้หวัน ||  ประเทศไต้หวัน || 13 - 20 กรกฎาคม พ.ศ. 2557 || เว็บไซต์ 
|-
| IOI 2013 || บริสเบน ||  ประเทศออสเตรเลีย || 6 - 13 กรกฎาคม พ.ศ. 2556 || เว็บไซต์
|-
| IOI 2012 || ลอมบาดี ||  ประเทศอิตาลี || 23 - 30 กันยายน พ.ศ. 2555 || เว็บไซต์ 
|-
| IOI 2011 || พัทยา ||  ประเทศไทย || 22 - 29 กรกฎาคม พ.ศ. 2554 || เว็บไซต์ 
|-
| IOI 2010 || วอเตอร์ลู ||  ประเทศแคนาดา || 14 - 21 สิงหาคม พ.ศ. 2553 || เว็บไซต์
|-
| IOI 2009 || ปลอฟดิฟ ||  ประเทศบัลแกเรีย || 8 - 15 สิงหาคม พ.ศ. 2552 || เว็บไซต์ 
|-
| IOI 2008 || ไคโร ||  ประเทศอียิปต์ || 16 - 23 สิงหาคม พ.ศ. 2551 || เว็บไซต์
|-
| IOI 2007 || ซาเกรบ ||  ประเทศโครเอเชีย || 15 - 22 สิงหาคม พ.ศ. 2550 || เว็บไซต์
|-
| IOI 2006 || เมอริด้า ||  ประเทศเม็กซิโก || 19 - 26 สิงหาคม พ.ศ. 2549 ||
|-
| IOI 2005 || โนวีซาด ||  ประเทศโปแลนด์ || 18 - 25 สิงหาคม พ.ศ. 2548 || เว็บไซต์
|-
| IOI 2004 || เอเธนส์ ||  ประเทศกรีซ || 11 - 18 กันยายน พ.ศ. 2547 || เว็บไซต์
|-
| IOI 2003 || คีโนชา ||  สหรัฐอเมริกา || 16 - 23 สิงหาคม พ.ศ. 2546 || เว็บไซต์
|-
| IOI 2002 || ยงอิน ||  ประเทศเกาหลีใต้ || 18 - 25 สิงหาคม พ.ศ. 2545 || เว็บไซต์ 
|-
| IOI 2001 || ตัมเปเร ||  ประเทศฟินแลนด์ || 14 - 21 กรกฎาคม พ.ศ. 2544 || เว็บไซต์ 
|-
| IOI 2000 || ปักกิ่ง ||  ประเทศจีน || 23 - 30 กันยายน พ.ศ. 2543 || เว็บไซต์ 
|-
| IOI 1999 || อันทัลยา ||  ประเทศตุรกี || 9 - 16 ตุลาคม พ.ศ. 2542 || เว็บไซต์ 
|-
| IOI 1998 || ซึตูบัล ||  ประเทศโปรตุเกส || 5 - 12 กันยายน พ.ศ. 2541 ||
|-
| IOI 1997 || เคปทาวน์ ||  ประเทศแอฟริกาใต้ || 30 พฤศจิกายน - 7 ธันวาคม พ.ศ. 2540 ||
|-
| IOI 1996 || เวสซ์เปรม ||  ประเทศฮังการี || 25 กรกฎาคม - 2 สิงหาคม พ.ศ. 2539 ||
|-
| IOI 1995 || ไอนด์โฮเวน ||  ประเทศเนเธอร์แลนด์ || 26 มิถุนายน - 3 กรกฎาคม พ.ศ. 2538 || เว็บไซต์
|-
| IOI 1994 || เฮนินง์ ||  ประเทศสวีเดน || 3 - 10 กรกฎาคม พ.ศ. 2537 ||
|-
| IOI 1993 || เมนโดซา ||  ประเทศอาร์เจนตินา || 16 - 25 ตุลาคม พ.ศ. 2536 || เว็บไซต์ 
|-
| IOI 1992 || บอนน์ ||  ประเทศเยอรมนี || 11 - 21 กรกฎาคม พ.ศ. 2535 ||
|-
| IOI 1991 || เอเธนส์ ||  ประเทศกรีซ || 19 - 25 พฤษภาคม พ.ศ. 2534 ||
|-
| IOI 1990 || มินสค์ ||  สหภาพโซเวียต || 15 - 21 กรกฎาคม พ.ศ. 2533 ||
|-
| IOI 1989 || แพรเวทส์ ||  ประเทศบัลแกเรีย || 16 - 19 พฤษภาคม พ.ศ. 2532 ||
|}
== อ้างอิง ==
== แหล่งข้อมูลอื่น ==
IOI International Committee Website
เว็บไซต์คอมพิวเตอร์โอลิมปิกประเทศไทย 
IOI Secretariat Website
รูปถ่ายจากการแข่งขันคอมพิวเตอร์โอลิมปิก
โอลิมปิกวิชาการ
การแข่งขันเขียนโปรแกรม