วิทย์ม.ต้น: เขียนโปรแกรมไพธอนแก้ปัญหาแบบควายถึก, โปรแกรมเข้ารหัส Caesar Cipher, และเว็บฝึกเขียนไพธอน

ผมเอาโจทย์เลขนี้มาให้เด็กๆดูครับ:

โจทย์คือ a, b, c, d เป็นจำนวนเต็มบวก ผลรวมของ a, b, c, d เท่ากับ 63 ให้หาค่าที่มากที่สุดของ ab + bc + cd ในวิดีโอแสดงวิธีทำด้วยรูปภาพ แต่สมมุติว่าเด็กๆไม่รู้ว่าจะทำอย่างไรแต่มีคอมพิวเตอร์อยู่ก็สามารถเขียนโปรแกรมให้คอมพิวเตอร์ไล่ตัวเลข a, b, c, d ดูได้

ผมบอกเด็กๆว่าเดี๋ยวนี้คอมพิวเตอร์เร็วมาก ถ้ามีของสักพันล้านชิ้นก็ยังให้มันไล่ดูให้เราได้โดยรอไม่นานนัก ในโจทย์นี้ค่าที่เป็นไปได้ของ a, b, c จะประมาณ 60 แบบของแต่ละตัว และค่าของ d จะเท่ากับ 63-(a+b+c) ดังนั้นค่าที่เป็นไปได้ทั้งหมดจะประมาณ 60x60x60 หรือประมาณ 200,000 เท่านั้น คอมพิวเตอร์ไล่ให้ได้ในเวลาไม่ถึงวินาที

หน้าตาโปรแกรมก็เป็นประมาณนี้ครับ:

วิธีให้คอมพิวเตอร์ช่วยคิดนี้ทำให้เราสามารถถามคำถามมากขึ้นไปอีกได้เช่นสำหรับค่า ab + bc + cd แต่ละค่าจะมีชุด (a, b, c, d) กี่แบบ เอามาวาดฮิสโตแกรมดูดีไหม มีค่าไหนที่เป็นไปไม่ได้บ้าง ฯลฯ

สำหรับการบ้านที่ผมให้เด็กๆม.2-3 ไปพยายามเขียนฟังก์ชั่นเข้ารหัสแบบเลื่อนตัวอักษร (Caesar Cipher) ผมก็มาเขียนเฉลยให้เด็กๆดูสดๆว่าผมเขียนอย่างไร เจอปัญหาและบั๊กอย่างไร เขียนไปตรวจสอบไปอย่างไรครับ หน้าตาจอตอนเขียนก็เป็นประมาณนี้:

โหลด Jupyter Notebook ที่บันทึกการเฉลยที่นี่ครับ หรือเปิดดูในเบราเซอร์ได้ที่นี่ครับ: https://nbviewer.jupyter.org/urls/witpoko.com/wp-content/uploads/2019/06/2019-06-07_G8-9.ipynb

สำหรับเด็กๆม.1 ผมให้ทำแบบฝึกหัดกับเว็บเรียนไพธอนสองเว็บครับ ให้เขาทดลองทำแล้วเลือกดูว่าชอบอันไหนระหว่าง https://www.w3schools.com/python/ และ https://www.learnpython.org ขณะที่ทำแล้วมีปัญหาผมก็เข้าไปแนะนำ มีกระดาษทดตอนแนะนำเป็น Jupyter Notebook ให้โหลดไปดูได้ที่นี่ หรือเปิดดูในเบราเซอร์ได้ที่นี่ครับ: https://nbviewer.jupyter.org/urls/witpoko.com/wp-content/uploads/2019/06/2019-06-07_G7.ipynb

ผมไปพบลิงก์สำหรับเรียนรู้ภาษาไพธอนถ้าอ่านภาษาอังกฤษไม่คล่องด้วยครับ เข้าไปดูได้ที่ https://phyblas.hinaboshi.com/saraban/python (แต่อย่างไรก็ตามผมแนะนำให้หัดอ่านภาษาอังกฤษไปเรื่อยๆนะครับ จะได้เก่งภาษาขึ้นเรื่อยๆ)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.