عاجل #عاجل "رويترز" عن ترامب حول اجتماع الدوحة: ربما يكون اجتماعاً مهماً وسنعرف ذلك لاحقا...
العلوم و التكنولوجيا

حصلت على البق؟ إليك كيفية اكتشاف الأخطاء في برنامجك العلمي

أصبح العلم حسابيًا بشكل متزايد. يجب تسجيل البيانات التجريبية وتنظيفها وفحصها وتحليلها. غالبًا ما يتضمن تحليل البيانات تكرار التجربة والخطأ باستخدام لغات برمجة “البرمجة النصية” مثل Python وR. ويتم بعد ذلك تضمين مخرجات هذه البرامج في الأوراق والعروض التقديمية وطلبات المنح.

يحتوي البرنامج الاحترافي النموذجي على ما يصل إلى 50 خطأ لكل 1000 سطر من التعليمات البرمجية (داو سورجيل F1000 للأبحاث 3، 303؛ 2015). لكن الكود العلمي، الذي يكتبه بشكل رئيسي طلاب الدراسات العليا وطلاب ما بعد الدكتوراه الذين لم يتلقوا تدريبًا يذكر في تطوير البرمجيات، هو أكثر عرضة للخطأ. تقول عالمة الكمبيوتر إيمي كو، من كلية المعلومات بجامعة واشنطن في سياتل، إن المبرمجين الذين علَّموا أنفسهم بأنفسهم – والمساعدين المعتمدين على الذكاء الاصطناعي الذين يستخدمونهم أحيانًا – يمكنهم إنشاء برامج تبدو وكأنها تعمل ولكنها تولد هراءً. “إذا كان لديك برنامج يقوم بحساب شيء ما، فهذا لا يعني أنه صحيح.”

في بعض الأحيان، يفشل تشغيل التعليمات البرمجية تمامًا – بسبب خطأ في بناء الجملة، على سبيل المثال. يقول عالم البيئة والمبرمج إيثان وايت من جامعة فلوريدا في جينزفيل، إن هذا “أمر مزعج، ولكنه ليس نهاية العالم”. ويقول إنه يمكن إصلاحه بسهولة. “أسوأ أنواع التعليمات البرمجية هي التعليمات البرمجية التي يتم تنفيذها ولكنها خاطئة”.

أدخل تصحيح الأخطاء، وهي مهارة بالغة الأهمية لمطوري البرامج والتي نادرًا ما يتم تدريسها للعلماء المبرمجين. يقول أندرياس زيلر، مهندس البرمجيات في مركز سيسبا هيلمهولتز لأمن المعلومات في ساربروكن، ألمانيا، ومؤلف كتاب “تصحيح الأخطاء” “يشبه قصة بوليسية، حيث تكون أنت المحقق والقاتل في نفس الوقت”. كتاب التصحيح).

أساسيات التصحيح

طبيعة طلبوا من متخصصي الحوسبة مشاركة نصائحهم لتصحيح الأخطاء والتأكد من أن التعليمات البرمجية تؤدي ما يفترض أن تفعله.

قم بتوثيق الحالات التي تتسبب في ظهور الخطأ. هل هناك مشكلة في الإدخال، على سبيل المثال؟ إذا كان ذلك ممكنًا، حدد مثالًا عمليًا بسيطًا (باستخدام البيانات أو التعليمات البرمجية المجردة، بالإضافة إلى المتغيرات المقفلة مثل بذور مولدات الأرقام العشوائية) لتكرار المشكلة بسهولة. ثم قم بكي الخلل.

استخدام بيانات الطباعة. إن أبسط طريقة لتصحيح الأخطاء هي ملء التعليمات البرمجية الخاصة بك بأوامر “الطباعة” التي تكشف عن الحالة الداخلية للبرنامج أثناء تشغيله. أثناء التكرار على مجموعة من الملفات لحساب رقم، على سبيل المثال، يمكنك أن تطلب من التعليمات البرمجية الخاصة بك إخراج الملف الحالي والقيمة الحالية وحساب التشغيل.

توفر مكتبة “تسجيل” لغة بايثون آلية للقيام بذلك بدرجات متفاوتة من الإسهاب، كما يقول توبي هودجز، الذي يقيم في هايدلبرج بألمانيا، ومدير المناهج الدراسية في The Carpentries، وهي منظمة عالمية غير ربحية تُدرِّس المهارات الحسابية للباحثين.

زيلر من محبي طريقة بيان الطباعة، لأنها تنتج سجل أحداث مفصل وقابل للبحث. لكنه يؤكد على أن المبرمجين يجب أن يتعاملوا مع المشكلة بطريقة علمية. “هل تقوم فقط بالبحث بشكل عشوائي في اتجاهات مختلفة دون أن يكون لديك فكرة واضحة عما يمكن أن يكون عليه الخلل وأين يمكن أن يكون؟ أم أنك تتصرف بطريقة منهجية كما يفعل العالم؟”

قم بتدوير مصحح الأخطاء. مدمج في بيئات البرمجة الشائعة مثل VS Code وRStudio و Jupyter الدفاتر الحسابية، مصححات الأخطاء هي أدوات تفاعلية تسمح للمبرمجين بمقاطعة تدفق البرنامج في أي نقطة (يسمى تحديد نقطة توقف)، والانتقال من تعليمات إلى تعليمات واستجواب النظام.

“أنت نوعاً ما مثل المحقق، أليس كذلك؟” تقول كاتي هوف، المهندسة النووية في جامعة إلينوي في أوربانا شامبين والمؤلفة المشاركة لكتاب عام 2015 الحساب الفعال في الفيزياء. يقول هوف: “لقد حددت نقطة توقف في مكان ما بشكل غامض في عالم المكان الذي تعتقد أن الماس المفقود فيه”. ثم يمكنك تنفيذ التعليمات البرمجية سطرًا تلو الآخر ومراقبة كيفية تغير بيئة الحوسبة. “يمكنك إيقاف البرنامج مؤقتًا أثناء تشغيله والقول، ما قيمة هذا الرقم في هذه المرحلة؟ أوه، لا يزال عددًا صحيحًا؟ حسنًا، رائع. تابع خطوة أخرى. هل لا يزال عددًا صحيحًا أم أنه NaN (ليس رقمًا)؟”

والأهم من ذلك، أن مصححات الأخطاء تسمح للمستخدمين بتغيير القيم بسرعة ومعرفة ما يفعله ذلك. لكنها غالبًا ما تكون غير متوافقة مع “أنماط الاستكشاف المتفرعة” التي تميز تحليل البيانات، كما يحذر تريسي تيل، الرئيس التنفيذي لشركة openRxiv، وهي المنظمة التي تضم خوادم bioRxiv وmedRxiv، ومقرها في ديفيس، كاليفورنيا. وفي هذه الحالة، يقول تيل، قد تكون البيانات المطبوعة أكثر فائدة.

صورة مقربة لكاثرين هوف.

تقول المهندسة النووية كاتي هوف إنه من المهم التحقق من عملك، وليس فقط النتيجة النهائية.مصدر الصورة: فرانسيس تشونغ/بوليتيكو عبر AP/Alamy

تحدث إلى البطة. وبدلاً من ذلك، يمكنك التحدث عن مشكلتك بصوت عالٍ. يقول زيلر: “إن الفعل البسيط المتمثل في التعبير اللفظي عما تعتقد أنه قد يكون السبب يكون فعالاً للغاية عندما تقوم بتصحيح الأخطاء”. يمكن أن يكون المتلقي لتأملاتك زميلًا لك، لكن تقليديًا، فهو بطة مطاطية. يقول زيلر: “لدي مكتب مجاور حيث يوجد لدى الطلاب العشرات من البط المطاطي”.

يمكن لروبوتات الدردشة المدعمة بالذكاء الاصطناعي أن تكون بمثابة لوحات صوتية أيضًا، كما يقول كو، حتى لو كان ما يقولونه لك غير منطقي. على سبيل المثال، حاولت كو استخدام كلود كود، وهي أداة برمجة أنشأتها شركة الذكاء الاصطناعي أنثروبيك في سان فرانسيسكو، كاليفورنيا، لتصحيح أخطاء نظام برمجي تقوم بصيانته. “عندما كتبت وصفًا تفصيليًا للمشكلة، فكرت في السبب المحتمل، وقررت التحقيق فيها بينما قام كلود بتدوير عجلاته لتصحيح الأخطاء نيابةً عني. لقد توصل إلى سبب موثوق للغاية ولكنه غير صحيح. لقد وجدت السبب الفعلي قبل أن يتم اكتشافه.”

ثق، ولكن تحقق

بمجرد أن يعمل الكود الخاص بك، تأكد من أنه يفعل ما تتوقعه.

أحد الخيارات هو “اختبار الوحدة”. لنفترض أنك تكتب دالة للعثور على الرقم الأصغر من رقمين. قد تغذي مجموعة الاختبار الخاصة بك مجموعة من القيم – الأرقام الموجبة والسالبة والسلاسل والقيم المتطرفة وما إلى ذلك. توفر مكتبة “testthat” في R و”pytest” في Python، على سبيل المثال، الوظيفة اللازمة لإنشاء مثل هذه الاختبارات وتشغيلها. من خلال إقران هذه الاختبارات بأنظمة التشغيل الآلي (باستخدام تقنيات “التكامل المستمر” مثل إجراءات جيثب)، يمكنك التأكد من أن تغييرات التعليمات البرمجية لا تؤدي إلى تعطيل الخوارزميات الخاصة بك.


■ مصدر الخبر الأصلي

نشر لأول مرة على: www.nature.com

تاريخ النشر: 2026-04-20 06:00:00

الكاتب: Jeffrey M. Perkel

تنويه من موقع “beiruttime-lb.com”:

تم جلب هذا المحتوى بشكل آلي من المصدر: www.nature.com بتاريخ: 2026-04-20 06:00:00. الآراء والمعلومات الواردة في هذا المقال لا تعبر بالضرورة عن رأي موقع “beiruttime-lb.com”، والمسؤولية الكاملة تقع على عاتق المصدر الأصلي.

ملاحظة: قد يتم استخدام الترجمة الآلية في بعض الأحيان لتوفير هذا المحتوى.