Why Programming? เขียนโปรแกรมได้อะไร

อาจพูดได้ว่าเด็กๆสมัยนี้เป็นเด็กยุคดิจิตอล มันเป็นเรื่องง่ายๆสำหรับพวกเขาที่จะส่งข้อความถึงกัน เล่นเกมออนไลน์ หรือเล่นเน็ต แต่สิ่งเหล่านั้นทำให้พวกเขาเข้าใจและใช้เทคโนโลยีใหม่ๆได้อย่างคล่องแคล้วแล้วหรือ ถึงแม้เด็กสมัยนี้จะใช้สื่อดิจิตอลตลอดเวลาแต่น้อยคนที่จะสามารถสร้างเกม แอนิเมชั่น หรือการจำลองทางคอมพิวเตอร์ได้ด้วยตนเอง มันเหมือนกับว่าพวกเขาอ่านได้แต่เขียนไม่เป็น คงเห็นแล้วว่าความคล่องแคล้วในการใช้เทคโนโลยีดิจิตอลไม่เพียงแค่มีความสามารถในการแชทหรือเล่นเน็ตแต่ยังต้องการความสามารถในการออกแบบสร้างหรือประดิษฐ์สื่อใหม่ๆด้วย ซึ่งจะทำอย่างนั้นได้คุณต้องเรียนรู้การเขียนโปรแกรมไว้บ้าง ความสามารถในการโปรแกรมจะเป็นประโยชน์อย่างมาก เช่นทำให้คุณสร้างอะไรได้มากขึ้น เรียนรู้ไปกับมันมากขึ้น และแสดงความนึกคิดออกมาได้ด้วยคอมพิวเตอร์ โดยเฉพาะการเขียนโปรแกรมนั้นยังสนับสนุนการคิดเชิงคำนวณ (computational thinking) ช่วยให้คุณเรียนรู้สิ่งสำคัญในการแก้ไขปัญหาและการวางแผนออกแบบ เช่นการเขียนโปรแกรมเป็นส่วนๆเพื่อแก้ไขปัญหาใหญ่ และ การออกแบบการทำงานแบบซ้ำๆ ซึ่งสามารถนำไปประยุกต์ใช้กับด้านอื่นๆที่ไม่เกี่ยวกับการเขียนโปรแกรม เนื่องจากการเขียนโปรแกรมนั้นเกี่ยวข้องกับการสร้างและการแสดงออกจากเรื่องภายนอก ที่อยู่ในกระบวนการแก้ปัญหาของคุณ การเขียนโปรแกรมยังช่วยให้คุณมีโอกาสที่จะสะท้อนความคิดของคุณเองกับปัญหานั้นๆ แม้แต่คิดเกี่ยวกับกระบวนการคิดเอง (การแก้ปัญหานั้นทำได้หลายวิธี) ที่มา: Mitchel Resnick, John Maloney, Andrés Monroy-Hernández, Natalie Rusk, Evely n Eastmond, Karen Brennan, Amon Millner, Eric Rosenbaum, Jay Silver, Brian Silverman, and Yasmin Kafai,  "Scratch: Programming for All" communications of the acm, vol. …

เกมทดสอบความคิดในการแก้ปัญหา

มีเว็บไซต์มาให้คุณได้ลองทดสอบความคิดในการแก้ปัญหา ถึงแม้ว่าคุณจะรู้หรือไม่รู้คำตอบแต่บททดสอบนี้จะให้อะไรกับคุณในหลายแง่มุมความคิดในการแก้ปัญหา ลองดูนะครับที่ Thinking Myself

โปรเจก MadLibs

อีกหนึ่งโปรเจกที่น่าสนใจคือ MadLibs เป็นโปรเจกการเล่าเรื่อง (Story telling) จากข้อมูลที่คุณให้ มาเริ่มต้นด้วยการเปิดโปรเจกกันดีกว่า โดยเลือก Open ในเมนู File จากนั้นคลิกปุ่ม Examples เลือกโฟรเดอร์ Stories เลือกโปรเจก MadLibs โปรเจกนี้มีตัวละครอยู่ 3 ตัว ผู้หญิงเป็นคนเปิดเรื่องถามตอบกับคุณ หลังจากนั้นวาฬ 2 ตัวก็ออกมาเล่าเรื่องตลกผูกกับคำตอบของคุณ ส่วนของเวทีจะมีการเล่นเอฟเฟคบนพื้นหลัง และขณะที่ปลาวาฬเริ่มเล่าเรื่องจะได้ยินเสียงประกอบด้วย ในโปรเจกนี้คุณจะได้เรียนรู้การใช้ตัวแปรสำหรับเก็บคำตอบ การติดต่อสื่อสารกับผู้ใช้ซึ่งก็คือคุณนั้นเอง และการส่งต่อจังหวะการเล่าระหว่างตัวละครให้เป็นจังหวะเดียวกัน นอกจากนั้นมาดูการเพิ่มสีสันให้กับภาพและเสียงซึ่งทำให้เรื่องน่าสนใจมากขึ้นอีกด้วย

การเขียนโปรแกรม… ใน Scratch

การเขียนโปรแกรมนั้น ถูกมองว่าซับซ้อนเกินกว่าจะทำความเข้าใจได้ แต่ถ้าเราเข้าใจพื้นฐานความต้องการในการเขียนโปรแกรม ก็คงเป็นจุดเริ่มต้นที่ดีที่จะเรียนรู้มัน โดยทั่วไปเราเขียนโปรแกรมเพื่อทำงานอะไรซักอย่างกับข้อมูลที่มีและมีผลลัพธ์ออกมาในรูปแบบใดรูปแบบหนึ่ง ซึ่งขั้นตอนที่จะทำอาจซับซ้อนหรือง่ายๆก็เป็นได้ ถ้าเราลองคิดว่าโปรแกรมเป็นกล่องที่สามารถรับข้อมูลเข้าไปแล้วทำอะไรซักอย่างแล้วให้ผลลัพธ์ออกมา จากจุดนี้ทำให้เรารู้ว่าในการเขียนโปรแกรมนั้นต้องเริ่มจากวัตถุประสงค์ก่อนว่าต้องการทำอะไร ต้องการข้อมูลอะไร และคาดหวังได้ผลลัพธ์อะไร การเขียนโปรแกรมใน Scratch ก็ใช้หลักการเขียนโปรแกรมเช่นเดียวกัน แต่อาจไม่ซับซ้อนเท่าภาษาอื่นๆที่นิยมใช้ เช่น C, Java เนื่องจากวัตถุประสงค์ของ Scratch คือให้เป็นภาษาเริ่มต้น เขียนโปรแกรมง่าย และใช้สื่อมัลติมีเดียซึ่งเหมาะกับเด็กๆ หรือ ผู้ที่ไม่มีประสบการณ์ในการเขียนโปรแกรมมาก่อน ลองมาดูหลักการทั่วไปของ Scratch ข้อมูล (Data) จะหมายถึงตัวละครต่างๆ (Sprite) ฉากเวที (Stage) รวมถึงข้อมูลต่างๆที่อยู่ในตัวละครหรือฉากเวที เช่น เครื่องแต่งกาย (Costume) พื้นหลัง (Background) เป็นต้น เมื่อมีตัวละครแล้วย่อมต้องการให้ตัวละครทำอะไรได้ดีกว่าให้มันอยู่เฉยๆ ซึ่งก็คือการสั่งให้มันทำงาน (Function) โดยใช้สคริปต์บล็อก (Script blocks) ต่างๆมาประกอบกันเข้า เมื่อมองภาพในมุมกว้างในโปรแกรมที่ใหญ่ขึ้น จะเห็นว่าเราอาจต้องใช้ข้อมูล หรือตัวละครมากกว่าหนึ่งตัว ดังนั้นโปรแกรมจึงเริ่มซับซ้อนขึ้น เพราะตัวละครอาจต้องสื่อสารกันต้องมีปฏิสัมพันธ์กัน และส่งผลให้ขั้นตอนต่างๆในโปรแกรม (Algorithm) มีความซับซ้อนมากขึ้น จึงจำเป็นต้องมีการย่อยงานลง แบ่งงานเป็นขั้นเป็นตอน เพื่อให้เขียนโปรแกรมได้ ดังนั้นงานใหญ่จะถูกแบ่งเป็นงานย่อยแล้วมาเรียงต่อกันซึ่งขั้นตอนนี้ต้องมีการควบคุมทิศทางการเคลื่อนไหวของข้อมูล …