วันจันทร์ที่ 24 กันยายน พ.ศ. 2561

การประยุกต์เเนวคิดเชิงคำนวณเพื่อเเก้ปัญหา

          โครงงานพัฒนาเว็บไซต์เเนะนำการใช้ห้องสมุด
เเนวคิดเชิงคำนวณเป็นกระบวนการคิดที่ต้องใช้ทักษะเเละเทคนิคเพื่อเเก้ปัญหาเเบบมีลำดับขั้นตอน เเละเป็นระบบ เพื่อสามารถลำดับขั้นตอนในการเเก้ปัญหาในเชิงนามธรรมได้



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 ก็วาดเป็นโหนด แล้วมีเส้นเชื่อมระหว่างโหนด พร้อมระบุระยะทางบนเส้น พอคิดแบบเชิงนามธรรมได้แล้ว ก็จะได้ง่ายมากที่จะเอาทฤษฏีกราฟมาคำนวณหาระยะทางสั้นที่สุด เป็นต้น
        ตัวอย่างการนำไปใช้นอกจากเขียนโปรแกรม
 – เราจะดูแผนที่ประเทศไทย เพื่อเที่ยวภาคเหนือ ถ้าดูเต็มรูปแบบ จะยุ่งยาก งงตาลาย มีหลายเส้นทางเยอะไปหมด แต่เราสามารถแก้ปัญหา โดยตัดรายละเอียดส่วนเกินทิ้ง เอาสถานที่และเส้นทางที่สำคัญที่จะใช้เดินทาง มาวาดใส่กระดาษก็พอ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น