แนวคิดเชิงคำนวณ

1
12788

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


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

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

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

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

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



ตัวอย่างการแก้ปัญหา ไข่เจียวเทวดา

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

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


แบ่งปัญหาใหญ่เป็นปัญหาย่อย

1. รับออเดอร์

2. เจียวไข่ตามออเดอร์

3. ส่งออเดอร์

4. คิดเงิน / รับเงิน


การพิจารณารูปแบบ

การทอดอาหาร

           1. จุดเตา ใส่น้ำมัน

           2. รอน้ำมันร้อน

           3. ใส่อาหารลงทอด

           4. รออาหารสุก

           5. ตักอาหารใส่จาน

           6. ปิดเตา

การขายอาหารตามสั่ง

          1. รับ order

          2. ประกอบอาหาร

          3. คิดเงิน

          4. ส่งอาหาร


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

1. รับออเดอร์

2. เจียวไข่

3. รับเงิน+ทอนเงิน


การออกแบบอัลกอริทึม

1. ตักข้าวใส่จาน

2. ถามลูกค้าว่า ไข่เจียวจะใส่อะไรบ้าง ใส่ได้ 4 อย่างจาก 8 อย่าง ได้แก่ ชะอม ใบโหระพา หอมแดง หอมหัวใหญ่ ใบกระเพรา ปูอัด หมูยอ หมูสับ (ส่วนประกอบเหล่านี้หั่นเตรียมไว้หมดแล้ว)

3. ตอกไข่ใส่ถ้วย ใส่ของตามลูกค้าสั่ง ใส่เครื่องปรุง ตีไข่จนขึ้นฟอง

4. จุดเตาแก๊ส  ใส่น้ำมัน ใช้ไฟอ่อน

5. รอน้ำมันเดือด ใส่ไข่ที่ตีแล้วใส่กระทะ

6. รอไข่สุกประมาณ 1 นาที

7. กลับด้านไข่ รอไข่สุกอีกประมาณ 1 นาที

8. ปิดเตา ตักไข่ใส่จานข้าวที่ตักรอไว้

9. ยื่นข้าวใข่เจียวให้ลูกค้า รับเงิน และทอนเงินถ้าลูกค้าจ่ายเกินราคา



ตัวอย่างการแก้ปัญหา หมู่บ้านของฉัน

การแบ่งปัญหาใหญ่เป็นปัญหาย่อย

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

ตัวอย่าง : ภาพวาดหมู่บ้าน (กำหนด 1 ช่องมีขนาด 20 หน่วย จุดมุมล่างซ้ายของตาราง คือ พิกัด (0,0))

การอธิบายรายละเอียดของภาพนั้น สามารถแบ่งออกเป็นปัญหาย่อยๆ ได้ดังนี้

1) ในภาพมีบ้านกี่หลัง

2) ขั้นตอนในการวาดบ้านหลังแรกเป็นอย่างไร และอยู่ที่ตำแหน่งใด

3) ขั้นตอนในการวาดบ้านหลังที่สองเป็นอย่างไร และอยู่ที่ตำแหน่งใด

4) ขั้นตอนในการวาดบ้านหลังที่สามเป็นอย่างไร และอยู่ที่ตำแหน่งใด



การพิจารณารูปแบบ

1) ในภาพมีบ้านกี่หลัง

ตอบ ในภาพมีบ้าน 3 หลัง


2) ขั้นตอนในการวาดบ้านหลังแรกเป็นอย่างไร และอยู่ที่ตำแหน่งใด

ตอบ บ้านหลังแรกวาดตัวบ้านด้วยสี่เหลี่ยมจัตุรัส เส้นสีเทา ด้านในสีน้ำเงิน ขนาดด้านละ 100 หน่วย ตั้งอยู่ตำแหน่งมุมซ้ายล่างที่พิกัด (0,0) ด้านบนสี่เหลี่ยมวาดหลังคาด้วยสามเหลี่ยมด้านเท่า เส้นสีเทา ด้านในสีชมพู ขนาดด้านละ 100 หน่วย


3) ขั้นตอนในการวาดบ้านหลังที่สองเป็นอย่างไร และอยู่ที่ตำแหน่งใด

ตอบ บ้านหลังที่สองวาดตัวบ้านด้วยสี่เหลี่ยมจัตุรัส เส้นสีส้ม ด้านในสีฟ้า ขนาดด้านละ 60 หน่วย ตั้งอยู่ตำแหน่งมุมซ้ายล่างที่พิกัด (140,80) ด้านบนสี่เหลี่ยมวาดหลังคาด้วยสามเหลี่ยมด้านเท่า เส้นสีส้ม ด้านในสีเหลือง ขนาดด้านละ 60 หน่วย


4) ขั้นตอนในการวาดบ้านหลังที่สามเป็นอย่างไร และอยู่ที่ตำแหน่งใด

ตอบ บ้านหลังที่สามวาดตัวบ้านด้วยสี่เหลี่ยมจัตุรัส เส้นสีเขียว ด้านในสีส้ม ขนาดด้านละ 40 หน่วย ตั้งอยู่ตำแหน่งมุมซ้ายล่างที่พิกัด (220,40) ด้านบนสี่เหลี่ยมวาดหลังคาด้วยสามเหลี่ยมด้านเท่า เส้นสีเขียว ด้านในสีแดง ขนาดด้านละ 40 หน่วย



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

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

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

การพิจารณารูปแบบ : บ้านหลังแรกวาดตัวบ้านด้วยสี่เหลี่ยมจัตุรัส เส้นสีเทา ด้านในสีน้ำเงิน ขนาดด้านละ 100 หน่วย ตั้งอยู่ตำแหน่งมุมซ้ายล่างที่พิกัด (0,0) ด้านบนสี่เหลี่ยมวาดหลังคาด้วยสามเหลี่ยมด้านเท่า เส้นสีเทา ด้านในสีชมพู ขนาดด้านละ 100 หน่วยการคิดเชิงนามธรรม : บ้านหลังแรกมีขนาด 100 หน่วย ตัวบ้านสีน้ำเงิน หลังคาสีชมพู ตั้งอยู่ที่ตำแหน่ง (0,0)

การพิจารณารูปแบบ : บ้านหลังที่สองวาดตัวบ้านด้วยสี่เหลี่ยมจัตุรัส เส้นสีส้ม ด้านในสีฟ้า ขนาดด้านละ 60 หน่วย ตั้งอยู่ตำแหน่งมุมซ้ายล่างที่พิกัด (140,80) ด้านบนสี่เหลี่ยมวาดหลังคาด้วยสามเหลี่ยมด้านเท่า เส้นสีส้ม ด้านในสีเหลือง ขนาดด้านละ 60 หน่วยการคิดเชิงนามธรรม : บ้านหลังที่สองมีขนาด 60 หน่วย ตัวบ้านสีฟ้า หลังคาสีเหลือง ตั้งอยู่ที่ตำแหน่ง (140,80)

การพิจารณารูปแบบ : บ้านหลังที่สามวาดตัวบ้านด้วยสี่เหลี่ยมจัตุรัส เส้นสีเขียว ด้านในสีส้ม ขนาดด้านละ 40 หน่วย ตั้งอยู่ตำแหน่งมุมซ้ายล่างที่พิกัด (220,40) ด้านบนสี่เหลี่ยมวาดหลังคาด้วยสามเหลี่ยมด้านเท่า เส้นสีเขียว ด้านในสีแดง ขนาดด้านละ 40 หน่วยการคิดเชิงนามธรรม : บ้านหลังที่สามมีขนาด 40 หน่วย ตัวบ้านสีส้ม หลังคาสีแดง ตั้งอยู่ที่ตำแหน่ง (220,40)

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



การออกแบบอัลกอริทึม

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

ตัวอย่างอัลกอริทึมวาดภาพบ้าน

          1) วาดรูปสี่เหลี่ยมมุมฉากให้มีด้านขนาดกับแกน x และ y ให้มีจุดมุมซ้ายล่างที่พิกัด (0,0) มุมขวาบนที่พิกัด (5,5)

          2) วาดส่วนของเส้นตรงระหว่างจุดต่อไปนี้

                              (0,5)    และ (3,9)

                              (3,9)    และ (5,5)







อ้างอิง : สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี, “เทคโนโลยี(วิทยาการคำนวณ)”, โรงพิมพ์แห่งจุฬาลงกรณ์มหาวิทยาลัย, ศูนย์หนังสือแห่งจุฬาลงกรณ์มหาวิทยาลัย, 2562 หน้า 3

1 ความคิดเห็น