Scratch ในวิทยาการคำนวณ
เรียนการโปรแกรมด้วย Scratch
Scratch คือ เครื่องมือสำหรับการโปรแกรมด้วยภาพที่ใช้ได้ฟรี สำหรับนักเรียน นักวิชาการ ครู ผู้ปกครองที่ง่ายจะสร้างการ์ตูน เกม และเป็นก้าวสำคัญที่จะพัฒนาไปสู่การเขียนโปรแกรมระดับสูงต่อไป Scratch ถูกใช้ในขอบเขตอื่น ๆ ทั้งโครงงานวิทยาศาสตร์ คณิตศาสตร์ รวมทั้งการสร้างแบบจำลอง และการทดลอง แล้วยังช่วยสร้างเอกสารนำเสนอของอาจารย์ เรื่องราวทางสังคมศาสตร์ ศิลปะ และดนตรี การเปิดโครงงานสามารถใช้งานบนเว็บไซต์ แก้ไข และทดสอบโดยไม่ต้องจัดเก็บ หรือการลงทะเบียนแต่อย่างใด ซึ่ง Scratch เริ่มต้นโครงการจากการทำงานร่วมกันระหว่าง Google และ MIT's Scratch team แล้วทีมของ Google ได้พัฒนา Blockly เพื่อสนับสนุนการเรียนรู้การโปรแกรม และการนำไปใช้ในภาคธุรกิจได้ (แปลจาก wikipedia.org และ mit.edu)

เมื่อ 30 ม.ค.59 ประธานาธิบดีสหรัฐพูดออกสื่อ หนุนให้มีการสอน Computer Science ในโรงเรียน .. In this week’s address, the President discussed his plan to give all students across the country the chance to learn computer science (CS) in school.

ในเว็บไซต์ code.org ผู้ประสบความสำเร็จด้านไอที ออกมาพูดสนับสนุนการสอนเขียนโปรแกรมหรือ วิทยาศาสตร์คอมพิวเตอร์ในโรงเรียนของสหรัฐ สอดรับกับประเทศไทยมี แผนพัฒนาดิจิทัลเพื่อเศรษฐกิจและสังคม ลงนามเห็นชอม 5 เม.ย.59
ระบบการศึกษา
ก่อนปรับหลักสูตรเริ่มใช้ปีการศึกษา 2561 กับ ป.1 ป.4 ม.1 ม.4 นั้น
นักเรียนในชั้น ม.3 ของประเทศไทยเรียน C# ครับ

ได้อ่านหนังสือวิชา เทคโนโลยีสารสนเทศและการสื่อสาร สำหรับ ม.3 มีบทที่ 3 การพัฒนาโปรแกรม หน้า 39 – 68 มีเนื้อหาสอนการใช้โปรแกรมประเภท IDE คือ thaiall.com/csharp/sharpdevelop
ภาษาไพทอน บรรจุในหนังสือเรียน "วิชาวิทยาการคำนวณ" ชั้น ม.1 บทที่ 3

แฟนเพจ/สาขาคอมฯ สสวท.
สืบเนื่องจากการปรับปรุงหลักสูตรใหม่ ในกลุ่มสาระการเรียนรู้วิทยาศาสตร์ (ฉบับปรับปรุง พ.ศ.2560) ตามหลักสูตรแกนกลางการศึกษาขั้นพื้นฐาน พุทธศักราช 2551 โดย สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี (สสวท.) ดังนั้น ตั้งแต่ พฤษภาคม 2561 เมื่อเปิดเรียน น้อง ม.1 ก็จะได้พบ หนังสือวิทยาการคำนวณ ที่จะเป็นวิชาใหม่ จากการปรับปรุงหลักสูตร พบว่า ภาษาไพทอน บรรจุในหนังสือเรียน "วิชาวิทยาการคำนวณ" ชั้น ม.1 บทที่ 3
จากการติดตามข้อมูลในแฟนเพจ สาขาคอมพิวเตอร์ สสวท. และฟังคลิ๊ปคุณครู 2 ท่าน แนะนำหนังสือสำหรับประถม และมัธยม พบว่า ช่วงเวลาเริ่มประมาณ 4.30 จะอธิบายเรื่องบทที่ 3 ของ ม.1 ว่าในหนังสือว่ามีเนื้อหา ไพทอน แต่ถ้าไม่สะดวกจะเรียนบทนี้ ก็ข้ามไปเรียน Scratch ได้ แต่ถ้าสนใจก็จะมี 8 หัวข้อกับงูใหญ่ตัวนี้
3.1 รู้จักไพทอน
3.2 ตัวแปร
3.3 ชนิดข้อมูลพื้นฐาน
3.4 การแปลงชนิดข้อมูล
3.5 การเขียนโปรแกรมไพทอนในโหมดสคริปต์
3.6 ฝึกเขียนโปรแกรมกับเต่าไพทอน
3.7 การทำงานแบบวนซ้ำ
3.8 การทำงานแบบมีทางเลือก
การใช้งาน scratch แบบ online
1. เริ่มต้นเข้า https://scratch.mit.edu
2. เปลี่ยน english เป็น ไทย ได้
ที่หน้าเว็บนี้ จะพบว่าเมนูเป็น english หากต้องการเปลี่ยนเป็นภาษาไทย ให้ไปที่ข้างล่างสุดของหน้าเว็บ จะพบช่อง dropdown list ที่เปลี่ยนเป็น "ไทย" ได้
3. เริ่มงาน ด้วยการกด Create บนแถบเมนูสีฟ้า
แล้วจะพบส่วนสำคัญอย่างน้อย 4 ส่วน ส่วนแรก คือ ตัวละครเทพยาดา เรียกว่า Sprite ลักษณะเหมือนแมวสีเหลือง ส่วนที่สอง คือ เวที (Stage) เป็นพื้นที่แสดงของ ตัวละคร ส่วนที่สาม คือ พื้นที่สคลิ๊ป (Script area) สำหรับลากกล่องคำสั่งไปวางต่อกัน ส่วนที่สี่ คือ ธงเขียว (Start) หากกล่องคำสั่งถูกต้อง ก็จะทำงานหลังใช้เมาส์กดที่ธงเขียว และ หากต้องการเปลี่ยนภาษาในหน้านี้ ให้มองไปที่มุมบนขวาจะมีรูปลูกโลก กดเปลี่ยนภาษาที่นั่น
4. ถ้าไม่ signin หรือเข้าใช้ระบบ
สามารถสร้าง script แล้ว download หรือ upload ได้ แฟ้มที่จะเก็บในเครื่อง เช่น drawoval.sb2
5. ถ้า signin ก็ต้องเลือก join scratch เพื่อสมัครสมาชิก
หน้าแรก พบ Choose a scratch username, Choose a Password และ Confirm Password
หน้าที่สอง พบ Birth Month and Year, Gender และ Country
หน้าที่สาม พบ Email address และ Confirm email address
หน้าที่สี่ พบ You're new logged in! You can start exploring and creating projects. If you want to share and comment, simple click the link in the email we sent you at [youremail@yourhost.com] และ OK Lets Go!
6. ไปกดลิงค์ใน e-mail เพื่อยืนยันตัวตน
คลิ๊ก "Confirm my email address"
7. หากมีการสร้าง script ใน scratch
สามารถเก็บ (save) script ไว้ และแบ่ง (share) ให้เพื่อนได้ ผลงานอยู่ใน my stuff แล้วยังแสดงความคิดเห็นต่อท้ายผลงานได้ เช่น https://scratch.mit.edu/projects/213328544/
บทเรียนที่ 1 การใช้งาน scratch ครั้งแรก
วัตถุประสงค์
1. เพื่อเรียนรู้การต่อ block 
2. เพื่อประมวลตาม block ที่ต่อเสร็จ
3. เพื่อเก็บ script เข้าเครื่องคอมพิวเตอร์ได้
4. เพื่อนำ script กลับมาประมวลผลได้


+ mycat.sb2 54,797 bytes
1. เข้า http://scratch.mit.edu
2. กด Create เพื่อสร้างผลงาน หรือคลิ๊ก Try it out
3. ถ้าติดตั้ง Flash แล้ว จะข้ามไปข้อ 4
แต่ถ้าไม่ได้ติดตั้ง Flash ไว้ก่อนหน้านี้
เมื่อทดสอบใน chrome browser จะพบข้อความ
- ให้คลิ๊ก "Click to enable Adobe Flash Player"
- ให้คลิ๊ก "Allow" to Run Flash

4. พบตัว Scratch สีเหลือง หน้าตาเหมือนแมว
ในหน้าต่าง Stage ที่เป็นเวทีแสดงของแมว
ส่วนนี้ขยายเต็ม full screen ได้
5. ด้านบนของตัวแมว Scratch จะช่อง Project title
พบชื่องานว่า "Untitled" เริ่มต้นก็ควรตั้งชื่องานใหม่
ให้เปลี่ยนชื่องานนี้เป็น mycat หรือตามที่ชอบ
6. ในแท็บ (Tab) ชื่อ Scripts มี Block palette
ปัจจุบันอยู่ที่กลุ่มบล็อก Motion
ด้านล่างเป็นบล็อกที่ใช้ได้ในกลุ่มนี้
7. การเริ่มต้น ให้คลิ๊กกลุ่มบล็อก Events
จะพบบล็อกชื่อว่า "When clicked"
8. ใช้ mouse คลิ๊กบล็อกนั้น ค้างไว้ (hold)
แล้วลากไป (drag) ปล่อยในพื้นที่ Scripts area ด้านขวา
ที่เป็นพื้นที่ต่อบล็อก ให้ปล่อยบล็อกไว้โซนด้านบนของที่ว่าง
จะได้จัดวางเป็นระเบียบแบบบนลงล่าง (Top-Down design)
9. กลับไปคลิ๊กกลุ่มบล็อก Motion อีกครั้ง
จะพบบล็อกชื่อ "move 10 steps"
ลากไปต่อท้ายบล็อก "When clicked"
10. ทดสอบสั่งงาน - ครั้งแรก
โดยคลิ๊กสัญลักษณ์รูปธงสีเขียว (Green flag to start)
หมายถึง ทำงานตามสั่ง
จะพบว่าแมวเดินไป 10 steps
กดที่ธงสีเขียวอีกครั้งก็เดินอีก 10 steps ซึ่งไปได้ประมาณ 10 จุด
11. เก็บ script ไว้ในเครื่อง (download script)
สั่งผ่าน menu bar ให้คลิ๊ก file, download to your computer
ก็จะได้แฟ้ม mycat.sb2 มาไว้ในเครื่องคอมพิวเตอร์
12. ปิดหน้าต่าง หรือกลับไปที่ http://scratch.mit.edu
แล้วคลิ๊ก create ใหม่
จะพบว่างานที่เคยทำไว้ หายไปจาก Scripts area และ Stage
13. เรียก script กลับมาจากในเครื่อง (upload script)
สั่งผ่าน menu bar ให้คลิ๊ก file, upload from your computer
แล้วกด ok เพื่อยืนยัน ก็จะพบว่า script ที่เคยเก็บไว้ กลับมาแล้ว
มีวัตถุสั่งงาน 2 วัตถุเหมือนเดิม ในพื้นที่ทำงาน
14. ทำการสร้างบล็อกเพิ่มอีก 2 บล็อก
คือ "When clicked" และ "move -10 steps"
โดยเปลี่ยนจากเลข 10 เป็น -10
หากคลิ๊กที่ธงสีเขียวในบล็อกชุดใดก็จะทำงานตามบล็อกในชุดนั้น
ทำให้แมวเดินหน้า ถอยหลังได้ ตามการคลิ๊ก
บทเรียนที่ 2 วาดรูปทรงสีเหลี่ยมแรก
วัตถุประสงค์
1. เพื่อเรียนรู้การวาดรูปหลายเหลี่ยม
2. เพื่อฝึกการหมุนตามองศาที่กำหนด
3. เพื่อฝึกการย้ายตำแหน่ง
4. เพื่อฝึกการใช้ปากกา

+ drawrec.sb2 54,900 bytes
1. ใน block palette กลุ่ม events
เลือก When clicked แล้วลากไปวางใน Scripts area
2. เปลี่ยนเป็นกลุ่ม pen
เลือก pen down ลากไปต่อเป็น block ที่ 2
3. เปลี่ยนเป็นกลุ่ม Motion
เลือก Move 100 steps เป็น block ที่ 3
เลือก Turn [right] 90 degrees เป็น block ที่ 4
เลือก Move 100 steps เป็น block ที่ 5
เลือก Turn [right] 90 degrees เป็น block ที่ 6
เลือก Move 100 steps เป็น block ที่ 7
เลือก Turn [right] 90 degrees เป็น block ที่ 8
เลือก Move 100 steps เป็น block ที่ 9
เลือก Turn [right] 90 degrees เป็น block ที่ 10
3. เปลี่ยนเป็นกลุ่ม pen
เลือก pen up ลากไปต่อเป็น block ที่ 11
4. ย้ายแมวออกไปจะได้เห็นชัด ๆ
เลือก go to x:-100 y:0 ลากไปต่อเป็น block ที่ 12
จะได้เห็น สี่เหลี่ยม ชัดขึ้น
5. แทรก block ในกลุ่ม move ให้ไปต่อท้าย block แรก
เลือก go to x:0 y:0 ลากไปต่อเป็น block ที่ 2
ส่วน block ที่ 2 เดิม คือ pen down ก็มาเป็น block ที่ 3
ทำให้การ start ทุกครั้ง คือ การเริ่มที่จุดเริ่มต้น
6. หากผิดพลาด ต้องการทำใหม่ มีให้เลือกดังนี้
- File, new เริ่มต้นทุกอย่างใหม่
- File, revert กลับไปเริ่มต้นก่อนแก้ไขโปรเจค
บทเรียนที่ 3 วาดรูปทรงวงรี
วัตถุประสงค์
1. เพื่อเรียนรู้การวาดรูปวงรี
2. เพื่อฝึกการทำซ้ำ
3. เพื่อฝึกการสร้างตัวแปร
4. เพื่อฝึกการใช้ตัวดำเนินการ
5. เพื่อฝึกการใช้ cos และ sin

+ drawoval.sb2 55,029 bytes
ก่อนวาดรูปวงรี ต้องทราบว่า ตำแหน่งของวงรี มาจากค่า cos และ sin
1. ใน block palette กลุ่ม events
เลือก When clicked แล้วลากไปวางใน Scripts area
2. เปลี่ยนเป็นกลุ่ม data แล้ว Make a Variable ชื่อ t
เลือก set [t] to 0 ลากไปต่อเป็น block ที่ 2 เพื่อกำหนดค่าเริ่มต้น
3. เปลี่ยนเป็นกลุ่ม Pen
เลือก pen up เป็น block ที่ 3
4. เปลี่ยนเป็นกลุ่ม Control
เลือก repeat 10 เป็น block ที่ 4
เปลี่ยน 10 เป็น 360
ต่อไปจะมีอีก 3 block อยู่ภายใน block นี้
5. เปลี่ยนเป็นกลุ่ม Data
เลือก set [t] to 0 ลากไปต่อเป็น block ที่ 5 แต่อยู่ใน block repeat ตัวแรก
เปลี่ยนเป็นกลุ่ม Operators
เลือก []+[] ไปวางแทนที่ 0 ของ block ที่ 5
เปลี่ยนเป็นกลุ่ม Data
แล้ว [] ตัวหน้า + นั้น ให้ลาก [t] จากกลุ่ม data ไปวาง
แล้ว [] ตัวหลัง + นั้น ให้พิมพ์ 1
6. เปลี่ยนเป็นกลุ่ม Motion
เลือก go to x:[] y:[] เป็น block ที่ 6 แต่ยังอยู่ใน block repeat ตัวแรก
เปลี่ยนเป็นกลุ่ม Operators
เลือก []*[] ไปเป็นค่าของ x:
แล้ว [] ตัวหน้า * นั้น ให้พิมพ์ 100
เลือก sqrt of [] ไปวางหลัง *
เปลี่ยนจาก sqrt เป็น cos
เลือก []*[] ไปเป็นค่าของ y:
แล้ว [] ตัวหน้า * นั้น ให้พิมพ์ 150
เลือก sqrt of [] ไปวางหลัง *
เปลี่ยนจาก sqrt เป็น sin
เปลี่ยนเป็นกลุ่ม Data
ลาก [t] ไปวางไว้หลัง of ของ x:
ลาก [t] ไปวางไว้หลัง of ของ y:
7. เปลี่ยนเป็นกลุ่ม Pen
เลือก pen down เป็น block ที่ 7
8. ถ้าเปลี่ยน 150 เป็น 100 ก็จะได้ วงกลม แทน วงรี
การใช้ scratch สร้างโปรแกรมพิมพ์ 1 ถึง 5

+ simplerandomnumbers.pdf
ทราบข่าวว่า Google สนับสนุนให้เด็กที่สหรัฐ เรียนรู้ วิทยาการคอมพิวเตอร์ (Computer Science) มีคลิ๊ปและรายละเอียดที่ cs-first.com เคยสนใจเรื่องพิมพ์ตัวเลข จึงลองใช้ scratch ที่ scratch.mit.edu สร้างโปรแกรม เพื่อพูด (say) 1 ถึง 5 แบบทำซ้ำ
พูดเลข 1 เป็นจำนวน 1 ครั้ง คั่นด้วย , ทุกครั้ง แล้วเลื่อนเป็น 2 พูดเลข 2 เป็นจำนวน 2 ครั้ง คั่นด้วย , ทุกครั้ง แล้วเลื่อนเป็น 3 ไปถึงเลข 5 .. พูดเลข 5 จำนวน 5 ครั้ง คั่นด้วย , ทุกครั้งแล้วหยุด
เอกสารเทียบ scratch กับ java
อธิบายว่าการใช้ random number ใน scratch เป็นอย่างไร ถ้าเขียนด้วยภาษา java จะเป็นอย่างไร ทั้งแบบสุ่มครั้งเดียว และสุ่ม 4 ครั้ง มีตัวอย่างภาษาจาวาชื่อ class dice ที่หมุนลูกเต๋าจำนวน 2 ลูก 100 ครั้ง แล้วดูความเป็นไปได้ที่จะออกเลข 2 เลข 7 และเลข 12 จำนวนกี่ครั้ง
แมว scratch
การใช้แฟ้ม sayonefive.sb2 55 KB
มีขั้นตอนดังนี้
1. เปิดเว็บไซต์ Scratch
2. คลิ๊ก Create บน menu bar
3. คลิ๊ก แฟ้ม, อัพโหลดจากคอมพิวเตอร์
4. ทดสอบประมวลผล คลิ๊กธงสีเขียว
Motion
ตัวอย่างการใช้งาน Block
motion1 https://scratch.mit.edu/projects/119533982/
event1 https://scratch.mit.edu/projects/119536440/
control1 https://scratch.mit.edu/projects/119540269/
looks1 https://scratch.mit.edu/projects/119538466/
sound1 https://scratch.mit.edu/projects/119542838/
sensing1 https://scratch.mit.edu/projects/119544480/
pen1 https://scratch.mit.edu/projects/119609275/
operator1 https://scratch.mit.edu/projects/119617230/
data1 https://scratch.mit.edu/projects/119617915/
moreblocks1 https://scratch.mit.edu/projects/119619146/
one to five https://scratch.mit.edu/projects/119622077/
Events
Looks
Control
Sound
Sensing
Pen
Operators
Data
More Blocks
เลือกแมว
คำอธิบาย
มีแมวอยู่ 3 ตัว ให้คลิ๊กเลือกแมว
ถ้าเลือกถูกตัวจะพบคำว่า good try
ถ้าไม่ถูกก็ไม่ปรากฎอะไรขึ้น
ถ้าพบคำว่า good try ก็จะสุ่มคำตอบใหม่
แล้วเริ่มต้นเล่นใหม่ในทันทีได้เลย
Download : selectcat1.sb2
วาดสี่เหลี่ยม
คำอธิบาย
วาดลายกรอบสี่เหลี่ยมซ้อนกัน 3 กรอบ
และให้แมวอยู่ในกรอบในสุด
ใช้การยกปากกา และจรดปากกาลง
Download : draw2table.sb2
ภาคผนวก. Blockly
ภายใต้ google for education มีบริการ try blockly ถูกใช้สำหรับการโปรแกรมด้วยภาพ สามารถประมวลผล และแสดงเป็นภาษาต่าง ๆ อาทิ javascript, python, php, lua หรือ dart แล้วมีการนำ blockly ไปต่อยอดอีกมากมาย อาทิ Code.org, Microbit, Blockly-games, CodeBug, Ozoblockly
+ thaiall.com/google
+ thaiall.com/java
ภาคผนวก. ยุคใหม่ของวิทยาการคอมพิวเตอร์ (itinlife537)

โอบาม่ากล่าวผ่าน whitehouse.gov ที่เผยแพร่เมื่อ 30 มกราคม 2559 ว่า “ในเศรษฐกิจยุคใหม่ วิทยาการคอมพิวเตอร์ (Computer Science) จะไม่เป็นเพียงทักษะทางเลือก แต่จะเป็นทักษะพื้นฐาน” ที่มีทั้งการอ่าน การเขียน และการคำนวณ แล้วเขาจะหางบ 4 พันล้านเหรียญมาผลักดันหลักสูตรวิทยาการคอมพิวเตอร์ให้มีการเรียนในระดับประถมศึกษาถึงมัธยมศึกษา ซึ่งเดิมจะเน้นให้อ่านออกเขียนได้ แต่ยุคใหม่ต้องให้การคำนวณเป็นทักษะพื้นฐานของเยาวชนทุกคน แม้ว่าหางบประมาณก้อนใหญ่ไม่ได้ ก็ยังหน่วยงาน National Science Foundation ได้เตรียมงบ 135 ล้านเหรียญไว้อบรมพัฒนาครูผู้สอนให้มีความสามารถทางวิทยากรคอมพิวเตอร์ไว้แล้ว

อเมริกาเป็นผู้นำด้านเทคโนโลยีที่ถือเป็นจุดแข็ง เพราะเป็นประเทศที่ประสบความสำเร็จอย่างชัดเจน มีผลงานของคนในประเทศ อาทิ Facebook.com, Microsoft.com, Google.com, Apple.com, Oracle.com ดังนั้นการเสริมจุดแข็งจึงเป็นสิ่งที่ตอกย้ำความสำเร็จว่าเดินไปถูกทาง โดยมองไปที่การพัฒนาการศึกษาที่บูรณาการกับวิทยาการคอมพิวเตอร์สำหรับเด็กตั้งแต่เริ่มอ่านออกเขียนได้ ในอนาคตเศรษฐกิจของทุกประเทศทั่วโลกจะยึดโยงกับเทคโนโลยีสารสนเทศอย่างหลีกเลี่ยงไม่ได้ ที่ประเทศจีนมีคุณแจ็ค หม่า ที่ทำ Alibaba.com บริการ B2B ก็ขึ้นอันดับหนึ่งของคนรวยที่สุดในจีนแล้ว ที่ประเทศอังกฤษในอดีตมีคุณอลัน ทัวริ่ง ผู้คิดค้นเครื่องถอดรหัสเครื่อง Enigma ของเยอรมันจนทำให้สงความยุติลงเร็วกว่าที่ควรจะเป็น ถือเป็นผลงานที่ต้องจดจำ และได้รับการยกย่องให้เป็นบิดาแห่งวิทยาการคอมพิวเตอร์

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


http://goo.gl/72BPC