1) Decomposition
การแยกส่วนประกอบ และการย่อยปัญหา
Decomposition เป็นการพิจารณาเพื่อแบ่งปัญหา
หรืองานออกเป็นส่วนย่อย ทำให้สามารถจัดการกับปัญหาหรือ งานได้ง่ายขึ้นพูดง่ายๆ
เอาปัญหามาแยกย่อยออกเป็นส่วนๆ
ตัวอย่างการนำแนวคิดนี้ไปใช้ตอนเขียนโปรแกรมเช่น
การเขียนโปรแกรมแยกเป็นส่วนๆ แยกเป็นแพ็กเกจ แยกเป็นโมดูล หรือทำระบบเป็น services
ย่อยๆ หรือมองเป็น layer เป็นต้น
ตัวอย่างการนำไปใช้นอกจากเขียนโปรแกรม
-เราจะเรียนรู้ว่าจักรยานทำงานอย่างไร? ก็ให้พิจารณาแยกชิ้นส่วนจักรยานว่ามีอะไรบ้าง
แล้วก็ไปศึกษาทีละชิ้น
-เราจะเดินทางไปเที่ยวหาดใหญ่
จะวางแผนเดินทางอย่างไร? ซึ่งเราอาจแยกย่อยวิธีเดินทางเป็น 4
รูปแบบ เช่น ขับ รถไป เอง
หรือนั่งรถทัวร์ หรือนั่งเครื่องบิน หรือนั่งรถไฟ
จากนั้นก็มาวิเคราะห์ถึงข้อดีข้อเสียแต่ละวิธีการ
– จักรยานคันหนึ่ง
ถ้าเราจะศึกษามันก็จะมองได้ว่า ประกอบไปด้วย ล้อ แฮนด์ โครงจักรยาน ระบบขับเคลื่อน
หรืออื่นๆ ถ้ามอง ในรายละเอียดของล้อจักรยานจะเห็นว่าประกอบด้วย ยางล้อ วงล้อ
และซี่ลวด เป็นต้น
-รัฐบาลจะปฏิรูปประเทศไทย
ก็จะนำปัญหาประเทศมาแยกย่อยออกเป็นปฏิรูป 11 ด้าน
จากนั้นจึงไปปฏิรูปปัญหาย่อยทีละ ด้าน
2) Pattern recognition การหารูปแบบ
Pattern recognition เป็นทักษะการหาความสัมพันธ์ที่เกี่ยวข้อง
แนวโน้ม และลักษณะทั่วไปของสิ่งต่าง ๆ
ตัวอย่างการนำแนวคิดนี้ไปใช้ตอนเขียนโปรแกรม
เมื่อมีการทำงานของโปรแกรมที่หลากหลายแบบ
แต่ทว่ามีรูปแบบที่แน่นอนซ้ำๆ กัน เราสามารถยุบโค้ดมาอยู่ในฟังก์ชั่น เดียวกันได้หรือไม่
หรือเขียนเป็นโปรแกรมวนลูป ให้อยู่ในลูปเดียวกัน เป็นต้น
ตัวอย่างการนำไปใช้นอกจากเขียนโปรแกรม
– จัดหมวดหมู่สัตว์ที่คล้ายคลึงกัน
ให้อยู่ในสปีชีส์เดียวกัน เพื่อให้ง่ายต่อการศึกษา
– หาพฤติกรรมการบริโภคของคน
ว่านิยมซื้ออะไร ช่วงเวลาไหน มีรูปแบบพฤติกรรมซ้ำๆ อะไรบ้าง
– ลองดูตัวอย่างจากรูปข้างล่าง
แล้วให้ลองระบุสิ่งของที่เหมือนหรือแตกต่างกัน
3) Algorithm ขั้นตอนวิธี
Algorithm คือลำดับขั้นตอนในการแก้ปัญหาหรือการทำงานที่ชัดเจน
การคิดค้น อธิบายขั้นตอนวิธีในการแก้ปัญหาต่าง
ตัวอย่างการนำแนวคิดนี้ไปใช้ตอนเขียนโปรแกรม
สำหรับคนเขียนโปรแกรม
คงรู้จักกันดีไม่ต้องอธิบายมาก เช่น
-จะคำนวณหาพื้นที่เส้นรอบวง
ต้องมีสเตปคำนวณอย่างไรบ้าง
-จะค้นหาข้อมูลแบบ binary search
ต้องมีขั้นตอน 1,2,3 อย่างไรบ้าง
-จะหาเส้นทางที่ใกล้สุดในกราฟ ด้วยวิธี Dijkstra
จะมีขั้นตอน 1,2,3 อย่างไรบ้าง
ตัวอย่างการนำไปใช้นอกจากเขียนโปรแกรม
-จะวางแผนจีบสาว มีขั้นตอนอย่างไร?
-จะไปเที่ยวเขาใหญ่
ต้องวางแผนว่าในแต่ละวันทำอะไรบ้าง เที่ยวไหน กินข้าวที่ไหน มีลำดับตามช่วงเวลา?
-จะเต้นเพลงคุกกี้เสี่ยงทาย ต้องมีเสตป 1,
2, 3 อย่างไร?
4) Abstract thinking การคิดเชิงนามธรรม
Abstract thinking เป็นกระบวนการคัดแยกคุณลักษณะที่สำคัญออกจากรายละเอียดปลีกย่อย
ในปัญหา หรืองานที่กำลังพิจารณา เพื่อให้ได้ข้อมูลที่จำเป็นและเพียงพอในการแก้ปัญหา
ตัวอย่างการนำแนวคิดนี้ไปใช้ตอนเขียนโปรแกรม
-จากโจทย์ปัญหาเขียนโปรแกรมที่ดูยุ่งยาก
สามารถทำให้ง่ายขึ้นด้วยการสกัดเอาลัษณะสำคัญออกมาวาดเป็น Object ใช้
Class diagram ลากเส้นแสดงความสัมพันธ์กัน
จากนั้นก็เริ่มเขียนโปรแกรมเป็นแบบเชิงวัตถุ เป็นต้น
-ถ้าเราจะส่งข้อมูลข้าม network แล้วเขียนโปรแกรมหาระยะทางสั้นที่สุดต้องทำอย่างไร?
วิธีคิดก็จะสกัดรายละเอียดสำคัญออกมา
เช่น server ก็วาดเป็นโหนด แล้วมีเส้นเชื่อมระหว่างโหนด
พร้อมระบุระยะทางบนเส้น พอคิดแบบเชิงนามธรรมได้แล้ว
ก็จะได้ง่ายมากที่จะเอาทฤษฏีกราฟมาคำนวณหาระยะทางสั้นที่สุด เป็นต้น
ตัวอย่างการนำไปใช้นอกจากเขียนโปรแกรม
– เราจะดูแผนที่ประเทศไทย
เพื่อเที่ยวภาคเหนือ ถ้าดูเต็มรูปแบบ จะยุ่งยาก งงตาลาย มีหลายเส้นทางเยอะไปหมด
แต่เราสามารถแก้ปัญหา โดยตัดรายละเอียดส่วนเกินทิ้ง
เอาสถานที่และเส้นทางที่สำคัญที่จะใช้เดินทาง มาวาดใส่กระดาษก็พอ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น