Top
 

DIGITAL KIDS (เทคโนโลยี) ป.3 หน่วย 2 เรื่อง เขียนโปรแกรมหาข้อผิดพลาดของโปรแกรม

Imagineering Education / บทเรียนวิชาวิทยาการคำนวณ  / DIGITAL KIDS  / DIGITAL KIDS (เทคโนโลยี) ป.3 หน่วย 2 เรื่อง เขียนโปรแกรมหาข้อผิดพลาดของโปรแกรม

DIGITAL KIDS (เทคโนโลยี) ป.3 หน่วย 2 เรื่อง เขียนโปรแกรมหาข้อผิดพลาดของโปรแกรม

ระดับชั้น : ประถมศึกษาปีที่ 3
หน่วยที่ : 2
เรื่อง : เขียนโปรแกรมให้โปรแกรมทำงานไม่สิ้นสุดและตรวจสอบ หาข้อผิดพลาดของโปรแกรม
สาระ : สาระที่ 8 เทคโนโลยี
ตัวชี้วัด :
ว 4.2 ป 3/2 เขียนโปรแกรมอย่างง่าย โดยใช้ซอฟต์แวร์หรือสื่อและตรวจหาข้อผิดพลาดของโปรแกรม
บทนำของเรื่อง : วิทยาการคอมพิวเตอร์ (Computer Science) การแก้ปัญหาอย่างเป็นขั้นตอนและเป็นระบบการใช้แนวคิดเชิงคำนวณในการแก้ปัญหาในชีวิตประจำวัน บูรณาการกับวิชาอื่น การเขียนโปรแกรมการคาดการณ์ผลลัพธ์ การตรวจหาข้อผิดพลาด การพัฒนาแอปพลิเคชันหรือพัฒนาโครงงานอย่างสร้างสรรค์เพื่อแก้ปัญหาในชีวิตจริง

คอมพิวเตอร์ (Computer)

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

จากภาพให้ลองสังเกตดูว่าคอมพิวเตอร์อยู่ในอุปกรณ์ต่าง ๆ ภายในบ้าน อะไรบ้าง

โปรแกรม (Program) คือ การแสดงลำดับขั้นตอนคำสั่งเพื่อสั่งให้คอมพิวเตอร์ทำงาน โดยการเขียนโปรแกรมจะถูกเรียกว่า การเขียนโค้ด (code) และภาษาที่ใช้สื่อสารกับคอมพิวเตอร์จะเรียกว่า ภาษาคอมพิวเตอร์ (Computer Language)

การแสดงลำดับของคำสั่ง ให้คอมพิวเตอร์ (หุ่นยนต์) ทำงาน
การแสดงลำดับขั้นตอนให้คอมพิวเตอร์ หรือ หุ่นยนต์ทำงาน ต้องใช้ ภาษาคอมพิวเตอร์ ที่คอมพิวเตอร์เข้าใจ และมีลำดับ การสั่งงาน (Order) ที่เรียงลำดับอย่างชัดเจนเพราะคอมพิวเตอร์หรือหุ่นยนต์ ไม่สามารถคิดวิเคราะห์ได้ เพียงทำงานตามที่สั่งและตามเงื่อนไขที่กำหนด

จากภาพหุ่นยนต์เครื่องจักรต้องทำงานเป็นลำดับขั้นไม่สามารถข้ามขั้นตอนได้

ภาษาคอมพิวเตอร์ (Computer Language)
คือ ซอฟต์แวร์หรือสื่อที่ใช้ในการเขียนโปรแกรม(โค้ด : Code) เพื่อทำให้คอมพิวเตอร์เข้าใจ ซึ่งภาษาคอมพิวเตอร์นั้นมีมากมายที่นักเขียนโปรแกรม(Programmer) ใช้กัน ตัวอย่างเช่น HTML, Scratch, Python, Java เป็นต้น

การเขียนโปรแกรมให้ตัวละครทำงานซ้ำไม่สิ้นสุด (Loop)

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

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

โปรแกรมสั่งให้ทำแซนด์วิช 8 ชั้น

การตรวจสอบข้อผิดพลาดของโปรแกรม (Debugging)

โปรแกรมคอมพิวเตอร์ที่เขียนบางครั้งจะเกิดปัญหาขึ้น ปัญหาที่เกิดขึ้นจากการเขียนโปรแกรมในแต่ลำดับขั้นของคำสั่งนั้นเรียกว่า ข้อผิดพลาด (Bug) การหาและแก้ไขปัญหาข้อผิดพลาดจะเรียกว่า การตรวจสอบข้อผิดพลาดของโปรแกรม (Debugging)

วิธีขั้นตอนการทำเค้กช็อกโกแลต

โจทย์ : ให้สังเกตภาพและลำดับขั้นตอนการทำเค้กช็อกโกแลต และให้หาข้อผิดพลาดของโจทย์ทั้ง 3 โปรแกรมนี้ โดยให้หาและเขียนหมายเลขลำดับคำสั่งที่สลับกันให้ถูกต้อง

สื่อที่ใช้ในการเขียนโปรแกรม

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

ซอฟต์แวร์ที่ใช้เขียนโปรแกรม

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

รู้จักโปรแกรม Scratch

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

หน้าตาของโปรแกรม Scratch

การกำหนดเหตุการณ์เพื่อตอบโต้กับผู้ใช้งาน (Events)
การสร้างเหตุการณ์ (Events) เพื่อตอบโต้กับผู้ใช้งาน ซึ่งในโปรแกรม Scratch สามารถกำหนดเหตุการณ์ต่าง ๆ ได้โดยคลิกเลือกที่คำสั่ง Events ซึ่งมีเหตุการณ์ที่สามารถตอบโต้กับผู้ใช้งานดังต่อไปนี้

1. When Flag Clicked กำหนดเหตุการณ์เมื่อธงถูกกด
2. When …………… Key pressed กำหนดเหตุการณ์เมื่อกดปุ่มต่าง ๆ บน Keyboard เช่น spacebar, a b c เป็นต้น
3. When this sprite Clicked กำหนดเหตุการณ์เมื่อตัวละครถูกคลิกกด
4. When backdrop switches to…. กำหนดเหตุการณ์เมื่อฉากหลังถูกเปลี่ยนไปเป็นฉากที่กำหนด
5. When ………….. > …………… กำหนดเหตุการณ์เมื่อความดังเสียง (Loudness)ช่วงเวลา (Timer), วิดีโอเคลื่อนที่ (VDO Motion)
6. When I receive (Message1) กำหนดเหตุการณ์เมื่อโปรแกรมได้รับข้อความที่กำหนดไว้
7. Broadcast (Message1) กำหนดให้ส่งข้อความเมื่อถึงช่วงเวลาที่ต้องการ
8. Broadcast (Message1) and wait กำหนดให้ส่งข้อความเมื่อถึงช่วงเวลาที่ต้องการและรอเหตุการณ์อีกเหตุการณ์

การสร้างภาพเคลื่อนไหว (Animation)
สามารถทำได้โดยการใช้คำสั่งเปลี่ยนแปลงชุดหรือรูปร่าง (Costumes) และคำสั่งหยุดรอ wait สลับไปมาเพื่อให้ตาของเรามองเห็นภาพเป็นลักษณะของภาพเคลื่อนไหว

คำสั่งการควบคุม (Scripts Control)
เป็นชุดคำสั่งเกี่ยวกับการควบคุมตัวละครตามเงื่อนไขต่าง ๆ เช่น การหยุดรอ (wait) กี่วินาทีหรือตามเงื่อนไข การทำงานซ้ำตามจำนวนรอบ การทำงานซ้ำไม่สิ้นสุด หรือการกำหนดเงื่อนไข เป็นต้น

การวนซ้ำและวนซ้ำไม่สิ้นสุด (Loop Repeat, Loop Forever)
จากชุดคำสั่งการสร้างภาพเคลื่อนไหว จะเห็นได้ว่ามีการใช้คำสั่งที่ซ้ำกันมีลักษณะเป็นชุดคำสั่ง คือ move, switch costume และ wait ซึ่งเราสามารถใช้คำสั่ง Repeat เพื่อทำให้ไม่ต้องเขียนคำสั่งที่ยาวต่อเนื่อง

Technology Challenge

ทำซ้ำ วนซ้ำจริงหรือ!! Repeat & Loop
ลิปดาตื่นเช้า 6 โมง แปรงฟัน 5 นาที อาบน้ำ 10 นาที แต่งตัว 5 นาที ทานอาหารเช้า 15 นาที เดินทางไปโรงเรียนเข้าเรียน 8 โมงเช้า เลิกเรียน บ่าย 3 โมงเย็น เดินทางกลับบ้านถึงบ้านอาบน้ำ แต่งตัว ทานอาหารเย็น และเข้านอนก่อน 2 ทุ่ม ทำเป็นกิจวัตรประจำวัน กิจกรรมต่าง ๆ ที่ลิปดาทำในแต่ละวันคือการทำซ้ำ วนซ้ำ ไม่สิ้นสุดหรือไม่คะ

Missions :
1.ให้นักเรียนวิเคราะห์กิจวัตรประจำวันของตนเองสังเกตการทำซ้ำ วนซ้ำ หรือไม่
2.คุณครูให้นักเรียนอธิบายแต่ละกิจกรรมที่นักเรียนทำมีขั้นตอนการทำซ้ำ วนซ้ำ มากน้อยอย่างไร เช่นขั้นตอนการกินข้าว แปรงฟัน ใส่ถุงเท้า เป็นต้น
3.นำกิจกรรมมานำเสนอกลุ่มละกิจกรรมถึงขั้นตอนการวนซ้ำโดยสั่งให้เพื่อนๆ ทำโดยใช้บัตรคำหรือหุ่นยนต์
Materials : อุปกรณ์ตามที่คุณครูกำหนด หรือ หุ่นยนต์
Ask : การเขียนโปรแกรมอย่างง่ายโดยสื่อ (บัตรคำ) ทำอย่างไร
Plan & Design : วางแผนและออกแบบในการเขียนโปรแกรมวนซ้ำโดยใช้สื่อ (บัตรคำ) หรือ การใช้หุ่นยนต์

ผิดพลาดตรงไหนอีกนะ Debugging
ลิปดากำลังใช้โปรแกรม Scratch วาดรูปทรงเรขาคณิต แต่โปรแกรมมีข้อผิดพลาดเกิดขึ้น จึงไม่สามารถวาดรูปทรงตามที่ต้องการได้ คุณครูเลยแนะนำให้ลิปดาตรวจหาข้อผิดพลาดโดยให้ตรวจสอบการทำงานทีละคำสั่ง และปรับแก้ไขจนกว่าจะได้รูปทรงเรขาคณิตที่ต้องการ
Missions :
1.ให้คุณครูกำหนดโจทย์เพื่อให้นักเรียนฝึกการหาข้อผิดพลาดของโปรแกรม
2.โดยให้วิเคราะห์ปัญหาด้วยการแบ่งแยกปัญหาและการตรวจสอบการทำงานทีละคำสั่งพร้อมนำเสนอ
3.กลุ่มใดทำได้เร็วที่สุดและถูกต้องที่สุดเป็นผู้ชนะ
Materials : 1. คอมพิวเตอร์โปรแกรม scratch 2. อุปกรณ์เครื่องเขียน
Ask : ขั้นตอนการหาข้อผิดพลาดของโปรแกรมทำอย่างไร
Plan & Design : ให้ร่วมกันวางแผนหาวิธีการหาข้อผิดพลาดของโปรแกรม

Technology workshop

Our Kingdom อาณาจักรของเรามาช่วยกันปกป้อง

Investigate Idea : เจ้าชายโพล่าอาศัยอยู่ในอาณาจักรอิมเมจิน มีอาหารการกินอุดมสมบูรณ์ วันหนึ่งกองทัพอันหิวโหยต้องการเข้ามายึดครอง เจ้าชายโพล่าจึงคิดว่าควรจะมีเวรตรวจการรอบปราสาทเพื่อปกป้องอาณาจักรของเรา
Missions :
1. ให้ใช้โปรแกรม scratch Mblock ออกแบบเรื่องราวและสร้างตัวละครหรือหุ่นยนต์เวรยามตรวจการรอบปราสาท
2. นำเสนอเรื่องราวและลำดับคำสั่งโปรแกรมที่สั่งให้ตัวละครทำงานวนซ้ำ
Materials : 1.โปรแกรม Scratch Mblock หรือ หุ่นยนต์ 2.อุปกรณ์เครื่องเขียน
ASK : นักเรียนเข้าใจขั้นตอนการเขียนโปรแกรมทำงานซ้ำวนซ้ำหรือไม่ และหากเกิดข้อผิดพลาดจะแก้ไขปัญหาอย่างไร
Plan&Design : วางแผนและออกแบบการเขียนโปรแกรมสั่งให้ตัวละครทำงานซ้ำ วนซ้ำ ไม่สิ้นสุด
Building&Testing ให้นักเรียนลงมือทำตามแผนที่กำหนดไว้
Evaluation&Redesign 1. นักเรียนสามารถทำภารกิจนี้สำเร็จหรือไม่
2. นักเรียนพบปัญหาจากการทำภารกิจนี้หรือไม่
3. นักเรียนมีวิธีการแก้ไขปัญหาอย่างไร