บทความนี้เราจะมาเปรียบเทียบแบบอันต่ออันกันเลยค่ะว่า แต่ล่ะ Block ของ Scratch สามารถ นำใช้สอน วิทยาการคอมพิวเตอร์เรื่อง Algorithm ได้ดีแค่ไหน มาดูกันเลย!!! ก่อนอื่นเราต้องมารู้จักที่มาที่ไป ของ Algorithm กันก่อนหรือจะเรียกได้อีกอย่าง ก็คือ สัญลักษณ์ Flowchart เพราะใน 1 โปรแกมจะมี Input Process Output จึงจำเป็นต้องเรียบเรียงความคิดให้ดีก่อนที่จะนำไปเขียนเป็นโปรแกรม
ส่วนการเขียนโปรแกรมแบบ Scratch ที่เด็กๆ จะได้เรียนในช่วงประถม หรือ 7-12 ปีนั้น ได้ทั้ง Logic หรือ แนวคิดการเขียนโปรแกรม การเรียงลำดับเหตุการณ์ ตรรกะศาสตร์ต่างๆ coding แบบ block-based ว่ามัน คือ ช่วยให้เด็กๆ สร้างโปรแกรมคอมพิวเตอร์ได้ด้วยการลากและวางบล็อกเป็นภาพต่อๆกันโดยไม่ต้องจัดการกับรูปแบบการเขียนโปรแกรมที่ซับซ้อนใดๆ
โดยในการเขียนโปรแกรมเราจะใช้เป็นรูปภาพที่ใช้แทนความหมายการทำงานในลักษณะต่างๆภายในผังงาน (Flowchart) ประกอบไปด้วย
Algorithm vs Scratch เปรียบเทียบ Block ในการเรียนเขียนโปรแกรม
1.การเริ่มต้น – จุดสิ้นสุด (Start-End)
การเริ่มต้นหรือจบ ของโปรแกรมนั้นหรือของ Algorithm นั้นเป็น Block ในส่วนของ Events ซักส่วนใหญ่เป็น Block ที่ทำหน้านี้เป็นการเรื่มต้นคำสั่งในการสั่งงานโปรแกรมให้ทำงานตามที่ตั้งไว้
2.การกระทำ (Process)
การกระทำ (Process) ถูกใช้เพื่อแสดงที่การกระทำในโปรแกรม ตัวอย่างเช่น “กำหนด 1 ให้ X” หรือ บันทึกการเปลี่ยนแปลงของข้อมูลหรือตัวละคร” และ สามารถเปลี่ยนแปลงค่าตัวแปรข้อมูล เช่น แทนที่ X ด้วยค่า 10
ใน Scratch จะเป็น Block ประเภท Sensing และ Operators ที่เป็นการเปลี่ยนแปลงหรือทำกระบวนการคำนวณข้อมูลใน Block ต่างๆ
ตัวอย่าง : เราจะให้ตัว sprite ของเราแสดงผลลัพธ์ที่เกิดจาก Process (5+5) ออกมาภาพหน้าจอ
3. (Input / Output) การนำเข้าข้อมูลและการแสดงผลข้อมูล
ส่วนการนำเข้าข้อมูลหรือแสดงผลข้อมูล (Input / Output) ตัวอย่างเช่น “นำเข้าค่า X จากผู้ใช้”, “แสดงผลข้อมูล X”
ใน Scratch จะเป็น Block ประเภท Variable เป็นการตั้งค่าตัวแปร ใช้เก็บข้อมูลในโปรแกรมของเรา หรือ ใช้แสดงข้อมูลที่ถูกเก็บออกมาก็ได้เช่นกัน
ตัวอย่างเราลองสร้างตัวแปรชื่อมา number ขึ้นมาเพื่อใช้เป็นตัวเก็บตัวเลข และ ใช้แสดงผลลัพธ์การคำนวณ
5.การตัดสินใจ (Decision)
การตัดสินใจ (Decision) นำมาใช้เพื่อพิจารณา True หรือ False เส้นการทำงานที่ออกจาก Decision จะมีสองเส้นเสมอ เส้นแรกเมื่อเป็น True และอีกเส้นเมื่อเป็น False
ใน Scratch จะเป็น Block ประเภท Control เป็น Block ไว้กำหนดเงื่อนไข ให้กับโปรแกรม ทั้ง if … else และสามารถทำ Loop ออกมาได้เช่นกัน
ตัวอย่างเราจะใช้ Block Variable เมื่อก่อนหน้าที่เราสร้างมาใช้เป็น input ในการเก็บผลลัพธ์การคำนวณ และนำตัวแปรนั้นมาเป็นมาเช็คเงื่อนไขโดย
If ถ้า number มากกว่า 10 ให้แสดง “ตัวเลขมากกว่า 10”
Else แล้วถ้า number น้อยกว่า 10 ให้แสดง “ตัวเลขน้อยกว่า 10”
6.คำอธิบาย (Annotation)
คำอธิบายประกอบ (Annotation) สัญลักษณ์นี้ถูกนำมาใช้เพื่อเขียนคอมเม้นต์ให้กับ Flowchart
ใน Scratch ก็มีให้เราใส่ Comment ใน Block เหมือนกันค่ะวิธีคือ ให้เราคลิกขวาที่เมาส์ แล้วหน้าจอมันจะมีให้ขึ้นมา Add Comment
7.จุดเชื่อมต่อ (Connector) และ ทิศทางการทำงาน (Direction Flow)
จุดเชื่อมต่อ (Connector) ใช้รวมเส้นการทำงานของ Flowchart ให้ออกไปเหลือเพียงเส้นเดียว ส่วนทิศทางการทำงาน (Direction Flow) ใช้เชื่อมต่อสัญลักษณ์ต่างๆ เพื่อแสดงการไหลการงาน ตรงนี้ใน Scratch จะไม่มีสัญลักษณ์ หรือ Block ที่ชัดเจน แต่มันจะเป็นรูปแบบการใช้งานแทน เพราะใน การเขียนโปรแกรมของ Scratch นี้เราสามารถนำ Block แต่ละอันมาต่อกันให้เป็นโปรแกรมได้ดังรูปด้านล่างเลยค่ะ
เด็กๆ เรียน Scracth แล้วสามารถนำไปต่อยอดอะไรได้บ้าง สามารถนำไปเขียนโปรแกรมระดับสูงขึ้นได้อีก เช่น Python , JavaScript ทำให้เด็กๆ สามารถเรียนรู้ได้เร็วคือ เพราะมีพื้นฐานที่ดีมาจากการเขียนโปรแกรมด้วย Scratch โดยเด็กๆ จะสามารถนำความคิดมา เรียบเรียงเป็นเกมได้ แบบนี้เลยค่ะ
สรุปแล้ว Algorithm สำคัญอย่างไร ?
เป็นขั้นตอนแรกสุดของการเริ่มสร้างโปรแกรม เพื่อแสดงถึงขั้นตอนของคำสั่งการทำงาน เพื่อวางแผนหรือรวบรวมความคิดการเขียนโปรแกรม โปรแกรมจะแสดงลำดับคำสั่งเป็นขั้นตอน (Step By Step) การเขียนผังงานโปรแกรมจะช่วยลดข้อผิดพลาดในการเขียนโปรแกรมลงได้ ทำให้เขียนโปรแกรมง่ายขึ้นและถูกต้อง รวมถึงยังช่วยวิเคราะห์จุดบกพร่องที่เกิดขึ้นจากการเขียนโปรแกรม
เด็กๆ ที่ได้เรียน Scratch แล้วสามารถนำไปต่อยอดอะไรได้บ้าง สามารถนำไปเขียนโปรแกรมระดับสูงขึ้นได้อีก เช่น Python , JavaScript ทำให้เด็กๆ สามารถเรียนรู้ได้เร็วคือ เพราะมีพื้นฐานที่ดีมาจากการเขียนโปรแกรมด้วย Scratch เราแนะนำเลย สามารถอ่านบทความเพิ่มเติมเกี่ยวกับ Scratch ได้ที่นี่เลยค่ะ
หากสนใจบทความเกี่ยวกับ Coding แบบนี้อีกติดตามเราได้ที่เพจ : https://www.facebook.com/codekidsTH/ถ้าให้ลูกหรือเด็กเขียนโปรเเกรมเป็น ไม่อยากสามารถเริ่มได้ตั้งเเต่ 6 หรือ 7 ได้เลย ลอง Inbox เข้ามาสอบถามได้นะคะหรือเว็บไซต์ Codekids นี้ได้เลย มีความรู้ด้านการเรียนรู้ การเขียนโปรเเกรม สำหรับเด็กๆมากมาย https://www.codekids.co/blog/