2025-11-11T11:43:09.580597

Automatically Generating Questions About Scratch Programs

Obermüller, Fraser
When learning to program, students are usually assessed based on the code they wrote. However, the mere completion of a programming task does not guarantee actual comprehension of the underlying concepts. Asking learners questions about the code they wrote has therefore been proposed as a means to assess program comprehension. As creating targeted questions for individual student programs can be tedious and challenging, prior work has proposed to generate such questions automatically. In this paper we generalize this idea to the block-based programming language Scratch. We propose a set of 30 different questions for Scratch code covering an established program comprehension model, and extend the LitterBox static analysis tool to automatically generate corresponding questions for a given Scratch program. On a dataset of 600,913 projects we generated 54,118,694 questions automatically. Our initial experiments with 34 ninth graders demonstrate that this approach can indeed generate meaningful questions for Scratch programs, and we find that the ability of students to answer these questions on their programs relates to their overall performance.
academic

إنشاء الأسئلة تلقائياً حول برامج Scratch

المعلومات الأساسية

  • معرّف الورقة البحثية: 2510.11658
  • العنوان: Automatically Generating Questions About Scratch Programs
  • المؤلفون: Florian Obermüller, Gordon Fraser
  • التصنيف: cs.SE (هندسة البرمجيات)
  • وقت النشر/المؤتمر: CompEd 2025 (مؤتمر ACM العالمي لتعليم الحوسبة 2025)
  • رابط الورقة البحثية: https://arxiv.org/abs/2510.11658

الملخص

في تعليم البرمجة، يتم عادة تقييم الطلاب بناءً على الكود الذي يكتبونه. ومع ذلك، فإن إكمال مهام البرمجة بنجاح لا يضمن الفهم الحقيقي للمفاهيم الأساسية. لذلك، اقترحت الأبحاث السابقة تقييم فهم البرامج من خلال طرح أسئلة على المتعلمين حول أكوادهم. نظراً لأن إنشاء أسئلة مخصصة لكل برنامج طالب يعتبر مملاً وصعباً، اقترحت الأعمال السابقة طرقاً لإنشاء هذه الأسئلة تلقائياً. تعمم هذه الورقة هذه الفكرة على لغة البرمجة القائمة على الكتل Scratch. نقترح 30 نوعاً مختلفاً من أسئلة كود Scratch، تغطي نموذج فهم البرامج المعروف، وتوسع أداة التحليل الثابت LitterBox لإنشاء الأسئلة المناسبة تلقائياً لبرنامج Scratch معين. على مجموعة بيانات تحتوي على 600,913 مشروعاً، أنشأنا تلقائياً 54,118,694 سؤالاً. أظهرت التجارب الأولية على 34 طالباً في الصف التاسع أن هذه الطريقة تنتج بالفعل أسئلة ذات معنى لبرامج Scratch، وتكشف أن قدرة الطلاب على الإجابة عن هذه الأسئلة ترتبط بأدائهم الإجمالي.

خلفية البحث والدافع

المشكلة الأساسية

تتمحور المشكلة الأساسية التي يعالجها هذا البحث حول: كيفية تقييم فعال لفهم الطلاب لبرامج Scratch التي كتبوها بأنفسهم، وليس فقط التحقق من أن البرنامج يعمل بشكل صحيح.

أهمية المشكلة

  1. الفجوة بين الفهم والتنفيذ: قد يكمل الطلاب مهام البرمجة من خلال التجربة والخطأ أو النسخ أو المساعدة الآلية، لكنهم لا يفهمون حقاً المفاهيم البرمجية الأساسية
  2. قيود طرق التقييم: تركز طرق التقييم التقليدية بشكل أساسي على صحة الكود، وليس على قدرة الطالب على فهم البرامج
  3. التحديات على نطاق واسع: في سيناريوهات التدريس على نطاق واسع، يجد المعلمون صعوبة في إنشاء أسئلة تقييم فهم مخصصة يدوياً لكل برنامج طالب

قيود الطرق الموجودة

  1. قيود اللغات النصية: تركز طرق إنشاء الأسئلة الموجودة بشكل أساسي على لغات البرمجة النصية مثل Java، وليست مناسبة للغات البرمجة القائمة على الكتل مثل Scratch
  2. اختلافات خصائص اللغة: يتم إنشاء المتغيرات في Scratch من خلال واجهة المستخدم وليس من خلال بيانات الإعلان، ولا يمكن الإشارة إلى الكتل برقم السطر
  3. نقص النهج المنظم: نقص طريقة تصميم الأسئلة المنظمة والمبنية على إطار عمل نظري

دافع البحث

يتمثل دافع هذا البحث في توسيع مفهوم "الأسئلة حول كود المتعلم" (Questions about Learner's Code, QLCs) الموجود إلى بيئة Scratch، لتوفير أداة تقييم فهم برامج مؤتمتة لتعليم البرمجة القائمة على الكتل.

المساهمات الأساسية

  1. تصميم الأسئلة المنظم: تصميم منظم لـ 30 نوعاً من أنواع الأسئلة الموجهة لكود Scratch بناءً على نموذج Block Model لفهم البرامج
  2. توسيع الأداة: توسيع أداة التحليل الثابت مفتوحة المصدر LitterBox لتتمكن من إنشاء أسئلة فهم برامج Scratch تلقائياً
  3. التحقق على نطاق واسع: التحقق من قابلية تطبيق الطريقة على مجموعة بيانات تحتوي على 600,913 مشروع Scratch عام
  4. دراسة تجريبية: التحقق من فعالية الأسئلة والعلاقة بين أداء الطلاب في الإجابة وقدرتهم على البرمجة من خلال تجربة صفية على 34 طالباً في الصف التاسع

شرح الطريقة

تعريف المهمة

الإدخال: مشروع برنامج Scratch الإخراج: مجموعة من أسئلة الفهم المُنشأة تلقائياً حول هذا البرنامج، بما في ذلك نص السؤال وخيارات الإجابة والإجابة الصحيحة القيود: يجب أن تكون الأسئلة مبنية على بنى الكود الموجودة فعلاً في البرنامج، وتتوافق مع إطار عمل Block Model النظري

معمارية الطريقة

1. الأساس النظري: تكييف نموذج Block Model

يتضمن نموذج Block Model أربع مستويات من نطاقات الاهتمام وثلاثة أبعاد برامج:

المستوىالبعد النصيبعد التنفيذبعد الهدف
المستوى الذريعناصر اللغةعمليات العناصرالغرض من العناصر
مستوى الكتلةالمناطق ذات الصلة بالبناء الجملي/الدلاليعمليات كتل الكودوظيفة كتل الكود
مستوى العلاقةالمراجع بين كتل الكودتدفق العمليات بين كتل الكودالعلاقة بين الأهداف والأهداف الفرعية
المستوى الكليالبنية الإجمالية للبرنامجالخوارزمية أو سلوك البرنامجالهدف الإجمالي أو الغرض من البرنامج

2. تصميم أنواع الأسئلة

بناءً على نموذج Block Model، تم تصميم 30 نوعاً من الأسئلة، مقسمة إلى 5 تنسيقات إجابة:

  • النوع الرقمي (🔢): الإجابة عبارة عن رقم واحد
  • النوع النصي (📝): الإجابة عبارة عن سلسلة نصية واحدة أو أكثر
  • النوع الثنائي (✓/✗): الإجابة نعم أو لا
  • النوع متعدد الخيارات (☑️): اختيار الإجابة الصحيحة من الخيارات
  • النوع النصي الحر (📄): أسئلة مفتوحة تتطلب إجابات توضيحية

3. تنفيذ الإنشاء التلقائي

يتم التنفيذ من خلال توسيع أداة LitterBox:

  1. تحليل AST: تحويل برنامج Scratch إلى شجرة بناء جملة مجردة
  2. نمط الزائر: تنفيذ محقق أسئلة لكل نوع سؤال
  3. اجتياز الكود: اجتياز AST لتحديد أنماط الكود التي يمكن إنشاء أسئلة عنها
  4. إنشاء الخيارات: إنشاء خيارات تشتيت تلقائية للأسئلة متعددة الخيارات

نقاط الابتكار التقني

  1. التكييف مع البرمجة القائمة على الكتل: أول تطبيق منظم لمفهوم QLCs على لغات البرمجة القائمة على الكتل
  2. التصميم المدفوع بالنظرية: تصميم أنواع الأسئلة بناءً على إطار عمل نظري متطور لفهم البرامج
  3. الإنشاء المؤتمت: تنفيذ عملية إنشاء أسئلة مؤتمتة بالكامل
  4. التغطية متعددة الأبعاد: تغطي الأسئلة جميع المستويات من عناصر اللغة الأساسية إلى الغرض الإجمالي من البرنامج

إعداد التجربة

مجموعة البيانات

  1. مجموعة البيانات الكبيرة: 600,913 مشروع Scratch عام، مع استبعاد المشاريع الفارغة والمختلطة
  2. بيانات التجربة الصفية: 34 طالباً من الصف التاسع الألماني، لديهم خبرة في برمجة Scratch
  3. مشاريع السقالات: استخدام لعبة Boat Race كمشروع أساسي للتجربة الصفية

مؤشرات التقييم

  1. تكرار إنشاء الأسئلة: العدد الإجمالي لكل نوع سؤال والنسبة المئوية للمشاريع المغطاة
  2. تحليل الارتباط: معامل ارتباط بيرسون بين أداء الطلاب في الإجابة وإكمال مهام البرمجة
  3. تحليل التغطية: النسبة المئوية لتغطية المشاريع لكل بعد من أبعاد نموذج Block Model

طرق المقارنة

نظراً لأن هذا هو أول بحث عن QLCs موجه لـ Scratch، يتم التحقق بشكل أساسي من خلال:

  1. المقارنة المفاهيمية مع QLCs الموجودة للغات النصية
  2. التحقق المنظم بناءً على إطار العمل النظري
  3. التحقق من التطبيق في سيناريوهات التدريس الفعلية

تفاصيل التنفيذ

  1. توسيع الأداة: بناءً على أداة التحليل الثابت LitterBox
  2. تنسيق الإخراج: تنسيق JSON يتضمن مقاطع كود بصيغة ScratchBlocks
  3. عرض الأسئلة: تمييز جزء الكود المستهدف (كما هو موضح في الشكل 1a)
  4. آلية التصحيح: 0.2 نقطة لكل اختيار صحيح في الأسئلة متعددة الخيارات، نقطة واحدة للإجابة الصحيحة في الأسئلة ذات الخيار الواحد

نتائج التجربة

النتائج الرئيسية

السؤال البحثي الأول: تكرار إنشاء الأسئلة

  • الإحصائيات الإجمالية: تم إنشاء 54,118,694 سؤالاً في 600,913 مشروع
  • الأسئلة الأكثر تكراراً:
    • Purpose of Script: 9,748,844 مرة (تغطية 100% من المشاريع)
    • Purpose of If Condition: 5,103,322 مرة (تغطية 41.1% من المشاريع)
    • Scripts for Actor: 3,524,268 مرة (تغطية 100% من المشاريع)
  • الأسئلة الأقل تكراراً:
    • My Block Definition: 368,712 مرة (تغطية 11.3% من المشاريع)
    • Purpose of Loop Condition: 486,902 مرة (تغطية 15.2% من المشاريع)

تحليل معدل تغطية نموذج Block Model

البعدالمستوى الذريمستوى الكتلةمستوى العلاقةالمستوى الكلي
البعد النصي64.5%61.2%46.5%100.0%
بعد التنفيذ30.4%58.4%99.0%71.1%
بعد الهدف49.0%100.0%31.2%100.0%

السؤال البحثي الثاني: الارتباط بين أداء الإجابة وقدرة البرمجة

  • معامل الارتباط: r = 0.467 (p = 0.005)
  • قوة الارتباط: ارتباط إيجابي متوسط
  • الدلالة الإحصائية: p < 0.01، ذو دلالة إحصائية
  • الأهمية العملية: ترتبط قدرة الطلاب على الإجابة عن QLCs بشكل كبير بدرجة إكمالهم لمهام البرمجة

النتائج التجريبية

  1. التحقق من الشمولية: يمكن إنشاء جميع أنواع الأسئلة الـ 30 بتكرار في المشاريع الفعلية
  2. الخصائص الهرمية: يمكن إنشاء الأسئلة عالية المستوى (مثل الغرض من البرنامج) في جميع المشاريع تقريباً، بينما تعتمد الأسئلة منخفضة المستوى على بنى برمجية محددة
  3. إثبات الفعالية: يمكن استخدام QLCs بفعالية كمؤشر على قدرة فهم البرامج
  4. القيمة التعليمية: يمكن استخدامها للكشف عن نقص المعرفة السابقة للطلاب

الأعمال ذات الصلة

الاتجاهات البحثية الرئيسية

  1. تقييم فهم البرامج: تركز الطرق التقليدية بشكل أساسي على مهارات تتبع الكود والتفسير والكتابة
  2. إنشاء الأسئلة التلقائي: توجد بالفعل أدوات لإنشاء أسئلة تلقائية للغات النصية مثل Java
  3. تعليم البرمجة القائمة على الكتل: التطبيق الواسع لـ Scratch كلغة برمجة للمبتدئين

العلاقة بين هذه الورقة والأعمال ذات الصلة

  1. الوراثة النظرية: تعتمد على نموذج Block Model كإطار عمل نظري متطور
  2. التوسيع التقني: تطبيق مفهوم QLCs الموجود لأول مرة على لغات البرمجة القائمة على الكتل
  3. الابتكار في الأدوات: تنفيذ إنشاء أسئلة مؤتمت موجه لـ Scratch بناءً على أداة LitterBox

المزايا مقارنة بالأعمال ذات الصلة

  1. قابلية التكييف مع اللغة: تصميم متخصص يأخذ في الاعتبار خصائص لغات البرمجة القائمة على الكتل
  2. الاكتمال المنظم: تصميم منظم للأسئلة بناءً على إطار عمل نظري
  3. الفائدة العملية: التحقق على نطاق واسع من البيانات والتطبيق الفعلي في الفصول الدراسية

الخلاصة والمناقشة

الاستنتاجات الرئيسية

  1. الجدوى التقنية: يمكن إنشاء عدد كبير من أسئلة الفهم ذات المعنى لبرامج Scratch تلقائياً
  2. الفعالية التعليمية: يمكن للأسئلة المُنشأة تقييم قدرة الطلاب على فهم البرامج بفعالية
  3. القيمة العملية: توفير أداة تقييم مؤتمتة قابلة للتوسع لتعليم Scratch

القيود

  1. تقييم النصوص الحرة: لا تزال الأسئلة المفتوحة تتطلب مشاركة بشرية في التقييم التلقائي
  2. درجة تغطية الأسئلة: بعض بنى Scratch المحددة لا تحظى بتغطية كافية في الأبعاد منخفضة المستوى
  3. حجم التجربة: حجم العينة في التجربة الصفية نسبياً صغير (34 طالباً)
  4. قيود الوقت: قد تؤثر قيود الوقت في التجربة الصفية على النتائج

الاتجاهات المستقبلية

  1. دمج نماذج اللغة الكبيرة: الاستفادة من نماذج اللغة الكبيرة لتقييم الإجابات النصية الحرة تلقائياً
  2. توسيع الأسئلة: إضافة المزيد من أنواع الأسئلة الموجهة لبنى Scratch المحددة
  3. واجهة المستخدم: تطوير واجهة مستخدم مناسبة للاستخدام في الفصول الدراسية لإنشاء وإدارة الأسئلة
  4. دراسات التأثير طويلة الأجل: تقييم التأثير طويل الأجل لـ QLCs على نتائج التعلم

التقييم المتعمق

المزايا

  1. ابتكار قوي: أول تطبيق منظم لـ QLCs على لغات البرمجة القائمة على الكتل، يملأ فراغاً بحثياً
  2. أساس نظري قوي: يضمن التصميم المنظم بناءً على نموذج Block Model الاكتمال النظري للأسئلة
  3. تجارب شاملة: الجمع بين تحليل البيانات على نطاق واسع والتجارب الصفية يتحقق من جدوى الطريقة وفعاليتها
  4. قيمة عملية عالية: يسمح نشر الأداة مفتوحة المصدر بتطبيق نتائج البحث مباشرة في الممارسة التعليمية
  5. كتابة واضحة: هيكل الورقة واضح، والتفاصيل التقنية موصوفة بدقة

أوجه القصور

  1. قيود التقييم: لا يزال تقييم الأسئلة النصية الحرة يتطلب مشاركة بشرية، مما يحد من الأتمتة الكاملة
  2. قيود العينة: حجم العينة في التجربة الصفية صغير نسبياً، مما يتطلب تحققاً على نطاق أوسع
  3. نقص التحليل المتعمق: نقص التحليل الدقيق لفعالية أنواع الأسئلة المختلفة
  4. مشاكل التكيف: لم يتم مناقشة كيفية التكيف مع مستويات مختلفة من الطلاب والمهارات بشكل كافٍ

التأثير

  1. المساهمة الأكاديمية: توفير اتجاه بحثي جديد وأداة لمجال تقييم تعليم البرمجة
  2. القيمة العملية: توفير أداة تقييم مؤتمتة عملية لمعلمي Scratch
  3. قابلية التكرار: يضمن الكود مفتوح المصدر والإعداد التجريبي التفصيلي قابلية تكرار البحث
  4. إمكانية التوسع: يمكن توسيع الطريقة لتشمل لغات برمجة قائمة على كتل أخرى ومنصات

السيناريوهات المناسبة

  1. تعليم البرمجة K-12: مناسب بشكل خاص للفصول الدراسية التي تستخدم Scratch لتعليم البرمجة الأساسي
  2. منصات التعلم عبر الإنترنت: يمكن دمجها في أنظمة التعلم البرمجي عبر الإنترنت لتوفير تعليقات تلقائية
  3. تدريب المعلمين: مساعدة المعلمين على فهم أفضل لمستوى فهم الطلاب للبرامج
  4. أداة البحث: توفير أداة تقييم موحدة لأبحاث تعليم البرمجة

المراجع

تستشهد الورقة البحثية بـ 23 مرجعاً مهماً، تغطي نظرية فهم البرامج وتقييم تعليم البرمجة وأدوات تحليل Scratch وغيرها من مجالات البحث ذات الصلة. من بين الأعمال التي تستحق الاهتمام بشكل خاص الورقة الأصلية لنموذج Block Model والأعمال ذات الصلة بأداة LitterBox والدراسات التجريبية حول العلاقة بين فهم البرامج والقدرة على البرمجة.