สนุกคิด สนุกโค้ด ด้วยภาษาไพทอน

กำลังเรียนในชื่อ:

บทที่ 2: แนวคิดเชิงคำนวณในชีวิตจริงและการเขียนโปรแกรม

1. ตัวอย่างในชีวิตประจำวัน

แนวคิดเชิงคำนวณ (Computational Thinking) เป็นทักษะที่ช่วยในการวิเคราะห์และแก้ปัญหาได้อย่างเป็นระบบ ไม่จำกัดเฉพาะในวิชาคอมพิวเตอร์ แต่นำไปใช้กับชีวิตประจำวันได้เช่นกัน ตัวอย่างต่อไปนี้จะแสดงให้เห็นถึงการประยุกต์ใช้แนวคิดเชิงคำนวณในสถานการณ์ใกล้ตัว

📌 สถานการณ์ที่ 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: แบ่งขั้นตอนการทำอาหารออกเป็น 1) การเตรียมวัตถุดิบ 2) ขั้นตอนการปรุง 3) การจัดจานเพื่อเสิร์ฟ
  • Pattern Recognition: หาสิ่งที่เหมือนกัน เช่น ผักและเนื้อสัตว์ต้องผ่านขั้นตอน "ล้าง" และ "หั่น" เสมอ ถือเป็นรูปแบบที่พบได้บ่อยในการเตรียมอาหาร
  • Abstraction: มองข้ามรายละเอียดที่ไม่จำเป็น เช่น สูตรอาหารจะไม่บอกว่าต้องใช้มีดยี่ห้ออะไรหรือกระทะสีอะไร แต่จะบอกเฉพาะส่วนผสมและขั้นตอนที่จำเป็นเท่านั้น
  • Algorithm: ทำตามขั้นตอนในสูตร เช่น 1) หั่นผัก 2) หมักเนื้อ 3) ตั้งกระทะ ใส่น้ำมัน 4) ผัดเนื้อกับผักตามลำดับไปจนเสร็จ

📌 สถานการณ์ที่ 4: การเดินทางไปโรงเรียนให้ทันเวลา

  • Decomposition: แยกกิจกรรมย่อย เช่น ตื่นนอน > อาบน้ำ > แต่งตัว > กินข้าว > เดินทาง
  • Pattern Recognition: กิจกรรมเหล่านี้เกิดขึ้นทุกวันในลำดับเดิม สามารถจัดรูปแบบตารางเวลาได้
  • Abstraction: ไม่ต้องใส่ใจรายละเอียดปลีกย่อย เช่น ทานอะไร หรือใส่ชุดอะไร สนใจแค่กิจกรรมหลัก
  • Algorithm: วางลำดับเวลา เช่น 6:00 ตื่น 6:30 อาบน้ำ 7:00 ทานข้าว 7:30 ออกเดินทาง

2. ตัวอย่างในการเขียนโปรแกรมและพัฒนาโครงงาน

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

💻 สถานการณ์ที่ 5: การสร้างโปรแกรมเครื่องคิดเลข

  • Decomposition: แบ่งโปรแกรมเป็น 1) ส่วนหน้าจอ (UI) สำหรับรับตัวเลขและแสดงผล 2) ส่วนตรรกะ (Logic) สำหรับการคำนวณบวก ลบ คูณ หาร
  • Pattern Recognition: การคำนวณทุกแบบมีรูปแบบเหมือนกัน คือ "รับตัวเลขที่ 1 → รับเครื่องหมาย → รับตัวเลขที่ 2 → คำนวณ → แสดงผล"
  • Abstraction: สร้างฟังก์ชัน `calculate(num1, operator, num2)` โดยไม่สนใจว่าอินพุตจะมาจากคีย์บอร์ดหรือคลิกเมาส์ สนใจแค่ค่าทั้ง 3 ตัว
  • Algorithm: ขั้นตอนการทำงาน: 1) รอรับอินพุต 2) เมื่อกด "=" ให้นำตัวเลขและเครื่องหมายมาประมวลผล 3) ใช้ if-else ตรวจว่าควรบวก ลบ คูณ หรือหาร แล้วแสดงผลลัพธ์

🎮 สถานการณ์ที่ 6: การสร้างเกมทายตัวเลข (Guessing Game)

  • Decomposition: แบ่งเกมเป็น 1) ส่วนสุ่มตัวเลขคำตอบ 2) ส่วนรับตัวเลขจากผู้เล่น 3) ส่วนเปรียบเทียบคำตอบ 4) ส่วนแสดงผล
  • Pattern Recognition: เกมจะวนลูปทำงานแบบ "รับอินพุต → เปรียบเทียบ → แสดงผล" ซ้ำไปเรื่อย ๆ จนกว่าผู้เล่นจะตอบถูก
  • Abstraction: โฟกัสเฉพาะตรรกะหลัก โดยไม่ต้องสนใจว่าเกมจะมีกราฟิกสวยงามแค่ไหนในเบื้องต้น
  • Algorithm: ขั้นตอนคือ: 1) สุ่มตัวเลข 1–100 แล้วเก็บไว้ใน `answer` 2) เริ่ม Loop ไม่รู้จบ 3) แสดงข้อความให้ผู้ใช้ทายตัวเลขและรับค่าจาก `guess` 4) ถ้า `guess` มากกว่าหรือน้อยกว่าคำตอบ ให้แสดงคำแนะนำ 5) ถ้าถูก ให้แสดงว่า "คุณชนะ!" และจบเกม

📅 สถานการณ์ที่ 7: การพัฒนาแอปวางแผนเวลา (Time Planner)

  • Decomposition: แยกเป็น 1) หน้าจอแสดงรายการงาน 2) ฟังก์ชันเพิ่ม/ลบงาน 3) ระบบแจ้งเตือน
  • Pattern Recognition: รูปแบบของงานทุกชิ้นคล้ายกัน คือ ต้องมีชื่อและเวลาที่กำหนด
  • Abstraction: สร้างฟังก์ชัน `addTask(title, time)` โดยไม่ต้องรู้ว่าข้อมูลมาจากไหน สนใจแค่ข้อมูลที่จำเป็น
  • Algorithm: ขั้นตอนคือ: 1) ผู้ใช้เพิ่มงาน → 2) บันทึกในรายการ → 3) แสดงบนหน้าจอ → 4) ส่งแจ้งเตือนเมื่อถึงเวลา