Category Archives: programming

วิทย์ม.ต้น: หัดไพธอน (Flow Control), หัด Scratch (ให้บวกเลข, ประมาณค่าพาย Pi)

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

1. คลาสรุ่นพี่ เรียน Python จากหนังสือฟรีบนเว็บชื่อ Automate the Boring Stuff with Python โดยเขียนโปรแกรมใน Mu-Editor เราคุยกันเรื่อง Boolean values, comparison operator, Boolean operators, flow control, if-else, while, break, continue, for loop, range, import, sys.exit()

2. คลาสรุ่นพี่ได้เล่นเกมทายเลขช่วง 1-100 ถ้ารู้ว่าคำตอบมากกว่าหรือน้อยกว่าที่ทายไป จะไม่ต้องทายเกินกว่า 7 ครั้ง เพราะถ้าเราแบ่งครึ่งช่วงที่เป็นไปได้เรื่อยๆช่วงใหญ่ๆ 1-100 จะหดลงเหลือช่วงขนาด 1 ในไม่เกิน 7 ครั้ง ทั้งนี้เพราะ 2 ** 7 = 128 ซึ่งมากกว่า 100

ทำนองเดียวกัน การทาย 10 ครั้งจะสามารถทายเลขในช่วง 1-1024 หรือทาย 20 ครั้งจะสามารถทายเลขในช่วง 1-1,048,576

3. รู้จักใช้เว็บ http://pythontutor.com/visualize.html เพื่อกดดูการทำงานทีละขั้นตอนของโปรแกรมไพธอนที่เราเขียน

การบ้านคือไปอ่านและพิมพ์ตาม Chapter 3 ต่อและแก้ปัญหาเหล่านี้โดยเขียนโปรแกรมไพธอนครับ: 1) โจทย์ข้อ 1 ของ Project Euler และ 2) ถ้าเขียนเลข 7 หลักโดยใช้ตัวเลข 1, 2, 3, 4, 5, 6, 7 ทุกตัว ตัวละหนึ่งครั้ง โอกาสที่เลข 7 หลักที่เขียนจะหารลงตัวด้วย 11 เท่ากับเท่าไร (ยกตัวอย่างเช่น 1235476, 2345761, และ 7645132 หารด้วย 11 ลงตัว แต่ 1234567, 234716, หรือ 7645123 หาร 11 ไม่ลงตัว)

3. คลาสรุ่นน้องหัดสอน Scratch ให้คำนวณตัวเลขให้เรา เช่นหาค่า 1+2+3+…+100, บวกเลขคี่บวกที่ไม่เกิน 100, หาค่าของ 1+1/2+1/4+1/8+…+1/1024, และประมาณค่า π (พาย) = 4/1 – 4/3 + 4/5 – 4/7 + 4/9 – 4/11 +…

บวกเลข 1, 2, 3…, 100 ตัวอย่างนี้อยู่ที่ https://scratch.mit.edu/projects/431724939/
บวกเลขคี่ 1, 3, 5, …, 99 ตัวอย่างนี้อยู่ที่ https://scratch.mit.edu/projects/431728786/
บวกเลข 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + … + 1/1024 ตัวอย่างนี้อยู่ที่ https://scratch.mit.edu/projects/431731894/
ประมาณค่า π ด้วยสูตร Gregory-Liebniz (https://en.wikipedia.org/wiki/Leibniz_formula_for_π ):
π = 4/1 – 4/3 + 4/5 – 4/7 + 4/9 – 4/11 +…
ตัวอย่างนี้อยู่ที่  https://scratch.mit.edu/projects/431738509/

4. คลาสรุ่นน้องได้รู้จักเว็บหาวันเกิดตัวเองใน π ที่ https://www.piday.org/find-birthday-in-pi/

การบ้านรุ่นน้องคือให้ไปสั่งให้ Scratch คำนวณค่า π  จากสูตรนี้ดูครับ:

วิทย์ม.ต้น: หัดไพธอน (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):

วิทย์ม.ต้น: เว็บฝึกพิมพ์, หัดเล่น Scratch

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

1. รู้จักเว็บฝึกพิมพ์ดีดเพื่อจะได้ฝึกพิมพ์สัมผัสได้เร็วๆ มีเว็บ Nitro Type และ ZType

2. ทำความรู้จักเขียนโปรแกรมด้วย Scratch กันครับ ผมให้เด็กๆสร้างบัญชีผู้ใช้สำหรับตนเอง โปรแกรมต่างๆที่สร้างจะได้ไม่หายไปไหน  ผมให้การบ้านไปทำตาม Tutorial ของเขาให้มากๆ จะได้เห็นตัวอย่างว่าทำอะไรได้บ้างอย่างไร

3. มีแนะนำเป็นภาษาไทยที่ https://kru-it.com/computing-science-m2/scratch-review/ และที่ สอนเด็กให้คิด สอนศิษย์ให้ Scratch

4. ถ้าอยากดูคลิปหัดใช้ Scratch เป็นภาษาไทย ลองดูรายการเหล่านี้ดูได้ครับ
https://www.youtube.com/playlist?list=PLrLWP63aYwvuuHErsmuWNqpuvTPzKqxHr
และ
https://www.youtube.com/playlist?list=PLrLWP63aYwvtM7i6ZR1X9p3K5dl7T8_2A