แข่งเขียนโปรแกรม

42
แข่งอะไร ดียังไง เริ ่มยังไง แข่งเขียนโปรแกรม

Upload: thatchaphol-saranurak

Post on 29-Nov-2014

681 views

Category:

Documents


0 download

DESCRIPTION

เกี่ยวกับงานแข่งเขียนโปรแกรมต่างๆ ในประเทศไทย(โอลิมปิก, ACM-ICPC, Google Code Jam, Thailand Code Jom, NSC)

TRANSCRIPT

Page 1: แข่งเขียนโปรแกรม

แขง่อะไร ดยีงัไง เร่ิมยงัไง

แขง่เขยีนโปรแกรม

Page 2: แข่งเขียนโปรแกรม

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

Page 3: แข่งเขียนโปรแกรม

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

มหีลายการแขง่ขนั และหลายรูปแบบ

Page 4: แข่งเขียนโปรแกรม
Page 5: แข่งเขียนโปรแกรม

คอมพวิเตอร์โอลมิปิก

Page 6: แข่งเขียนโปรแกรม

• ไมเ่กินมธัยม

• แกโ้จทยปั์ญหาทางคณิตศาสตร์

• เขยีนภาษา C/C++/Java

• อา่น/แกโ้จทย ์ผา่น command line

• 3 ชัว่โมง 4-5 ขอ้

Page 7: แข่งเขียนโปรแกรม

• ตวัอยา่ง

• พาลินโดรมคือ

• ในตารางน้ี มพีาลินโดรม(ที่ยาว 2 ขึ้นไป)กี่ตวั

Page 8: แข่งเขียนโปรแกรม

• เมืองแตล่ะเมืองมถีนนเช่ือมกนัแบบในรูป

• เราจะท าลายถนนไดม้ากที่ สุดกี่ เสน้

ที่จะยงัท าใหค้นในแตล่ะเมือง

ยงัสามารถเดินทางไปเมืองอ่ืนๆ ไดทุ้กเมือง

Page 9: แข่งเขียนโปรแกรม

• กอ่นไปแขง่ระดบันานาชาติ จะผา่นคา่ยอบรบหลายรอบมาก

• สอวน. คา่ย 1, คา่ย 2, ทัว่ประเทศ

• สสวท. รอบ 50 คน, 30 คน, 15 คน, 7 คน, 4 คน

• คา่ย สสวท. = โควตา้เขา้ วิศวฯคอม (จุฬา เกษตร)

• ตวัแทนประเทศ = ทุนเรียน ป.เอก ที่ตา่งประเทศ

• กลายเป็นฟ้าที่อยูเ่หนือฟ้า หน่ึงในใตห้ลา้ปฐพี…

Page 10: แข่งเขียนโปรแกรม

ACM-ICPC

Page 11: แข่งเขียนโปรแกรม
Page 12: แข่งเขียนโปรแกรม

• ระดบัมหาวิทยาลยั

• โจทยแ์นวเดยีวกบั IOI แตย่ากกวา่

• กลุม่ 3 คน แตค่อม 1 เคร่ือง

• 5 ชัว่โมง 8-10 ขอ้

• แกโ้จทยเ์สร็จ จะมคีนถือรางวลัมาให ้…เป็นลูกโป่ง!?

Page 13: แข่งเขียนโปรแกรม
Page 14: แข่งเขียนโปรแกรม
Page 15: แข่งเขียนโปรแกรม
Page 16: แข่งเขียนโปรแกรม

• เร่ิมจากการแขง่ระดบัภาค (ไดอ้บรมฟรี)

• ไประดบัประเทศ (ไดไ้ปภูเกต็)

• ไประดบัภูมิภาค (ไดไ้ปตา่งประเทศ)

• ไป World Final (ไดแ้ชมป์โลก!?)

Page 17: แข่งเขียนโปรแกรม

Google Code Jam

Page 18: แข่งเขียนโปรแกรม

• ใครแขง่กไ็ด ้แขง่ Online

• จดัโดย

• 2.5 ชัว่โมง 3-5 ขอ้

• ชนะไดเ้งิน $5,000 (160k บาท) ไดไ้ปแขง่ที่ Google

• อาจจะไดร้ับเขา้ท างานกบั Google

Page 19: แข่งเขียนโปรแกรม
Page 20: แข่งเขียนโปรแกรม
Page 21: แข่งเขียนโปรแกรม

Thailand Code Jom

Page 22: แข่งเขียนโปรแกรม

• เขยีนเอามนัส ์

• โจทยแ์นว IOI แตง่่ายกวา่

• กติกาคือ ทมีไหนเขยีนชา้จะ “จมน ้า”

• ทมีที่ “มชีวิีตรอด” เป็นทมีสุดทา้ย จะเป็นแชมป์

Page 23: แข่งเขียนโปรแกรม
Page 24: แข่งเขียนโปรแกรม

National Software Contest

Page 25: แข่งเขียนโปรแกรม
Page 26: แข่งเขียนโปรแกรม

• แตกตา่งจากที่ พูดมาทัง้หมด

• “แขง่พฒันาซอฟตแ์วร์”

• เกม, การเรียนรู,้ ชว่ยคนพิการ, เวบ็ไซต,์ Mobile App

งานพฒันาดา้นวิทยาศาสตร์และเทคโนโลย ี

• ม ี3 รอบ

• ผา่นรอบคดัเลือกไดเ้งิน 3000 บาท

• ผา่นรอบเสนอกรรมการ 7000 บาท

• รอบชิง รางวลัที่ 1-3 ประมาณ 60000-20000 บาท

Page 27: แข่งเขียนโปรแกรม
Page 28: แข่งเขียนโปรแกรม
Page 29: แข่งเขียนโปรแกรม
Page 30: แข่งเขียนโปรแกรม

• การแขง่ขนัพฒันาซอฟตแ์วร์อ่ืนๆ

• เจา้ฟ้าไอท ี

Page 31: แข่งเขียนโปรแกรม

รวมเว็บไซต์

IOI เว็บสอวน. www.posn.or.th

ACM ICPC www.acmicpc-thailand.org

• Google Code Jam code.google.com/codejam

Thailand Code Jom codejom.thailandoi.org

NSC www2.nectec.or.th/nsc

• Imagine Cup www.imaginecup.com

เจ้าฟ้าไอที www.frit.or.th/princess.html

Page 32: แข่งเขียนโปรแกรม

เลา่

ประสบการณท์ี่ได ้

Page 33: แข่งเขียนโปรแกรม

แขง่พฒันาโปรแกรม

• ตโีจทยง์าน

• ฝึกเขยีนโปรแกรมใหญ่ๆ

• การแขง่ขนัจะกดดนัเราใหท้ างานดีๆ

• หาจากในหอ้งเรียนไมไ่ด ้

• ฝึกน าเสนอ

• และการเขยีนโครงการ ท าโปสเตอร์น าเสนอ ท าแผน่พบั ฯลฯ

Page 34: แข่งเขียนโปรแกรม

เขา้คา่ยติวเขม้

• เขยีนโปรแกรมคลอ่งขึ้นมาก

• ไดค้วามรู ้เยอะมาก!

• Number Theory, Graph Theory, Greedy Algorithm, Divide

and Conquer Technique, Dynamic Programming, NP-

Completeness, วิธีการพิสูจน์ทางคณิตศาสตร์, เฮือกๆ…

• ไดเ้พ่ือนกลุม่ใหม ่

• เกง่ปิงปอง และ ไดก้ินขนมตลอดเวลา

Page 35: แข่งเขียนโปรแกรม

แขง่แกโ้จทยปั์ญหาแนว IOI

• คุน้เคยกบัการคิดแกปั้ญหาอยา่งเป็นระบบ

• ม ี“เคร่ืองมือทางความคิด” ในการแกปั้ญหามากขึ้น

Page 36: แข่งเขียนโปรแกรม

วิธีเริ่มต้น…

Page 37: แข่งเขียนโปรแกรม

สอบเขา้คา่ย สอวน.

• จ าเป็นส าหรับแขง่ IOI

• เป็นพ้ืนฐานที่ดสี าหรับแขง่ ACM ICPC,

Google Code Jam

• ลกัษณะขอ้สอบ *ยงัไมม่มีาตราฐานกลาง ขึ้นกบัศูนยส์อบ

• เนน้โจทยปั์ญหาที่คิดดว้ยเหตุผล

• วดัความรูค้ณิตศาสตร์พ้ืนฐาน (เลขฐาน เซต็

ตรรกศาสตร์ ความสมัพนัธ ์ฟงักช์นั ตรีโกณ

เรขาคณิต)

• อาจมใีหอ้า่นโคด้โปรแกรมสัน้ๆ

Page 38: แข่งเขียนโปรแกรม

ตวัอยา่ง ขอ้สอบเขา้คา่ย สอวน.

• มบีอล 12 ลูก

• ในน้ี มลูีกนึงที่น ้าหนัก “ตา่ง” จากลูกอ่ืน

• ถา้เรามตีาชัง่ 2 แขนตวันึง

• หาจ านวนครั้งที่นอ้ยที่ สุดที่ ใชช้ ัง่

• โดยรับประกนัวา่สามารถระบุหา บอลที่

น ้าหนักแตกตา่ง ได ้

Page 39: แข่งเขียนโปรแกรม

ตวัอยา่ง ขอ้สอบเขา้คา่ย สอวน.

• มบีอล 256 ลูก น ้าหนักตา่งกนัท ัง้หมด

• จบัคูบ่อลทุกคู ่หาลูกที่หนัก วิธี “แพค้ดัออก”

• คดัเอาลูกที่หนักที่กวา่ เขา้รอบ

• จบัคูบ่อลที่ เขา้รอบ มาชา่งดว้ยกนัเอง

• ตอ้งชา่งกี่ครั้งจนกวา่จะไดลู้กที่หนักที่ สุด ?

• หลงัจากไดลู้กที่หนักที่ สุดแลว้

• จะหาวา่ลูกไหนหนักที่ 2 ตอ้งชา่งอกีนอ้ยที่ สุด

กี่ครั้ง ?

Page 40: แข่งเขียนโปรแกรม

ตวัอยา่ง ขอ้สอบเขา้คา่ย สอวน.

• f(x-2) = x2 – x + 1

f(1) + f(2) = ?

• 2x2 + 2y2 + 3x - 4y = 0

หาพ้ืนที่ของวงกลมน้ี

• 1, 1, 2, 3, 5, 8, 13, …

ตวัถดัไปคืออะไร

Page 41: แข่งเขียนโปรแกรม

ลองท าโจทยอ์อนไลน์

• League.thailandoi.org

• จดัแขง่ทุกเดือน! โดยกลุม่เดก็คอมโอและคณะ

• แบง่ division แบบฟุตบอล

• Programming.in.th

• ติวภาษา C เบ้ืองตน้

• รวมโจทยจ์ากการแขง่จริงระดบัตา่งๆ

• มขีอ้สอบขอ้เขยีนปีเกา่ๆ

• เวบ็ตา่งประเทศ ใหค้น้วา่ “online judge” …มเีตม็