แนวคิดเชิงคำนวณ (Computational Thinking) คืออะไร

“แนวคิดเชิงคำนวณ” ชื่ออังกฤษ “Computational Thinking (CT)” คำๆ นี้ ต่อไปเด็กไทยจะได้เรียนรู้กันแล้ว เพื่อปูทางสู่การเขียนโปรแกรม

 

สำหรับแนวคิดเชิงคำนวณ มีไว้เพื่อใช้แก้ปัญหาในแวดวง “วิทยาศาสตร์คอมพิวเตอร์” ยิ่งถ้าคนเขียนโปรแกรมด้วยแล้ว ก็ต้องมีเลยทีเดียว

 

เมื่อถึงตรงนี้หลายคนอาจไม่คุ้นหูคำนี้เท่าไรนัก มันคืออะไรเนี่ย แนวคิดเชิงคำนวณ?

 

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

 

นิยามของ Computational Thinking หรือแนวคิดเชิงคำนวณ มันมีหลายนิยามนะ แต่ทั้งนี้ทั้งนั้น แนวคิดนี้จะประกอบด้วยแนวคิดย่อย 4 อย่างดังต่อนี้

1) Decomposition

 

2) Pattern recognition

 

3) Algorithm

 

4) Abstract thinking


มานั่งไล่ดูแต่ละความคิด ว่าคืออะไรกันดีกว่า


1) Decomposition ชื่อไทยคือ “การแยกส่วนประกอบ และการย่อยปัญหา”


Decomposition เป็นการพิจารณาเพื่อแบ่งปัญหา หรืองานออกเป็นส่วนย่อย ทำให้สามารถจัดการกับปัญหาหรืองานได้ง่ายขึ้น
พูดง่ายๆ เอาปัญหามาแยกย่อยออกเป็นส่วนๆ

 

?ตัวอย่างการนำแนวคิดนี้ไปใช้ตอนเขียนโปรแกรม

 

เช่น การเขียนโปรแกรมแยกเป็นส่วนๆ แยกเป็นแพ็กเกจ แยกเป็นโมดูล หรือทำระบบเป็น services ย่อยๆ หรือมองเป็น layer เป็นต้น

 

?ตัวอย่างการนำไปใช้นอกจากเขียนโปรแกรม

 

-เราจะเรียนรู้ว่าจักรยานทำงานอย่างไร? ก็ให้พิจารณาแยกชิ้นส่วนจักรยานว่ามีอะไรบ้าง แล้วก็ไปศึกษาทีละชิ้น

 

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

 

– จักรยานคันหนึ่ง ถ้าเราจะศึกษามันก็จะมองได้ว่า ประกอบไปด้วย ล้อ แฮนด์ โครงจักรยาน ระบบขับเคลื่อน หรืออื่นๆ ถ้ามองในรายละเอียดของล้อจักรยานจะเห็นว่าประกอบด้วย ยางล้อ วงล้อ และซี่ลวด เป็นต้น

 

-รัฐบาลจะปฏิรูปประเทศไทย ก็จะนำปัญหาประเทศมาแยกย่อยออกเป็นปฏิรูป 11 ด้าน จากนั้นจึงไปปฏิรูปปัญหาย่อยทีละด้าน

 

 

2) Pattern recognition ชื่อไทยคือ “การหารูปแบบ”


Pattern recognition เป็นทักษะการหาความสัมพันธ์ที่เกี่ยวข้อง แนวโน้ม และลักษณะทั่วไปของสิ่งต่าง

 

?ตัวอย่างการนำแนวคิดนี้ไปใช้ตอนเขียนโปรแกรม

 

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

 

?ตัวอย่างการนำไปใช้นอกจากเขียนโปรแกรม

 

– จัดหมวดหมู่สัตว์ที่คล้ายคลึงกัน ให้อยู่ในสปีชีส์เดียวกัน เพื่อให้ง่ายต่อการศึกษา
– หาพฤติกรรมการบริโภคของคน ว่านิยมซื้ออะไร ช่วงเวลาไหน มีรูปแบบพฤติกรรมซ้ำๆ อะไรบ้าง
– ลองดูตัวอย่างจากรูปข้างล่าง แล้วให้ลองระบุสิ่งของที่เหมือนหรือแตกต่างกัน

 

จากหนังสือเรียน ?วิทยการคำนวณ? บทที่ 1 ชั้น ม.4


3) Algorithm ชื่อไทย “ขั้นตอนวิธี”


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

 

?ตัวอย่างการนำแนวคิดนี้ไปใช้ตอนเขียนโปรแกรม

สำหรับคนเขียนโปรแกรม คงรู้จักกันดีไม่ต้องอธิบายมาก เช่น

-จะคำนวณหาพื้นที่เส้นรอบวง ต้องมีสเตปคำนวณอย่างไรบ้าง
-จะค้นหาข้อมูลแบบ binary search ต้องมีขั้นตอน 1,2,3 อย่างไรบ้าง
-จะหาเส้นทางที่ใกล้สุดในกราฟ ด้วยวิธี Dijkstra จะมีขั้นตอน 1,2,3 อย่างไรบ้าง

 

?ตัวอย่างการนำไปใช้นอกจากเขียนโปรแกรม

-จะวางแผนจีบสาว มีขั้นตอนอย่างไร?

-จะไปเที่ยวเขาใหญ่ ต้องวางแผนว่าในแต่ละวันทำอะไรบ้าง เที่ยวไหน กินข้าวที่ไหน มีลำดับตามช่วงเวลา?

-จะเต้นเพลงคุกกี้เสี่ยงทาย ต้องมีเสตป 1, 2, 3 อย่างไร?

 

คลิปวีดีโอข้างบนเป็นของช่อง?Active Dance?สอนเต้นเพลง “คุกกี้เสี่ยงทาย” ซึ่งจะมีสเตปยกมือ ยกเท้า เคลื่อนไหวร่างกาย …พอเพลงเริ่มบรรเลงเราก็เต้นตามขั้นตอน ซึ่งก็คือ?Algorithm?แต่ใช้ในโลกร้องเพลง


4) Abstract thinking ชือไทย “การคิดเชิงนามธรรม”


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

 

?ตัวอย่างการนำแนวคิดนี้ไปใช้ตอนเขียนโปรแกรม

 

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

-ถ้าเราจะส่งข้อมูลข้าม network แล้วเขียนโปรแกรมหาระยะทางสั้นที่สุดต้องทำอย่างไร?

วิธีคิดก็จะสกัดรายละเอียดสำคัญออกมา เช่น server ก็วาดเป็นโหนด แล้วมีเส้นเชื่อมระหว่างโหนด พร้อมระบุระยะทางบนเส้น พอคิดแบบเชิงนามธรรมได้แล้ว ก็จะได้ง่ายมากที่จะเอาทฤษฏีกราฟมาคำนวณหาระยะทางสั้นที่สุด เป็นต้น

 

?ตัวอย่างการนำไปใช้นอกจากเขียนโปรแกรม

 

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

 

ลองนึกถึงตัวอย่าง เวลาเราดูภาพเส้นทางรถไฟฟ้า BTS จาก Google map?ข้างล่าง เพื่อใช้เดินทาง ก็อาจตาลายเพราะมีรายละเอียดที่ไม่จำเป็นเกินมา รกสายตาย เช่น เส้นทางถนน อาคาร สถานที่ วัดวาอาราม ฯลฯ

 

ภาพจาก Google Map

ด้วยวิธีคิดแบบ?Abstract thinking เราตัดรายละเอียดที่ไม่จำเป็นทิ้ง เลือกเอาสิ่งที่สนใจคือเส้นทางเดินรถ BTS เท่านั้น แล้วนำมาวาดรูปใหม่ได้ดังรูปข้างล่าง

 

ภาพจาก http://www.bts.co.th/customer/th/images/Master_RouteMap.jpg

 

หรือตัวอย่างวงจรไฟฟ้าในรูปข้างล่าง ถ้าคิดแบบ?Abstract thinking เราก็จะตัดรายละเอียดที่ไม่จำเป็นทิ้ง แล้ววาดใหม่เป็นสัญลักษณ์วงจรไฟฟ้า ก็จะทำให้การคำนวณทางไฟฟ้าง่ายขึ้น

 

จากหนังสือเรียน ?วิทยการคำนวณ? บทที่ 1 ชั้น ม.4

วิทยาการคำนวณ

 

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

 

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

 

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

 

จากหนังสือเรียน “วิทยการคำนวณ” บทที่ 1 ชั้น ม.4

 

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

  1. วิทยาการคอมพิวเตอร์ (Computer Science: CS)
  2. เทคโนโลยสารสนเทศและการสื่อสาร (Information Communication Technology: ICT)
  3. การรู้ดิจิทัล (Digital Literacy: DL)

ซึ่งหัวใจของวิชานี้คือ พื้นฐานการคิดเชิงคำนวณ (computational thinking) ที่มี 4 องค์ประกอบสำคัญดังที่กล่าวมาแล้วข้างต้น

  1. Decomposition (การแยกส่วนประกอบ และการย่อยปัญหา)
  2. Pattern recognition (การหารูปแบบ)
  3. Algorithm (ขั้นตอนวิธี)
  4. Abstract thinking (การคิดเชิงนามธรรม)

 

เขียนโดย แอดมินโฮ โอน้อยออก