Category Archives: มัธยม

วิทย์ม.ต้น: แนะนำและทบทวน Python เทอมใหม่

วันนี้เราเรียน Python กันต่อครับ เด็กใหม่ที่ไม่เคยเรียนมาก่อนได้รู้วิธีไปโหลด Python มาจากเว็บ Anaconda และได้หัดเปิด Jupyter Notebook ที่ติดตั้งมาใน Anaconda แล้วใช้ Python เป็นเครื่องคิดเลข เด็กๆตื่นเต้นมากเมื่อใช้ math.gcd(a, b) เพื่อหาห.ร.ม.ของเลข a และ b

แนะนำลิงก์หัดใช้ Jupyter Notebook ครับ

เด็กๆหัดใช้ใช้ Python เป็นเครื่องคิดเลข

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

ลิงก์แนะนำภาษา Python เบื้องต้น เป็นภาษาไทย

เว็บ Real Python สำหรับหัวข้อน่าสนใจหลายๆอันที่ควรเข้าไปเรียนรู้ครับ

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

การอ้างอิงบางส่วนของ list (เรียกว่า list slicing)

ใช้ join เพื่อต่อสมาชิกใน list มาเป็นก้อน string เดียวกัน
แปลงเลขฐานสิบเป็นฐานสองเป็นตัวอย่างการเขียนโปรแกรม จริงๆ Python มี bin(x) อยู่แล้ว

วิทย์ม.ต้น: หัวใจการคิดแบบวิทยาศาสตร์, ทดลองหาปริมาตรอากาศที่หายใจต่อนาที

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

เริ่มแรกเราคุยกันว่าเราเป็นส่วนเล็กๆอยู่ในจักรวาลอันกว้างใหญ่ก่อนครับ เริ่มด้วยภาพ Pale Blue Dot

Pale Blue Dot คือภาพโลกที่ถ่ายจากยาน  Voyager 1 เมื่อห่างไป 6 พันล้านกิโลเมตร (=40 เท่าระยะทางจากโลกไปดวงอาทิตย์) ขนาดของโลกในภาพเล็กกว่าจุดๆหนึ่งด้วยครับ:

จาก https://en.wikipedia.org/wiki/Pale_Blue_Dot

เชิญฟังเสียง Carl Sagan บรรยายภาพนั้นกันครับ (แบบมีซับไทย):

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

แรงโน้มถ่วง (F) ระหว่างวัตถุสองชิ้นที่มีมวล m1 และ m2 และอยู่ห่างกันที่ระยะ r จะมีค่าเท่ากับผลคูณของมวลทั้งสองหารด้วยระยะห่างยกกำลังสอง คูณกับค่าคงที่ (G)

ความรู้ใหม่ๆทางวิทยาศาสตร์เกิดจากการเดา (สร้างสมมุติฐาน, hypothesis) แล้วดูว่าถ้าเราเดาถูกต้องแล้วเราคาดว่าจะพบหรือไม่พบอะไรบ้าง (prediction) แล้วตรวจสอบสิ่งที่คาดด้วยการทดลองและสังเกตการณ์ต่างๆ (experiment, observation) ว่าถูกหรือผิด ถ้าผิดก็ไปปรับปรุงการเดาใหม่ ถ้าถูกก็เก็บความรู้ไว้ใช้ก่อน องค์ความรู้ที่รวบรวมไว้ถ้ามีประโยชน์สามารถอธิบายปรากฎการณ์ต่างๆได้กว้างขวางถูกต้องแม่นยำ ก็จะถูกเรียกว่าทฤษฎี (theory) แล้วเราเก็บไว้ใช้จนกระทั่งมีทฤษฎีที่แม่นยำกว่ามาใช้แทน เมื่อทำอย่างนี้วนไปเรื่อยๆความรู้ที่ถูกต้องก็จะสะสมมากขึ้น ความรู้ที่คลาดเคลื่อนหรือผิดก็จะลดลง ทำให้ในระยะยาวเราเข้าใจสิ่งต่างๆได้อย่างถูกต้องมากขึ้น ความรู้ว่ากฎเกณฑ์ธรรมชาติเป็นอย่างไรทำให้เราสามารถสร้างเทคโนโลยีต่างๆด้วยกฎเกณฑ์เหล่านั้นได้เช่นเครื่องกล เครื่องไฟฟ้า อุปกรณ์อิเล็กทรอนิกส์ ฯลฯ

ตัวอย่างทฤษฎีที่แม่นยำกว่าทฤษฎีเดิมก็เช่นความคิดของไอน์สไตน์เกี่ยวกับแรงโน้มถ่วงที่เกิดจากกระบวนการที่มวลทำให้ระยะทางและเวลารอบๆมันบิดตัว ทฤษฎีของนิวตันและไอน์สไตน์จะให้คำตอบเหมือนๆกันในบริเวณที่แรงโน้มถ่วงไม่มากเท่าไร แต่ในบริเวณที่แรงโน้มถ่วงมากๆคำตอบจากทฤษฏีของไอน์สไตน์จะให้คำตอบที่ถูกต้องมากกว่า

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

วิทย์ม.ต้น: รู้จัก Simulation (การจำลองสถานการณ์ด้วยคอมพิวเตอร์) เพื่อตอบคำถามที่สนใจ

วันนี้เด็กๆม.ต้นรู้จักการพยายามตอบคำถามที่น่าสนใจแต่หาคำตอบตรงๆไม่เป็น จึงพยายามหาคำตอบด้วย simulation หรือการจำลองสถานการณ์ด้วยคอมพิวเตอร์ครับ

สมมุติว่ามีคนสองคนชื่อ A และ B มาเล่นเกมกัน แต่ละคนจะเลือกหัว (H) หรือก้อย (T) เรียงกันสามตัว เช่น A อาจเลือกก้อยหัวหัว (THH) และ B อาจเลือกหัวหัวหัว (HHH) จากนั้นผู้เล่นก็โยนเหรียญไปเรื่อยๆจนแบบที่เหรียญออกสามครั้งสุดท้ายตรงกับแบบที่ A หรือ B เลือกไว้ ถ้าตรงกับคนไหนคนนั้นก็ชนะ เช่นถ้าโยนเหรียญไปเรื่อยๆแล้วออก HHTHTTTHH จะพบว่าในการโยนแปดครั้งแรกยังไม่ตรงกับ THH หรือ HHH สักที แต่พอโยนครั้งที่ 9 ออก H ทำให้สามครั้งสุดท้ายเป็น THH ซึ่งตรงกับ A เลือกไว้ ในกรณีนี้ A ก็ชนะ

คำถามคือในกรณีเหล่านี้ใครจะมีโอกาสชนะมากกว่ากัน เป็นอัตราส่วนเท่าไร

  1. A เลือก THH, B เลือก HHT
  2. A เลือก HTT, B เลือก HHT

จริงๆเกมนี้เรียกว่า Penney’s Game และสามารถคำนวณด้วยวิธีความน่าจะเป็นได้ แต่ถ้าเราไม่รู้ว่าจะคำนวณอย่างไร เราสามารถจำลองการเล่นเกมนี้หลายๆครั้งแล้วนับจำนวนครั้งที่แต่ละคนชนะก็ได้

หน้าตาฟังก์ชั่นโยนเหรียญไปเรื่อยๆจนมีคนชนะจะเป็นประมาณนี้ครับ:

เราสามารถทดลองเอาคู่แข่งขันมาแข่งซ้ำๆกันหลายๆครั้งเพื่อดูอัตราส่วนการแพ้ชนะได้แบบนี้ครับ:

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

สามารถดาวน์โหลด Jupyter Notebook ที่มีตัวอย่างโค้ดได้ที่นี่ หรือทดลองออนไลน์ได้ที่ลิงก์นี้ครับ