พื้นฐาน AI

การคิดเชิงคอมพิวเตอร์คืออะไร?

mm
เพิ่ม Unite.AI ลงในแหล่งข้อมูลที่คุณต้องการบน Google

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

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

ประเด็นสำคัญ

  • กำหนดปัญหาก่อนที่จะปรับกระบวนการให้เหมาะสม
  • การแยกส่วนทำให้ระบบที่ซับซ้อนแบ่งเป็นส่วนที่ทำงานร่วมกัน; การนามธรรมซ่อนรายละเอียดที่ไม่เกี่ยวข้องในระดับที่เลือก
  • อัลกอริธึมต้องมีอินพุต, เอาต์พุต, สมมติฐาน, เงื่อนไขการหยุดและการทดสอบ
  • การคิดเชิงคอมพิวเตอร์ไม่ได้ลบการตัดสินใจทางสังคม, ค่าที่คลุมเครือ หรือความรับผิดชอบ
What is Computational Thinking? diagram showing formulate, decompose, abstract, algorithm, test, iterate
การคำนวณเริ่มต้นด้วยการแทนปัญหา; วัตถุประสงค์ที่ไม่ดีไม่สามารถแก้ไขได้ด้วยโค้ดที่เร็วขึ้น

กำหนดปัญหาและวัตถุประสงค์

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

ใน machine learning, การทำนายการคลิกอาจสะดวกทางเทคนิคแต่ไม่อาจแสดงความพึงพอใจได้ การคิดเชิงคอมพิวเตอร์เริ่มต้นด้วยการทดสอบการกำหนดนั้นแทนที่จะเลือกอัลกอริธึมทันที

แยกระบบและความขึ้นต่อกัน

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

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

นามธรรมและการแทน

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

การแทนทุกอย่างล้วนละเว้นบางอย่าง บันทึกหน่วย, ประเภท, หน้าต่างเวลาและข้อมูลที่หายไป ความแตกต่างระหว่าง structured and unstructured data มีผลต่อสิ่งที่สามารถแสดงและการแปลงใดอาจสูญเสียบริบท

ออกแบบอัลกอริธึมและทำอัตโนมัติอย่างระมัดระวัง

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

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

ทดสอบ, ปรับปรุงและสรุปผลทั่วไป

การทดสอบหน่วยตรวจสอบส่วนประกอบ; การทดสอบรวมตรวจสอบอินเทอร์เฟซ; การทดสอบสถานการณ์ตรวจสอบพฤติกรรมแบบปลายถึงปลาย เปรียบเทียบผลลัพธ์ที่คาดไว้กับผลลัพธ์ที่สังเกต, ติดตามข้อผิดพลาดไปยังสมมติฐาน, และปรับการกำหนดเมื่อหลักฐานขัดแย้งกับมัน

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

แนวปฏิบัติหลักของการคิดเชิงคอมพิวเตอร์

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

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

การทดสอบ, การดีบัก, และการให้เหตุผลกับข้อมูล

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

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

การสอนและการประยุกต์ทักษะ

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

ตัวอย่างที่ทำงาน: การออกแบบอัลกอริธึมการกำหนดเส้นทางรถโรงเรียน

นักเรียนแยกงานเป็นจุดหยุด, ผู้โดยสาร, ความจุ, หน้าต่างเวลา, เวลาเดินทาง, การเข้าถึง, และข้อจำกัดด้านความปลอดภัย พวกเขาแทนเครือข่ายถนนเป็นกราฟ, สร้างเส้นทางแบบ greedy อย่างง่าย, และทดสอบกับกรณีขนาดเล็กที่มีคำตอบที่รู้จัก การทดสอบขอบเขตรวมถึงไม่มีผู้โดยสาร, จุดหยุดที่ไม่สามารถเข้าถึงได้, ความล้มเหลวของยานพาหนะ, และผู้โดยสารที่ต้องการรถที่เข้าถึงได้ ความมีประสิทธิภาพจะเปรียบเทียบหลังจากความถูกต้องและข้อจำกัดปรากฏ

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

หลักฐานการนำไปใช้และความพร้อมในการปฏิบัติการ

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

ก่อนการเปิดตัว, มอบอำนาจสำหรับการปล่อย, ข้อยกเว้น, การเปลี่ยนแปลง, การย้อนกลับ, และการยุติ ใช้การเปิดตัวเป็นขั้นตอน, รักษาการสำรองที่ปลอดภัย, และตรวจสอบการเฝ้าติดตามด้วยการฉีดความล้มเหลวโดยเจตนา โทรเมตริกการปฏิบัติงานควรเปิดเผยคุณภาพอินพุต, พฤติกรรมเอาต์พุต, รุ่นโมเดลหรือกฎ, สถานะความขึ้นต่อกัน, การแทรกแซงของมนุษย์, และผลลัพธ์ที่ยืนยันโดยไม่เก็บข้อมูลที่ละเอียดอ่อนไม่จำเป็น กำหนดเกณฑ์การแจ้งเตือนและเจ้าของการตอบสนอง, แล้วตรวจสอบหลักฐานจากโลกจริงหลังการใช้งานแทนการสันนิษฐานว่าประสิทธิภาพออฟไลน์จะคงที่ ประเมินใหม่เมื่อแหล่งข้อมูล, ผู้ใช้, โมเดล, ผู้ขาย, นโยบาย, ฮาร์ดแวร์, หรือวัตถุประสงค์เปลี่ยนแปลง ระบบที่ดูแลต้องมีขั้นตอนการกู้คืน, การเรียนรู้จากเหตุการณ์, การลบและการเก็บรักษา, และจุดชัดเจนที่ควรปิดหรือแทนที่

คำถามที่พบบ่อย

การคิดเชิงคอมพิวเตอร์เท่ากับการเขียนโค้ดหรือไม่?

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

ทุกปัญหาสามารถแก้ไขได้ด้วยการคำนวณหรือไม่?

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

แหล่งอ้างอิงหลัก

Alex เป็นผู้นำการดำเนินงานข่าวที่ใช้ AI ของ Unite.AI โดยผสานงานวารสารศาสตร์ การวิจัย และระบบอัตโนมัติ เพื่อสนับสนุนการรายงานข่าวด้านปัญญาประดิษฐ์อย่างทันท่วงทีและรองรับการขยายงาน งานของเขาช่วยให้ความก้าวหน้าใหม่ ๆ ด้าน AI ได้รับการนำเสนออย่างมีประสิทธิภาพ พร้อมรักษามาตรฐานบรรณาธิการของสำนักพิมพ์