การแข่งขันการเขียนโปรแกรม ระดับมัธยมศึกษาตอนปลาย ปี 2561
iCode Programming Contest 2018

ณ ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเชียงใหม่ 

     จัดขึ้นวันที่ 19 สิงหาคม 2561
 

ปิดรับสมัครเข้าร่วมการแข่งขัน!!! เนื่องจากทีมที่สมัครเข้าร่วมการแข่งขันครบจำนวนแล้ว 

ประกาศรายชื่อผู้ที่ได้เข้าร่วมการแข่งขัน  iCode 2018   

คลิกลิงค์เพื่อดูรายชื่อทีมที่ได้เข้าร่วมการแข่งขัน  

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

 

เปิดรับสมัครเข้าร่วมค่ายเตรียมความพร้อมสำหรับการแข่งขัน iCode 2018 
รับสมัครตั้งแต่วันนี้ - วันศุกร์ ที่ 22 มิถุนายน 2561 และประกาศรายชื่อผู้สิทธิ์เข้าร่วมการอบรม ในวันเสาร์ที่ 23 มิถุนายน 2561 

<<คลิกสมัครเข้าร่วมค่ายอบรม>>
 

อบรมในวันที่: 7-8 กรกฎาคม 2561   (9.00 - 16.30 น.)

สถานที่: ชั้น 3 อาคาร 30 ปี คณะวิศวกรรมศาสตร์

  • ห้องคอมพิวเตอร์ 302
  • ห้องคอมพิวเตอร์ 314-315

*หมายเหตุ:

  1. ผู้ที่เข้าร่วมกิจกรรมนี้จะไม่ได้รับประกาศนียบัตรใดๆจากการเข้าร่วมอบรมนี้ การเข้าร่วมกิจกรรมนี้เป็นไปโดยสมัครใจ และจะไม่ส่งผลใดๆต่อผลการแข่งขัน iCode 2018 ที่จะมีขึ้นในวันที่ 19 สิงหาคม 2561
  2. ผู้ที่มีสิทธิ์เข้าร่วมการอบรม ต้องเป็นผู้ที่มีรายชื่อสมัคร และได้รับการคัดเลือกให้เข้าร่วมแข่งขัน iCode 2018 เท่านั้น
  3. เนื่องจากมีข้อจำกัดด้านสถานที่การจัดอบรม ทางผู้จัดการอบรมขอสงวนสิทธิ์ในการคัดเลือกผู้มีสิทธิ์เข้าร่วมอบรม ในกรณีที่มีผู้สมัครเข้าร่วมกิจกรรมมากเกินกว่าที่กำหนด
  4. หากท่านไม่สามารถมาร่วมกิจกรรมได้ ขอช่วยกรุณาแจ้งมาให้ทางผู้จัดการอบรมทราบล่วงหน้าไม่น้อยกว่า 5 วัน

 

 

 

กำหนดการอบรม เตรียมความพร้อมสำหรับการแข่งขัน iCode 2018

 

วันเสาร์ที่ 7 กรกฎาคม 2561

 
 

9.00 -9.30 น.

ลงทะเบียน และรับอาหารว่าง ชั้น 5 อาคาร 30 ปี

9.30-10.00 น.

พิธีเปิด ณ ห้อง 516 ชั้น 5 อาคาร 30 ปี

10.00-12.00 น.

อบรม “พื้นฐานการเขียนโปรแกรมด้วยภาษา C++ ส่วนที่ 1”

  • Data and variable types, input/output
  • Operators, control flow, arrays

12.00-13.00 น.

พักรับประทานอาหารกลางวัน

13.00-14.30 น.

อบรม “พื้นฐานการเขียนโปรแกรมด้วยภาษา C++ ส่วนที่ 2”

  • String, structure, pointer, functions

14.30-15.00 น.

พักอาหารว่าง

15.00-16.30 น.

ทดลองเขียนโปรแกรมแก้ไขโจทย์ปัญหา#1

 

วันอาทิตย์ที่ 8 กรกฎาคม 2561

 

9.00-10.30 น.

อบรม “อัลกอริธึม และเครื่องมือสำหรับการแก้ปัญหาด้วยคอมพิวเตอร์”

  • STL: container, Algorithms, Iterators

10.30-10.45

พักอาหารว่าง

10.45-12.00 น.

อบรม “รูปแบบคำถาม/คำตอบ และการใช้งานระบบการแข่งขัน”

12.00-13.00

พักรับประทานอาหารกลางวัน

13.00-14.30 น.

ทดลองเขียนโปรแกรมแก้ไขโจทย์ปัญหา#2

14.30-14.45

พักอาหารว่าง

14.45-16.00 น.

ทดลองเขียนโปรแกรมแก้ไขโจทย์ปัญหา#3

16.00-16.10

พักเก็บของ

16.10-16.30

สรุปการอบรม และพิธีปิด ณ ห้อง 516 ชั้น 5 อาคาร 30 ปี

 

 

 

การแข่งขันโปรแกรมคอมพิวเตอร์ 

เป็นการแข่งขันเขียนโปรแกรมคอมพิวเตอร์เพื่อแก้โจทย์ปัญหาประเภททีม โดยจัดแข่งขันในสภาพแวดล้อมปิด แต่ละทีมจะมีสมาชิกได้ไม่เกิน 3 คน ซึ่งจะต้องช่วยกันแก้โจทย์ปัญหาภายในเวลาที่กำหนด โดยสามารถใช้ภาษา C, C++ หรือ Java ในการเขียนโปรแกรม

 

การแข่งขันแบ่งออกเป็น 2 รอบ 

-รอบคัดเลือกการแข่งขันจะแบ่งทีมทั้งหมดออกเป็น สาย A 20 ทีม และ  สาย B 20 ทีม ทำการแข่งขัน สายละ 60 นาที

                    โดยคัดเลือก 20 อันดับแรกจาก 40 ทีม เพื่อเข้าแข่งขันในรอบชิงชนะเลิศ

-รอบชิงชนะเลิศ เวลาในการแข่งขัน 120 นาที 

 

กฎกติกา และ การตัดสิน 
        กฎกติกาการแข่งขันอ้างอิงจากกฎการแข่งขันของ ACM-ICPC โดยคณะกรรมการจัดงาน ได้ปรับปรุงบางส่วนให้เข้า
กับสภาพการแข่งขันในพื้นที่ปัจจุบัน ผู้เข้าร่วมแข่งขันทุกทีมและผู้ควบคุมทีม (โค้ชหรือผู้ช่วย) ต้องปฏิบัติตามอย่างเคร่งครัด 
เพื่อความเสมอภาคและความยุติธรรมในการแข่งขัน

ลักษณะการแข่งขัน 

• แข่งขันเขียนโปรแกรมแก้โจทย์ปัญหา มีโจทย์ปัญหาไม่น้อยกว่า 8 ข้อ (โจทย์อธิบายเป็นภาษาไทย) โดยใช้ภาษา C, C++ 
หรือ Java เป็นภาษาโปรแกรม 
• ทีมเข้าแข่งขัน
สามารถเลือกทำโจทย์ข้อใดก่อนก็ได้ แต่ละข้อสามารถใช้ภาษาคอมพิวเตอร์ที่แตกต่างกันได้ (C, C++, Java)
• ทีมที่เข้าแข่งขันต้องมีสมาชิกในทีมเป็นนักศึกษาจากสถาบันเดียวกัน โดยต้องมีสมาชิก 2-3 คน


ข้อปฏิบัติในการแข่งขัน

• หนังสือ (text book, dictionary, magazine, …) สามารถนำเข้าได้ทีมละไม่เกิน 3 เล่ม และเอกสารอื่นๆ ในรูปแบบกระดาษไม่เกิน 100 แผ่น 
• 
ไม่อนุญาต ให้นำอุปกรณ์สื่อสารและอุปกรณ์อิเล็กทรอนิกส์ทุกชนิดเข้าห้องแข่งขัน
• ไม่อนุญาตให้มีการสื่อสารกับทีมอื่นๆ หรือผู้ควบคุมทีมระหว่างการแข่งขัน
• ไม่อนุญาต ให้เชื่อมต่อเครื่อข่ายอินเตอร์เน็ตในระหว่างการแข่งขัน
• ไม่ส่งเสียงดัง หรือกระทำการใดที่เป็นการรบกวนทีมอื่นๆในระหว่างการแข่งขัน
• ไม่อนุญาต ให้นำอาหารและเครื่องดื่มเข้าไปในห้องแข่งขัน ทางผู้จัดการแข่งขันจะมีการจัดเตรียมอาหารว่างและเครื่องดื่มให้
• ระหว่างการแข่งขันผู้เข้าแข่งขันสามารถขอเข้าห้องน้ำ หรือขอยารักษาโรค โดยแจ้งเจ้าหน้าที่ประจำห้องแข่งขันได้

 

สภาพแวดล้อมในการแข่งขัน 

ห้องแข่งขัน 

• แต่ละทีมถูกจัดให้อยู่ในห้องแข่งขัน มีแสงสว่างเพียงพอ ในห้องปรับอากาศ 
• แต่ละทีมมีโต๊ะทํางานหนึ่งตัว เก้าอี้ 3 ตัว และ PC 1 เครื่อง 

Programming Environment 

OS:

- Ubuntu Desktop 16.04 LTS 32-bit

Desktop:

- GNOME

Editors:

- gedit

- gvim

- emacs

- geany

Languages:

  • Java
    • OpenJDK version 1.8.0_171
    • OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)
    • OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
  • C
    • gcc (Ubuntu 5.4.0-6ubuntu116.04.4) 5.4.0 20160609
  • C++
    • g++ (Ubuntu 5.4.0-6ubuntu116.04.4) 5.4.0 20160609

IDE:

  • Eclipse 4.7 (Oxygen), configured with:
    • Java OpenJDK 8.0 (1.8.0_171) 
    • C/C++ (CDT 9.3.0 with Ubuntu 5.4.0-6ubuntu116.04.4 5.4.0 20160609)
  • IntelliJ (IDEA Community Edition 2017.2.3), configured with:
    • Java (version TBD)


วันแข่งขันจริงจะมี Practice Session เพื่อให้ทุกทีมได้ทดลองใช้เครื่อง และเข้าสู่ระบบควบคุมการแข่งขัน 
PC2 ที่ใช้ส่งโปรแกรมคําตอบ และดูผลตัดสิน และเวลาของการแข่งขัน 


การตัดสิน 

• การเรียงอันดับของทีม นับจากจํานวนโจทย์ที่ทําได้ (problem solved) เป็นหลัก ถ้ามีทีมที่ทําได้จํานวนโจทย์เท่ากัน ให้
เรียงตามเวลา (time หรือ points) จากน้อยไปมาก 
• Time/Points หรือคะแนน คือ ผลรวมของเวลา (จํานวนนาที นับจากจุดเริ่มต้นการแข่งขัน) ที่ใช้ทําโจทย์ในแต่ละข้อ นับ
เฉพาะข้อที่ทําได้ถูกต้อง โปรแกรมคําตอบ(หรือ Run) ที่ส่งแล้วไม่ถูกต้อง จะถูกเพิ่มเวลาเป็น 20 นาทีต่อครั้ง เวลาของโจทย์
ของข้อที่ยังทําไม่ถูกจะไม่นําไปคิดในเวลารวม 
• เมื่อสิ้นสุ ดเวลาการแข่งขัน ระบบ PC2 จะจัดอันดับของทีมต่างๆโดยอัตโนมัติ จะยึดถือผลการตัดสินนี้เป็นหลักและ
เมื่อกรรมการไม่ตรวจพบความผิดปกติใดๆ จึงประกาศให้ผลการตัดสินนั้น เป็นผลการตัดสินอย่างเป็นทางการ 
• การได้จํานวนข้อ Problem solved และ Time ที่เท่ากันพอดีของสองทีม (หรือหลายทีม) ให้จัดอันดับโดยพิจารณา
เพิ่มเติมดังนี้ 

o ตอนแรกดูความแม่นยําก่อน คือทีมที่ส่งจํานวน Run น้อยกว่าเป็ นผู้ชนะ (Attempt น้อยกว่าแต่ได้ข้อถูกเท่ากัน) 
o หาก Attempt เท่ากันพอดี ให้พิจารณาเวลาของข้อแรกที่ทีมนั้นๆทําได้ ใครทําได้ก่อนเป็นผู้ชนะ หากเท่ากันอีกจึง
พิจารณาข้อถัดไปตามลําดับ 

• ผู้ควบคุมทีมมีสิทธิประท้วงการแข่งขันได้ ภายใน 15 นาทีหลังการแข่งขันสิ้นสุด แต่การตัดสินของกรรมการถือเป็นที่
สิ้นสุด 

 

เงินรางวัล 

  • ชนะเลิศ เงินรางวัล 10,000 บาท 
  • รองชนะเลิศอันดับที่ 1 เงินรางวัล 5,000 บาท
  • รองชนะเลิศอันดับที่ 2 เงินรางวัล 3,000 บาท  

 

ติดตามรายละเอียดเพิ่มเติมได้ที่เว็บไซต์ : http://cpe.eng.cmu.ac.th/icode/

 

 

ภาควิชาวิศวกรรมคอมพิวเตอร์ ชั้น 4 ตึก 30 ปี 
คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเชียงใหม่ 
239 ถนนห้วยแก้ว ตำบลสุเทพ อำเภอเมือง จังหวัดเชียงใหม่ 50200
Tel: 08-4614-0006, 0-5394-2023
Fax: 0-5394-2072