Computational Thinking — แนวคิดเชิงคำนวณ
Computational Thinking
การนำตรรกะแบบวิทยาการคอมพิวเตอร์มาใช้แก้ปัญหา — ได้กับทุกสาขาวิชา ไม่ใช่แค่การเขียนโปรแกรม
เป็นวิธีคิดอย่างเป็นระบบ เพื่อ
Note
แนวคิดเชิงคำนวณคือทักษะพื้นฐานของวิศวกร — เราจะใช้มันตลอดทั้งวิชานี้ ทบทวน: ทักษะที่สำคัญสำหรับการเขียนโปรแกรม (Module 1)
วงจร = ลำดับขั้นการแก้ปัญหา · CT (4 เสาหลัก) = วิธีคิดที่ใช้ในแต่ละขั้น — เห็นชัดตอน วางแผน 👇
1️⃣ เข้าใจปัญหา (Understand)
ปัญหาคืออะไร · มีข้อจำกัดและเป้าหมายแบบไหน
2️⃣ วางแผน (Plan) — ใช้ CT
🪓 แยกปัญหา · 🔁 หารูปแบบ · 🎯 ตัดรายละเอียด · 📝 เรียงขั้นตอน
3️⃣ ลงมือทำ (Implement)
ทำตามแผน · ทดสอบ · แก้ไข
4️⃣ ประเมินผล (Evaluate)
วัดผล · หาจุดปรับปรุง · วนรอบใหม่
Note
เป็นวงจร 🔁 ประเมินผลแล้ววนกลับไปปรับปรุงในรอบถัดไปได้เสมอ
Decomposition — แบ่งแล้วพิชิต (Divide and Conquer)
เมื่อเจอปัญหาใหญ่จนน่าท้อ การแยกส่วนทำหน้าที่เหมือนลิ่มทางความคิด

ภาพ: “Jigsaw puzzle in progress” โดย Balise42 · CC BY-SA 4.0
Tip
วิธีคิดเดียวกันนี้ขยายขนาดได้ ตั้งแต่งานบ้านเล็ก ๆ ไปจนถึงโครงสร้างพื้นฐานของเมือง
โครงการ รถไฟฟ้าเชียงใหม่ (AI-generated image) — แตกออกเป็นงานย่อยที่ทีมต่าง ๆ รับผิดชอบได้

ภาพจำลอง (AI-generated)
คิดก่อน: ถ้าได้รับมอบหมายให้จัดงานเลี้ยงปีใหม่ของภาควิชา จะแยกส่วนปัญหานี้ออกเป็นงานย่อยอะไรบ้าง?

ภาพจำลอง (AI-generated)
แต่ละงานย่อยยังแยกส่วนต่อได้อีก และมอบหมายให้คนละทีมทำพร้อมกันได้ 👍
Pattern Recognition — หากฎที่ซ่อนอยู่ในความยุ่งเหยิง
การมองเห็นความสม่ำเสมอช่วยให้เราคาดการณ์ผลลัพธ์และสร้างวิธีแก้ที่นำมาใช้ซ้ำได้
Important
ถ้าเจอรูปแบบ (pattern) เราแก้ปัญหานั้นแค่ “ครั้งเดียว” แล้วนำไปใช้กับกรณีอื่นได้อีกมากมาย
รูปแบบ ระหว่าง ปัญหา (among)
พออบเค้กเป็นชิ้นหนึ่งได้ ก็อบเค้กชิ้นไหนก็ได้ — ทุกสูตรมีโครงเดียวกัน: ตั้งอุณหภูมิเตา → ผสมส่วนผสม → อบตามเวลา
รูปแบบ ภายใน ปัญหา (within)
เจาะลงในขั้นตอนเดียวก็เจอรูปแบบย่อย — ทุกส่วนผสมมีแบบเดียวกัน:
[ระบุชื่อ] + [ระบุปริมาณ]
แป้ง 200 ก. · เนย 100 ก. · ไข่ 2 ฟอง

ภาพจำลอง (AI-generated)

ภาพจำลอง (AI-generated)
ฝุ่น PM 2.5 เชียงใหม่ — วิศวกรหารูปแบบเพื่อสร้างแบบจำลองพยากรณ์

ภาพ: “Chiang Mai Air Pollution” โดย FredTC · CC BY-SA 4.0
Tip
เหมือนฤดูกาลที่คาดเดาได้ — รู้รูปแบบแล้ว วางแผนล่วงหน้าได้
Abstraction — ตัดสิ่งที่ไม่เกี่ยวออก เหลือแต่แบบจำลองที่ใช้งานได้
ทำระบบที่ซับซ้อนให้เรียบง่าย โดยซ่อนความซับซ้อนที่ไม่จำเป็น — กรอง “สิ่งรบกวน (noise)” ออก เหลือเฉพาะสิ่งที่จำเป็นต่อการแก้ปัญหาตรงหน้า
Note
แบบจำลอง (Model) คือแนวคิดกลาง ๆ เช่น “แมวต้นแบบ” แทนแมวทุกตัว ไม่ใช่แมวตัวใดตัวหนึ่ง — จากแบบจำลอง เราเรียนรู้กฎที่ใช้ได้กับทั้งหมวดหมู่

ภาพจำลอง (AI-generated)
ออกแบบแผนที่รถไฟฟ้า ถ้าแสดงทุกตึกทุกต้นไม้ตามจริง จะกลายเป็นเครื่องมือที่ใช้ไม่ได้

ภาพ: “Greater Surakarta Transit Map” โดย Forum Diskusi Transportasi Solo · CC BY-SA 4.0
จากตัวอย่างสูตรอาหาร — อะไรควรเก็บไว้ในแบบจำลอง อะไรคือรายละเอียดที่กรองทิ้ง
| ✅ รูปแบบทั่วไป (เก็บไว้) | ❌ รายละเอียดเฉพาะ (กรองทิ้งก่อน) |
|---|---|
| แบบจำลองต้องมีส่วนผสม | ยังไม่ต้องรู้ว่าส่วนผสมนั้นคืออะไร |
| ส่วนผสมแต่ละอย่างมีปริมาณ | ยังไม่ต้องรู้ปริมาณที่แน่นอน |
| ระบบต้องใช้เวลาในการทำ | ยังไม่ต้องรู้ว่ากี่นาทีพอดี |
Tip
นามธรรมคือการรู้ว่า “ตอนนี้ยังไม่ต้องรู้อะไรบ้าง” เพื่อไม่ให้จมกับรายละเอียด
Algorithms — แผนแม่บทที่ทำตามได้ทีละขั้น
อัลกอริทึมคือสูตรอาหารที่ละเอียด ซึ่งรับประกันผลเหมือนเดิมทุกครั้งที่ทำตาม — เช่น ชงชา 1 ถ้วย ทีละขั้น 1 → 6

ภาพจำลอง (AI-generated)
Note
สังเกตว่าลำดับสำคัญ — สลับขั้นตอน ผลลัพธ์ก็เปลี่ยน (นี่คือหัวใจของการเขียนโปรแกรม)
อัลกอริทึมอาศัยอินพุตที่ชัดเจนและจุดตัดสินใจ (decision gate) — เหมือนโปรแกรมที่เราจะเขียนต่อจากนี้
Note
รูปแบบ input → process → decision → output นี้ คือสิ่งที่เราจะเขียนด้วย Python ใน Module 5 (if-else) 👉
flowchart ↔︎ โค้ด Python — นี่คือสิ่งที่เราจะเขียนได้จริงในอีกไม่กี่สัปดาห์
Tip
กด Run ดูผล แล้วลองเปลี่ยน age เป็น 25 — เห็นไหมว่าจุดตัดสินใจทำงานยังไง 😃
คู่มือ “อ่าน flowchart” ที่นำเสนอในรูปแบบ flowchart เสียเอง 🔁

ที่มา: xkcd #1195 — “Flow Charts” (CC BY-NC 2.5)
The Synthesis — เครื่องยนต์ความคิดที่ทำงานพร้อมกัน
ในการออกแบบซอฟต์แวร์ (เช่น เกมแพลตฟอร์ม) เครื่องมือทั้งสี่ไม่ได้ทำงานแยกกัน แต่ทำงานพร้อมกัน
🪓 แยกส่วน (Decomposition)
แบ่งเกมเป็นงาน — ระบบคะแนน, ฟิสิกส์การเคลื่อนที่, เงื่อนไขผ่านด่าน
🔁 หารูปแบบ (Pattern recognition)
ใช้ความรู้ว่าแพลตฟอร์มทำงานยังไง เขียนลูปเดินของศัตรูจากพฤติกรรมซ้ำ ๆ
🎯 นามธรรม (Abstraction)
ลดโลกทั้งใบให้เหลือตารางของเส้นทาง ตำแหน่งผู้เล่น ไอเทม และทางออก
📝 อัลกอริทึม (Algorithm)
โค้ดทีละขั้นที่กำหนดว่าจะเกิดอะไรเมื่อผู้เล่นกดปุ่มหรือชนศัตรู

ภาพจำลอง (AI-generated)
แนวคิด → เครื่องมือจริงที่เราจะได้ใช้ตลอดวิชานี้
| เสาหลัก (แนวคิด) | ใน Python คือ | ได้เรียนที่ |
|---|---|---|
| 🪓 แยกส่วน | แยกโปรแกรมใหญ่เป็นฟังก์ชันย่อย ๆ | Module 9, 10 |
| 🔁 หารูปแบบ | สั่งงานซ้ำด้วย loop (for, while) และ list comprehension |
Module 6, 7, 8, 10 |
| 🎯 นามธรรม | ซ่อนรายละเอียดด้วยตัวแปร, ฟังก์ชัน และโครงสร้างข้อมูล | Module 3, 4, 9 |
| 📝 อัลกอริทึม | เรียงลำดับคำสั่ง + เงื่อนไข (if-else) + การวนซ้ำ |
Module 3, 5, 6, 7 |
Tip
Computational Thinking = วิธีคิด · Python = เครื่องมือ — เราคิดแบบ CT แล้วสั่งให้คอมพิวเตอร์ทำจริงด้วย Python
โปรแกรมสั้น ๆ นี้ใช้ทั้ง 4 เสาหลักพร้อมกัน — กด Run ดูผล (ยังอ่านไม่ออกก็ไม่เป็นไร)
Tip
🪓 ฟังก์ชัน · 🔁 loop · 🎯 ตัวแปร · 📝 if-else — นี่คือ Python ที่เราจะได้ฝึกจริงตลอดวิชานี้
แนวคิดเชิงคำนวณ (Computational Thinking)
4 เสาหลัก
Tip
ในงานจริงทั้งสี่ทำงานพร้อมกัน → เราจะได้ฝึกใช้ทั้งหมดนี้ผ่านการเขียน Python ตลอดวิชานี้
Note
ต่อ Module 3: Variables and Types, Operators, Math 👉
🏠 259201 — Module 2 | ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเชียงใหม่