top of page

บทที่ 2 แนวคิดเชิงคำนวณ 

Chapter 2 Computational Thinking

บทที่ 2 แนวคิดเชิงคำนวณ (Computational                        Thinking)
        เป็นบทเรียนที่มุ่งเน้นให้ผู้เรียนเข้าใจ เห็นคุณค่า และกระบวนการเทคโนโลยีสารสนเทศ ในการสืบค้นข้อมูล การเรียนรู้การสื่อ การแก้ปัญหาอย่างมีประสิทธิภาพ ประกอบด้วยหัวข้อ

2.1 การแบ่งปัญหาใหญ่เป็นปัญหาย่อย
2.2 การพิจารณารูปแบบ

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

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

จุดประสงค์การเรียนรู้

1. อธิบายการแก้ปัญหาโดยใช้กระบวนการคิดเชิงคำนวณ

2. ออกแบบการแก้ปัญหาโดยใช้กระบวนการคิดเชิงคำนวณ

unnamed (1).png

2.5 กรณีศึกษา (Case Study)

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

p1.PNG

ตัวอย่างที่ 2.6 สอนน้องจัดหนังสือ

            สมมติว่านักเรียนต้องการสอนน้องให้รู้จักวิธีการจัดเรียงหนังสือตามลําดับความสูงให้เป็นระเบียบเพื่อให้ มีความสวยงามและง่ายต่อการค้นหา นักเรียนต้องคิดกระบวนการเป็นขั้นตอนออกมา เพื่อให้น้องสามารถปฏิบัติตาม ได้ง่าย ไม่ว่าจะมีหนังสือเล่มและมีลําดับเริ่มต้นแบบใดก็ได้ นักเรียนจะมีขั้นตอนในการจัดเรียงอย่างไร

p2.PNG

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


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

            • ในกองหนังสือที่เหลือ หนังสือเล่มใดควรเลือกออกมาเป็นหนังสือที่วางอยู่ในลําดับที่สอง

            • ในกองหนังสือที่เหลือ หนังสือเล่มใดควรเลือกออกมาเป็นหนังสือที่วางอยู่ในลําดับที่สาม

            จะเห็นได้ว่าปัญหาในการจัดหนังสือทั้งกองสามารถแบ่งเป็นปัญหาย่อยได้โดยคัดเลือกหนังสือเล่มที่สูง ที่สุดออกจากกองใหญ่ (สมมติว่ากองใหญ่มี n เล่ม) ทําให้ขนาดของกองหนังสือลดลงเหลือ n-1 เล่ม ปัญหาย่อย ในที่นี้คือการจัดเรียงหนังสือในกองที่มี n-1 เล่ม ซึ่งเป็นปัญหาในรูปแบบเดิมที่มีความซับซ้อนน้อยลง

            การแตกปัญหาในตัวอย่าง “สอนน้องจัดหนังสือ” ได้ผลลัพธ์เป็นปัญหาย่อยดังนี้

                        ปัญหาย่อยที่ 1 หนังสือเล่มใดควรจัดไว้เป็นลําดับแรก

                        ปัญหาย่อยที่ 2 ในกองหนังสือที่เหลือ หนังสือเล่มใดควรเลือกออกมาเป็นหนังสือที่วางอยู่ในลําดับที่สอง

                        ปัญหาย่อยที่ 3 ในกองหนังสือที่เหลือ หนังสือเล่มใดควรเลือกออกมาเป็นหนังสือที่วางอยู่ในลําดับที่สาม

การพิจารณารูปแบบในการสอนน้องจัดหนังสือ
 

           จากการแตกปัญหาในตัวอย่าง “สอนน้องจัดหนังสือ” นักเรียนอาจจะอธิบายคําตอบของปัญหาย่อยได้ดังนี้

           

           ปัญหาย่อยที่ 1 หนังสือเล่มใดควรจัดไว้เป็นลําดับแรก

           คําตอบ หนังสือเล่มที่มีความสูงมากที่สุด
           

           ปัญหาย่อยที่ 2 ในกองหนังสือที่เหลือ หนังสือเล่มใดควรเลือกออกมาเป็นหนังสือที่วางอยู่ในลําดับที่สอง

           คําตอบ หนังสือเล่มที่มีความสูงมากที่สุดในกองที่เหลือ
           

           ปัญหาย่อยที่ 3 ในกองหนังสือที่เหลือ หนังสือเล่มใดควรเลือกออกมาเป็นหนังสือที่วางอยู่ในลําดับที่สาม

           คําตอบ หนังสือเล่มที่มีความสูงมากที่สุดในกองที่เหลือ
 

           ปัญหาย่อยสุดท้ายที่มีขนาด 1
           เห็นได้ว่าแต่ละปัญหาย่อยนั้นต่างก็มีรูปแบบเดียวกัน และมุ่งหาคําตอบในลักษณะเดียวกัน คือ

           ปัญหาย่อย ในกองหนังสือที่เหลือ หนังสือเล่มใดควรเลือกออกมาเป็นหนังสือ ที่วางอยู่ในลําดับถัดไป

           คําตอบ หนังสือเล่มที่มีความสูงมากที่สุดในกองหนังสือที่เหลืออยู่

การคิดเชิงนามธรรมในปัญหาสอนน้องจัดหนังสือ

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

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

p3.PNG
p4.PNG
p6.PNG

อัลกอริทึมสําหรับสอนน้องจัดหนังสือ

           กระบวนการที่ผ่านมาสามารถนํามาออกแบบเป็นอัลกอริทึมสําหรับให้น้องปฏิบัติตามได้ดังนี้

p7.PNG

ตัวอย่าง 2.7 เต้นตามจังหวะ

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

ขวา ขวา ซ้าย ซ้าย ขวา ขวา ซ้าย ซ้าย ขวา ซ้าย ขวา ซ้าย ซ้าย ขวา ซ้าย ขวา ขวา ซ้าย ขวา ซ้าย ซ้าย ขวา ซ้าย ขวา ซ้าย ซ้าย ขวา ขวา ซ้าย ซ้าย ขวา ขวา

            ท่าเต้นทั้งหมดที่ให้มานั้นยาวและยากต่อการจดจำ แต่เมื่อแบ่งท่าเต้นออกเป็นส่วนย่อย โดยใช้กระบวนการแบ่งปัญหาย่อย จะพบรูปแบบที่ซ้ำกันดังนี้

ขวา ขวา ซ้าย ซ้าย

ขวา ขวา ซ้าย ซ้าย

ขวา ซ้าย ขวา ซ้าย

ซ้าย ขวา ซ้าย ขวา

ขวา ซ้าย ขวา ซ้าย

ซ้าย ขวา ซ้าย ขวา

ซ้าย ซ้าย ขวา ขวา

ซ้าย ซ้าย ขวา ขวา

pp9.PNG

            เห็นได้ว่าเมื่อแบ่งท่าเต้นทั้งหมดออกเป็นกลุ่มละสี่จังหวะ จะมีท่าเต้นที่แตกต่างกันเพียง 4 รูปแบบเท่านั้น คือ " ขวา

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

            • มาร์ชขวา หมายถึง "ขวา ขวา ซ้าย ซ้าย"

            • มาร์ชซ้าย หมายถึง "ซ้าย ซ้าย ขวา ขวา "

            • ขยับขวาซ้าย หมายถึง "ขวา ซ้าย ขวา ซ้าย"

            • ขยับซ้ายขวา หมายถึง "ซ้าย ขวา ซ้าย ขวา"

นำมาเขียนเป็นอัลกอริทึมให้ปฏิบัติตามได้ดังนี้
            1. กำหนดให้ท่า “มาร์ชขวา” หมายถึง “ขวา ขวา ซ้าย ซ้าย”
            2. กำหนดให้ท่า “มาร์ชซ้าย” หมายถึง “ซ้าย ซ้าย ขวา ขวา”
            3. กำหนดให้ทำ “ขยับขวาซ้าย” หมายถึง “ขวา ซ้าย ขวา ซ้าย”
            4. กำหนดให้ทำ “ขยับซ้ายขวา” หมายถึง “ซ้าย ขวา ซ้าย ขวา”
            5. เต้นท่า มาร์ชขวา 2 รอบ
            6. เต้นท่า ขยับขวาซ้าย 1 รอบ ขยับซ้ายขวา 1 รอบ ซ้ำ 2 ครั้ง
            7. เต้นท่า มาร์ชซ้าย 2 รอบ
            8. จบ

 

c3.PNG
c3.PNG
2066457.png

กิจกรรมที่ 2.2 สอนเพื่อนเต้น

อ้างอิงจาก หนังสือเรียนรายวิชาพื้นฐานวิทยาศาสตร์  เทคโนโลยี (วิทยาการคำนวณ)

                  สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี กระทรวงศึกษาธิการ

bottom of page