ติวเตอร์หนึ่งคนนั่งข้างเด็กหนึ่งคน เริ่มจากไฟล์ที่เปิดค้างอยู่บนจอของลูกเอง เริ่มด้วยบล็อกก่อน แล้วค่อยขยับไป Python เมื่อพร้อม และหลังเรียนทุกครั้งผู้ปกครองจะได้บันทึกที่อ่านเข้าใจได้จริง
การเรียนเขียนโปรแกรมสำหรับเด็ก คือการเรียนตัวต่อตัวสำหรับเด็กอายุประมาณ 7 ถึง 15 ปี เรียนที่บ้านในกรุงเทพฯ หรือเรียนออนไลน์จากที่ไหนก็ได้ในประเทศไทย เริ่มจากเครื่องมือแบบบล็อกอย่าง Scratch แล้วขยับไปเขียนโค้ด Python เมื่อเด็กอ่านคล่องและพิมพ์ได้สองมือ ทุกครั้งที่เรียนจบจะมีชิ้นงานที่กดแล้วทำงานได้จริงเสมอ
วิชานี้แชร์หน้าจอกันง่ายกว่าวิชาที่ต้องกางหนังสือ รูปแบบการเรียนจึงสำคัญน้อยกว่าวิชาอื่น เลือกจากตารางชีวิตของลูกเป็นหลัก
ที่บ้าน ห้องอ่านหนังสือของคอนโด หรือโต๊ะเงียบ ๆ ใกล้บ้าน ติวเตอร์นั่งข้าง ๆ และไม่ดึงคีย์บอร์ดไปทำเอง
แชร์หน้าจอ เด็กเป็นคนพิมพ์ ติวเตอร์เป็นคนดู สำหรับเด็กที่เพิ่งเริ่ม วิธีนี้มักได้ผลดีกว่าการเจอตัว เพราะโค้ดยังอยู่ในมือของเด็กตลอดเวลา
พี่น้องหรือเพื่อนร่วมห้องที่นั่งทำงานข้างกันอยู่แล้ว ต่างคนต่างมีโปรเจกต์ของตัวเอง แล้วช่วยกันอ่านข้อความแจ้งข้อผิดพลาด
กรุงเทพฯ สอนสองระบบพร้อมกันในเมืองเดียว และวิชาคอมพิวเตอร์โผล่เข้ามาคนละจังหวะในแต่ละระบบ การสอนของเราจึงเดินตามระบบที่ลูกคุณเรียนอยู่จริง
ตามหลักสูตรแกนกลางการศึกษาขั้นพื้นฐาน พุทธศักราช 2551 (ฉบับปรับปรุง พ.ศ. 2560) เทคโนโลยีอยู่ในกลุ่มสาระการเรียนรู้วิทยาศาสตร์และเทคโนโลยี เด็กประถมส่วนใหญ่เจอวิชานี้ในห้องคอมพิวเตอร์รวม เครื่องหนึ่งต่อเด็กสองคน ซึ่งพอให้ทำตามได้ แต่ไม่ค่อยพอให้ทำอะไรจนจบ
วิชา:
สิ่งที่เน้น:
พอขึ้นมัธยมต้น เด็กส่วนใหญ่อ่านคล่องพอจะรับภาษาที่มีกฎเข้มงวดได้แล้ว ช่วงนี้ติวเตอร์มีค่าที่สุด เพราะข้อความแจ้งข้อผิดพลาดชุดแรกมาถึงตอนนี้ และห้องเรียนสี่สิบคนหยุดรอเด็กคนเดียวไม่ได้
วิชา:
สิ่งที่เน้น:
วิชา Computing อยู่ในตารางตั้งแต่ชั้นเล็ก สอนเป็นภาษาอังกฤษ และวัดผลด้วยเกณฑ์ของโรงเรียนเอง ไม่ใช่ข้อสอบกลาง แรงกดดันมาถึงตอน Year 9 ตอนที่เด็กต้องเลือกว่าจะเอาวิชานี้ต่อเข้า IGCSE หรือไม่
วิชา:
สิ่งที่เน้น:
การเรียนเขียนโค้ดนอกโรงเรียนไม่มีหลักสูตรกลาง ลำดับข้างล่างนี้จึงเป็นของเราเอง แต่ละหัวข้อคือสิ่งที่เด็กทำได้เมื่อจบหัวข้อนั้น และเรียงแบบนี้เพราะหัวข้อหลังต้องอาศัยหัวข้อหน้า
เด็กที่ทำเกมใน Scratch ได้อยู่แล้วข้ามหัวข้อแรกไปเลย ครั้งแรกที่เรียนคือครั้งที่ใช้ตัดสินว่าจะเริ่มตรงไหน และการขยับเร็วกว่าแผนเป็นเรื่องปกติ
Scratch ตัดเรื่องการพิมพ์ออกไป แต่เก็บเรื่องการคิดไว้ครบ ทุกอย่างในหัวข้อนี้จะกลับมาอีกครั้งใน Python ในชื่อที่ต่างออกไป และนั่นคือเหตุผลทั้งหมดที่เริ่มจากตรงนี้ หัวข้อนี้ปิดท้ายด้วยสองสัญญาณ คือการส่งข้อความระหว่างตัวละคร และวันที่โปรเจกต์กลายเป็นกำแพงบล็อกที่ไม่มีใครอ่านรู้เรื่อง
การย้ายจากลากบล็อกมาเป็นพิมพ์เอง คือจุดที่เด็กสะดุดมากที่สุด หัวข้อนี้จึงแยกออกมาและเดินช้าเป็นพิเศษ เนื้อหาไม่ยาก แต่ไม่ยอมให้สะกดผิดแม้แต่ตัวเดียว เริ่มจาก print กับ input และเหตุผลที่โปรแกรมหยุดรอ แล้วจบที่การเขียนฟังก์ชันหนึ่งตัวแล้วเรียกใช้สองครั้ง
เครื่องมือแบบบล็อกไม่เคยพัง เด็กที่ข้ามมาจาก Scratch จึงไม่เคยถูกเครื่องขัดมาก่อน ข้อความสีแดงบรรทัดแรกจึงเป็นเรื่องของความรู้สึกก่อนจะเป็นเรื่องเทคนิค และเราสอนมันเป็นทักษะหนึ่ง มีสองนิสัยที่ค้ำทุกอย่างไว้ คือพูดอธิบายบรรทัดที่พังออกมาก่อนลงมือแก้ และเก็บสำเนาที่ยังทำงานได้ไว้ก่อนแก้ครั้งใหญ่
เด็กอยู่กับวิชานี้ได้เพราะเกม หัวข้อนี้เปลี่ยนความอยากให้กลายเป็นโครงสร้าง ลูปที่วิ่งไม่หยุด อินพุตที่เข้ามาระหว่างที่มันวิ่ง และกฎสำหรับการจบเกม วินัยเงียบ ๆ ที่อยู่ข้างใต้คือการบันทึกแล้วเปิดกลับมาทำต่อโดยไม่หลุดความคิด และการทำโปรเจกต์เดิมให้จบแทนการเริ่มอันใหม่ที่ดูดีกว่า
จุดที่การเขียนโค้ดเลิกเป็นของเล่น เด็กเขียนโปรแกรมช่วยงานที่บ้านทำอยู่จริง แล้วทดสอบด้วยค่าประหลาด ๆ ที่ทำให้มันพัง และเป็นครั้งแรกที่งานอยู่รอดหลังจบชั่วโมงเรียน
ทุกอย่างที่เด็กโพสต์ขึ้นไปเป็นสาธารณะตั้งแต่แรก หัวข้อนี้สั้น และเป็นหัวข้อที่ผู้ปกครองถามมากที่สุดเมื่อลูกเริ่มเผยแพร่ผลงาน ปิดท้ายด้วยงานบ้านเล็ก ๆ ที่มีผลตอนหลัง คือเก็บสำเนาพร้อมวันที่เพื่อไม่ให้งานหาย และแฟ้มผลงานของเด็กวัยนี้ควรหน้าตาเป็นอย่างไร
ผู้ปกครองสี่แบบที่โทรมาด้วยคำถามคนละอย่าง และได้ครั้งแรกที่ต่างกัน
ดูไม่ออกว่าลูกกำลังเรียนอยู่หรือแค่นั่งดูคลิป และสมุดพกก็ไม่ได้ช่วยตอบ นี่คือเหตุผลที่ครอบครัวส่วนใหญ่ติดต่อเข้ามา
เหมาะกับ:
เด็กสี่สิบคน เครื่องยี่สิบเครื่อง ครูหนึ่งคน และเด็กที่ทำตามได้ทุกขั้นแต่ไม่เคยมีงานของตัวเองสักชิ้น
เหมาะกับ:
เรียน Computing มาหลายปีแล้ว และกำลังจะกลายเป็นวิชาที่มีคะแนนจริง การเลือกตอนปลาย Year 9 เป็นการเลือกจริง และตัดสินใจง่ายขึ้นมากถ้ามีผลงานให้ดู
เหมาะกับ:
ทำเกมตามคลิปมาทั้งปี แล้วไปเจอเรื่องที่คลิปไม่ได้สอน จากนั้นก็เลิกเปิดโปรแกรมไปเงียบ ๆ
เหมาะกับ:
วิชานี้ดูจากหน้าประตูแล้วตัดสินยาก บันทึกหลังเรียนจึงเขียนให้ผู้ปกครองที่ไม่เคยเขียนโปรแกรมอ่านแล้วรู้ว่าชั่วโมงนั้นเป็นอย่างไร
หนึ่งประโยคบอกว่าตอนจบชั่วโมงมีชิ้นงานอะไรอยู่ และมันทำงานได้ไหม วัยนี้การบอกว่าสอนหัวข้ออะไรไปแทบไม่มีความหมาย แต่การมีของที่ทำเสร็จหนึ่งชิ้นมีความหมายมาก
ข้อผิดพลาดตัวไหนที่ทำให้ติดอยู่นาน และหาเจอได้อย่างไร ตรงนี้คือจุดที่การเรียนรู้เกิดขึ้นจริง และเป็นส่วนที่เด็กมักลืมเล่าตอนกินข้าวเย็น
การแก้หนึ่งจุดที่เล็กพอจะทำเองคนเดียวได้ในยี่สิบนาที ไม่ใช่การบ้าน และต้องไม่ใช่สิ่งที่ต้องรอผู้ใหญ่มาช่วยเริ่ม
ตัวโปรเจกต์เอง ผู้ปกครองจะได้กดเล่นดู คนที่ได้ลองเล่นของจริงจะถามคำถามได้ดีกว่าคนที่อ่านแต่คำอธิบาย
แทบไม่มีข้อไหนเลยที่สาเหตุคือความสามารถของเด็ก แต่ละข้อมีจังหวะของปีที่มันมักโผล่มา และมีทางออกที่ไม่ต้องจ่ายเพิ่มสักบาท
ทำไมถึงเกิดขึ้น
ในเครื่องมือแบบบล็อก ไม่มีอะไรพังเป็นชิ้นเป็นอัน ต่อบล็อกผิดก็แค่ไม่มีอะไรเกิดขึ้น เด็กจึงยังมั่นใจอยู่ พอพิมพ์ Python ครั้งแรก หน้าจอตอบกลับมาเป็นข้อความสีแดงทั้งย่อหน้า เด็กเก้าขวบอ่านแล้วรู้สึกว่าถูกดุ ไม่ได้รู้สึกว่ากำลังได้ข้อมูล
เราแก้อย่างไร
เดือนแรกของการพิมพ์โค้ด ทุกครั้งที่เรียนจะเริ่มด้วยการทำให้พังโดยตั้งใจ แล้วอ่านออกเสียงว่าเครื่องตอบว่าอะไร ข้อผิดพลาดจะเลิกเป็นคำตัดสิน แล้วกลายเป็นทางลัดในการหาบรรทัดที่ผิด
ทำไมถึงเกิดขึ้น
ฉบับปรับปรุง พ.ศ. 2560 ของหลักสูตรแกนกลางย้ายเทคโนโลยีเข้าไปอยู่ในกลุ่มสาระวิทยาศาสตร์และเทคโนโลยี ก่อนหน้านั้นมันเคยอยู่ในกลุ่มการงานอาชีพและเทคโนโลยีรวมกับงานฝีมือและงานอาชีพ คะแนนจึงแทบไม่เคยกลับบ้านมาพร้อมป้ายว่าเป็นวิชาคอมพิวเตอร์ และผู้ปกครองก็ไปตามหาสาเหตุผิดวิชา
เราแก้อย่างไร
ครั้งแรกที่เรียน เราถามก่อนว่าโรงเรียนจัดวิชานี้ไว้ในกลุ่มสาระไหน และใครเป็นคนให้คะแนน จากนั้นบันทึกความก้าวหน้าจะเขียนอิงตัวชี้วัดของโรงเรียนเอง ด้วยถ้อยคำชุดเดียวกับที่จะไปโผล่บนสมุดพก
ทำไมถึงเกิดขึ้น
ชุดหุ่นยนต์ทำงานได้สวยงามอยู่สองบ่าย ตามตัวอย่างที่แถมมาในกล่อง หลังจากนั้นมันต้องการโค้ดที่ไม่มีใครในบ้านเขียนได้ กล่องก็ขึ้นไปอยู่บนชั้น แล้วทั้งเด็กและผู้ปกครองก็สรุปเงียบ ๆ ว่าลูกคงไม่ถนัดทางนี้
เราแก้อย่างไร
สองเดือนแรกใช้เครื่องที่มีอยู่แล้วที่บ้าน เพราะแค่เบราว์เซอร์ก็ครอบคลุมทั้งบล็อกและ Python ช่วงต้นแล้ว ค่อยซื้อตอนที่เด็กขอของชิ้นที่เจาะจง เพราะเครื่องเดิมทำสิ่งนั้นไม่ได้ และบอกได้ว่าสิ่งนั้นคืออะไร
ทำไมถึงเกิดขึ้น
คลิปสอนทำเกมให้เสร็จได้ในสี่สิบนาที และเกมที่เสร็จให้ความรู้สึกเหมือนความเข้าใจทุกประการ พอวันรุ่งขึ้นเปลี่ยนตัวเลขสักค่า เด็กกลับบอกไม่ได้ว่าต้องแตะบรรทัดไหน เพราะไม่เคยเป็นคนเลือกบรรทัดไหนเลย
เราแก้อย่างไร
ทุกครั้งปิดท้ายด้วยการแก้หนึ่งอย่างที่เด็กทำเองล้วน ๆ ทำให้ศัตรูเร็วขึ้นสองเท่า แล้วบอกครูว่าเปลี่ยนบรรทัดไหนและเพราะอะไร คำถามเดียวนี้แยกการลอกออกจากการเข้าใจ และใช้เวลาแค่สามนาที
ทำไมถึงเกิดขึ้น
ด่านจริงคือการอ่านคล่อง การพิมพ์ด้วยสองมือ และความอดทนพอจะไล่หาวงเล็บที่หายไป เด็กที่ยังต้องไล่หาตัว K บนคีย์บอร์ดจะหมดชั่วโมงไปกับคีย์บอร์ดแทนที่จะได้คิด แล้วสรุปว่าการเขียนโปรแกรมน่าเบื่อ
เราแก้อย่างไร
ครั้งแรกที่เรียนเราดูการอ่านและการพิมพ์ก่อน แล้วเลือกจุดเริ่มตามเด็ก ไม่ใช่ตามอายุในใบสมัคร การขยับขึ้นกลางเทอมเป็นเรื่องปกติและไม่มีค่าใช้จ่าย เราคอยดูจังหวะนั้นให้ ไม่ปล่อยรอจนจบเทอม
ทั้งห้าข้อมาจากธรรมชาติของการที่เด็กหัดเขียนโปรแกรม และวางไว้ตรงนี้ในฐานะสิ่งที่เราเตรียมรับมือ หน้านี้ไม่ได้อ้างผลลัพธ์ใด ๆ ของตัวเอง เพราะงานในประเทศไทยยังไม่ได้เริ่ม และประวัติการสอนเป็นของที่ต้องทำให้ได้ก่อนจึงจะเอามาแสดงได้
แบรนด์ใหม่ยังไม่มีผลลัพธ์มาให้ดู สิ่งที่ทำได้คือบอกให้ชัดว่าทำงานอย่างไร แล้วให้ยึดตามนั้นได้
ติวเตอร์สอนเขียนโค้ดทุกคนต้องเปิดโปรแกรมที่ตัวเองเขียน แล้วเล่าบั๊กที่หนักที่สุดให้ฟังก่อนที่เราจะรับเข้าทีม คนที่อ่านมาเยอะกับคนที่ลงมือทำจริง เขียนลงเรซูเม่แล้วหน้าตาเหมือนกัน แต่ในบทสนทนานั้นต่างกันคนละเรื่อง
คุณเห็นตัวเลขของกรณีจริงของลูกก่อนที่ใครจะเดินทางไปถึงบ้าน รวมถึงกรณีที่มีพี่น้องเรียนด้วยว่าตัวเลขเปลี่ยนไหม และค่าเดินทางในกรุงเทพฯ รวมอยู่ในนั้นแล้ว
ถ้าจับคู่แล้วไม่เข้ากัน บอกมาได้เลย เราเปลี่ยนให้โดยไม่ต้องเถียงกันและไม่มีค่าธรรมเนียม วิชานี้มักไม่เข้ากันเพราะจังหวะการสอน และจะเห็นตั้งแต่ครั้งที่สองหรือสาม
เรียนบนโน้ตบุ๊กที่เด็กใช้อยู่แล้ว โดยเปิดงานของโรงเรียนไว้ด้วย เราไม่สอนบนแพลตฟอร์มที่เด็กจะเข้าไม่ได้อีกทันทีที่หยุดเรียน
หลังเรียนทุกครั้ง มีว่าทำอะไรเสร็จ บั๊กไหนกินเวลานานสุด และหนึ่งอย่างเล็ก ๆ ให้ลองต่อ เขียนให้คุณดูออกว่าชั่วโมงนั้นเป็นอย่างไรโดยไม่ต้องรู้ Python สักบรรทัด
เมื่อวิชาคอมพิวเตอร์เริ่มมีคะแนนจริง ทั้ง IGCSE และ IB Computer Science เนื้องานจะเปลี่ยนไป เราส่งต่อให้คนที่สอนวิชานั้นโดยตรง แทนที่จะยืดโปรแกรมสำหรับเด็กไปคลุมวิชาที่มีสอบ
วิชานี้ดึงดูดทั้งคนที่อ่านเรื่องการเขียนโปรแกรมมาเยอะ และคนที่ลงมือเขียนจริง การสัมภาษณ์ถูกออกแบบมาเพื่อแยกสองกลุ่มนี้ออกจากกัน
การแชร์หน้าจอเข้ากับวิชานี้ดีเป็นพิเศษ เพราะมือของเด็กยังอยู่บนคีย์บอร์ดของตัวเอง ติวเตอร์เป็นฝ่ายดูไม่ใช่ฝ่ายลงมือ และนี่ยังเป็นทางเดียวที่จะเข้าถึงติวเตอร์เฉพาะทางที่ไม่ได้อยู่ในเขตเดียวกับคุณ
เราจับคู่ติวเตอร์ตามสายรถไฟฟ้าที่บ้านของเด็กอยู่ เพราะเวลาหนึ่งชั่วโมงที่หายไปบนถนนสุขุมวิทตอนหกโมงเย็น คือตัวตัดสินว่าคาบเรียนเย็นวันธรรมดาจะเกิดขึ้นจริง หรือจะค่อย ๆ หายไปเอง เขตที่เราให้บริการ ได้แก่ วัฒนากับสาทร บางรักกับบางคอแหลม ห้วยขวาง บางนากับสะพานสูง และดอนเมือง เลยเขตเมืองออกไปมีนนทบุรี สมุทรปราการ และปทุมธานี
ส่วนใหญ่เป็นเรื่องจังหวะเวลา อุปกรณ์ และคำถามว่าเร็วไปหรือสายไปหรือเปล่า
ต่อให้เป็นโปรเจกต์ที่ทิ้งค้างไว้ ก็บอกอะไรเราได้มากกว่าแบบฟอร์ม ส่งลิงก์มา หรือเล่าเฉย ๆ ก็ได้ แล้วเราจะบอกว่าควรเริ่มตรงไหนและเพราะอะไร
อายุที่เขียนไว้คือช่วงที่เด็กส่วนใหญ่อยู่ และทุกช่วงระบุสัญญาณที่ต้องสังเกตไว้แทนการนับวันเกิด เด็กแต่ละคนมาถึงประตูเหล่านี้ตามจังหวะของตัวเอง
เอาความคิดมาก่อน การพิมพ์รอได้
ตัวอย่างชิ้นงาน: เรื่องสั้นสองตัวละครที่ตัวที่สองโต้ตอบกลับได้ เริ่มและทำจนจบภายในสามครั้ง
ขยับไปช่วงถัดไปเมื่อ: เด็กเริ่มแก้โปรเจกต์ต่อหลังจากมันทำงานได้แล้ว แทนที่จะหยุดทันทีที่มันทำงานได้
มีคะแนน มีทางแพ้ และมีการเถียงกันเรื่องความยุติธรรม
ตัวอย่างชิ้นงาน: เกมที่มีคะแนน มีเงื่อนไขแพ้ และมีปุ่มเริ่มใหม่ที่รีเซ็ตทุกอย่างที่ควรรีเซ็ตจริง ๆ
ขยับไปช่วงถัดไปเมื่อ: เด็กเริ่มเถียงว่าควรเพิ่มกติกาข้อไหนต่อ ซึ่งแปลว่าเขากำลังออกแบบ ไม่ใช่ทำตาม
การสะกดเริ่มสำคัญ และความอดทนก็ด้วย
ตัวอย่างชิ้นงาน: โปรแกรมตอบคำถามที่ตรวจคะแนนเองและเก็บคะแนนสูงสุดลงไฟล์ ปิดแล้วเปิดใหม่ก็ยังอยู่
ขยับไปช่วงถัดไปเมื่อ: เด็กแก้ข้อผิดพลาดได้เองโดยไม่ต้องมีใครบอกว่าให้ดูบรรทัดไหน
ทำตามโจทย์ของคนอื่น และอธิบายเป็นลายลักษณ์อักษร
ตัวอย่างชิ้นงาน: โปรแกรมที่ทำตามโจทย์ที่เขียนไว้ ส่งพร้อมเอกสารสั้น ๆ ว่ามันทำอะไรได้และทำอะไรไม่ได้
ขยับไปช่วงถัดไปเมื่อ: วิชาคอมพิวเตอร์ที่โรงเรียนเริ่มมีคะแนนจริง ทั้ง IGCSE ICT และ IB Computer Science แล้วรูปแบบการติวก็เปลี่ยนตาม
เด็กที่อ่านคล่องเร็วเริ่มพิมพ์โค้ดตอนสิบขวบได้ ส่วนเด็กที่อ่านช้ากว่าอาจมีความสุขกับบล็อกจนถึงสิบสองขวบและไม่ได้เสียอะไรเลย ลำดับของทั้งสี่ช่วงต่างหากที่สำคัญ ตัวเลขอายุที่แปะไว้ไม่สำคัญ สิ่งที่เราดูในครั้งแรกคือความคล่องในการอ่านกับการพิมพ์ เพราะสองอย่างนี้ตัดสินว่าวันนี้เด็กทำงานได้สบายมือตรงไหน