ป.2 บท 6 (งานเลี้ยงชมรม กับขนมเจ้าปัญหา)

การดัดแปลง Binary Search Algorithm เพื่อสอนเด็ก ป.2 ให้คิดอย่างเป็นระบบ 

เรื่องเล่าหลังไมค์ ตอนที่ 6

ก่อนอื่นต้องบอกว่า ท่านไม่จำเป็นต้องรู้จัก Binary Search Algorithm ก็สามารถเข้าใจบทความนี้ได้ และแน่นอนว่า เด็ก ป.2 ก็สามารถอ่านบท 6 ได้โดยไม่ต้องรู้จักอัลกอริทึมนี้เช่นกัน  แม้เมื่อเขาเรียนจบบทนี้แล้ว เขาก็จะยังไม่รู้หรอกว่าสิ่งที่เรียนไปคือพื้นฐานของ Binary Search (จริงดิ!?!!)  แต่เด็กๆ ทั้งหลาย หารู้ไม่ว่า พวกเจ้าได้ถูกล่อหลอกให้ฝึกการคิดอย่างเป็นระบบ (Systematic Thinking) ไปเรียบร้อยแล้ว (ฮ่าๆๆ)

การคิดอย่างเป็นระบบ ในความหมายของหลักสูตรวิทยาการคำนวณหมายถึงกระบวนการแก้ปัญหาที่มีการวางขั้นตอนให้เป็นระบบชัดเจน ทำให้สามารถมั่นใจได้ว่ามองเห็นวิธีการแก้ปัญหาได้ครบถ้วนและถูกต้อง  *** และในบางครั้งก็ทำให้แก้ปัญหาได้เร็วขึ้น   ในการคิดอย่างเป็นระบบผู้คิดจำเป็นต้องสร้างแบบแผนการคิดขึ้นมาแล้วปฏิบัติตามแผนนั้น อย่างไรก็ดี ปัญหาหลายอย่างอาจมีวิธีแก้อย่างเป็นระบบได้หลายรูปแบบ ซึ่งทุกแบบอาจถูกต้อง ดังนั้น “แบบแผนการคิด” ไม่จำเป็นต้องตายตัว 

หากเราสอนเด็กโดยคัดลอกย่อหน้าที่แล้วมาขัดเกลาคำพูดให้ง่ายขึ้น ผมเชื่อว่าจะมีเด็ก ป.2 น้อยกว่า 50% ที่จะเข้าใจ  เด็กจะเกิดคำถามขึ้นว่า แล้วปัญหาที่ว่าคืออะไร? แบบแผนคืออะไร? หน้าตาเป็นยังไง? แล้วถ้าคิดแบบไม่เป็นระบบจะเป็นยังไง? มันต่างกับที่หนูคิดอยู่ทุกวันยังไง?  .. สุดท้ายเมื่องงมากๆ เด็กก็คงจะเลิกพยายามเข้าใจและท่องจำนิยามไปทำข้อสอบ และไม่ได้รับประโยชน์อะไรในการพัฒนากระบวนการคิด 

ดังนั้น หนังสือที่ดีจะต้องยกตัวอย่างปัญหาให้เป็นรูปธรรม และแสดงวิธีแก้อย่างเป็นระบบหลายรูปแบบ ให้เห็นวิธีทำงานจริง และเห็นผลจริง 

ในชั้น ป.1 “การคิดอย่างเป็นระบบ” ถูกตีความให้อยู่ในระดับชั้นที่ง่ายที่สุดคือเป็น “การค้นหาบนภาพที่มองเห็น อย่างเป็นระบบ” (visual search) เด็กจะได้หัดค้นหาตัวละครที่ปะปนอยู่ในฝูงชน ค้นหาของที่วางอยู่ในตาราง (grid search)  ปิดท้ายด้วยการค้นหาและนับกุ้งที่อยู่บนพิซซ่าที่แบ่งออกเป็นชิ้น ๆ (zone search)  การค้นหาอย่างเป็นระบบทั้งหมดนี้ยังคงเป็นการค้นหาเชิงเส้น (linear search) ที่ค่อยๆ ไล่ค้นไปเรื่อยๆ อย่างรอบคอบ 

จะเห็นว่าโจทย์ปัญหาสำหรับ ป.1 นั้นเป็นโจทย์ที่มองเห็นภาพทั้งหมดได้ในคราวเดียว  เมื่อนักเรียนขึ้น ป.2 โจทย์ควรจะท้าทายมากขึ้น เป็นลักษณะของการค้นหาสิ่งที่ไม่อยู่ในภาพเดียวกัน ผู้ค้นต้อง “ขุดคุ้ย” หรือดำเนินการบางอย่างเพื่อให้เห็นสิ่งของชิ้นอื่นได้  และอาจตั้งโจทย์แนวสืบสวนสอบสวน ให้เด็กช่วยค้นหา “ความจริง” บางประการ ที่สามารถสรุปได้จากข้อมูล ขอเพียงเราวิเคราะห์ข้อมูลอย่างเป็นระบบ 

โจทย์ลักษณะที่ต้อง “ขุดคุ้ย”​ ที่เข้าใจได้ง่ายที่สุด ก็คือการเปิด dictionary เพื่อค้นหาคำที่ต้องการ  การขุดคุ้ยในที่นี้คือการพลิกหน้า ซึ่งเราต้องการพลิกหน้าน้อยครั้งที่สุดเท่าที่เป็นไปได้  ทั้งนี้ เพื่อให้เด็กเข้าใจและทำตามได้ง่ายขึ้น เราดัดแปลงโจทย์นิดหน่อยให้เป็นการพลิกไปยังหน้าที่ระบุ (เลขหน้า) แทนที่จะต้องพลิกเพื่อค้นหาคำ  เช่น ให้เด็กแข่งกันเปิดหนังสือไปยังหน้า 70

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

เด็กที่คิดอย่างเป็นระบบ จะมีวิธีให้เลือกหลายวิธี 

1. วิธีที่เป็นพื้นฐานมากที่สุดคือ linear search เปิดทีละหน้าจนกว่าจะพบ (วิธีของก้อยในรอบแรก)

2. วิธีที่เร็วขึ้นอีกนิด คือการเปิดทีละ 10 หน้า (หรือ 20 หน้า) จนกว่าจะใกล้ถึงหน้าที่ต้องการ แล้วจึงเปิดทีละหน้าไปเรื่อยๆ จนกว่าจะพบ (วิธีของก้อยในรอบที่สอง ปรับปรุงให้เร็วขึ้น)

3. วิธีที่คล้าย “วัยรุ่นใจร้อน”​ แต่รับประกันผลสำเร็จได้ คือการเปิดหน้าแบบสุ่มไปเรื่อยๆ จนกว่าจะ “ใกล้” กับเลขหน้าที่ต้องการ แล้วจึงพลิกหน้าไปข้างหน้าหรือย้อนหลังทีละหน้าจนกว่าจะพบ (วิธีของโป้งในรอบที่สอง ปรับปรุงให้การันตีผลลัพธ์ได้) 

4. วิธีคล้าย binary search algorithm แต่ปรับแก้ให้ง่ายขึ้นเพื่อให้เหมาะกับ ป.2 โดยการนำไปผสมผสานกับ linear search  (วิธีของพี่เอก ขวัญใจของพี่กวาง และโป้ง ก้อย)  ดูคำอธิบายด้านล่าง 

วิธีของพี่เอกสามารถอธิบายให้ง่ายขึ้นกว่าในหนังสือเล็กน้อย ด้วยการจินตนาการว่าเราจะ “ฉีกหนังสือ”****  เช่น หากเราต้องการเปิดหน้า 70 เราก็

1. เริ่มจากการเปิดไปตรงกลางเล่ม อาจพบว่านี่เป็นหน้า 200 อ้าว! เลยมาแล้ว ดังนั้นฉีกหนังสือครึ่งหลังทิ้งไป แล้วแบ่งครึ่งส่วนที่เหลือ 

2. พลิกไปที่หน้านั้น อาจพบว่าเป็นหน้า 103 (แน่นอนว่าการพลิกหน้าในชีวิตจริง จะไม่มีทางพลิกไปแล้วเป็นครึ่งหนึ่งเป๊ะๆ ตลอดเวลา ดังนั้นจึงใช้ ​103 แทน 100)  ซึ่งยังมากเกินไป ก็ฉีกครึ่งหลังทิ้งไปอีก 

3. แบ่งครึ่งอีกครั้ง อาจพลิกไปพบหน้า 55  ซึ่งน้อยเกินไป จึงโยนครึ่งแรกทิ้ง แล้วแบ่งครึ่งอีกครั้ง พบว่าเป็นหน้า 78  

4. ถึงขั้นนี้ พิจารณาว่า 78 ก็ใกล้ 70 มากแล้ว อย่ามัวแต่แบ่งครึ่งอีกเลย ก็พลิกย้อนกลับไปทีละหน้าดีกว่า เดี๋ยวก็เจอแล้ว  (ขั้นตอนนี้เองที่เป็นการดัดแปลง binary search algorithm ให้จบด้วย linear search) 

หนังสือ #โป้งก้อยอิ่ม จะยกตัวอย่างตัวเลขอื่น และแสดงให้เห็น “วิธีการคิดอย่างเป็นระบบ” ที่แตกต่างกันหลากหลายแบบ ว่าจะนำไปสู่คำตอบได้อย่างไร  ทั้งหมดนี้ไม่ใช่เพื่อสอนเด็กว่า algorithm ไหนดีกว่ากัน แต่เพื่อสอนเด็กให้เปิดใจ รับฟังวิธีการของเพื่อนที่แตกต่าง หากมีการจัดระบบความคิดที่ดี ก็สามารถนำไปสู่คำตอบได้ทั้งนั้น  

ในหนังสือจะพบว่าวิธีเดียวที่ไม่นำไปสู่คำตอบคือการ “สุ่มไปเรื่อยๆ” เพราะนั่นเป็นวิธีแก้ปัญหาของคนใจร้อนที่ไม่คิดอย่างเป็นระบบ

บทนี้ปิดท้ายด้วยกรณีคดี “ขนมเจ้าปัญหา” ให้นักเรียนหาคำตอบของปัญหาที่ไม่สามารถหยิบจับสิ่งของที่จับต้องได้ดูบ้าง  กว่าจะได้มาซึ่งคำตอบ นักเรียนจะต้องสร้างแผนผังเรียบเรียงข้อมูลให้เป็นระบบ (ใครป่วย และ ใครรับประทานอะไร?​)  ซึ่งแผนผังอาจมีหลายรูปแบบ นักเรียนจะใช้แบบใดก็ได้ ที่สามารถนำไปสู่คำตอบว่า ขนมชิ้นใดที่เป็น “ขนมเจ้าปัญหา”  

ปัญหาแนวสืบสวนนี้มีหัวใจอยู่ที่การพิจารณาข้อมูลอย่างเป็นระบบ และเป็นพื้นฐานสำคัญที่จะนำไปสู่การแก้ปัญหาโดยใช้เหตุผลเชิงตรรกะในชั้นปีที่สูงขึ้นต่อไป  เช่นใน ป.5 มีการสืบหาคำตอบว่าทีมกีฬาสีใดเป็นผู้ชนะ โดยใช้การวิเคราะห์ข้อมูลเท่าที่มีอยู่อย่างเป็นระบบ และใช้เหตุผลเข้าช่วยในการหาข้อสรุป  

ทีมผู้เขียน ป.2 บท 5 (นำโดย ผศ. ดร. ธนาวินท์ รักษ์ธรรมานนท์) เชื่อว่าการจัดตัวอย่างปัญหาที่ฝึกคิดอย่างเป็นระบบ ตามลำดับความยาก-ง่าย เช่นนี้จะเป็นโครงช่วยฝึก (scaffold) ให้เด็กสามารถคิดแก้ปัญหาด้วยเหตุผลเชิงตรรกะในอนาคต อันเป็นพื้นฐานสำคัญของทักษะการคิดเชิงคำนวณ (Computational Thinking)

ผนวกเดช สุวรรณทัต**

5 พฤษภาคม 2562 

ป.ล. 

* จากข้อมูลที่มีอยู่ หนังสือแบบเรียนชุด #โป้งก้อยอิ่ม เป็น หนังสือแบบเรียนฉบับการ์ตูนเล่มแรกของประเทศไทย และน่าจะเป็นหนังสือแบบเรียนฉบับการ์ตูนที่มีเรื่องราวต่อเนื่องหลายชั้นปี เล่มแรกของโลก

** หนังสือเรียนเล่มนี้เขียนกันหลายคน (มีรายชื่อในเว็บไซต์ http://pongkoi.im) ผมเป็นเพียงผู้เขียนคนหนึ่งในหลายๆ คน โดยมี สาขาคอมพิวเตอร์ สสวท. เป็นเจ้าภาพ 

*** ในภาษาอังกฤษมีคำที่คล้ายกับ Systematic Thinking ได้แก่ Systemic Thinking และ Systems Thinking ซึ่งในบางบริบทมีความหมายถึงการคิดโดยองค์รวม คิดถึงส่วนประกอบทุกส่วนเข้าด้วยกัน สัมพันธ์เป็นระบบเดียวกัน ภาษาไทยอาจใช้คำว่า “การคิดเชิงระบบ” อย่างไรก็ดี คำว่า “การคิดอย่างเป็นระบบ” ตามหลักสูตรวิทยาการคำนวณ ไม่ได้มีความหมายตามนี้ 

**** ในหนังสือเรียน เราไม่ได้อธิบายวิธีการนี้โดยการ “ฉีกหนังสือ” (เพื่อมิให้เป็นตัวอย่างที่ไม่ดีสำหรับเด็ก) แต่เราใช้ไม้บรรทัดคั่นหนังสือส่วนที่ไม่ใช้งานแทน (ดูได้จากภาพในหน้า 121 ซึ่งเท่าที่เราทราบ ยังไม่เคยมีหนังสือเล่มใดอธิบาย Binary Search ด้วยภาพในลักษณะนี้มาก่อน) 

====

ที่มาของภาพ: 

หนังสือเรียนรายวิชาพื้นฐานวิทยาศาสตร์ เทคโนโลยี (วิทยาการคำนวณ) ชั้นประถมศึกษาปีที่ 2 และ 5
ตามมาตรฐานการเรียนรู้และตัวชี้วัด
กลุ่มสาระการเรียนรู้วิทยาศาสตร์ (ฉบับปรับปรุง พ.ศ. 2560)
ตามหลักสูตรแกนกลางการศึกษาขั้นพื้นฐาน พุทธศักราช 2551
โดย สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี (สสวท.) 

ซื้อได้จากร้านศึกษาภัณฑ์พาณิชย์ออนไลน์ หรือช่องทางอื่นๆ ที่เขียนในเว็บไซต์นี้  http://pongkoi.im

ซื้อหนังสือได้ที่: 
pongkoiim.com/buy

แล้วบทอื่นล่ะ สอนอะไร? อ่านโครงสร้างเนื้อหา ป.2 ทุกบท ได้ที่ https://www.pongkoiim.com/go/?p=52