วิทยาการคำนวณ: แนวคิดเชิงคำนวณ คืออะไร?

ในการเรียนวิชาคำนวณชั้นมัธยมศึกษาปีที่ 4 เรื่องแรกที่ต้องเผชิญหน้าในบทที่ 1 เลย คือเรื่องของ แนวคิดเชิงคำนวณ ซึ่งหลายคนอาจยังไม่เข้าใจเนื้อหา หรืออยากจะลองทบทวน ผมจึงได้ทำการสรุปเนื้อหา สาระสำคัญในเรื่องของแนวคิดเชิงคำนวณมาไว้ในบทความนี้

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

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

แนวคิดเชิงคำนวณ คืออะไร?

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

องค์ประกอบของแนวคิดเชิงคำนวณ

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

  • การแยกส่วนประกอบและการย่อยปัญหา(Decomposition)
  •  การหารูปแบบ(Pattern Recognition)
  • การคิดเชิงนามธรรม(Abstraction)
  • การออกแบบขั้นตอนวิธี(Algorithm Design)

การแยกส่วนประกอบและการย่อยปัญหา(Decomposition)

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

ตัวอย่าง

ตัวอย่างที่ 1 ขอยกตัวอย่างแรกเป็นแยกส่วนประกอบของสิ่งของที่เห็นได้เป็นประจำทุกวัน เช่น คอมพิวเตอร์ หากเราคิดดูดี ๆ แล้ว คอมพิวเตอร์ 1 เครื่อง มีหลายส่วนประกอบที่นำมารวมกันเพื่อให้ใช้งานได้ เมื่อแยกส่วนประกอบต่าง ๆ ออกมาก็จะได้ดังนี้ CPU, Mainboard, RAM, Harddisk, Power Supply, GPU ฯ

ตัวอย่างที่ 2 ผมขอยกตัวอย่างเป็นเรื่องของการใช้ชีวิตประจำวันอย่าง การบวก ลบ คูณ และหารตัวเลข ผมจะขอยกตัวอย่างโจทย์คณิตศาสตร์มาสักหนึ่งโจทย์ คือ (4*5)+(6-7) การที่เราจำนวนการแยกส่วนประกอบและการย่อยปัญหามาใช้กับโจทย์นี้ เราจะต้องคิดว่าโจทย์นี้เป็นปัญหาก้อนใหญ่ที่เราต้องแก้เสียก่อน จากนั้นลองแยกส่วนของโจทย์ออกมาเป็นส่วนย่อย ๆ จะได้ปัญหาย่อย 2 ส่วน คือ

  • (4 * 5)
  • (6 – 7)

เมื่อแยกปัญหาออกเป็นสองส่วนแล้วก็ค่อย ๆ ทำการแก้ปัญหาออกมาที่ละส่วน คือ (4*5) จะได้ 20 และ(6-7) จะได้ -1 จากนั้นก็นำ 20 + (-1) ผลลัพธ์คือ 19

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

ข้อควรระวัง! การแยกย่อยส่วนประกอบนั้นสามารถแยกลงไปได้ลึกมากอย่างตัวอย่างที่ 1 Mainboard ก็ยังสามารถแยกได้อีกเป็น CPU Slot, LAN Slot, RAM Slot ฯ แต่เราควรที่จะแยกย่อยออกมาตามความเหมาะสม และความพอดี ไม่ควรแยกย่อยเยอะเกินความจำเป็น เพราะจะทำให้เราเสียเวลาในการแยกปัญหา และแก้ปัญหา

การหารูปแบบ(Pattern Recognition)

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

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

ตัวอย่าง

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

ตัวอย่างที่ 2 คุณครูสั่งให้เราไปซื้อปากกาหัวตัดมาเพื่อให้มาทำการฝึกเขียนอักษรริบบิ้น เราจึงออกไปยังร้านขายเครื่องเขียน ปรากฏว่ามีร้านขายเครื่องเขียนอยู่ 5 ร้าน เราจึงเดินเข้าไปร้านแรกทางร้านบอกว่าไม่มีปากกาหัวตัด เราจึงต้องไปยังร้านที่ 2 ซึ่งร้านที่ 2 ก็บอกว่าไม่มีเช่นกัน ทำให้เราต้องไปยังร้านถัด ๆ ไป เป็นการทำในรูปแบบเดิมซ้ำ ๆ จึงสามารถสรุปรูปแบบการทำงานเช่นนี้ออกมาเป็นขั้นตอนวิธีได้ดังนี้

การคิดเชิงนามธรรม(Abstraction)

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

ตัวอย่าง

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

ตัวอย่างที่ 2 ขอยกตัวอย่างเป็นวิชาวิทยาศาสตร์ เรื่องของวงจรไฟฟ้า ในการเรียนเราไม่จำเป็นจะต้องเขียนวงจรการทำงานของวงจรไฟฟ้าแบบละเอียด รูปภาพเหมือนจริง หลอดไฟเป็นหลอดไฟ สายไฟเป็นสายไฟ เราเพียงแค่เขียนเป็นเส้น ๆ ใช้สัญลักษณ์เข้ามาแทนของจริง ก็ทำให้เราเข้าใจการทำงานของวงจรได้แล้ว

การออกแบบขั้นตอนวิธี(Algorithm Design)

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

Algorithm เป็นกระบวนการที่แสดงลำดับขั้นตอนของการทำงาน หรือการแก้ปัญหา เป็นวิธีที่มีมาตั้งแต่สมัยโบราณอย่าง การบวก ลบ คูณ และหารตัวเลข ก็คือ Algorithm อย่างหนึ่งด้วย

ในทางคอมพิวเตอร์การที่เราจะออกแบบขั้นตอนวิธีได้ เราจำเป็นที่จะต้องรู้ 2 สิ่งที่สำคัญของปัญหาเสียก่อน นั้นคือ “ข้อมูล” และ “เงื่อนไข”

ตัวอย่าง

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

ข้อมูลเงื่อนไข
ประเภทเครื่องใช้ไฟฟ้าที่ให้ความเย็น
ราคาราคาประหยัด
ความกินไฟไม่กินไฟมาก

เมื่อเราได้ข้อมูลและเงื่อนไขแล้ว เราก็มาที่ร้านขายเครื่องใช้ไฟฟ้า ซึ่งที่ร้านก็มีเครื่องใช้ไฟฟ้ามากมาย ดังนี้

รายการประเภทราคาความกินไฟ
โทรทัศน์ความบันเทิง3,000 บาทน้อย
พัดลมทำความเย็น330 บาทน้อย
หม้อหุงข้าวทำอาหาร650 บาทน้อย
แอร์ทำความเย็น12,000 บาทมาก

จากนั้นนำเงื่อนไขต่าง ๆ มาเขียนเป็นขั้นตอนวิธีผ่าน Flowchart ได้ดังนี้

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

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

ติดตามบทความอื่น ๆ ได้ ที่นี่