หน่วยการเรียนรู้ที่ 1 แนวคิดเชิงคำนวณ (Computational Thinking)
แนวคิดเชิงคำนวณ (Computational Thinking)
คือ แนวคิดในการแก้ปัญหาต่าง ๆ อย่างเป็นระบบ เป็นกระบวนการที่มีลำดับขั้นตอนชัดเจน โดยกระบวนการแก้ปัญหาดังกล่าวนี้เป็นกระบวนการที่ทั้งมนุษย์และคอมพิวเตอร์สามารถเข้าใจร่วมกันได้
แนวคิดเชิงคำนวณมีองค์ประกอบที่สำคัญ 4 ส่วน ได้แก่
1. แนวคิดการแยกย่อย(Decomposition) การแตกปัญหาใหญ่ออกเป็นปัญหาย่อย ให้ปัญหานั้นมีขนาดเล็กลงเพื่อให้สามารถจัดการปัญหาในแต่ละส่วนได้ง่ายขึ้น
2. แนวคิดการหารูปแบบ(Pattern Recognition) การกำหนดแบบแผนหรือรูปแบบที่มีลักษณะคล้ายคลึงกันจากปัญหาแต่ละส่วนย่อยต่าง ๆ กล่าวคือ ปัญหาย่อยแต่ละปัญหานั้นสามารถใช้รูปแบบในการแก้ปัญหาที่คล้ายคลึงกันได้
3. แนวคิดเชิงนามธรรม(Abstraction) การหาแนวคิดเชิงนามธรรมหรือแนวคิดรวบยอดของปัญหา ซึ่งเป็นการกำหนดหลักการทั่วไป มุ่งเน้นเฉพาะส่วนที่สำคัญของปัญหา โดยไม่สนใจรายละเอียดที่ไม่จำเป็น
4. แนวคิดการออกแบบขั้นตอนวิธี(Algorithm Design) การออกแบบลำดับขั้นตอนการแก้ปัญหาด้วยการใช้แนวคิดการออกแบบขั้นตอนวิธี เป็นแนวคิดที่สามารถนำไปใช้ในการแก้ปัญหาที่มีลักษณะแบบเดียวกันได้
1. แนวคิดการแยกย่อย(Decomposition)
่ เป็นการพิจารณาเพื่อแบ่งปัญหา หรืองานออกเป็นส่วนย่อย ทำให้สามารถจัดการกับปัญหาหรืองานได้ง่ายขึ้น เช่น
จากสถานการณ์
“สมมติว่าคุณต้องการจัดโต๊ะเรียนในห้องใหม่ให้เข้ากับจำนวนเพื่อนทั้งหมดในห้อง คุณจะต้องวางแผนการจัดโต๊ะอย่างไรให้เป็นระเบียบ สะดวก และนั่งได้ครบทุกคน? "
สามารถแยกออกเป็นปัญหาย่อยๆ ดังนี้
จำนวนโต๊ะทั้งหมด
จำนวนเพื่อนในห้อง
พื้นที่ว่างในห้อง
เส้นทางการเดินเข้า–ออก
2. แนวคิดการหารูปแบบ(Pattern Recognition)
่ เป็นทักษะการหาความสัมพันธ์ที่เกี่ยวข้อง แนวโน้ม และลักษณะทั่วไปของสิ่งต่าง ๆ เช่น
➤ ทุกโต๊ะมีลักษณะเหมือนกัน (เช่น ขนาดเท่ากัน, ต้องมีเก้าอี้ 1 ตัวต่อโต๊ะ)
➤ ต้องจัดให้ทุกคนหันหน้าไปทางเดียวกัน (เช่น หันหน้าไปกระดาน)
3. แนวคิดเชิงนามธรรม(Abstraction)
่ การหาแนวคิดเชิงนามธรรมหรือแนวคิดรวบยอดของปัญหา ซึ่งเป็นการกำหนดหลักการทั่วไป มุ่งเน้นเฉพาะส่วนที่สำคัญของปัญหา โดยไม่สนใจรายละเอียดที่ไม่จำเป็น
ส่วนที่ไม่จำเป็นต้องนำมาคิด (Abstraction)
➤ ยี่ห้อของเก้าอี้, ชื่อเพื่อนแต่ละคน, ลวดลายของโต๊ะ ฯลฯ
➤ เพราะสิ่งเหล่านี้ไม่เกี่ยวกับ “การจัดเรียงให้ลงตัว”
4. แนวคิดการออกแบบขั้นตอนวิธี(Algorithm Design)
่ เป็นการออกแบบลำดับขั้นตอนการแก้ปัญหาด้วยการใช้แนวคิดการออกแบบขั้นตอนวิธี เป็นแนวคิดที่สามารถนำไปใช้ในการแก้ปัญหาที่มีลักษณะแบบเดียวกันได้
ขั้นตอนการแก้ปัญหา (Algorithm)
Step 1: นับจำนวนโต๊ะและเพื่อนทั้งหมด
Step 2: วัดขนาดห้องเพื่อกำหนดแนวการจัดเรียง
Step 3: กำหนดแนวโต๊ะ (เป็นแถวหรือครึ่งวงกลม)
Step 4: จัดโต๊ะเรียงตามแนว
Step 5: ตรวจสอบทางเดินเข้า–ออก
Step 6: ปรับแต่งตำแหน่งให้เป็นระเบียบและนั่งได้ครบทุกคน
ตัวอย่างที่ 2
• ตัวอย่าง: ปัญหาใหญ่คือ "การจัดกระเป๋าไปเข้าค่าย 2 วัน 1 คืน"
1. การแบ่งปัญหาใหญ่ออกเป็นปัญหาย่อย (Decomposition) คือ การแตกปัญหาที่ซับซ้อนออกเป็นส่วนประกอบย่อยๆ ที่มีขนาดเล็กลงและจัดการได้ง่ายขึ้น เพื่อให้เราเข้าใจปัญหาทั้งหมดได้ง่ายขึ้นและสามารถวางแผนแก้ไขทีละส่วนได้
• แบ่งเป็นปัญหาย่อย:
o เตรียมเสื้อผ้า
o เตรียมของใช้ส่วนตัว (แปรงสีฟัน, สบู่)
o เตรียมยาประจำตัว
o เตรียมอุปกรณ์อื่นๆ (ไฟฉาย, สมุดบันทึก)
2. การพิจารณารูปแบบ (Pattern Recognition) คือ การมองหารูปแบบ, ความเหมือน หรือความสัมพันธ์ที่เกิดขึ้นซ้ำๆ กันในปัญหาย่อยเหล่านั้น เพื่อนำรูปแบบที่ได้ไปใช้เป็นต้นแบบในการแก้ปัญหาที่คล้ายกันได้อย่างรวดเร็ว
• ตัวอย่าง: จากการจัดกระเป๋า จะเห็นรูปแบบของ "การจัดของเป็นหมวดหมู่" เราสามารถนำรูปแบบนี้ไปใช้กับการจัดของอื่นๆ ได้ เช่น การจัดตู้เสื้อผ้า หรือการจัดโต๊ะหนังสือ
3. การคิดเชิงนามธรรม (Abstraction) คือ การมุ่งความสนใจไปที่ ข้อมูลสำคัญ ที่จำเป็นต่อการแก้ปัญหา และคัดกรองรายละเอียดที่ไม่จำเป็นออกไป เพื่อให้เราจดจ่อกับแก่นของปัญหาได้อย่างเต็มที่
• ตัวอย่าง: ในการเตรียมเสื้อผ้าไปเข้าค่าย
• ข้อมูลสำคัญ: ต้องเตรียมชุดนอน 1 ชุด, ชุดลำลอง 2 ชุด, ชุดนักเรียน 1 ชุด
• ข้อมูลไม่สำคัญ (ในเบื้องต้น): เสื้อจะเป็นยี่ห้ออะไร, กางเกงจะมีกระเป๋ากี่ช่อง
4. การออกแบบอัลกอริทึม (Algorithm Design) คือ การออกแบบ ลำดับขั้นตอน ในการแก้ปัญหาอย่างชัดเจนและเป็นขั้นเป็นตอน ใครทำตามก็จะได้ผลลัพธ์เหมือนกัน อาจแสดงในรูปแบบของข้อความ (Natural Language), ผังงาน (Flowchart) หรือรหัสจำลอง (Pseudo Code)
• ตัวอย่าง: อัลกอริทึมการแปรงฟัน
1. หยิบแปรงสีฟัน
2. บีบยาสีฟันลงบนแปรง
3. แปรงฟันให้ทั่วทุกซี่
4. บ้วนปากด้วยน้ำสะอาด
5. ล้างแปรงสีฟันให้สะอาด
อัลกอริทึมเบื้องต้น
อัลกอริทึม (Algorithm) หมายถึง กระบวนการทำงานอย่างใดอย่างหนึ่ง ที่มีลำดับการทำงานเป็นขั้นเป็นตอนชัดเจน และปฏิบัติตามขั้นตอนแล้วได้ผลลัพธ์ที่ถูกต้อง
รูปแบบการเขียนอัลกอริทึม สามารถแบ่งได้ 3 รูปแบบ ได้เเก่
การเขียนอัลกอริทึมด้วยภาษาธรรมชาติ ( Natural Language ) เป็นการอธิบายแบบใช้ภาษาที่มนุษย์สื่อสารกันทั่วไป
การเขียนอัลกอริทึมด้วยรหัสจำลอง ( Pseudo code ) เป็นการอธิบายด้วยรหัสจำลองหรือรหัสเทียม
การเขียนอัลกอริทึมด้วยผังงาน ( Flowchart ) เป็นการอธิบายด้วยแผนภาพ
1.การเขียนอัลกอริทึมด้วยผังงาน
ผังงาน (Flowchart) หมายถึง การใช้ภาพสัญลักษณ์ เพื่อแสดงลำดับขั้นตอนการทำงานของอัลกอริทึม หรือการทำงานต่างๆ ตั้งแต่เริ่มต้นจนจบการทำงานให้ได้ผลลัพธ์ที่ต้องการ ซึ่งสัญลักษณ์ที่ใช้ในการเขียนผังงานบางส่วน มีดังนี้
3.1 รูปแบบการเขียนผังงาน
การเขียนผังงาน (Flowchart) มี 3 ลักษณะดังนี้
1. เรียงลำดับ (Sequence)
คือ การเขียนผังงานแบบเรียงลำดับจากบนลงล่าง หรือจากซ้ายไปขวา เป็นรูปแบบที่ง่ายที่สุด
2. เลือกกระทำ/เงื่อนไข
(Selection)
คือ การเขียนผังงานแบบมีการนำข้อมูลไปเปรียบเทียบเพื่อเลือกกระทำ
3. ทำซ้ำ (Loop)
คือ การเขียนผังงานแบบมีการทำกระบวนการซ้ำหลายครั้งขึ้นอยู่กับเงื่อนไขที่กำหนด
กิจกรรมท้ายบทเรียน