เรียนเขียนโปรแกรมฟรีกับ codeacademy

เมื่อประมาณปีที่แล้วผมค้นพบเว็บ codeacademy ซึ่งเป็นเว็บสอนการเขียนภาษา Python และภาษาอื่นๆ ที่ได้รับความนิยม ทั้ง PHP, JavaScript และอื่นๆ อีกมากมาย ความพิเศษของเว็บนี้คือเป็นการสอนแบบตอบโต้กับผู้เรียนอย่างต่อเนื่อง (interactive) ครับ ด้วยสโลแกนที่ชัดเจนว่า “learning to code interactively, for free”


จากการวิเคราะห์ด้วยตัวเอง ผมคิดว่าเว็บแบบนี้ช่วยให้เด็กเรียนได้ง่ายและสนุกเพราะเนื้อหาไม่ยากเกินไป เรียนไปทีละขั้นตอน แถมยังมีเทคนิคการทำการเรียนการสอนให้เป็นการเล่นเกม (gamificationซึ่งไม่ได้หมายถึงการเล่นเกมตรงๆ แต่เป็นการเอาคุณลักษณะของเกม (เช่นการเก็บคะแนน การให้ป้ายสัญลักษณ์ต่างๆ หรือ badges) มาใช้ในบริบทที่ไม่ใช่เกม คล้ายกับเทคนิคที่ Khan Academy ใช้ครับ คือเมื่อทำแต่ละแบบฝึกหัดเสร็จแล้วก็จะได้คะแนน พอทำเสร็จหนึ่งหัวข้อก็จะได้ป้ายสัญลักษณ์เอามาใส่ในโปรไฟล์ของเรา นอกจากนี้ยังมีความสามารถด้านสังคมคือผู้เล่นสามารถแชร์คะแนนและป้ายสัญลักษณ์ของตัวเองไปยังโซเชียลมีเดียต่างๆ ได้

แต่ข้อเสียสองประการที่ผมยังละล้าละลัง ประการแรกในช่วงแรกๆ ที่ codeacademy ออกมานั้น ทางทีมงานออกแบบให้ใครก็ได้มาออกแบบบทเรียน (ซึ่งผมก็ลองไปดูโครงสร้างโปรแกรมของเขา ปรากฏว่าเราต้องเรียนภาษาของเขาเพื่อที่จะเอามาเขียนบทเรียน ซึ่งผมไม่ได้มีเวลามากขนาดนั้น ทั้งยังคิดว่าการจะเขียนหลักสูตรแบบ interactive ให้ดีมันใช้เวลาเยอะ เพราะผู้เรียนสามารถตอบผิดตอบถูกได้มากมายหลายแบบ จะให้ผู้ออกแบบคิด feedback เพื่อรองรับความผิดพลาดหลายรูปแบบได้นั้นต้องผ่านการทดลองมากมายหลายรอบ ผมเลยรอให้คนอื่นทำดีกว่า ฮา!) แต่ผลก็มาเหมือนที่คาดครับ คือแบบฝึกหัดไม่สามารถสอนอะไรที่เป็นเรื่องยากๆ ได้ หรือสอนได้แต่ไม่ดี เพราะมันซับซ้อนเกินกว่าที่ผู้ออกแบบจะคิดหาคำตอบที่จะนำพาให้ผู้เรียนเข้าใจบทเรียนได้ ลองเปรียบเทียบกับการเรียนภาษาอังกฤษก็ได้นะครับ สมมติว่าเราเขียนโปรแกรมเพื่อถามคำถามผู้เรียนแล้วให้เขาพิมพ์ตอบมาหนึ่งประโยคซึ่งมีประธาน กริยาและกรรม เขาอาจจะสะกดผิด ใช้ไวยากรณ์ผิด หรือเลือกคำผิดก็ได้ ความเป็นไปได้มันร้อยแปด โปรแกรมมิ่งก็เหมือนกันครับ ดังนั้นเป็นเรื่องยากมากที่เราจะคาดเดาว่าผู้เรียนจะเขียนผิดแบบไหน

แม้ระบบของ codeacademy จะให้คำใบ้ (Hint) ก็ไม่สามารถครอบคลุมได้ทุกกรณี และที่แย่กว่านั้นคือผู้ออกแบบบางครั้งมักง่าย บอกว่าคำใบ้คือให้กลับไปดูที่เนื้อหาข้างต้นซะอย่างนั้น (ดูตัวอย่างด้านล่างนะครับ จะเห็นว่าคำใบ้ไม่ได้ช่วยอะไรเลย)


ปัญหาประการต่อมาคือความสามารถในการติดตามผลผู้เรียนครับ แม้ว่าเราจะสามารถดูความก้าวหน้าของผู้เรียนแต่ละคนได้ แต่มันคงจะดีไม่น้อยถ้าระบบสามารถช่วยให้ผู้สอนหรือโค้ชสามารถดึงเด็กหลายๆ คนมาอยู่ในหน้าเดียวกันเป็นการดูภาพรวม (ซึ่ง Khan Academy ทำได้) และจะดีกว่านี้อีกถ้าสามารถส่งข้อมูลออกมาเป็น Excel หรือ CSV เพื่อที่จะได้เอามาใช้ประมวลผลรวมกับคะแนนอื่นๆ ในชั้นได้ง่าย

แต่สุดท้ายแล้วผมก็ตัดสินใจว่า เอาวะ ลองดูหน่อยจะเป็นไร เพราะเราก็รู้สึกประทับใจกับแนวคิดของผู้จัดทำ และปรัชญาหนึ่งที่ผมยึดถือมาตลอดคือ ต้องมีทางเลือกให้ผู้เรียนมากที่สุดเท่าที่จะมากได้ ในเทอมนี้ผมเลยลองเอามาใช้ในหลายวิชาที่สอนโปรแกรมมิ่ง ทั้งวิชาระดับพื้นฐานอย่าง Programming & Algorithms ซึ่งผมใช้เป็นบทเรียนเสริมเท่านั้น ไม่ได้บังคับผู้เรียนให้ทำ และวิชาระดับกลางและขั้นสูงอีกสองวิชา ซึ่งผมให้คะแนนพิเศษ 5% สำหรับผู้เรียน เพราะผมคิดว่าผู้เรียนมีพื้นฐานมาแล้ว แม้ว่า feedback ของ codeacademy อาจจะคลุมเครือในบางครั้ง แต่ก็คงจะสามารถไปหาข้อมูลเพิ่มเติมได้ ทั้งจากหน้า Q&A ของเว็บเอง (ดูที่มุมด้านซ้ายล่างของภาพนะครับ) หรือในเว็บถามตอบอื่นๆ เช่น stackoverflow

เนื่องจากวิชา Programming & Algorithms นี้ผมไม่ได้ใช้ codeacademy อย่างจริงจัง ผมเลยไม่สามารถบอกได้ว่ามันดีหรือไม่ ช่วยเหลือผู้เรียนแค่ไหน แต่เซอร์ไพรส์ที่ผมเจอคือในวิชาระดับกลาง (Web Design & Programming) ซึ่งผู้เรียนบอกว่าได้ผลดีมาก ช่วยให้เรียนรู้ได้และสนุก และที่ไม่เซอร์ไพรส์คือในวิชาระดับสูง (Web Application) ซึ่ง codeacademy ไม่ได้ช่วยเท่าไหร่

แม้ผมจะเดาไม่ผิดว่า codeacademy นั้นไม่เหมาะกับวิชาระดับสูง เพราะสอนได้แค่หลักพื้นฐาน แต่ก็ดีใจที่ผมเดาผิดว่ามันช่วยให้ผู้เรียนในระดับกลางสนุกและอยากเรียนมากขึ้น อาจจะเป็นเพราะ Web Fundamentals Track ที่ codeacademy มีบทเรียนที่ดีกว่า Track อื่นด้วย

โครงการเว็บที่คล้ายกับ codeacademy ก็มีเพิ่มขึ้นเรื่อยๆ ครับ ล่าสุดผมเจอ learnstreet ซึ่งเรียกว่าลอกแบบกันมาเลย แต่เน้นกลุ่มผู้ใช้ในโรงเรียนคือพัฒนาระบบหลังบ้านให้ผู้สอนสามารถติดตามผู้เรียนหลายๆ คนได้ง่ายขึ้น (แต่เขายังพัฒนาไม่เสร็จครับ ผมก็ได้แต่รอ) ถ้าเรียบร้อยเมื่อไหร่จะมาแจ้งความคืบหน้าให้ทราบกันนะครับ

สำหรับตอนนี้ ใครที่สอนวิชาโปรแกรมมิ่ง ลองเล่น codeacademy ดู แล้วมาเล่าให้ฟังบ้างว่าผู้เรียนเขาชอบหรือไม่ชอบอย่างไรนะครับ

ภาพประกอบ: http://www.webthesmartway.com/2013/02/codecademy-com-online-computer-programming-courses/

บันทึกนี้เขียนที่ GotoKnow โดย  ใน แว้บคิด



ความเห็น (2)

เขียนเมื่อ 

ขอบคุณสำหรับข้อมูลช่องทางดีดีครับ

"ไอดินฯ" ไม่มีความรู้และประสบการณ์ในเรื่องนี้เลยค่ะ แค่เคยให้นักศึกษาสาขาวิชาภาษาอังกฤษ พัฒนาทักษะการอ่าน และคำศัพท์ภาษาอังกฤษ จากเกมคอมพิวเตอร์สัญชาติออสเตรเลียน มีทั้งหมด 60 เกม ให้เล่นไปตามลำดับนอกเวลาในห้องปฏิบัติการคอมพิวเตอร์ของคณะ แล้วบันทึกคำศัพท์ คำสั่ง และประโยคที่ได้เรียนรู้ค่ะ