ข้ามไปยังเนื้อหาหลัก
ProgrammerThailand

ไอเดีย (Idea) idea ai education

ไอเดีย #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_at
  • test_case — id, assignment_id, input, expected_output, is_hidden, points
  • submission — id, assignment_id, student_id, code, attempt_no, submitted_at, score
  • test_run — id, submission_id, test_case_id, passed, actual_output, runtime_ms, error
  • ai_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 แบบไหนที่ช่วยนักศึกษาได้จริงโดยไม่เป็นการบอกคำตอบ? และควรจำกัดจำนวนครั้งที่ส่งได้ไหม หรือเปิดให้ส่งไม่จำกัดเพื่อให้ฝึก มาแลกเปลี่ยนกันครับ ใครทำแล้วเอามาแชร์ในกระทู้ได้เลย

0 คะแนน

0 คำตอบ

ยังไม่มีคำตอบ

รู้คำตอบ? ช่วยแบ่งปันได้เลย

ตอบคำถามนี้

เข้าสู่ระบบเพื่อตอบคำถามและโหวต

เข้าสู่ระบบ สมัครสมาชิก