เดี๋ยวนี้ คำนี้ กลายเป็นคำฮิตของวงการศึกษาระดับโลก ที่อีกสักพัก คงได้ยินกันจนเอียนในไทย
ลองใช้วลีนี้ค้นดู จะเห็นข่าวพาดหัวบ่อยเรื่องนี้หรือจะลองไปอ่านที่นี่
ผมเดาว่า คงเกิดจากสองเหตุผลหลัก
หนึ่ง การคำนวณเริ่มสามารถกระเทาะเปลือกปัญหาที่ใช้งานได้จริงจังในสเกลเล็ก ๆ แล้ว เช่น การพยากรณ์อากาศได้ 4-5 วันอย่างแม่นยำพอใช้ได้ การทำการจำลองระบบปรากฎการณ์ต่าง ๆ ได้อย่างคร่าว ๆ ฯลฯ ซึ่งจากนี้ไป โจทย์ที่เจอ จะน่าตื่นเต้นกว่าเดิม สเกลใหญ่กว่าเดิม ซึ่งไม่อาจจะหวังเอาชนะด้วยฮาร์ดแวร์เพียงอย่างเดียว แต่ต้องเอาชนะด้วยวิธีคิดในซอฟท์แวร์ด้วย ซึ่งต้องการเลือดใหม่ ความคิดใหม่ ใส่เข้าไปตรงนั้น จึงต้องออกแคมเปญนี้มาดึงดูดเยาวชนรุ่นใหม่ ที่สามารถมองต่างออกไป
ถ้ามองไปข้างหน้า เมื่อ GNR (genetic/ nanotechnology/ robotic) เริ่มสุกงอมกว่านี้ ประเด็นนี้ก็จะเป็นเรื่องคอขวด เพราะล้วนต้องอาศัยพลังในการคำนวณมหาศาลในการช่วยคิดวางแผน ซึ่งเป็นที่รู้กันว่า เราเริ่มเข้าสู่ยุคที่ algorithm เริ่มสำคัญกว่า hardware ขึ้นเรื่อย ๆ จะใช้วิธีการคำนวณแบบ ดิบและเถื่อน (brute force) ด้วยซูเปอร์คอมพิวเตอร์ คงแก้ปัญหาได้ช้าไปแล้ว
สอง ต่อให้ไม่ยุ่งกับไฮเทค แค่การใช้ในชีวิตประจำวัน ก็หลีกหนีสิ่งเหล่านี้ยากขึ้นเรื่อย ๆ เช่น การจัดการวางแผนชีวิต ต้องอาศัยความเข้าใจที่ลึกซึ้งเกี่ยวกับทฤษฎีความเสี่ยง-ทฤษฎีการลงทุน-ทฤษฎีเกมส์ ในการใช้วิเคราะห์สถานการณ์ (ความเข้าใจ เป็นคนละประเด็นกับ ทักษะ อย่าปนกันนะครับ) หรือแม้แต่สินค้าและผลิตภัณฑ์ต่าง ๆ ก็จะเป็นสินค้าความรู้ที่มีแนวคิดเหล่านี้ซ่อนติดมาในระดับที่มากขึ้นเรื่อย ๆ ซึ่งหากไม่รู้เท่าทัน ก็จะต้องซื้อในราคาแพงเป็นพิเศษ
ถ้าอย่างนั้น อะไรคือ computational thinking (CT)?
ผมมองว่า CT ก็คือ วิธีการที่มนุษย์ผสานตัวเข้ากับ IT เพื่อการแก้ปัญหา ซึ่งการผสานตัวที่ว่า อาจเป็นการเขียนโปรแกรม หรืออาจเป็นวิธีมองปัญหาในมุมมองที่ใช้การคำนวณแก้ปัญหาได้ หรืออาจเป็นการจัดการก็ได้
การเขียนโปรแกรม เช่น
- ใช้โปรแกรมเพื่อทำ simulation เพื่อทำนายปรากฎการณ์อะไรสักอย่างที่สามารถคำนวณได้
การใช้วิธีจัดการเช่น
- wikipedia หรือระบบ open source เกิดจากการจัดการเป็นหลัก โดยใช้ IT เป็นสื่อกลาง ทำให้เกิดองค์ความรู้ต่อยอดที่วิวัฒนาการได้เองราวสิ่งมีชีวิต
- การทำ distributed computing เพื่อรีดพลังส่วนเกินของ PC ทั่วโลกมารวมกันเพื่อเกิดเป็น virtual supercomputer ก็เป็นเรื่องของการจัดการ
การมองปัญหาในมุมใหม่
- กรณีของ distributed computing ก็นับเป็นกรณีนี้ได้ คือเปลี่ยนจาก "สร้างคอมพิวเตอร์ซิ่ง" ไปเป็น "ซิ่งคอมพิวเตอร์โดยไม่ต้องสร้าง"
- หรือการนำวิธีการคำนวณสาขาหนึ่งไปใช้ข้ามสาขา โดยอาศัยหลักการพึ่งพิงแนวคิดเชิงนามธรรม เช่น การออกแบบแผงวงจรไฟฟ้า กับการออกแบบตำแหน่งเสาของเครือข่ายโทรศัพท์ ใช้แนวคิดคณิตศาสตร์เบื้อหลังที่เหมือนกัน คือการคำนวณหา minimized shortest path
ดังนั้น CT จึงไม่ได้หมายความเพียงว่าเขียนโปรแกรมเป็น เพราะต้องมองครบวงจรกว่านั้น เช่น data abstraction, algorithm, hardware, user interface design, usability, ระบบการจัดการที่ยั่งยืน, ฯลฯ
กำลังศึกษา เรื่อง CT อยู่ค่ะ มีเเหล่งข้อมูลเเนะนำไหมคะ คืออยากทราบเรื่องทั้งหมด ตั้งเเต่หลักการ กระบวนการขั้นตอน หรือ การนำ CT มาใช้ในการเรียนการสอนอย่างไรค่ะ ขอบคุณค่ะ