Category Archives: science class

วิทย์ม.ต้น: ใช้ Python ทำงานโดยเปิดไฟล์แล้วอ่านทีละบรรทัด

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

ท่านสามารถเปิดดู Notebook ได้ที่  http://nbviewer.jupyter.org/urls/witpoko.com/wp-content/uploads/2018/11/หัดอ่านไฟล์.ipynb หรือจะโหลดไปเล่นเองที่เครื่องก็โหลดจากที่ https://witpoko.com/wp-content/uploads/2018/11/หัดอ่านไฟล์.ipynb นะครับ ถ้าจะเล่นเองต้องมีไฟล์คำศัพท์ภาษาอังกฤษ เช่นถ้ามี macOS ไฟล์ก็จะอยู่ที่ /usr/share/dict/words ถ้าไม่มีก็สามารถไปหาได้ที่ https://github.com/dwyl/english-words/ เป็นต้นครับ

 

เล่นกับคอปเตอร์กระดาษ รูปทรงที่ทำจากกระดาษตกพร้อมกัน

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

(อัลบั้มบรรยากาศกิจกรรมต่างๆอยู่ที่นี่นะครับ กิจกรรมประถมคราวที่แล้วเรื่อง “ขว้างหลอดกาแฟ (ต่อ) การตกของกรวยกระดาษ (ต่อ) แรงโน้มถ่วงเทียม” ครับ รวมทุกกิจกรรมอยู่ที่นี่นะครับ)

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

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

ผมสอนเด็กประถมต้นให้ทำคอปเตอร์กระดาษกันเองครับ ให้เขาไปปรับแต่งสัดส่วนและขนาดต่างๆแล้วทดลองว่าแบบไหนหมุนเร็ว แบบไหนหมุนช้า แบบไหนตกเร็ว แบบไหนตกช้า จริงๆสามารถเป็นโปรเจ็กเด็กมหาวิทยาลัยเรื่อง fluid dynamics ได้ครับ

วิธีทำเป็นดังในคลิปครับ:

เด็กๆแยกย้ายกันประดิษฐ์และทดลองครับ:

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

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

สาเหตุที่เป็นอย่างนี้ก็เพราะแรงทั้งหมดที่กระทำต่อสิ่งของคือแรงโน้มถ่วงซึ่งแปรผันตรงกับมวล ดังนั้นอัตราการเปลี่ยนแปลงความเร็ว (=ความเร่ง) จึงไม่ขึ้นกับมวลของสิ่งของที่ตกด้วยกฏ F = mg = ma ของนิวตัน

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

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

ในอดีตเราปล่อยกรวยกระดาษ (https://youtu.be/8tuKvSFma-I) คราวนี้เราจะลองลูกบอลกระดาษและลูกบาศก์กระดาษกันดูครับ)

วิธีทำที่สอนเด็กๆอยู่ในคลิปครับ:

เด็กๆแยกย้ายกันประดิษฐ์และทดลองครับ:

สำหรับเด็กอนุบาลสามผม ผมและคุณครูช่วยกันตัดกระดาษแล้วสอนให้เด็กๆพับเป็นคอปเตอร์กระดาษเล่นกันครับ:

วิทย์ม.ต้น: Cognitive Biases สามอัน, ปล่อยลูกบอลกระดาษผ่านอากาศ

วันนี้สำหรับมัธยมต้นพวกเราคุยกันเรื่อง cognitive biases ที่เด็กๆไปอ่านในหนังสือ The Art of Thinking Clearly ในสัปดาห์ที่ผ่านมาครับ คราวนี้เรื่อง Contrast Effect, Availability Bias, The It’ll-Get-Worse-Before-It-Gets-Better Fallacy

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

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

The It’ll-Get-Worse-Before-It-Gets-Better Fallacy คือให้เราระวังคำแนะนำหรือคำทำนายที่คลุมเครือ ตรวจสอบได้ยากว่าถูกต้องหรือผิดพลาด ทำให้เราต้องเสียเวลารอคอยไปเรื่อยๆครับ

ตอนเราคุยกันเรื่อง availability bias ผมเขียนโปรแกรม Python เป็นตัวอย่างให้เด็กๆดูว่าเราจะตรวจสอบได้อย่างไรว่ามีแบบไหนมากกว่าระหว่างคำภาษาอังกฤษที่ขึ้นต้นด้วยตัวอักษร e หรือคำที่ตัวอักษรตัวที่สามคืออักษร e โดยอ่านรายการคำศัพท์ภาษาอังกฤษแล้วนับแสดงผลให้ดูครับ หน้าตาประมาณนี้ สามารถดูตัวเต็มได้ที่ http://nbviewer.jupyter.org/urls/witpoko.com/wp-content/uploads/2018/11/count-words.ipynb หรือโหลดไปเปิดเองที่ https://witpoko.com/wp-content/uploads/2018/11/count-words.ipynb นะครับ:

ทำไว้เป็น Jupyter Notebook ครับ โหลดได้ที่ https://witpoko.com/wp-content/uploads/2018/11/count-words.ipynb นะครับ
ทำไว้เป็น Jupyter Notebook ครับ โหลดได้ที่ https://witpoko.com/wp-content/uploads/2018/11/count-words.ipynb นะครับ
ตัวฟังก์ชั่นเขียนให้เด็กๆอ่านและเข้าใจง่ายๆตรงไปตรงมาครับ
ตัวฟังก์ชั่นเขียนให้เด็กๆอ่านและเข้าใจง่ายๆตรงไปตรงมาครับ

เด็กๆได้ดูคลิปข่าวใหญ่ประจำสัปดาห์เรื่องยาน Insight ไปลงดาวอังคารด้วยครับ ผมบอกเด็กๆว่าโหราศาสตร์กับดาราศาสตร์เริ่มจากคนสังเกตจุดดาวในท้องฟ้าหลายพันปีก่อน แต่โหราศาสตร์ไม่พัฒนาเพราะว่าเมื่อทำนายผิดพลาดไม่ได้ค้นหาสาเหตุว่าผิดพลาดอย่างไรและไอเดียหลักตรงกับกฏเกณฑ์ธรรมชาติหรือไม่ มัวแต่แก้ตัวมั่วๆไป เวลาผ่านไป 5,000 ปีก็ยังทำนายอะไรจริงจังไม่ได้ ดาราศาสตร์กลับกันคือมีการตรวจสอบคำทำนายและไอเดียกับธรรมชาติเสมอ ไอเดียไหนผิดก็ทิ้งไป อันไหนถูกก็พัฒนาต่อ ตอนนี้สามารถคำนวณตำแหน่งดาวอังคารและปล่อยจรวดไปจอดได้แล้ว รวมถึงวัดคลื่นโน้มถ่วงจากหลุมดำชนกันได้แล้ว:

เวลาเหลือเราเลยเล่นปล่อยลูกบอลกระดาษขนาดต่างๆกันให้ตกผ่านอากาศลงสู่พื้นครับ ลองดูวิดีโอนะครับ: