راقمون

دراسات وأوراق علمية

تخصيص التعلّم في لغات البرمجة القائمة على الكتل باستخدام التجميع وتحليل الكود الساكن

8 يوليو، 2026
اسم المجلةComputers and Education Open
المجلد10
الصفحات100333
تاريخ النشر14 يناير 2026

خلاصة الدراسة

تعالج هذه الدراسة إشكالية تخصيص التعلّم في تعليم البرمجة، وتحديدًا في لغات البرمجة المرئية القائمة على الكتل (Block-based Visual Programming Languages) الموجّهة للمبتدئين. فمع تزايد أهمية البرمجة بوصفها مهارة أساسية تتجاوز تخصص علوم الحاسوب إلى مجالات متعدّدة، يواجه المعلّمون تحدي جعل البرمجة في متناول جمهور أوسع. وتوفّر اللغات القائمة على الكتل تمثيلات بصرية للبنى البرمجية المعقّدة، فتكون أيسر للمبتدئين لبساطة صياغتها وقابليتها للاستخدام وطابعها الممتع مقارنةً باللغات النصية الأكثر صرامة في التركيب. غير أن المقاربات التقليدية للتخصيص تعتمد غالبًا على تصاميم تعليمية موحّدة لا تلائم تنوّع أنماط المتعلّمين وحاجاتهم، كما أنها تُهمل تعليم ممارسات الكتابة النظيفة للكود (Clean Coding) رغم أهميتها في تطوير البرمجيات الاحترافية. ومن هنا تنطلق الفرضية المركزية: أن استخدام تحليل الكود الساكن، معزّزًا بتقنيات التعلّم الآلي، يوفّر تجربة تعلّم مخصّصة لمستخدمي هذه اللغات، بحيث يمكن تجميع التطبيقات وفق خصائص متعدّدة لتقديم إرشاد تعلّم مخصّص.

أجرى الباحثون مراجعة للأدبيات في مكتبات رقمية معروفة (IEEE Xplore وACM Digital Library وSpringer)، فوجدوا 176 منشورًا ذا صلة، لكن بعد تطبيق معايير الانتقاء لم يستوفِ الشروط سوى منشورين اثنين فقط (1.14%)، فيما استُبعد 174 لخروجها عن النطاق. كما استعانوا بمساعد Scite AI الذي أعاد ثلاث دراسات، غير أنها لم تركّز على التطبيق في بيئات الكتل تحديدًا. وخلصت المراجعة إلى أن تخصيص التعلّم في بيئة Scratch كان محدودًا للغاية (دراستان فقط)، وأنه لم يُطبّق بعد على MIT App Inventor، وأن أيًّا من الدراسات المراجَعة لم يوظّف تقنيات التجميع بالتعلّم الآلي لتخصيص التعلّم، وهي فجوة واضحة تسعى الدراسة إلى معالجتها. ويقترح الباحثون منهجًا قائمًا على البيانات (Data-driven) يحلّل مجموعات بيانات واسعة النطاق من مشاريع المبتدئين لفحص أنماط تغطية المفاهيم البرمجية وجودة الكود، بغية التنبؤ بمسارات التعلّم وتكييفها بما يوائم حاجات المتعلّمين.

يستند المنهج إلى فئة منهجيات علم التصميم (Design Science Research)، التي تركّز على بناء مصنوعات برمجية لمعالجة مشكلة بحثية محدّدة. وقد طُوّرت أداة باسم BlocklyMining لدعم هذا المنهج، تدمج ثلاث خدمات جوهرية: خدمة تحليل الكود الساكن التي تستخلص مقاييس بنية المشروع (كعدد الشاشات والكتل ومعالِجات الأحداث والحلقات والمتغيّرات) وتكشف روائح الكود (Code smells) كالكود المكرّر أو غير القابل للوصول والدوال المفرطة الطول والمتغيّرات سيّئة التسمية، ومقاييس مستوحاة من SonarQube تشمل التعقيد الحلقي والمعرفي والتداخل المفرط والأرقام السحرية والحلقات اللانهائية؛ وخدمة قياس الجودة عبر نموذج SQALE التي تحسب الدَّين التقني بضرب عامل تصحيح في عدد الحالات المكتشفة، ثم تسند درجة قابلية صيانة تُصنَّف من A (دَين تقني منخفض) إلى E (دَين تقني مرتفع جدًا)؛ وخدمة التعلّم المخصّص القائمة على التجميع الآلي. وتتّبع الأداة معمارية عميل-خادم مصوّرة بترميز نموذج C4؛ فحين ينشئ المستخدم مشروعًا يُرسَل ملف المشروع (.aia) للتحليل الساكن والتصنيف، ثم تعود توصية إلى بيئة MIT App Inventor لإرشاد التحسينات اللازمة لبلوغ المستوى التالي مع درجة جودة مبنية على SQALE.

يمرّ المنهج بثلاث مراحل رئيسة: الإعداد الأوّلي حيث يحدّد الباحثون مقاييس التحليل الساكن ومعايير التصنيف وينفّذها المطوّرون؛ ثم التحسين المستمر حيث يطوّر المستخدمون تطبيقاتهم فتخضع لتحليل ساكن تلقائي وتنال درجة SQALE ثم تُصنَّف بخوارزميات التجميع؛ ثم التقييم والتنقيح حيث يحلّل الباحثون النتائج لاكتشاف أنماط جديدة واقتراح مقاييس أو معايير إضافية. وتُترجم عملية التحليل إلى إرشاد تكيّفي في خمس خطوات: استخلاص المقاييس، وبناء ملفات المتعلّمين، واكتشاف الفجوات في المفاهيم غير المستخدمة، وربط كل فجوة بإرشاد على مستوى المفهوم مع أمثلة، ثم تقديم التوصيات داخل بيئة التطوير وإعادة التحليل لتحديث المستويات. وتظهر التوصية في لوحة جانبية داخل محرّر الكتل تجمع بين شرح موجز للمفهوم وإشارة بصرية للكتل المطلوب إضافتها أو إعادة هيكلتها ومثال عملي مصغّر قابل للنسخ والتكييف، بحيث يؤلّف الباحثون التوصيات ويصادقون عليها بوصفها جزءًا من تصميم الدراسة.

نُفِّذت أداة BlocklyMining بلغة بايثون (الإصدار 1.4.0، Python 3.10، Ubuntu 22.04 LTS)، وتوفّر واجهة سطر أوامر لتشغيل التجارب دفعيًا وكتابة النتائج بصيغة CSV. وقد استُقيت مجموعة بيانات التحقّق من MIT في 28 يونيو 2021، وتألّفت أصلًا من 500,000 مشروع بحجم إجمالي 10.39 غيغابايت، مخزَّنة في مجلّدات مرقّمة تضم تمثيلات XML للكتل (ملفات BKY) مع إخفاء هوية المنشئين حفاظًا على الخصوصية. واستُبعِدت المشاريع التي تضم أقل من 70 كتلة معرّفة عبر الشاشات، إذ يضمن هذا الحدّ حدًّا أدنى من الجوهر الوظيفي ويستبعد الأجزاء التعليمية التافهة، ليصبح عدد المشاريع المستخدمة بعد التصفية 215,244 مشروعًا. ولأغراض التصنيف اختير يدويًا سبعة مقاييس من أصل تسعة من فئة المقاييس القائمة على العناصر (M3 إلى M9)، تشمل عدد الكتل الوظيفية المعرّفة والمستخدمة وكتل الأحداث والكتل الشرطية وكتل الحلقات والمتغيّرات العامة والمحلية، واستُبعد المقياسان M1 (عدد الشاشات) وM2 (إجمالي الكتل) لكونهما معلومات إجمالية لا تستهدف مفاهيم بعينها. وطُبّق التوحيد القياسي (z-score) لتفادي انحياز المقياس عبر المتغيّرات.

اعتمد الباحثون خوارزميتين للتجميع غير الموجَّه بمسافة إقليدية: خوارزمية K-Means (بتهيئة k-means++ وn_init=20 وmax_iter=300 وrandom_state=42) والتجميع الهرمي التكتّلي (Hierarchical Agglomerative) برابط Ward، مع استخدام منحنى الكوع (Elbow) لتحديد المدى المرشّح لعدد العناقيد. وأظهر المنحنى انعطافًا واضحًا قرب K≈3 وتناقصًا حادًّا في العائد بين 3 و6، فاعتُمد المدى [3، 6]. وقُيّمت جودة العناقيد بمعامل الظل (Silhouette Coefficient) ومؤشّر ديفيز-بولدين (Davies–Bouldin Index) عبر مكتبة scikit-learn. وأثبتت النتائج تفوّق K-Means؛ إذ كانت أفضل قيمة عند K=3 (SC=0.66، DBI=0.80) مقابل K=4 (SC=0.39، DBI=0.94)، فيما جاء التجميع الهرمي أدنى (SC=0.59، DBI=0.85 عند K=3).

عند التصنيف بـ K-Means وK=3 تشكّلت ثلاثة عناقيد؛ ضمّ العنقود 0 غالبية ساحقة من المشاريع بلغت 200,681 مشروعًا (93.23%)، فيما ضمّ العنقود 1 أربعين مشروعًا فقط (0.02%)، والعنقود 2 نحو 14,523 مشروعًا (6.75%). وسمح هذا بتحديد ثلاثة مستويات: المستوى الأول يستخدم جميع العناصر ما عدا الحلقات والمتغيّرات المحلية، والمستوى الثاني يستخدم العناصر نفسها لكن بكثافة أكبر، والمستوى الثالث يضيف الحلقات والمتغيّرات المحلية. واستُنتج أن تعريف المتغيّرات المحلية واستخدام الحلقات أكثر المهام تعقيدًا على المبتدئين، بدليل أن العنقود 1 المُتقن لكل العناصر لم يضمّ سوى 40 مشروعًا. أما عند K=4 فتوزّعت المشاريع بصورة أكثر تنوّعًا: العنقود 0 (152,968 مشروعًا، 71.07%) والعنقود 1 (37 مشروعًا، 0.02%) والعنقود 2 (57,853 مشروعًا، 26.88%) والعنقود 3 (4,386 مشروعًا، 2.04%)، ما أتاح تعريف أربعة مستويات تدرّجت من استخدام الدوال والأحداث والكتل الشرطية والمتغيّرات العامة، إلى إضافة الدوال المعرّفة من المستخدم، فالمتغيّرات المحلية، ثم الحلقات، وهو ما يؤكّد أن الحلقات أقلّ المهارات تبنّيًا لدى المبتدئين.

تُترجَم هذه المستويات إلى توصيات تعلّم مخصّصة يوضّحها مخطّط BPMN؛ فللمستويات الدنيا حيث تغيب الحلقات والمتغيّرات المحلية يوصي النظام بإدخال التكرار (كنمط “for each” مبسّط على قائمة) وإعادة هيكلة المتغيّرات العامة إلى محلية داخل معالِجات الأحداث مع مثال قبلي/بعدي، إضافةً إلى قالب إجرائي صغير لتغليف المنطق المتكرّر عند غياب الدوال المعرّفة من المستخدم. وفي المستوى الأعلى يضيق التركيز نحو طلاقة التكرار بقوالب حلقات موجّهة وإعادات هيكلة صغيرة تدمج الحلقات في السلوكيات القائمة دون تغيير غرض التطبيق. فالتوصيات محدّدة وقائمة على المهارة لا عامة، ومتوائمة مباشرةً مع المفاهيم التي لم يُتقنها المستخدم بعد، ومدمجة داخل بيئة التطوير نفسها، بما يدعم التعلّم التدريجي واكتساب مهارات أكثر تعقيدًا بأسلوب موجَّه وفعّال يجسّر الفجوة بين الفهم النظري والتطبيق العملي.

يقرّ الباحثون بأن التحقّق اعتمد على تحليل ساكن واسع النطاق وتجميع غير موجَّه لا على دراسات مستخدمين تُلاحظ نواتج التعلّم مباشرة، وأن الأدلة تخصّ أنماطًا في مصنوعات الكود (كتغطية المفاهيم وإشارات قابلية الصيانة) لا آثارًا سببية على التعلّم، وأن مؤشّرات مثل انتقالات الملفات وفروق المقاييس (كازدياد استخدام الحلقات والمتغيّرات المحلية وانخفاض الدَّين التقني المشتق من SQALE) لا تُثبت وحدها مكاسب التعلّم. وخلصوا إلى أن الطريقة تنجح في تجميع المشاريع في عناقيد ذات معنى تولّد توصيات مخصّصة بحسب مستوى المهارة، وتُرسي أساسًا قابلًا للتوسّع لتخصيص التعلّم في اللغات القائمة على الكتل. ومن أعمالهم المستقبلية دمج BlocklyMining مع MIT App Inventor لتقديم مقترحات بصرية سلسة وإسناد درجات مبنية على SQALE، واستكشاف توظيف النماذج اللغوية الكبيرة (LLMs) لتوليد تغذية راجعة مخصّصة وشرح المفاهيم بلغة طبيعية بما يتجاوز القوالب المحدّدة مسبقًا مع الحفاظ على سهولة الوصول التي تميّز هذه المنصّات.

الدراسة (PDF)

تحميل / فتح الملف (PDF)

المصدر: Computers and Education Open، المجلد 10 (2026)، رقم المقال 100333، الناشر Elsevier، DOI: 10.1016/j.caeo.2026.100333.

Scroll to Top