ก่อนสอบก็มีการพิจารณาเลือกข้อสอบกันระหว่างหัวหน้าทีม. เมื่อตกลงข้อสอบได้แล้ว หัวหน้าทีมก็จะแปลข้อสอบเป็นภาษาของประเทศของตนเอง. ระหว่างการแปลจนถึงการเข้าสอบนั้น หัวหน้าทีมจะไม่ได้พบกับนักเรียนของตนอีก. จะได้พบอีกทีก็เมื่อสอบเสร็จแล้วเท่านั้น.
ผมและดร.นงนุช เห็นข้อสอบแล้ว ก็รู้ทันทีว่า นักเรียนของเราคงจะสู้ไม่ได้. เพราะขณะที่เราออกข้อสอบให้นักเรียนของเราคำนวณพื้นที่สี่เหลี่ยมผืนผ้า หรือ พื้นที่วงกลมอยู่นั้น ข้อสอบของเขาให้เขียนโปรแกรมเลื่อนแผ่นเลขจำนวน 14 แผ่นที่อยู่ในกรอบสี่เหลี่ยมขนาด 4x4 และมีตัวเลขระหว่าง 1 - 14 ที่วางในกรอบตามใจชอบ ให้เลื่อนมาเรียงกัน โดยการเลื่อนนั้นตัองน้อยครั้งที่สุด.
ถ้าเราแวะไปที่แผงร้านขายของเล่นตามตลาด จะเห็นว่าเขาขายของเล่นแบบนี้ แต่แผ่นตัวเลขนั้นมี 15 แผ่น. นานมาแล้วของเล่นชนิดนี้เป็นเกมที่สร้างความปวดสมองให้แก่คนทั่วโลกมาแล้ว แต่เกมนี้กำหนดให้เลข 1 ถึง 13 เรียงกันอยู่แล้ว มีแต่เพียงเลข 14 และ 15 เท่านั้นที่เรียงสลับกัน. เกมเขากำหนดให้สลับเลข 14 กับ 15 ให้ได้. ปรากฏว่าไม่มีใครสามารถเลื่อนได้ตามโจทย์เลย เพราะโจทย์นี้แก้ไม่ได้ (unsolvable).
โจทย์ที่เขาออกนั้นง่ายกว่า เพราะมีตัวเลขเพียง 14 ตัว. ดังนั้นจะสามารถแก้โจทย์ได้ทุกแบบ ไม่ว่าจะวางตัวเลขไว้แบบไหน. แต่เขาไม่ได้ให้ตัวเลขมาเลื่อน. เขาให้นักเรียนเขียนโปรแกรมต่างหาก. โปรแกรมที่จะทำให้คอมพิวเตอร์เลื่อนตัวเลขใด ๆ ได้นั้น หากนักเรียนเขียนได้ถูกต้อง จะเป็นเนื้อโปรแกรมยาวสิบกว่าหน้า!
ด้วยเหตุนี้เอง เมื่อเรากลับมาแล้ว ก็ต้องรีบเตรียมการคัดนักเรียน และ ฝึกฝนให้รู้วิธีแก้ปัญหาต่าง ๆ ซึ่งเนื้อหานั้นมากยิ่งกว่าระดับนักศึกษาปริญญาตรีทั่วไปจะรู้เสียอีก. ในที่สุดทาง สสวท. ก็เชิญ อ. ยืน ภู่วรวรรณ และ อาจารย์ทางด้านคอมพิวเตอร์จากมหาวิทยาลัยหลายแห่งมาช่วยฝึกอบรมนักเรียน. หลังจากนั้นเรื่องนี้ก็กลายเป็นงานประจำไป ประกอบด้วยการคัดเลือกนักเรียนทั่วประเทศมา 30 คน, จัดฝึกอบรมการเขียนโปรแกรมตั้งแต่เบื้องต้น รวมเทคนิคการแก้ปัญหา, และ ซ้อมเขียนโปรแกรมจนกว่าจะชำนาญขนาดเห็นปัญหาก็สามารถคิดคำสั่งให้เลื่อนไหลออกมาได้.
เทคนิคที่เราต้องสอนในการแก้ปัญหา พอสรุปได้ว่ามีเนื้อหาต่อไปนี้
- การแก้ปัญหาเชิงเรขาคณิต
- การแก้ปัญหา Optimization เน้นที่ Integer Programming
- การจัดเรียงข้อมูลแบบเร็ว
- การสร้างภาพกราฟิกส์ขั้นต้น
- การคำนวณค่าสถิติต่าง ๆ
- การคำนวณค่าในเชิง combinatorial
- การคำนวณเชิงตรรกะและเซ็ต
- การคำนวณในแบบ Heuristics
- หลักการด้าน Data Structures
ยี่สิบปีผ่านไปแล้ว แต่ผมก็ยังคงรั้งตำแหน่งประธานอนุกรรมการพิจารณาจัดส่งนักเรียนไทยไปแข่งขันคอมพิวเตอร์โอลิมปิกระห่ว่างประเทศเหมือนเดิม. เรื่องที่น่าสนใจก็คือ บรรดาผู้เกี่ยวข้องกับ IOI ก็ยังคงคิดข้อสอบออกมาได้อย่างน่าสนใจ. นักเรียนของเราได้เหรียญทุกปี. บางปีก็ได้เหรียญทอง บางปีก็ไม่ได้. นักเรียนหลายคนก็เรียนต่อทางด้านคอมพิวเตอร์ บางคนก็ไปเรียนด้านอื่น ๆ. ที่น่าเสียใจก็คือ เรายังไม่สามารถใช้ประโยชน์จากการแข่งขัน IOI ได้มากนัก. เรายังไม่สามารถผลักดันให้กระทรวงกำหนดให้นักเรียนทุกคนต้องเรียนการเขียนโปรแกรม. แต่ที่น่าเสียใจมากยิ่งขึ้นก็คือ บัณฑิตด้านวิทยาการคอมพิวเตอร์เวลานี้หลายคนเขียนโปรแกรมไม่เป็น.
ไม่ทราบว่าเขานึกขายหน้าเด็กนักเรียนคอมพิวเตอร์โอลิมปิกบ้างหรือเปล่า?
ไม่มีความคิดเห็น:
แสดงความคิดเห็น