Category Archives: programming

วิทย์ม.ต้น: ดูคลิประเบิดนิวเคลียร์, เขียนโปรแกรม Scratch

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

ถ้าสนใจเข้าไปดูที่นี่ได้ครับ เป็นลิสต์ใน YouTube จะมีต่อกันไปเรื่อยๆนะครับ:

จากนั้นผมให้เด็กๆเขียนและปรับปรุงโปรแกรมของเขาต่อ มีเด็กหลายคนถามเรื่องการขึ้น Level ต่อไปในเกมของเขา ผมจึงอธิบายในแต่ละเคส และแนะนำให้ลองเข้าไปดูที่หน้า How to Make a Title Screen and Levels เป็นไอเดียครับ

เด็กๆทำเอง อ่านเอง ปรึกษากันเองเป็นส่วนใหญ่ครับ

วิทย์ม.ต้น: ดูคลิปหุ่นยนต์ดิสนีย์, เขียนโปรแกรม Scratch กันต่อ + Scratch Offline Editor

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

 และมีหุ่นยนต์สตันต์แมนชื่อ Stuntronics ที่แสดงบทผาดโผนแทนคน:

รายละเอียดอ่านเพิ่มเติมได้ที่ Disney Imagineering has created autonomous robot stunt doubles นะครับ

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

ผมแนะนำให้เด็กๆได้รู้จัก Scratch Offline Editor ที่ทำให้สามารถนั่งเขียนโปรแกรม Scratch ได้โดยไม่ต้องต่ออินเทอร์เน็ต และไม่ติดปัญหาเวลาเขียนโปรแกรมใหญ่ๆแล้ว save ได้มั่งไม่ได้มั่งครับ

ลองเข้าไปดูงานที่เด็กๆกำลังทำกันได้ครับ สามารถกด  See Inside เพื่อดูว่าข้างในมีโปรแกรมหน้าตาอย่างไรถึงทำงานได้อย่างที่เห็น แต่งานบางคนก็ยังไม่ได้เปิดให้ดูเป็นสาธารณะนะครับ:

Titus: https://scratch.mit.edu/users/StzzSmarauder/
Boongie: https://scratch.mit.edu/users/Blue_BG/
Poon: https://scratch.mit.edu/users/poonpoon23/
Pun: https://scratch.mit.edu/users/naragin/
Jung: https://scratch.mit.edu/users/jungie/
Chunly: https://scratch.mit.edu/users/chanyachun/
Tatia: https://scratch.mit.edu/users/wonderTS/
Pitchee: https://scratch.mit.edu/users/Pitchee/
Tangmo: https://scratch.mit.edu/users/pigbompp/

 

 

วิทย์ม.ต้น: รู้จักกับวิธีเรียงลำดับข้อมูล (Sorting) นั่งปรับปรุงและ debug โปรแกรม Scratch กันต่อ

วันนี้เด็กม.3 ได้รู้จักวิธีเรียงลำดับข้อมูลกันครับ  วิธีมีหลากหลาย แต่ละวิธีก็ใช้เวลาต่างๆกันเมื่อเรียงลำดับข้อมูลแบบต่างๆ ตอนแรกผมถามเด็กว่าถ้ามีหนังสือเยอะๆแล้วจะเรียงตามลำดับชื่อหนังสือจะทำอย่างไร ปรากฎว่าเด็กๆคิดสักพักแล้วก็บอกวิธีอยู่ในตระกูล Radix Sort คือกรุ๊ปตามตัวอักษรตัวแรกว่าอยู่ในกลุ่ม ก-ฮ, A-Z ซะเลย แล้วทำอย่างเดิมในแต่ละกรุ๊ปตัวอักษรแต่ใช้ตัวอักษรตัวถัดๆมาในชื่อ (เหมือน Recursive Radix Sort)

ต่อมาเด็กๆได้ดูคลิปอธิบาย Bubble Sort, Insertion Sort, และ Quick Sort ใน TED-ED ได้รู้จักวิธีแบ่งปัญหาให้เล็กลงแล้วแก้ด้ววิธีเดิม (Divide and Conquer + Recursion) จาก Quick Sort:

เด็กๆได้ดูภาพเคลื่อนไหวเปรียบเทียบวิธีเรียงลำดับแบบต่างๆที่เพจ Sorting Algorithms Animations ครับ เข้าไปกดดูกันนะครับ หน้าตาจะเป็นประมาณนี้ครับ:

จากเว็บ Sorting Algorithms Animations https://www.toptal.com/developers/sorting-algorithms
จากเว็บ Sorting Algorithms Animations https://www.toptal.com/developers/sorting-algorithms

มีคนทำเรื่อง Sorting ไว้ด้วยภาษา Scratch เยอะเหมือนกันครับ กดเข้าไปดูได้ที่ Sorting Algorithms ครับ

จากนั้นเด็กๆทั้งม.1, 2, 3 ก็นั่งเขียนโปรแกรม Scratch กันต่อครับ พยายามทำให้เกมต่างๆสนุกขึ้น และมีบั๊กน้อยลง พยายามจัดการโปรแกรมว่าไม่ควรเขียนอะไรซ้ำกัน ถ้าจะทำอะไรควรทำจากที่เดียว จะได้รู้แน่นอนว่าเกิดอะไรขึ้นในโปรแกรมครับ