แนวคิดเชิงคำนวณกับการแก้ปัญหา
จัดทำโดย
นายวงศกร พิมพ์จันทร์
โรงเรียนหมื่นศรีประชาสรรค์
สพป.สุรินทร์ เขต 1
แนวคิดเชิงคำนวณ
การใช้ชีวิตประจำวัน นักเรียนอาจพบสถานการณ์ที่ซับซ้อนและ
เป็นปัญหา ไม่สามารถคิดหาวิธีการแก้ปัญหาได้โดยง่าย หากนักเรียนแบ่ง
ปั ญหาที่ซับซ้อนให้เป็ นปั ญหาย่อยอาจทำให้เข้าใจปั ญหาและสามารถออกแบบ
วิธีการแก้ปัญหาได้ง่ายขึ้น เช่น นักเรียนต้องการจัดห้องเรียนที่มีสิ่งของรก
และกระจัดกระจายอยู่เป็นจำนวนมากให้เป็นห้องกิจกรรม และบอกวิธีการจัด
ห้องให้กับเพื่อนช่วยทำงานต่างๆ ไปพร้อมกันให้สำเร็จอย่างรวดเร็ว
แนวคิดเชิงคำนวณคืออะไร ?
1.แนวคิดในการแก้ปั ญหาอย่างเป็ นระบบ
2.เป็ นกระบวนการที่มีลำดับขั้นตอนชัดเจน
3.เป็ นกระบวนการที่มนุษย์และคอมพิวเตอร์เข้าใจ
ร่วมกันได้
องค์ประกอบของแนวคิดเชิงคำนวณ
องค์ประกอบของแนวคิดเชิงคำนวณ
1. แนวคิดการแยกย่อย(Decomposition)
2. แนวคิดการหารูปแบบ(Pattern Recognition)
3. แนวคิดเชิงนามธรรม(Abstraction)
4. แนวคิดการออกแบบขั้นตอนวิธี(Algorithm Design)
1. แนวคิดการแยกย่อย(Decomposition) การแตกปัญหาใหญ่ออกเป็นปัญหาย่อย ให้
ปัญหานั้นมีขนาดเล็กลงเพื่อให้สามารถจัดการปัญหาในแต่ละส่วนได้ง่ายขึ้น
1.1 การแบ่งปัญหาใหญ่เป็นปัญหาย่อย
ตัวอย่างการแก้ปัญหาโดยใช้แนวคิดเชิงคำนวณการเข้าแถวตามลำดับความสูงของนักเรียนให้
เร็วที่สุด
แนวคิดการแยกย่อย (Decomposition) คือ การแตกปัญหาใหญ่ออกเป็นปัญหาย่อย ในที่นี้ปัญหาใหญ่คือการเข้าแถวตามลำดับความสูงของ
นักเรียนทั้งหมด หากนำนักเรียนทุกคนมาเข้าแถวตามลำดับความสูงในคราวเดียว อาจทำให้ใช้เวลานานในการเรียงลำดับ แต่หากแตกปัญหา
ออกเป็นปัญหาย่อย และแก้ปัญหาย่อยนั้น ๆ ทีละปัญหา จะทำให้สามารถแก้ปัญหาใหญ่ได้เร็วขึ้นซึ่งสามารถแบ่งปัญหาการเข้าแถวให้เรียง
ตามความสูงออกเป็นปัญหาย่อยได้ ดังนี้
ปั ญหาที่ 1 กำหนดนักเรียนคนแรกเป็ นนักเรียนตำแหน่งหลัก
ปั ญหาที่ 2 แบ่งกลุ่มนักเรียนออกเป็ น 2 กลุ่ม โดยมีเงื่อนไข ดังนี้
1) กลุ่มที่ 1 นักเรียนที่มีความสูงน้ อยกว่านักเรียนตำแหน่งหลัก ให้ตั้งแถวอยู่
ด้านซ้ายของนักเรียนที่เป็ นตำแหน่งหลัก
2) กลุ่มที่ 2 นักเรียนที่มีความสูงมากกว่านักเรียนตำแหน่งหลัก ให้ตั้งแถวอยู่ด้าน
ขวาของนักเรียนตำแหน่งหลัก
ปั ญหาที่ 3 ทั้ง 2 กลุ่ม ทำซ้ำปั ญหาที่ 1 และปั ญหาที่ 2 จนกระทั่งไม่สามารถแบ่ง
กลุ่มได้อีก และนักเรียนเข้าแถวเรียงตามลำดับความสูงจากน้ อยไปมากได้อย่างถูกต้อง
2. แนวคิดการหารูปแบบ(Pattern Recognition) การกำหนดแบบแผนหรือรูปแบบที่มี
ลักษณะคล้ายคลึงกันจากปัญหาแต่ละส่วนย่อยต่าง ๆ กล่าวคือ ปัญหาย่อยแต่ละปัญหานั้น
สามารถใช้รูปแบบในการแก้ปัญหาที่คล้ายคลึงกันได้
ตัวอย่างการแก้ปั ญหาโดยใช้แนวคิดเชิงคำนวณการเข้าแถวตามลำดับความสูงของนักเรียนให้เร็วที่สุด
แนวคิดการหารูปแบบ (Pattern Recognition) คือ การเข้าใจรูปแบบของปั ญหา
โดยในกรณีนี้ การเข้าแถวตามลำดับความสูงในแต่ละรอบ จะมีการแบ่งกลุ่มที่เหมือนกัน
ดังนี้
กลุ่มนักเรียนที่มีความสูงน้ อยกว่าอยู่ด้านซ้าย | นักเรียนที่เป็นตำแหน่งหลัก | กลุ่มนักเรียน
ที่มีความสูงเท่ากับหรือมากกว่าอยู่ด้านขวา
จะสังเกตเห็นว่า จะมีนักเรียนที่เป็นตำแหน่งหลักคั่นอยู่ระหว่างนักเรียนทั้ง 2 กลุ่มเสมอ
ดังนี้
จะสังเกตเห็นว่า จะมีนักเรียนที่เป็นตำแหน่งหลักคั่นอยู่ระหว่างนักเรียนทั้ง 2 กลุ่มเสมอ
ดังนี้
3. แนวคิดเชิงนามธรรม(Abstraction) การหาแนวคิดเชิงนามธรรมหรือแนวคิดรวบยอด
ของปัญหา ซึ่งเป็นการกำหนดหลักการทั่วไป มุ่งเน้นเฉพาะส่วนที่สำคัญของปัญหำ โดยไม่
สนใจรายละเอียดที่ไม่จำเป็น
ตัวอย่างการแก้ปั ญหาโดยใช้แนวคิดเชิงคำนวณการเข้าแถวตามลำดับความสูงของนักเรียนให้เร็วที่สุด
แนวคิดเชิงนามธรรม (Abstraction) คือ การคิดรวบยอดปั ญหา และไม่
สนใจสิ่งที่ไม่จำเป็ นโดยการแยกปั ญหาย่อยออกจากปั ญหาหลัก ซึ่งการเข้าแถวเรียง
ตามลำดับความสูงนั้น แนวคิดหลัก คือ การเรียงลำดับนักเรียนตามความสูงจากน้ อยไปมาก
ซึ่งนักเรียนที่มีความสูงน้ อยกว่าจะต้องอยู่ด้านซ้ายของนักเรียนที่มีความสูงมากกว่าเสมอ
และไม่สนใจสิ่งที่ไม่จำเป็น เช่น ชื่อ-นามสกุล เพศ อายุ น้ำหนักของนักเรียน เป็นต้น
4. แนวคิดการออกแบบขั้นตอนวิธี(Algorithm Design) การออกแบบลำดับขั้นตอนการ
แก้ปัญหาด้วยการใช้แนวคิดการออกแบบขั้นตอนวิธี เป็นแนวคิดที่สามารถนำไปใช้ในการแก้
ปัญหาที่มีลักษณะแบบเดียวกันได้
ตัวอย่างการแก้ปั ญหาโดยใช้แนวคิดเชิงคำนวณการเข้าแถวตามลำดับความสูงของนักเรียนให้เร็วที่สุด
แนวคิดการออกแบบขั้นตอนวิธี (Algorithm Design) ลำดับขั้นตอนในการแก้
ปั ญหามีดังนี้
1. กำหนดนักเรียนคนแรก (ซ้ายสุด) ของกลุ่มนักเรียน เป็นตำแหน่งหลัก โดย
ถือว่าเป็ นตำแหน่งที่ถูกต้องแล้ว
2. แบ่งกลุ่มนักเรียนออกเป็น 2 กลุ่ม ดังนี้
2.1 กลุ่มนักเรียนที่มีความสูงน้ อยกว่านักเรียนตำแหน่งหลัก ให้ไปตั้งแถวอยู่
ด้านซ้ายของนักเรียนตำแหน่งหลัก
2.2 กลุ่มนักเรียนที่มีความสูงเท่ากับหรือมากกว่านักเรียนตำแหน่งหลัก ให้ไป
ตั้งแถวอยู่ด้านขวาของนักเรียนตำแหน่งหลัก
3) ทำซ้ำไปเรื่อย ๆ จนกระทั่งไม่สามารถแบ่งกลุ่มได้อีก
3.1 กำหนดนักเรียนคนแรก (ซ้ำยสุด) ของนักเรียนแต่ละกลุ่ม เป็นตำแหน่ง
หลัก
3.2 แบ่งกลุ่มนักเรียนออกเป็น 2 กลุ่ม โดยมีนักเรียนตำแหน่งหลักคั่นอยู่ กลุ่ม
นักเรียนที่มีความสูงน้ อยกว่านักเรียนตำแหน่งหลัก ให้ตั้งแถวอยู่ด้านซ้ายของนักเรียน
ตำแหน่งหลัก และกลุ่มนักเรียนที่มีความสูงเท่ากับหรือมากกว่านักเรียนตำแหน่งหลัก ให้
ตั้งแถวอยู่ด้านขวาของนักเรียนตำแหน่งหลัก
3.3 ทำเหมือนข้อ (3.1) และ (3.2) ของนักเรียนแต่ละกลุ่ม
3.4 ทำเหมือนข้อ (3.1) และ (3.2) ของนักเรียนแต่ละกลุ่ม
3.5 เมื่อทำจนไม่สามารถจัดกลุ่มได้อีก จะได้แถวเรียงลำดับความสูงจากน้ อยไป
หามาก
สรุปขั้นตอนการเข้าแถวตามลำดับความสูงของนั กเรียนให้เร็วที่สุด
1. กำหนดนักเรียนซ้ายสุดเป็นตำแหน่งหลัก
2. แบ่งกลุ่มนักเรียนออกเป็น 2 กลุ่ม
2.1 ความสูงน้ อยกว่าให้ไปตั้งแถวอยู่ด้านซ้าย
2.2 ความสูงเท่ากับหรือมากกว่าให้ไปตั้งแถวอยู่ด้านขวา
3. ทำซ้ำไปเรื่อย ๆ จนกระทั่งไม่สามารถแบ่งกลุ่มได้อีก
3.1 กำหนดนักเรียนซ้ายสุดเป็นตำแหน่งหลัก
3.2 แบ่งกลุ่มนักเรียนออกเป็น 2 กลุ่ม โดย
- ความสูงน้ อยกว่าให้ไปตั้งแถวอยู่ด้านซ้าย
- ความสูงเท่ากับหรือมากกว่า ให้ไปตั้งแถวอยู่ด้านขวา
3.3 ทำเหมือนข้อ (3.1) และ (3.2)
บรรณานุกรม
https://sites.google.com/a/lrp.ac.th/withyakar-khanwn-computing-science-cs-m-
2/1-1-kar-baeng-payha-hiy-pen-payha-yxy
องค์ประกอบที่สำคัญแนวคิดเชิงคำนวณ (ชนินทร เฉลิมสุข และ อภิชาติ คำปลิว, 2562)
การเข้าแถวตามลำดับความสูงของนักเรียนให้เร็วที่สุด (เอกสารแนวทางการจัดการเรียน
การสอน อักษรเจริญทัศน์, 2562)
ขอขอบคุณ
ขอขอบคุณ