🌱
⏱️ ~9 นาที

Computational Thinking

วิธีคิดที่ช่วยแก้ปัญหาให้กลายเป็นโปรแกรมได้

ปัญหาคือ โปรแกรมคือคำตอบ

ทุกโปรแกรมเริ่มจาก ปัญหา ที่ต้องการคำตอบ ก่อนจะเขียนโค้ดสักบรรทัด เราต้องรู้จัก คิดให้เป็นระบบ นี่คือสิ่งที่เราเรียกว่า Computational Thinking (การคิดเชิงคอมพิวเตอร์)

ไม่ต้องกลัวชื่อใหญ่ มันมีอยู่ 4 หลักการเท่านั้น:

1. Decomposition — แยกย่อย

แบ่งปัญหา ใหญ่ ให้เป็นปัญหา เล็ก ที่จัดการได้

ตัวอย่าง: อยากทำแอป "ร้านกาแฟออนไลน์" อย่ามองมันเป็นก้อนเดียว — แบ่งเป็น:

  • แสดงเมนูกาแฟ
  • ให้ลูกค้าเลือกและใส่ตะกร้า
  • คำนวณราคา
  • ชำระเงิน
  • ส่งใบเสร็จ

แต่ละส่วนเล็กพอจะคิดและเขียนได้ทีละอย่าง

2. Pattern Recognition — หาแบบรูปแบบ

มองหาสิ่งที่ ซ้ำ ๆ หรือคล้ายกัน เพราะถ้าเจอแล้ว เราแก้ครั้งเดียวแล้วใช้ได้หลายที่

ตัวอย่าง: ในร้านกาแฟ

  • ลาเต้ ร้อน / ลาเต้เย็น / อเมริกาโน่เย็น → ทุกแก้วมี "ราคา + ขนาด + หวานน้อย/ปกติ"
  • เป็นรูปแบบซ้ำ → เราออกแบบ "รูปแบบสินค้า" ทั่วไปแล้วนำไปใช้ทั้งหมด

3. Abstraction — เก็บสำคัญ ซ่อนรายละเอียด

โฟกัสเฉพาะ สิ่งที่จำเป็น และเพิกเฉยต่อสิ่งที่ไม่สำคัญตอนนี้

ตัวอย่าง: พอเราบอกว่า "สั่งลาเต้ 1 แก้ว" เราไม่ได้สนว่าเครื่องชงจะหมุนกี่รอบ หรือน้ำตาลเข้าไปก่อนหรือหลัง เรา abstract รายละเอียดเหล่านั้นทิ้ง เก็บเฉพาะสิ่งที่ลูกค้าต้องสื่อสาร

4. Algorithm — ขั้นตอนที่ชัดเจน

เมื่อเข้าใจปัญหาแล้ว เขียน ขั้นตอนแก้ปัญหา ออกมาเป็นลำดับชัด ๆ ขั้นตอนที่ดีต้อง:

  • ชัดเจน ไม่คลุมเครือ
  • มีลำดับที่ถูกต้อง
  • จบได้ (ไม่วนไม่รู้จบโดยไม่จำเป็น)

บทหน้าเราจะฝึกเขียนขั้นตอนแบบนี้เป็น Flowchart กัน

ลองฝึกทันที

ลองใช้ 4 ขั้นนี้กับปัญหาง่าย ๆ:

ปัญหา: หาเลขที่มากที่สุดในลิสต์ [3, 9, 2, 7]

  1. Decomposition: เทียบเลขทีละคู่
  2. Pattern: การเทียบ "ใครมากกว่า" เป็นแบบซ้ำ
  3. Abstraction: สนแค่ค่าตัวเลข ไม่สนว่ามาจากไหน
  4. Algorithm:
    • ตั้ง "มากสุด" = เลขแรก (3)
    • เทียบกับ 9 → 9 มากกว่า → เปลี่ยน "มากสุด" เป็น 9
    • เทียบกับ 2 → น้อยกว่า → ไม่เปลี่ยน
    • เทียบกับ 7 → น้อยกว่า → ไม่เปลี่ยน
    • คำตอบคือ 9

นี่คือวิธีคิดที่โปรแกรมเมอร์ใช้ ทุกวัน — และมันใช้ได้กับทุกภาษา

สรุป

หลักการสรุป
Decompositionแบ่งปัญหาใหญ่ → เล็ก
Pattern Recognitionหาสิ่งที่ซ้ำ แล้วนำกลับมาใช้ใหม่
Abstractionเก็บสำคัญ ซ่อนรายละเอียด
Algorithmเขียนขั้นตอนให้ชัดและจบได้

บทหน้าเราจะแปลง "ขั้นตอน" ให้เป็นภาพ ด้วย Flowchart 📊

อ่านจบแล้ว? ทำเครื่องหมายว่าเสร็จเพื่อบันทึกความคืบหน้า

🧠

แบบทดสอบ

ตอบให้ครบแล้วกด “ตรวจคำตอบ” เพื่อเช็คความเข้าใจ

  1. 1. ‘Decomposition’ ใน computational thinking คืออะไร?

  2. 2. Pattern recognition ช่วยอะไรเวลาเขียนโปรแกรม?

  3. 3. Abstraction หมายถึง?

กำลังโหลด…