แนวคิดเชิงคำนวณ

เทคโนโลยี (วิทยาการคำนวณ) ม.2

แนวคิดเชิงคำนวณ (computational thinking) เป็นกระบวนการวิเคราะห์ปัญหา เพื่อให้ได้แนวทางการหาคำตอบอย่างเป็นขั้นตอนที่สามารถนำไปปฏิบัติได้โดยบุคคลหรือคอมพิวเตอร์อย่างถูกต้องและแม่นยำ ซึ่งเรียกว่า อัลกอริทีม ทักษะการใช้แนวคิดเชิงคำนวณจึงสำคัญต่อการแก้ปัญหา ช่วยให้สามารถสื่อสารแนวคิดกับผู้อื่นได้อย่างมีประสิทธิภาพ รวมถึงช่วยพัฒนาพื้นฐานในการเขียนโปรแกรมคอมพิวเตอร์ด้วย

แนวคิดเชิงคำนวณมีองค์ประกอบที่สำคัญ 4 ส่วน

  • การแบ่งปัญหาใหญ่เป็นปัญหาย่อย (decomposition) เป็นการแตกปัญหาที่ซับซ้อนให้เป็นปัญหาย่อยที่มีขนาดเล็กลงและซับซ้อนน้อยลง เพื่อช่วยให้การวิเคราะห์และออกแบบวิธีการแก้ปัญหาทำได้ง่ายขึ้น
  • การพิจารณารูปแบบ (pattern recognition) เป็นการวิเคราะห์หาความเหมือนหรือคล้ายคลึงกันระหว่างปัญหาย่อยที่แตกออกมา หรือความคล้ายคลึงกับปัญหาอื่น ๆ ที่มีผู้ออกแบบวิธีการแก้ไขไว้ก่อนแล้ว
  • การคิดเชิงนามธรรม (abstraction) เป็นการแยกรายละเอียดที่สำคัญและจำเป็นต่อการแก้ปัญหาออกจากรายละเอียดที่ไม่จำเป็น ซึ่งรวมไปถึงการแทนกลุ่มของปัญหา ขั้นตอน หรือกระบวนการที่มีรายละเอียดปลีกย่อยหลายขั้นตอนด้วยขั้นตอนใหม่เพียงขั้นตอนเดียว
  • การออกแบบอัลกอริทีม (algorithm) เป็นการพัฒนากระบวนการหาคำตอบให้เป็นขั้นตอนที่บุคคลหรือคอมพิวเตอร์สามารถนำไปปฏิบัติตามเพื่อแก้ปัญหาได้

1.1 การแบ่งปัญหาใหญ่เป็นปัญหาย่อย

การแก้ปัญหาที่มีความซับซ้อนทำได้ยาก การแบ่งปัญหาใหญ่ให้เป็นปัญหาย่อย ๆ ทำให้ความซับซ้อนของปัญหาลดลง ช่วยให้การวิเคราะห์และพิจารณารายละเอียดของปัญหาทำได้อย่างถี่ถ้วน ส่งผลให้สามารถออกแบบขั้นตอนการแก้ปัญหาย่อยแต่ละปัญหาได้ง่ายยิ่งขึ้น

1.2 การพิจารณารูปแบบ

ปัญหาบางประเภทสามารถแบ่งออกเป็นปัญหาย่อยที่อาจจะมีรูปแบบเตียวกันหรือคล้ายกัน นักเรียนสามารถนำรูปแบบกระบวนการแก้ปัญหาย่อยปัญหาหนึ่งไปประยุกต์ใช้กับการแก้ปัญหาย่อยอื่น ๆ ได้ทำให้ลดขั้นตอนในการออกแบบวิธีการแก้ปัญหาได้

1.3 การคิดเชิงนามธรรม

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

1.4 การออกแบบอัลกอริทึม

อัลกอริทึม หมายถึง รายการคำสั่งที่อธิบายขั้นตอนในการแก้ปัญหา โดยแต่ละคำสั่งนั้นต้องเป็นคำสั่งที่ให้ผู้อื่นนำไปปฏิบัติตามได้โดยไม่มีความกำกวม ซึ่งมักอยู่ในรูปของรหัสสำลอง (pseudo code) หรือผังงาน (flowchart) ในกรณีที่ใช้คอมพิวเตอร์เป็นเครื่องมือในการแก้ปัญหา อัสกอริทึมจะต้องถูกแปลงให้อยู่ในรูปของภาษาโปรแกรมก่อนเพื่อให้คอมพิวเตอร์สามารถปฏิบัติตามได้ ดังนั้นการออกแบบรายละเอียดในอัลกอริทึม
จึงขึ้นอยู่กับคนหรือคอมพิวเตอร์ที่จะนำอัลกอริทึมไปปฏิบัติ

เกร็ดความรู้

อัลกอริทึมสำหรับการจัดเรียงลำดับ (sorting algorithm) อัลกอริทีมสำหรับสอนน้องจัดหนังสือเป็นอัลกอริทึมสำหรับการเรียงลำตับมีชื่อว่า “การเรียงลำตับแบบเลือก (selection sort)” ซึ่งมีวิธีการที่เข้าโจง่ายแต่ค่อนข้างช้า เมื่อมีสิ่งที่ต้องเรียงสำตับเป็นจำนวนมาก นอกเหนือจากการเรียงลำดับแบบเลือกยังมีอัลกอริทึมสำหรับการเรียงลำดับอีกหลายวิธีดูตัวอย่างและการทำงานของอัลกอริทีมเหล่านี้ได้จ้ากลิงก์ https://www.toptal.com/developers/sorting-algorithms จึงขึ้นอยู่กับคนหรือคอมพิวเตอร์ที่จะนำอัลกอริทึมไปปฏิบัติ