
บทที่ 2 แนวคิดเชิงคำนวณ
Chapter 2 Computational Thinking
บทที่ 2 แนวคิดเชิงคำนวณ (Computational Thinking)
เป็นบทเรียนที่มุ่งเน้นให้ผู้เรียนเข้าใจ เห็นคุณค่า และกระบวนการเทคโนโลยีสารสนเทศ ในการสืบค้นข้อมูล การเรียนรู้การสื่อ การแก้ปัญหาอย่างมีประสิทธิภาพ ประกอบด้วยหัวข้อ
2.1 การแบ่งปัญหาใหญ่เป็นปัญหาย่อย
2.2 การพิจารณารูปแบบ
2.3 การคิดเชิงนามธรรม
2.4 การออกแบบอัลกอริทึม
จุดประสงค์การเรียนรู้
1. อธิบายการแก้ปัญหาโดยใช้กระบวนการคิดเชิงคำนวณ
2. ออกแบบการแก้ปัญหาโดยใช้กระบวนการคิดเชิงคำนวณ
.png)

..........การใช้ชีวิตประจําวัน นักเรียนอาจพบสถานการณ์ที่ซับซ้อนและเป็นปัญหา ไม่สามารถคิดหาวิธีการ แก้ปัญหาได้โดยง่าย หากนักเรียนแบ่งปัญหาที่ซับซ้อนให้เป็นปัญหาย่อยอาจทําให้เข้าใจปัญหาและ สามารถออกแบบวิธีการแก้ปัญหาได้ง่ายขึ้น เช่น นักเรียนต้องการจัดห้องเรียนที่มีสิ่งของรก และกระจัดกระจายอยู่เป็นจํานวนมากให้เป็นห้องกิจกรรม และบอกวิธีการจัดห้องให้กับเพื่อนช่วย ทํางานต่าง ๆ ไปพร้อมกันให้สําเร็จอย่างรวดเร็ว

ลองทำดู
ให้นักเรียนอธิบายการเดินทางจากบ้านไปโรงเรียน เพื่อให้น้องเข้าใจ และเดินทางตามมาได้ ในภายหลัง

แนวคิดเชิงคํานวณ (Computational thinking) เป็นกระบวนการ วิเคราะห์ปัญหา เพื่อให้ได้แนวทางการหาคําตอบอย่างเป็นขั้นตอน ที่สามารถนําไปปฏิบัติได้โดยบุคคลหรือคอมพิวเตอร์อย่างถูกต้อง และแม่นยํา ซึ่งเรียกว่า อัลกอริทึม ทักษะการใช้แนวคิดเชิงคํานวณ จึงสําคัญต่อการแก้ปัญหา ช่วยให้สามารถสื่อสารแนวคิดกับผู้อื่นได้ อย่างมีประสิทธิภาพ รวมถึงช่วยพัฒนาพื้นฐานในการเขียนโปรแกรม คอมพิวเตอร์ด้วย

แนวคิดเชิงคํานวณมีองค์ประกอบที่สําคัญ 4 ส่วน ได้แก่
o การแบ่งปัญหาใหญ่เป็นปัญหาย่อย (decomposition) เป็นการแตกปัญหาที่ซับซ้อนให้เป็นปัญหาย่อย
ที่มีขนาดเล็กลงและซับซ้อนน้อยลง เพื่อช่วยให้การวิเคราะห์และออกแบบวิธีการแก้ปัญหาทําได้ง่ายขึ้น
o การพิจารณารูปแบบ (pattern recognition) เป็นการวิเคราะห์หาความเหมือนหรือคล้ายคลึงกันระหว่าง ปัญหาย่อยที่แตกออกมา หรือความคล้ายคลึงกับปัญหาอื่น ๆ ที่มีผู้ออกแบบวิธีการแก้ไขไว้ก่อนแล้ว
o การคิดเชิงนามธรรม (abstraction) เป็นการแยกรายละเอียดที่สําคัญและจําเป็นต่อการแก้ปัญหาออกจากรายละเอียดที่ไม่จําเป็น ซึ่งรวมไปถึงการแทนกลุ่มของปัญหา ขั้นตอน หรือกระบวนการที่มีรายละเอียด ปลีกย่อยหลายขั้นตอนด้วยขั้นตอนใหม่เพียงขั้นตอนเดียว
o การออกแบบอัลกอริทึม (algorithm) เป็นการพัฒนากระบวนการหาคําตอบให้เป็นขั้นตอนที่บุคคล หรือคอมพิวเตอร์สามารถนําไปปฏิบัติตามเพื่อแก้ปัญหาได้
2.1 การแบ่งปัญหาใหญ่เป็นปัญหาย่อย (Decomposition)
การแก้ปัญหาที่มีความซับซ้อนทําได้ยาก การแบ่งปัญหาใหญ่ให้เป็นปัญหาย่อย ๆ ทําให้ความซับซ้อน ของปัญหาลดลง ช่วยให้การวิเคราะห์และพิจารณารายละเอียดของปัญหาทําได้อย่างถี่ถ้วน ส่งผลให้สามารถ ออกแบบขั้นตอนการแก้ปัญหาย่อยแต่ละปัญหาได้ง่ายยิ่งขึ้น
ลองพิจารณาปัญหาวาดภาพตามคําบอก โดยให้เพื่อนของนักเรียนวาดภาพตามที่นักเรียนบอก และไม่ แสดงภาพให้เพื่อนของนักเรียนเห็น ดังตัวอย่างต่อไปนี้
ตัวอย่างที่ 2.1 ภาพวาดหมู่บ้าน
นักเรียนวาดภาพหมู่บ้านที่คล้ายกับภาพด้านล่าง โดยไม่ต้องเหมือนรูปในตัวอย่าง โดย 1 ช่องมีขนาด 20 หน่วย จุดมุมล่างซ้ายของตาราง คือ พิกัด (0, 0) แล้วบอกให้เพื่อนของนักเรียนวาดภาพหมู่บ้านให้เหมือนกับ ภาพที่นักเรียนวาดให้ได้มากที่สุด โดยไม่แสดงภาพให้เพื่อนเห็น นักเรียนอาจวาดรูปหมู่บ้านได้ดังรูป 2.1

การอธิบายรายละเอียดของภาพเพื่อให้เพื่อน ของนักเรียนวาดตามได้นั้นสามารถแบ่งออกเป็น ปัญหาย่อยได้ดังนี้
o ในภาพมีบ้านหลัง
o ขั้นตอนในการวาดบ้านหลังแรกเป็นอย่างไร และอยู่ที่ตําแหน่งใด
o ขั้นตอนในการวาดบ้านหลังที่สองเป็น อย่างไรและอยู่ที่ตําแหน่งใด
o ขั้นตอนในการวาดบ้านหลังที่สามเป็น อย่างไร และอยู่ที่ตําแหน่งใด
รูปที่ 2.1 ตัวอย่างหมู่บ้าน
ปัญหาจากตัวอย่างที่ 2.1 นั้นค่อนข้างง่ายและชัดเจนเนื่องจากมีข้อกําหนดและผลลัพธ์ที่แน่นอน
ปัญหาในชีวิตประจําวันมีหลากหลาย เช่น ในตอนนี้นักเรียนสามารถบวกเลขสองหลัก 2 จํานวนเข้าด้วยกัน ได้ง่ายด้วยตนเอง แต่น้อง ๆ ระดับอนุบาลอาจบวกเลขได้เพียงหนึ่งหลัก นักเรียนจะมีวิธีการสอนน้องอย่างไร ให้สามารถบวกเลขสองหลักได้
นักเรียนจะสามารถแบ่งปัญหาใหญ่ของการบวกเลขสองหลักเป็นปัญหาย่อยได้ดังนี้
o บวกเลขหลักหน่วยเข้าด้วยกันได้อย่างไร
o บวกเลขหลักสิบเข้าด้วยกันได้อย่างไร

ชวนคิด
"ราคารวมสินค้าทั้งหมดกี่บาท"
ตอน 1
ลองช่วยแตกเป็นปัญหาย่อย
ในการคำนวณราคารวมสินค้าทั้งหมด
ให้หน่อยสิคะ
