ตัวอย่างการแก้ปัญหาโดยใช้แนวคิดเชิงคำนวณ
ตัวอย่างการแก้ปัญหาโดยใช้แนวคิดเชิงคำนวณ
สถานการณ์ที่ 1 : การจัดห้องนอนที่รกรุงรัง
Decomposition : แบ่งงานเป็นส่วน ๆ เช่น 1) เก็บเสื้อผ้า 2) จัดหนังสือบนชั้น 3) ทิ้งขยะ 4) ดูดฝุ่นหรือถูพื้น เพื่อไม่ให้รู้สึกว่าเป็นงานใหญ่และยุ่งยากเกินไป
Pattern Recognition : หาสิ่งที่เหมือนกัน เช่น เสื้อผ้าที่สะอาดนำไปไว้ในตู้ เสื้อผ้าสกปรกใส่ตะกร้า หนังสือทุกเล่มนำไปวางบนชั้น โดยใช้หลักการเดียวกันกับสิ่งของประเภทเดียวกัน
Abstraction : โฟกัสเฉพาะสิ่งสำคัญ เช่น ไม่ต้องใส่ใจว่าเสื้อผ้าเป็นของยี่ห้อไหน หรือหนังสือเล่มไหน เพียงแค่แยกตามประเภทว่าเป็น "เสื้อผ้า" "หนังสือ" หรือ "ขยะ"
Algorithm : สร้างขั้นตอนการทำความสะอาด เช่น 1) หยิบของ 1 ชิ้น 2) ถ้าเป็นเสื้อผ้า ให้แยกสะอาด/สกปรก แล้วเก็บเข้าที่ 3) ถ้าเป็นหนังสือ ให้เก็บเข้าชั้น 4) ถ้าเป็นขยะ ให้ทิ้งถังขยะ 5) ทำซ้ำจนห้องสะอาด
สถานการณ์ที่ 2 : การวางแผนอ่านหนังสือสอบ
Decomposition : แบ่งเนื้อหาทั้งหมดออกเป็นบท ๆ หรือหัวข้อใหญ่ ๆ เพื่อให้รู้ว่าจะต้องอ่านอะไรบ้าง
Pattern Recognition : หารูปแบบที่เหมือนกันในแต่ละบท เช่น ทุกบทควรมีขั้นตอนเหมือนกัน คือ 1)
อ่านเนื้อหา 2) สรุปย่อ 3) ทำแบบฝึกหัด
Abstraction : มองเฉพาะสิ่งสำคัญ โดยสร้างตารางอ่านหนังสือที่มีแค่ "วัน", "เวลา", และ "วิชา/บทที่
ต้องอ่าน" โดยไม่จำเป็นต้องใส่รายละเอียดปลีกย่อยมากเกินไป
Algorithm : สร้างแผนรายวัน เช่น 1) 9:00-10:30 อ่านคณิตศาสตร์บทที่ 1 2) 10:30-11:00 พัก 3)
11:00-12:30 อ่านวิทยาศาสตร์บทที่ 1 ทำแบบนี้ไปเรื่อย ๆ จนครบทุกวิชา
สถานการณ์ที่ 3 : การเดินทางไปโรงเรียนให้ทันเวลา
Decomposition : แยกกิจกรรมย่อย เช่น ตื่นนอน > อาบน้ำ > แต่งตัว > กินข้าว > เดินทาง
Pattern Recognition : กิจกรรมเหล่านี้เกิดขึ้นทุกวันในลำดับเดิม สามารถจัดรูปแบบตารางเวลาได้
Abstraction : ไม่ต้องใส่ใจรายละเอียดปลีกย่อย เช่น ทานอะไร หรือใส่ชุดอะไร สนใจแค่กิจกรรมหลัก
Algorithm : วางลำดับเวลา เช่น 6:00 ตื่น 6:30 อาบน้ำ 7:00 ทานข้าว 7:30 ออกเดินทาง
ตัวอย่างการใช้แนวคิดเชิงคำนวนในการเขียนโปรแกรม
สถานการณ์ที่ 4 : การสร้างโปรแกรมเครื่องคิดเลข
Decomposition: แบ่งโปรแกรมเป็น 1) ส่วนหน้าจอ (UI) สำหรับรับตัวเลขและแสดงผล 2) ส่วนตรรกะ (Logic) สำหรับการคำนวณบวก ลบ คูณ หาร
Pattern Recognition: การคำนวณทุกแบบมีรูปแบบเหมือนกัน คือ "รับตัวเลขที่ 1 → รับเครื่องหมาย → รับตัวเลขที่ 2 → คำนวณ → แสดงผล"
Abstraction: สร้างฟังก์ชัน `calculate(num1, operator, num2)` โดยไม่สนใจว่าอินพุตจะมาจากคีย์บอร์ดหรือคลิกเมาส์ สนใจแค่ค่าทั้ง 3 ตัว
Algorithm: ขั้นตอนการทำงาน: 1) รอรับอินพุต 2) เมื่อกด "=" ให้นำตัวเลขและเครื่องหมายมาประมวลผล 3) ใช้ if-else ตรวจว่าควรบวก ลบ คูณ หรือหาร แล้วแสดงผลลัพธ์
เกมฝึกทักษะ