ไอเดีย #89: ระบบตรวจการบ้านเขียนโปรแกรมพร้อม feedback
อาจารย์สอนเขียนโปรแกรมที่มีนักศึกษาร้อยคน ส่งการบ้านคนละไฟล์ทุกสัปดาห์ ถ้าต้องรันและอ่านโค้ดทีละคน ก็แทบไม่มีเวลาให้ feedback ที่มีประโยชน์ นักศึกษาเลยได้แค่คะแนนกลับไปโดยไม่รู้ว่าผิดตรงไหน ไอเดียนี้คือระบบตรวจการบ้านเขียนโปรแกรมที่รัน test อัตโนมัติ แล้วใช้ AI ช่วยให้คำแนะนำแบบชี้ทาง โดยไม่เฉลยคำตอบ
ใครจะใช้
- ผู้สอน — สร้างโจทย์ test case เกณฑ์คะแนน และตรวจ feedback ก่อนปล่อย
- ผู้ช่วยสอน (TA) — ดูงานที่ระบบให้คะแนนแล้ว แก้ไขหรือเพิ่มความเห็น
- นักศึกษา — ส่งงาน ดูผล test และคำแนะนำ แก้แล้วส่งใหม่ภายในจำนวนครั้งที่กำหนด
ฟีเจอร์ขั้นต่ำ (MVP)
- สร้างโจทย์พร้อม test case แบบเปิดเผย (ให้นักศึกษาเห็น) และแบบซ่อน
- ส่งโค้ด (ไฟล์หรือวางในหน้าเว็บ) แล้วรันใน sandbox ที่จำกัดเวลา หน่วยความจำ และไม่มีเน็ต
- แสดงผล test ผ่าน/ไม่ผ่าน และ error message ที่อ่านเข้าใจ
- AI วิเคราะห์โค้ดกับ test ที่ไม่ผ่าน ให้คำใบ้เชิงคำถาม เช่น "ลองคิดกรณีที่ list ว่างดูไหม" โดยสั่งชัดเจนว่าห้ามเขียนโค้ดเฉลย
- ตัวกรองหลังจาก AI ตอบ: ถ้ามีบล็อกโค้ดยาวเกินกำหนดให้ตัดทิ้งหรือส่งให้ผู้สอนตรวจ
- คะแนนมาจาก test เป็นหลัก ส่วน feedback ของ AI ไม่มีผลต่อคะแนน
- Dashboard ผู้สอน: test ไหนนักศึกษาตกเยอะ ใครส่งกี่ครั้ง
ต่อยอดได้อีก
- ตรวจความคล้ายของโค้ดระหว่างนักศึกษา เพื่อให้ผู้สอนพิจารณา
- ตรวจ style และคุณภาพโค้ดด้วย linter
- เชื่อมกับระบบ LMS ของสถาบัน
- รองรับหลายภาษา Python, PHP, JavaScript, Java
โครงข้อมูลตั้งต้น
assignment— id, course_id, title, description, language, max_attempts, due_attest_case— id, assignment_id, input, expected_output, is_hidden, pointssubmission— id, assignment_id, student_id, code, attempt_no, submitted_at, scoretest_run— id, submission_id, test_case_id, passed, actual_output, runtime_ms, errorai_feedback— id, submission_id, content, model_version, status (draft/approved/hidden), reviewed_by
ระดับความยาก และสิ่งที่จะได้เรียนรู้
ท้าทาย — การรันโค้ดคนอื่นอย่างปลอดภัยเป็นงานจริงจัง
- สร้าง sandbox ด้วย container ที่จำกัดทรัพยากรและ network
- queue สำหรับรันงานจำนวนมากช่วงใกล้ deadline
- ออกแบบ prompt สำหรับ feedback เชิงการสอน ไม่ใช่เฉลย
- เทียบ output แบบยืดหยุ่น (ช่องว่าง บรรทัดว่าง ทศนิยม)
ข้อควรระวัง
- โค้ดที่ส่งมาอาจเป็นอันตราย (ลบไฟล์ วนลูปไม่จบ ยิงเน็ต) ห้ามรันบนเครื่องหลักเด็ดขาด
- AI อาจเผลอเฉลยหรือให้คำแนะนำผิด ผู้สอนควรสุ่มตรวจ และมีปุ่มให้นักศึกษารายงาน feedback ที่ผิด
- ข้อมูลคะแนนของนักศึกษาเป็นข้อมูลส่วนบุคคล นักศึกษาเห็นเฉพาะของตัวเอง
- ถ้าส่งโค้ดนักศึกษาไปยัง AI ภายนอก ควรแจ้งให้ทราบและไม่แนบข้อมูลระบุตัวตน
อาจารย์หรือ TA ที่อยู่ในบอร์ดนี้ คิดว่า feedback แบบไหนที่ช่วยนักศึกษาได้จริงโดยไม่เป็นการบอกคำตอบ? และควรจำกัดจำนวนครั้งที่ส่งได้ไหม หรือเปิดให้ส่งไม่จำกัดเพื่อให้ฝึก มาแลกเปลี่ยนกันครับ ใครทำแล้วเอามาแชร์ในกระทู้ได้เลย