Tag Archives: วิทย์ม.ต้น

วิทย์ม.ต้น: พยายามโปรแกรมสร้างคำด้วยสัญญลักษณ์ในตารางธาตุ, วาดรูปด้วย Turtle

สัปดาห์นี้เด็กๆม.2-3 พยายามหาวิธีเขียนคำภาษาอังกฤษด้วยสัญญลักษณ์จากตารางธาตุ ส่วนม.1 วาดรูปด้วย Turtle กันต่อจากสัปดาห์ที่แล้วครับ

สืบเนื่องมาจากโพสต์ให้เข้าไปชิงรางวัลใน Facebook นี้ครับ:

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

เด็กๆหาสัญญลักษณ์มาใช้ได้จากหลายๆเว็บ เช่นอาจจะก๊อปปี้จากหน้า https://www.thoughtco.com/element-list-names-atomic-numbers-606529 แล้วเอามาใส่ในสตริง element_data อย่างนี้:

จากนั้นก็หัดใช้ splitlines() เพื่อจัดการแต่ละบรรทัดในสตริง:

หัดใช้ split เพื่อแบ่งข้อมูลที่ถูกคั่นด้วยตัวแบ่ง ในที่นี้คือ เว้นวรรคขีดเว้นวรรค จึงใช้ …split(” – “):

เก็บสัญญลักษณ์ที่แยกออกมาได้ไว้สักที่ เช่นในที่นี้เก็บไว้ในลิสต์ symbols แล้วใช้ตรวจว่าสัญญลักษณ์อะไรอยู่ในตารางธาตุบ้าง:

จากนั้นก็เริ่มดูได้ว่าคำแต่ละคำมีสัญญลักษณ์ธาตุอะไรบ้าง เช่นคำว่า “bacon” ตรวจได้อย่างนี้:

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

สำหรับม. 1 เราเล่น Turtle กันต่อ วาดนู่นวาดนี่ตามความสนใจ ตัวอย่างเช่นเต่าหกตัวเดินแบบเมาๆ:

import turtle
import random

turtles = [turtle.Turtle() for i in range(6)]
colors = ["red", "blue", "black", "brown", "orange", "green"]
for t in turtles:
    t.speed("fastest")
    t.shape('classic')

for i in range(10000):
    for t,c  in zip(turtles,colors):
        #step = random.randint(0,30)
        #angle = random.randint(-90,90)
        step = 10
        angle = random.choice([0,180,90,-90])
        t.color(c)
        t.forward(step)
        t.left(angle)

หรือลากเส้นไปมาดูว่าแบบไหนสวย เช่นอันนี้:

import turtle

t = turtle.Turtle()
t.speed("normal")
span = 400
step = 20
t.shape('circle')

for i in range(0,span+step,step):
    t.penup()
    t.goto(0,i)
    t.pendown()
    t.goto(span-i, 0)

    t.penup()
    t.goto(0,i)
    t.pendown()
    t.goto(-span+i, 0)

    t.penup()
    t.goto(0,-i)
    t.pendown()
    t.goto(span-i, 0)

    t.penup()
    t.goto(0,-i)
    t.pendown()
    t.goto(-span+i, 0)

t.hideturtle()

วิทย์ม.ต้น: Decision Fatigue, ส่องกล้องจุลทรรศน์

วันพุธสัปดาห์นี้เด็กๆมัธยมต้นเรียนเรื่อง decision fatigue จากหนังสือ The Art of Thinking Clearly โดยคุณ Rolf Dobelli ที่การตัดสินใจแต่ละครั้งของเราต้องใช้พลังงาน ดังนั้นไม่ควรตัดสินใจอะไรสำคัญๆเมื่อหิวหรือเหนื่อย และพยายามลดการตัดสินใจที่ไม่สำคัญให้น้อยๆไว้ (เช่นไม่ค่อยเปลี่ยนแบบเสื้อผ้าหรืออาหาร) จะได้มีพลังงานไว้ตัดสินใจสิ่งที่สำคัญกว่า

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

วิทย์ม.ต้น: วาดรูปในไพธอนด้วยเต่า (Turtle)

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

ข้อมูลอ้างอิงว่า Turtle มีคำสั่งอะไรให้ใช้บ้าง

ตัวอย่างวิธีใช้ที่ Tutorial Points

ตัวอย่างวิธีใช้ที่ Simplified Python

คลิปวิธีใช้: