Top
 

DIGITAL KIDS (เทคโนโลยี) ป.4 DIGITAL KIDS (เทคโนโลยี) ป.4 หน่วย 2 เรื่อง การออกแบบอัลกอริทึม 1 เรื่อง ใช้เหตุผลเชิงตรรกะในการแก้ปัญหา

Imagineering Education / บทเรียนวิชาวิทยาการคำนวณ  / DIGITAL KIDS  / DIGITAL KIDS (เทคโนโลยี) ป.4 DIGITAL KIDS (เทคโนโลยี) ป.4 หน่วย 2 เรื่อง การออกแบบอัลกอริทึม 1 เรื่อง ใช้เหตุผลเชิงตรรกะในการแก้ปัญหา

DIGITAL KIDS (เทคโนโลยี) ป.4 DIGITAL KIDS (เทคโนโลยี) ป.4 หน่วย 2 เรื่อง การออกแบบอัลกอริทึม 1 เรื่อง ใช้เหตุผลเชิงตรรกะในการแก้ปัญหา

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

อัลกอริทึม (Algorithm)

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

ตัวอย่างการเขียนอัลกอริทึม (Algorithm) การล้างมือ

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

ดังนั้นการเรียงลำดับคำสั่งการทำงานจึงเป็นสิ่งสำคัญในการออกแบบโปรแกรม

รูปแบบของการเขียนอัลกอริทึม
การเขียนอัลกอริทึมหรือการเขียนลำดับคำสั่งสามารถเขียนได้หลายรูปแบบเช่น การเขียนด้วยภาพ, storyboard, ข้อความ, สัญลักษณ์ หรือผังงาน(Flowchart) เป็นต้น

การสร้างลำดับคำสั่ง โดยการเขียน Storyboard

สตอรี่บอร์ด (Storyboard) คือการแสดงลำดับขั้นตอนการทำงานของโปรแกรมทีละลำดับขั้น โดยเขียนเป็นภาพ ข้อความ หรือ มีลักษณะท่าทางกิริยาที่ชัดเจน ซึ่งการเขียน Storyboard มี 2 ส่วนดังนี้

1.ส่วนของภาพโดยจะวาดอยู่ในกรอบสี่เหลี่ยม
2.ส่วนของการบรรยายเป็นข้อความหรือบทสนทนา

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

การสร้างลำดับคำสั่ง โดยการเขียนผังงาน (Flowchart)

คือ การออกแบบขั้นตอนวิธีหรือลำดับคำสั่งการทำงานต่าง ๆ โดยใช้รูปแบบของสัญลักษณ์แทนการทำงานหรือที่เรียกว่า ผังงาน (Flowchart) ซึ่งสัญลักษณ์ที่ใช้ในการเขียนผังงาน (Flowchart) มีดังนี้

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

โปรแกรม Scratch

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

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

ขนาดของเวที
ความกว้าง 480 หน่วย
สูง 360 หน่วย จุดกึ่งกลางจะเป็นตำแหน่ง X=0, Y=0

การสร้างพื้นหลัง (Background)
ในโปรแกรม Scartch สามารถวาดรูปเพื่อสร้างพื้นหลัง สามารถนำภาพที่มีอยู่ในโปรแกรม หรือนำรูปถ่ายจากภายนอกเข้ามาเป็นฉากพื้นหลังได้ เพื่อนำมาสร้างเป็นฉากเรื่องราวที่เหมาะสมกับตัวละคร

การกำหนดทิศทางของตัวละคร
เมื่อต้องการให้ตัวละครเคลื่อนที่ จำเป็นต้องทราบ 2 สิ่งก่อน สิ่งแรกก็คือ
1. เคลื่อนที่ด้วยระยะทางเท่าไร
2. จะเคลื่อนที่ไปทิศทางใด (direction) โดยสามารถสังเกตได้จากข้อมูลของตัวละคร

การเขียนโปรแกรมย้ายตำแหน่ง
เป็นการย้ายตำแหน่งของตัวละคร (Sprite) โดยมีคำสั่งที่เกี่ยวข้อง เช่น

ตัวอย่างโปรแกรม เปลี่ยนขนาด
การเขียนโปรแกรมย่อและขยายขนาดเป็นการเปลี่ยนขนาดของตัวละคร โดยมีคำสั่งที่เกี่ยวข้อง เช่น

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

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

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

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

ตัวอย่างการสร้างโปรแกรมการตอบโต้กับผู้ใช้งาน

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

การกำหนดเงื่อนไข ถ้า (If….then…..)
การกำหนดเงื่อนไขเป็นการสร้างรูปแบบหรือตรรกะวิธีการตัดสินใจในการดำเนินการใดๆ กับเหตุการณ์นั้น โดยถ้าเกิดเหตุการณ์หรือเงื่อนไขที่กำหนดไว้เป็นจริง แล้วตัวละครหรือฉากจะดำเนินการตามที่ถูกกำหนด

โจทย์ปัญหา : หากตัวละครแมวเดินชนผีเสื้อแล้วให้แมวร้องเหมียวและเปลี่ยนทิศทางการเคลื่อนที่

การกำหนดเงื่อนไขถ้า….เป็นจริงแล้ว……ไม่จริงแล้ว…..(If…else…)
เป็นการกำหนดเงื่อนไขให้กับตัวละครหรือฉากว่าถ้าหากเกิดเหตุการณ์หรือเงื่อนไขใดๆ แล้วเป็นจริง จะดำเนินการอย่างไร หรือหากไม่จริงแล้วจะดำเนินการอย่างไรต่อไป

โจทย์ปัญหา : หากตัวละครผีเสื้อชนกับแมวแล้วให้ผีเสื้อเปลี่ยนสี หากไม่ชนกับผีเสื้อให้เปลี่ยนทิศทางการเคลื่อนที่ไป 15 องศา

Technology workshop

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

ความรู้เพิ่มเติมจากกิจกรรม

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

ตัวอย่างการหาข้อผิดพลาดในโปรแกรม (Debugging)
โจทย์ : จากการออกแบบโปรแกรมสั่งให้ตัวละครเดินมาพบกันแล้วให้ตัวละครตัวที่ 1 แมว ไปกับตัวละครตัวที่ 2 ค้างคาวแล้ว พูด “Hello”

Technology Challenge

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

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

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

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