วิทย์ม.ต้น: เขียนไพธอนหาตัวประกอบเลข, หัดใช้ set, คอมพิวเตอร์โบราณ, หัดเขียนฟังก์ชั่น

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

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

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

นอกจากนี้เด็กๆได้เห็นวิธีเปลี่ยนลิสต์เป็นเซ็ตเพื่อกำจัดตัวประกอบที่ซ้ำออก และเห็นการเปลี่ยนเซ็ตเป็นลิสต์เพื่อจัดเรียงสมาชิกด้วย:

โหลด Jupyter Notebook ได้ที่นี่ หรือดูออนไลน์ได้ที่นี่ครับ

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

การเขียนโปรแกรมสมัยก่อนใช้การต่อสายไฟต่างๆในคอมพิวเตอร์เข้าด้วยกัน:

การโปรแกรมคอมพิวเตอร์สมัย 1947 ชื่อ ENIAC ทำโดยการต่อสายไฟให้เหมาะสม ภาพนี้มาจาก http://www.history.com/news/coding-used-to-be-a-womans-job-so-it-was-paid-less-and-undervalued

และตัวอย่างการเขียนโปรแกรม Hello, World ในภาษาคอมพิวเตอร์ต่างๆ

และเด็กๆได้รู้จักคอมพิวเตอร์ที่ทำจากเฟืองอายุกว่า 2,000 ปี:

และคอมพิวเตอร์แบบเดียวกันแต่ต่อด้วย Lego:

จากนั้นเด็กๆก็หัดใช้ตัวแปรพวกจำนวนเต็ม เลขทศนิยม ข้อความ ลิสต์ และหัดเขียนฟังก์ชั่นบวกเลข 1 + 2 + 3 + … + n และอื่นๆกันครับ

โหลด Jupyter Notebook ได้ที่นี่ หรือดูออนไลน์ได้ที่นี่ครับ

ความถี่เสียงที่หูฟังได้, ความถี่ธรรมชาติของวัตถุ, กลน้ำไม่หก

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

(อัลบั้มบรรยากาศกิจกรรมอยู่ที่นี่นะครับ กิจกรรมประถมคราวที่แล้วเรื่อง “หูและคลื่นเสียง, กลน้ำไม่หก” ครับ ลิงก์รวมทุกกิจกรรมอยู่ที่นี่นะครับ)

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

กิจกรรมนี้ฝีกเด็กๆให้คิดแบบวิทยาศาสตร์ครับ มีการสังเกต การตั้งสมมุติฐานเพื่ออธิบายสิ่งที่สังเกตมา การตรวจสอบสมมุติฐานกับข้อมูลที่สังเกตมา การตั้งสมมุติฐานใหม่เมื่อสมมุติฐานเดิมขัดกับข้อมูล นอกจากนี้เราพยายามให้เด็กๆมีความกล้าคิดและออกความเห็นครับ

ต่อจากนั้นเด็กๆประถมต้นได้เข้าใจว่าเสียงต่ำคือเสียงความถึ่ต่ำ คือมีการสั่นสะเทือนต่อวินาทีไม่มาก เสียงสูงคือเสียงความถึ่สูง มีการสั่นสะเทือนต่อวินาทีมาก และได้รู้จักหน่วยของความถี่ที่เรียกว่า “เฮิร์ตซ์” (Hz, Hertz) ซึ่งเท่ากับหนึ่งครั้งต่อวินาที

เด็กๆทดลองฟังเสียงสูงต่ำกันโดยสังเกตว่าเสียงต่ำที่สุดที่เริ่มได้ยินมีความถึ่เท่าไร เสียงสูงสุดที่ได้ยินมีความถึ่เท่าไร

เมื่อความถี่ต่ำมากๆหรือสูงมากๆจนเราไม่ค่อยได้ยิน บางทีเราก็จะคิดไปเองว่าเราได้ยินครับ อย่างนี้ต้องให้อีกคนช่วยปรับความถี่ให้ หรือก็ต้องหลับตาขยับเปลี่ยนความถี่ไปมาว่าเริ่มได้ยินหรือยัง หรือไม่ก็เปิดปิดเสียงสลับไปดูว่าตอนปิดเสียงยังคิดว่าได้ยินหรือเปล่า ถ้าได้ยินก็แสดงว่าคิดไปเองครับ เราใช้โปรแกรม Sonic by Von Bruno (iOS) และ Physics Toolbox Tone Generator เป็นตัวสร้างความถี่ต่างๆครับ

ผลที่เด็กๆทดลองก็เป็นประมาณนี้ครับ:

หูคนที่ทำงานได้สมบูรณ์จะฟังเสียงได้ประมาณความถี่ 20 Hz ถึง 20,000 Hz ครับ เด็กๆเท่านั้นถึงจะฟังได้ช่วงกว้างอย่างนี้ คนยิ่งอายุเยอะขึ้นก็จะฟังความถี่สูงๆไม่ค่อยได้ จากการทดลองวันนี้เด็กๆประถมต้นฟังเสียงสูงได้ถึง 17,000-20,000+ Hz เลยครับ ส่วนคนอายุ 50 อย่างผมฟังได้ถึงแค่ 13,000-14,000 Hz ครับ

สัตว์ต่างๆสามารถฟังเสียงความถี่ต่างจากคนด้วยครับ ดังในรูปนี้

เข้าไปอ่านเพิ่มเติมเรื่องนี้ได้ที่ https://en.wikipedia.org/wiki/Hearing_range ครับ

สำหรับประถมปลาย เด็กๆได้เอาไม้บรรทัดอลูมิเนียมและไม้บรรทัดไม้มากดปลายข้างหนึ่งติดกับโต๊ะ แล้วจับปลายอีกข้างแล้วปล่อยให้สั่น แล้วใช้โปรแกรม FFTWave บน iOS และ SoundView บน Android ดูความถี่เสียงของการสั่นต่างๆครับ  หน้าจอ FFTWave จะเป็นประมาณนี้ครับ:

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

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

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

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

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

กลทั้งสองแบบมีหลักการคล้ายกันที่ว่าอากาศภายนอกแก้วมีความดันมากพอที่จะ รับน้ำหนักน้ำไม่ให้หกออกมาครับ ในกรณีตะแกรงจะใช้แรงตึงผิวของน้ำรับแรงจากความดันอากาศแทนแผ่นพลาสติกในอีกกรณีหนึ่งครับ

Action Bias, หัดใช้คาลิเปอร์, รู้จัก Mean & Standard Deviation

วันนี้เด็กๆเรียนเรื่อง action bias จากหนังสือ The Art of Thinking Clearly โดยคุณ Rolf Dobelli ให้ระวังว่าบางทีเราจะอยู่เฉยๆไม่เป็น อยากจะทำอะไรซักอย่าง เพราะการทำอะไรบางอย่างทำให้รู้สึกดีขึ้น ทั้งๆที่ด้วยเหตุผลแล้วถ้าอยู่เฉยๆจะมีประโยชน์กว่า

จากนั้นเด็กๆก็หัดใช้คาลิเปอร์วัดขนาดเหรียญบาทกันครับ

เด็กๆเห็นว่าการวัดขนาดเหรียญหลายเหรียญ ด้วยเครื่องมือหลายอัน และคนหลายคนได้ตัวเลขที่ใกล้เคียงกันแต่ไม่เหมือนกันเป๊ะ เราจึงรายงานผลการวัดของเราในรูป ค่าเฉลี่ย ± ค่าเบี่ยงเบนมาตราฐาน หรือ mean ± standard deviation ครับ

เด็กๆได้เห็นวิธีคำนวณค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานประมาณนี้:

ได้เห็นตัวอย่างโค้ดไพธอนที่คำนวณ:

ดูเหมือนว่าเด็กๆจะตื่นเต้นกับตัวอักษรกรีกด้วย

และมีการบ้านไปอ่านเรื่องเลขนัยสำคัญที่นี่และที่นี่ครับ

อัลบั้มบรรยากาศชั้นเรียนอยู่ที่นี่ครับ

บันทึกกิจกรรมวิทยาศาสตร์สำหรับเด็กๆ อยากให้คุณพ่อคุณแม่คุณครูเอาไปประยุกต์เล่นกับเด็กๆเยอะๆครับ :-)