บล็อกหมวดต่างๆ

Scratch แบ่งบล็อกเป็นหมวดต่างๆ ซึ่งมีความแตกต่างกันระหว่างการใช้กับตัวละครกับฉากหลัง เนื่องจากฉากหลังเคลื่อนที่ไม่ได้ รูปด้านล่างนี้แสดงบล็อกหมวดต่างๆ ทั้งเวอร์ชั่นไทยกับอังกฤษ หมวดการเคลื่อนที่ (Motion) เกี่ยวกับการเคลื่อนที่และการเคลื่อนย้ายตำแหน่งของตัวละคร หมวดรูปร่าง (Looks) เกี่ยวกับรูปร่างของตัวละคร เช่นสี ขนาด การแสดงคำพูดและความคิด รวมถึงเอฟเฟคต่างๆ หมวดเสียง (Sound) ใช้สำหรับเปิดเสียงดนตรีชนิดต่างๆ ผู้ใช้อาจอัดเสียงพูดด้วยตัวเองแล้วนำมาใส่ในตัวละคร เหมือนกับการพากย์เสียง หมวดปากกา (Pen) ใช้สำหรับวาดรูปบนเวที หมวดควบคุม (Control) ใช้ในการบังคับทิศทางการทำงานของสคริปต์เช่น การทำงานซ้ำ การตัดสินใจ การติดต่อสื่อสารกับตัวละครอื่นๆ และที่สำคัญใช้กำหนดเริ่มต้นและหยุดการทำงานของสคริปต์ หมวดกำลังรับรู้ (Sensing) ใช้รับสัญญานต่างๆที่มีต่อตัวละครหรือผู้ใช้งานเช่นการชนกันของตัวละคร การกดคีย์ของผู้ใช้งาน หมวดโอเปอร์เรเตอร์ (Operators) เกี่ยวกับการคำนวณทางคณิตศาสตร์และการจัดการตัวอักษร หมวดตัวแปร (Variables) ใช้ในการสร้างตัวแปรเพื่อเก็บข้อมูลเอาไว้ใช้ภายหลัง ตัวแปรที่สร้างสามารถใช้ส่วนตัวของแต่ละตัวละครหรือใช้ร่วมกันกับตัวละครทั้งหมดรวมทั้งฉากหลังด้วย

Project Euler

การฝึกเขียนโปรแกรมนั้นช่วยส่งเสริมการคิดคำนวณอย่างเป็นระบบ (Computational Thinking) สำหรับมือใหม่หรือมือโปร ที่ต้องการความท้าทายในการเขียนโปรแกรม ผมแนะนำโปรเจกหนึ่งที่น่าสนใจนั้นก็คือ Project Euler โปรเจกนี้จะมีคำถามทางคณิตศาสตร์ให้แก้ผ่านการเขียนโปรแกรมด้วยภาษาอะไรก็ได้ ลองเข้าไปดูนะครับ

Computational Thinking: จากการเขียนโปรแกรม ตอนที่ 2

แนวทางปฏิบัติที่นำหลักการในการเขียนโปรแกรมมาสู่การปฏิบัติจริง incremental /iterative คือการพัฒนาที่ละน้อยๆ แล้วทดลองใช้ จากนั้นก็พัฒนาเพิ่มเติม testing/debugging คือการตรวจสอบว่าสิ่งที่ทำอยู่นั้นถูกต้องหรือไม่ ถ้าไม่ถูกต้องจะต้องหาต้นตอปัญหาให้เจอและทำการแก้ไขให้สำเร็จ abstraction/modularization คือการนิยามสิ่งที่สร้างใหม่โดยใช้ชื่อแทนสิ่งนั้น ซึ่งเกิดจากการรวบรวมสิ่งที่มีอยู่แล้วมาประกอบทำงานด้วยกัน reuse/ remix คือการสร้างสิ่งใหม่ด้วยการต่อยอดจากสิ่งที่คนอื่นหรือเราเองทำไว้ก่อนหน้านี้ วิธีการที่มีประสิทธิภาพในการเรียนรู้หลักการและแนวทางปฏิบัตินี้คือการให้โอกาสผู้เรียนได้เรียนรู้ผ่านประสบการณ์เหล่านี้ การออกแบบโปรแกรม (Design) เป็นการสร้างสิ่งต่างๆ ขึ้นมาใหม่ ไม่ใช่ใช้แต่สิ่งที่มีอยู่แล้วเท่านั้น การสร้างแรงจูงใจในการสร้างโปรแกรมมาใช้งาน (Interests) เป็นการกระตุ้นให้สร้างสิ่งต่างๆ ขึ้นมาอย่างมีความหมายและเกี่ยวของกับสิ่งที่ตัวเองสนใจ การรวมมือกันในการเขียนโปรแกรมขนาดใหญ่ (Collaboration) คือการเรียนรู้ที่จะทำงานร่วมกับผู้อื่นเพื่อสร้างสิ่งต่างๆ ร่วมกัน การศึกษาโปรแกรมของคนอื่น (Reflection) เป็นการเรียนรู้ในงานสร้างสรรค์ของคนอื่นเพื่อมาประยุกต์ใช้ในโอกาสต่อไป หลักการและวิธีการเขียนโปรแกรมยังมีอีกมากมายและไม่ง่ายนักในการทำความเข้าใจ โอกาสต่อๆไปจะพูดถึงเรื่องเหล่านี้มากขึ้น ติดตามกันต่อนะครับ