Category Archives: ภาษาไทย

วิทย์ม.ต้น: หัดไพธอน (REPL, Operator, Int, Float, String, Variable), ฝึก Scratch (Bouncing Ball)

วันนี้เราคุยกันเรื่องเหล่านี้ครับ:

1. คลาสรุ่นพี่ เรียน Python จากหนังสือฟรีบนเว็บชื่อ Automate the Boring Stuff with Python โดยเขียนโปรแกรมใน Mu-Editor เราคุยกันเรื่อง REPL (Read-Evaluate-Print-Loop) สำหรับทดลองพิมพ์คำสั่งต่างๆให้ Python คำนวณให้, คุยเรื่อง operator พวก +, -, *, **, /, //, % กัน, เรื่อง data types พวก int, float, string, เรื่องเครื่องหมายโควท (quotation marks) เพื่อสร้าง string ด้วย ‘, “, ”’, “”” ในสถานการณ์ต่างๆ, รู้จักตัวแปร (variable)

การบ้านคือไปอ่านและพิมพ์ตาม Chapter 2 ต่อครับ

2. คลาสรุ่นน้องหัด Scratch กันต่อ เด็กๆรู้จักตำแหน่ง X-Y (Coordinate System) ตามหน้านี้ ผมให้เด็กๆพยายามขยับตัวละครเป็นเส้นตรงแล้วเมื่อชนขอบก็ให้กระเด้ง พอทำได้ก็ให้โจทย์ต่อว่ากระเด้งแล้วความเร็วลดลงด้วย

หน้าตาโปรแกรมก็จะเป็นประมาณนี้ครับ (โปรแกรมอยู่ที่ https://scratch.mit.edu/projects/429227501/):

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

t = เวลาในการตกและกระเด้งแต่ละรอบ
g = ความเร่งจากแรงโน้มถ่วง
v0 = ความเร็วต้นในแนวดิ่งของลูกบอล
y0 = ความสูงเริ่มต้นของลูกบอล
v(t)= ความเร็วในแนวดิ่งของลูกบอลที่เวลา t
y(t) = ความสูงของลูกบอลที่เวลา t

แล้วเราสามารถคำนวณ v(t) และ y(t) ได้ดังนี้:

v(t) = v0 + g t
y(t) = y0 + v0 t + 1/2 g t^2

หน้าตาโปรแกรมเป็นประมาณนี้ครับ (โปรแกรมอยู่ที่ https://scratch.mit.edu/projects/429234815):

วิทย์ประถม: แรงตึงผิว, เล่นกับลม, วิทย์อนุบาลสาม: แรงตึงผิว

ผมไปทำกิจกรรมวิทย์กับเด็กๆประถมศูนย์การเรียนปฐมธรรมและเด็กอนุบาลสามอนุบาลบ้านพลอยภูมิมาครับ เด็กประถมต้นและอนุบาลสามเล่นกับแรงตึงผิวของน้ำ ประถมปลายเล่นกับลม

(อัลบั้มบรรยากาศกิจกรรมประถมอยู่ที่นี่ กิจกรรมอนุบาลสามอยู่ที่นี่ ส่วนลิงก์รวมทุกกิจกรรมอยู่ที่นี่นะครับ)

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

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

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

จะพบว่าแรงตึงผิวของน้ำทำให้หยดน้ำไว้บนเหรียญได้มากกว่าที่คิดมาก:

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

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

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

เอากระดาษทิชชูรองคลิปแล้วเอาไปลอยครับ
สักพักกระดาษทิชชูจะจม เหลือแต่คลิปลอยอยู่

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

ใช้คลิปที่เรางอเป็นรูปตัว L ขนย้ายคลิปอื่นๆมาวางไว้บนผิวน้ำครับ
พอคลิปลอยน้ำได้ เราก็เอาคลิปตัว L หนีออกไป

พออธิบายวิธีเล่นทั้งสามแบบเด็กๆก็แยกย้ายกันทดลองเล่นเองครับ:

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

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

สำหรับเด็กประถมปลาย ผมให้เล่นกับลมสองอย่างครับ อย่างแรกคือเป่าลมอย่างไรให้ได้ปริมาณลมมากๆ:

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

การเล่นอย่างที่สองคือพ่นสเปรย์ด้วยหลอดกาแฟสองหลอด:

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

พอเด็กๆรู้วิธีแล้วก็แยกย้ายกันเล่นกันครับ:

สำหรับอนุบาลสามผมก็ให้เล่นหยดน้ำบนเหรียญและลอยคลิปบนน้ำครับ:

วิทย์ม.ต้น: เล่นเกม Iterated Prisoner’s Dilemma, “กฏแห่งกรรม”, Evolution of Cooperation, ทดลองเป่าลมและหยดน้ำ

วันนี้เราคุยเรื่องพวกนี้กันครับ:

1. เด็กๆเล่นเกมกันเป็นคู่ๆ แต่ละคนจะเลือกว่าจะเขียนว่า C หรือ D โดยไม่ให้อีกฝ่ายเห็นและห้ามพูดคุยตกลงกัน พอเขียนเสร็จแล้วก็เอามาเปรียบเทียบกัน ถ้าเขียน C ทั้งคู่ ทั้งสองคนจะได้คะแนนคนละ 300 ถ้าเขียน D ทั้งคู่ ทั้งสองคนจะได้คะแนนคนละ -10 ถ้าคนหนึ่งเขียน C อีกคนเขียน D คนที่เขียน C จะได้คะแนน -100 แต่คนที่เขียน D จะได้คะแนน 500 จุดมุ่งหมายของแต่ละผู้เล่นคือพยายามให้ตนเองได้คะแนนมากที่สุด (ตัวอย่างนี้มาจากหนังสือ The Selfish Gene โดย Richard Dawkins ครับ)

พอผมอธิบายวิธีเเล่นเสร็จ ก็บอกว่าให้เด็กเล่นกันครั้งเดียว เด็กหลายคนเข้าใจว่าถ้าเล่นครั้งเดียวน่าจะเขียน D เพราะไม่ว่าคู่ต่อสู้เขียนอะไรมาเราก็จะได้คะแนนเยอะว่าเราเขียน C แน่ๆ

ผมก็บอกเด็กว่าถ้างั้นเล่น 5 ครั้งแล้วเลิก บางคนก็เขียน C มาทุกครั้งแต่ครั้งสุดท้ายเขียน D เพื่อให้คะแนนมากสุด

ต่อไปผมสุ่มจำนวนครั้งที่จะเล่นออกมาแต่ไม่บอกเด็กๆ ให้เด็กๆเล่นไปเรื่อยๆ หลายคนจะเริ่มเห็นว่าเล่น C ทั้งคู่ (ได้คะแนนคนละ 300) จะได้คะแนนมากกว่าเล่น D เพราะถ้าทั้งสองคนเล่น D ก็จะได้คะแนนคนละ -10

ต่อไปผมให้เด็กๆตกลงกันก่อนว่าจะเล่นกันยังไง จำนวนครั้งที่เล่นไม่แน่นอน ขึ้นกับเวลาที่ผมสุ่ม คะแนนเฉลี่ยต่อครั้งการเล่นก็สูงขึ้นมาก เพราะส่วนใหญ่จะเล่น C มากกว่า D

ตัวอักษร C ย่อมาจาก Coorperate คือร่วมมือ ส่วน D ย่อมาจาก Defect คือหักหลังนั่นเองครับ

2. เกมนี้เรียกว่า Prisoner’s Dilemma หรือ ความลำบากใจของนักโทษ ถ้าเล่นรอบเดียว คนที่ใช้เหตุผลตัดสินใจก็จะเล่นแบบหักหลังเสมอ ถ้าเล่นหลายรอบแต่รู้จำนวนรอบแน่นอน คนก็ใช้เหตุผลก็จะเล่นแบบร่วมมือทุกรอบแล้วหักหลังรอบสุดท้าย

3. การเล่นเกมนี้หลายๆรอบเรียกว่า Iterated Prisoner’s Dilemma ซึ่งเป็นแบบจำลองว่าความช่วยเหลือเกื้อกูลหรือร่วมมือกันเกิดขึ้นได้อย่างไรในสิ่งมีชีวิตที่อยู่เป็นสังคม (The Evolution of Cooperation) รวมถีงอธิบายว่าสังคมที่อยู่รอดและแข็งแรงนั้นต้องมีระบบ “กฎแห่งกรรม” ที่สมาชิกของสังคมต้องทำให้เกิดคือให้รางวัลความดีและลงโทษการโกง ไม่งั้นสังคมจะล่มสลายครับ (ถ้าสังคมไหนรอสิ่งศักดิ์สิทธิ์ให้ดลบันดาลกฎแห่งกรรมโดยไม่จัดการกันเองโดยสมาชิกในสังคม สังคมนั้นก็มีแนวโน้มที่จะล่มสลายได้) ผมยังไม่ได้อธิบายอะไรลึกซึ้งมากแต่เกริ่นกับเด็กๆว่ามีการแข่งขันที่จัดโดย Robert Axelrod ให้ส่งโปรแกรมเข้ามาเล่นเเกมนี้สู้กับโปรแกรมอื่นๆ และโปรแกรมที่ทำคะแนนได้สูงโดยเฉลี่ยคือ tit-for-tat ที่ทำงานโดยเริ่มด้วย C ก่อนแล้วคราวต่อไปเล่นเหมือนคู่ต่อสู้เล่นรอบที่แล้ว

4. แนะนำให้เด็กๆดูคลิปเหล่านี้ถ้าสนใจครับ:

5. เวลาที่เหลือเราทำการทดลองเล่นกัน อันแรกคือเป่าลมแบบไหนจะได้ปริมาณลมไหลมากกว่ากันครับ:

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

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

6. การทดลองที่สองคือเล่นหยดน้ำลงบนเหรียญบาทให้มากที่สุด จะพบว่าแรงตึงผิวของน้ำทำให้หยดน้ำไว้บนเหรียญได้มากกว่าที่คิดมาก:

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

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

เด็กๆแยกย้ายกันทดลองครับ:

แรงตึงผิวของน้ำทำให้สามารถหยดน้ำไว้บนเหรียญบาทได้มากกว่าที่คิดมาก

Posted by Pongskorn Saipetch on Wednesday, September 23, 2020