Coding In Kindergarten… เขียนโค้ดในระดับอนุบาล #ReDucation

การเขียนโค้ด หรือ การเขียนโปรแกรมคอมพิวเตอร์ ซึ่งเป็น “การออกคำสั่ง” ให้คอมพิวเตอร์ทำงานตามโค้ดอันเป็น “ภาษา” ที่เราใช้สื่อสารกับคอมพิวเตอร์… แก่นของการเขียนโค้ดจึงไม่ได้มีอะไรแตกต่างไปจาก “การออกคำสั่ง” ระหว่างคนกับคนเพื่อให้ไปทำบางอย่าง… รวมทั้งการหาวิธีสื่อสารกับสัตว์เลี้ยงเพื่อ “ออกคำสั่ง” กับสัตว์เลี้ยงให้ทำตามอย่างที่เราต้องการ

เมื่อพูดถึงการสอนเขียนโค้ด และ ปูพื้นฐานการเขียนโปรแกรมคอมพิวเตอร์ในหลักสูตรอนุบาลสำหรับเด็กวัยก่อนเรียนอายุระหว่าง 4-6 ขวบ… ภายใต้กรอบความเข้าใจอย่างลึกซึ้งถึงแก่นของแนวคิดการเขียนโค้ด และ ที่มาของลำดับ “การออกคำสั่ง” แบบที่โปรแกรมเมอร์เรียกว่าอัลกอริทึม หรือ Algorithm… ซึ่งทุกๆ การออกคำสั่งระหว่างคนกับคน ผู้ใหญ่กับเด็ก พ่อแม่กับลูก หรือเจ้าของกับสัตว์เลี้ยง… ล้วนแต่มีอัลกอริทึมที่เข้าใจระหว่างกันอยู่แล้วว่าต้องทำตามที่สั่งนั้นอย่างไร… เพียงแต่คำสั่งโดยธรรมชาติดังกล่าวจะไม่ได้ถูกคลี่ออกมาให้เห็น “ขั้นตอนอย่างละเอียด” เหมือนกับการออกคำสั่งกับคอมพิวเตอร์ เช่น การบอกเด็กให้ไปหยิบนมจากตู้เย็นมากิน… เด็กที่เข้าใจคำสั่งจะรู้ว่าต้องเดินไปที่ตู้เย็นหลังไหน เปิดประตูตู้เย็น หยิบนมกล่องที่ต้องการ ปิดประตูตู้เย็น ดึงหลอดดูดจากข้างกล่องมาเจาะกล่องนม ดูดนมให้หมดกล่อง หรือ จนกว่าจะอิ่ม และ นำกล่องนมเปล่าที่เหลือไปใส่ถังขยะ… ซึ่งการออกคำสั่งกับเด็กจะใช้เพียงประโยคสั้นๆ แต่ถ้าจะออกคำสั่งกับคอมพิวเตอร์ต้องคลี่คำสั่งออกเป็นขั้นเป็นตอน กำหนดเงื่อนไขให้ครบ และ เรียงลำดับให้ถูกต้องเป็นอย่างน้อย

แนวคิดการสอนโค้ดในโรงเรียนอนุบาลจึงไม่ใช่การเอาภาษาคอมพิวเตอร์มาสอนเด็กโดยตรง อย่างที่ความเข้าใจจากบางคน หรือ จากคนบางกลุ่มมองการสอนโค้ดในโรงเรียนอนุบาลด้วยภาพการโค้ดแบบโปรแกรมเมอร์อาชีพ… ซึ่งคลาดเคลื่อนไปจากบริบทในหลักการสำคัญของการเขียนโค้ดไปไกลทีเดียว

บทความเรื่อง Coding for Kindergarten โดย Chontelle Bonfligo จาก Teach Your Kid’s Code ได้แนะนำหลักการ 5 แนวทางในการสอนโค้ดในวัยอนุบาลเอาไว้… ได้แก่

  1. สอนอัลกอริทึม หรือ Algorithm… ซึ่งครูอนุบาลสามารถใช้แผนภาพกิจกรรม และ ตัวต่อลำดับของการเกิดกิจกรรมมาเล่นกับเด็กๆ เป็นต้น
  2. สอนลำดับขั้นตอน หรือ Sequence… โดยครูอนุบาลสามารถใช้ Sequence Jigsaw หรือ Sequence Block เล่นกับเด็กบนโจทย์กิจกรรมที่แฝงอัลกอริทึมในชีวิตประจำวันที่เด็กคุ้นเคย
  3. สอนเงื่อนไขการวนซ้ำ หรือ Loop… ครูอนุบาลสามารถเล่นกับเด็กด้วยกิจกรรมที่มี “เงื่อนไข” การทำซ้ำในเด็กๆ คุ้นเคยกับเทคนิค Loop ซึ่งคอมพิวเตอร์ต้องทำงานเดิมซ้ำๆ หลายรอบจนได้เงื่อนไขที่ถูกต้อง… โดยไม่ลืมใส่ Keyword คำว่า Loop ในกิจกรรมให้เด็กคุ้นเคย ตั้งแต่การสอนมองซ้ายมาองขวาก่อนข้ามทางม้าลาย โดย Loop จนแน่ใจว่าไม่มีรถจึงข้ามถนน เป็นต้น
  4. สอนการแยกส่วนปัญหา/คำสั่ง หรือ Decomposition… ซึ่งครูอนุบาลสามารถช่วยเด็กๆ เตรียมตัวทำกิจกรรมประจำวัน เช่น การแปลงฟันด้วยการซักซ้อมลำดับการแปรงฟันตั้งแต่เตรียมแปรง ป้ายยาสีฟัน เปิดน้ำ… ไปจนเก็บแปรงสีฟัน เช็ดมือ เป็นต้น
  5. สอนการแตกกิ่งต่อก้านปัญหา/คำสั่ง หรือ Branch… ครูอนุบาลจำเป็นต้องหาเครื่องมือสำหรับการสอนกิจกรรม “ต่อเติม” ส่วนที่หาย หรือ ส่วนที่ควรจะมี รวมทั้งส่วนที่อยากให้มีเพื่อให้คำสั่งที่ได้รับ หรือ โจทย์ปัญหาที่ต้องสะสางมีรายละเอียดที่สมบูรณ์กว่า
  6. สอนการหาและแก้ไขข้อบกพร่อง หรือ Debug… กิจกรรมค้นหาจุดบกพร่อง หรือ ความผิดปกติที่เด็กๆ ถูกกำหนดให้ค้นหา หรือ ถูกสร้างไว้เพื่อทดสอบเชาว์ในการตั้งข้อสงสัยเรื่องความบกพร่อง เช่น การทำสิ่งกิดขวางทางเดินในสนามเด็กเล่น แล้วให้เด็กๆ ค้นพบ แล้วเสนอวิธีแก้ไขพร้อมลำดับการแก้ไขตามแนวทางการสอนลำดับขั้นตอน หรือ Sequence…

พอเป็นไอเดียน๊ะครับ… ส่วนโรงเรียนที่ทำห้องคอมพิวเตอร์ให้เด็ก และ นำหลักสูตรเขียนโค้ดของ Code.org หรือ แพลตฟอร์มสอนโค้ดที่คล้ายกันมาใช้อยู่แล้ว… โดยส่วนตัสส่งส่งเสริม และ เห็นพ้องมาตั้งแต่ไหนแต่ไร และ อยากให้ทุกท่านที่เกี่ยวข้องไม่ลืมสนใจ “แก่นของการเขียนโค้ด ภายใต้การสื่อสารแบบออกคำสั่ง” ดังที่ได้เกริ่นมาทั้งหมดในตอนต้นด้วย

References…

Facebook
Twitter
LinkedIn
Pinterest
Tumblr

Leave a Reply

Your email address will not be published. Required fields are marked *