إسماعيل بن علا

Code-Hinter

تصحيح بالذكاء الاصطناعي داخل VS Code

تطبيقات النماذج اللغوية الكبيرة · أبريل 2025 · مكتمل

تمارين برمجة تُنشأ وتُسلَّم وتُصحَّح بالذكاء الاصطناعي دون مغادرة VS Code.

التقنياتTypeScriptVS Code APIPythonFlaskNext.jsHugging Face TransformersSupabase

Code-Hinter — نظرة عامة

نظرة عامة

في مقرر برمجة، تعيش التمارين عادةً في مكان، وكود الطلاب في مكان آخر، والتصحيح في مكان ثالث. في مشروع جماعي في École Centrale de Lyon، تساءلنا عمّا إذا كانت الحلقة كاملة يمكن أن تجري داخل المحرر الذي يستخدمه الطلاب أصلًا، مع بقاء الأستاذ صاحب القرار في ما يُعدّ إجابة صحيحة.

بنينا Code-Hinter: إضافة لـ VS Code، وخلفية Python/Flask، وتطبيق ويب مرافق بـ Next.js. يحدد الأساتذة التمارين مع حل مرجعي والمفاهيم التي يتوقعونها؛ ويسجّل الطلاب الدخول ويختارون تمرينًا ثم يقيّمون كودهم أو يسلّمونه من لوحة الأوامر (Command Palette). يفحص نموذج مفتوح صغير (SmolLM2-1.7B-Instruct) الكود وفق مفاهيم الأستاذ ويمنحه درجة لمدى قربه من الحل المرجعي.

علّمني المشروع أن ملاحظات الذكاء الاصطناعي لا تحظى بالثقة إلا عندما تكون المعايير صريحة وبيد المعلّم. بقي مشروعًا أكاديميًا ولم يُنشر خارج نطاق المقرر.

السؤال

هل يمكن للتصحيح المدعوم بالذكاء الاصطناعي أن يعيش حيث يعمل الطلاب أصلًا — في المحرر — مع احتفاظ الأساتذة بالتحكم في معايير التقييم؟

أهم الميزات

كيف يعمل

  1. الأستاذ يحدد التمرين

    يخزّن كل تمرين كود الأستاذ المرجعي والمفاهيم التي يجب أن تُظهرها الإجابة الصحيحة، مرتبطةً بالأساتذة والطلاب في نموذج علائقي بسيط.

  2. الطالب يعمل في المحرر

    تقرأ الإضافة الملف المفتوح وترسله إلى واجهة Flask (evaluate_code أو compare_code أو complete_code) مع التمرين المحدد.

  3. النموذج يقيّم وفق المعايير

    توجّه الخلفية أوامرها إلى SmolLM2-1.7B-Instruct عبر Hugging Face Transformers لفحص كل مفهوم، أو لإرجاع درجة تشابه واحدة من 0 إلى 100 مقابل الحل المرجعي.

  4. النتيجة تعود إلى VS Code

    تُعرض الاستجابة للطالب داخل المحرر، ويمنح تطبيق الويب المعلّمين والطلاب عرض لوحة تحكم للتمارين.

أمثلة

عرض توضيحي لإضافة VS Code: اختيار تمرين من لوحة الأوامر وتقييم الكود. (شاهد على YouTube)
عرض توضيحي لتطبيق الويب المرافق بـ Next.js للمعلّمين والطلاب. (شاهد على YouTube)
نموذج بيانات الخلفية من المستودع: ينشئ الأساتذة التمارين ويشرفون على الطلاب، وتُتابَع كل محاولة لكل طالب بدرجتها وحالتها والكود المسلَّم.
نموذج بيانات الخلفية من المستودع: ينشئ الأساتذة التمارين ويشرفون على الطلاب، وتُتابَع كل محاولة لكل طالب بدرجتها وحالتها والكود المسلَّم.

المدخل

POST /api/evaluate_code with the exercise's concepts and the student's code, e.g. "print([x for x in range(10)])"

المخرج

One line per concept in the format the grading prompt requires: "[nbr]) [yes/no], [explanation in 6 words]", with any syntax or logic error called out.

عقد التقييم بين الإضافة والخلفية، مأخوذ من واجهة المستودع البرمجية وأمره النصي.

التقنيات المستخدمة

ما تعلمته

الحدود