arrow_backالعودة إلى ملاحظات المجال
PYTHON منشور 4 Aug 2026

البرمجة للامتحان: إجابات Python التي تحقق العلامات

كيفية كتابة كود Python في الامتحانات يحصل فعلاً على العلامات الكاملة — البناء والحالات الحدية وإدارة الوقت تحت الضغط.

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

اقرأ معايير التقييم قبل قراءة المسألة مرتين

معظم امتحانات البرمجة — أسئلة AP CS A ذات النمط الحر، امتحانات الفصل الدراسي بالجامعات، تقييمات معسكرات البرمجة — تنشر قواعد الائتمان الجزئي. خط معايير التقييم النموذجي يبدو كالتالي: "نقطة واحدة لبناء حلقة صحيح، نقطة واحدة لقيمة إرجاع صحيحة، نقطة واحدة للتعامل مع حالة القائمة الفارغة." إذا كتبت سطراً واحداً كثيفاً يحصل على الإجابة الصحيحة لكنه يتخطى حلقة صريحة، قد يخصم بعض الفاحصين نقاطاً حتى لو كان الناتج صحيحاً.

قبل أن تبدأ الكتابة، حدد القطع التي قد يفحصها الفاحص بشكل منفصل:

  • توقيع الدالة يطابق بالضبط ما تم طلبه (الاسم، ترتيب المعاملات، نوع الإرجاع)
  • الحالة الأساسية والحالة العودية، إذا كانت العودية متوقعة
  • حدود الحلقة (أخطاء الواحد والصفر هي الخسارة الأكثر شيوعاً للنقاط)
  • الحالات الحدية: الإدخال الفارغ، الإدخال بعنصر واحد، الأعداد السالبة، التكرارات

اكتب هذه كتعليقات أولاً. # handle empty list، # base case: n == 0. هذا يأخذ عشر ثوان ويضمن أنك لا تنسى الحالة التي يبحث عنها الفاحص بشكل خاص.

رتب الكود بحيث يكون الائتمان الجزئي مرئياً

قارن إجابتين لـ "اكتب دالة تُرجع ثاني أكبر رقم في قائمة":

def second_largest(nums):
    return sorted(nums)[-2]
def second_largest(nums):
    if len(nums) < 2:
        return None
    largest = second = float('-inf')
    for n in nums:
        if n > largest:
            second = largest
            largest = n
        elif n > second and n != largest:
            second = n
    return second

الأولى صحيحة للإدخال الصالح لكنها تتعطل على قائمة بأقل من عنصرين وتعطي إجابة خاطئة على التكرارات مثل [5, 5, 3] (تُرجع 5، خطأ ربما حسب المواصفات). الثانية أطول لكن كل سطر معايير تقييم — حالة حدية، منطق صحيح، إرجاع صحيح — صريح ويحصل على سطره الخاص الذي يمكن لفاحص أن يضع علامة عليه. في امتحان مؤقت، نسخة الثاني تحقق علامة أعلى في معظم الأحيان، حتى لو استغرقت وقتاً أطول للكتابة.

لا تقم بالتحسين المبكر، لكن لا تترك أخطاء واضحة أيضاً

أسئلة الامتحان نادراً ما تختبر معرفة Big-O إلا إذا قالت ذلك بشكل مباشر. إذا قالت المطالبة "اكتب دالة تجد التكرارات"، فإن حلقة متداخلة عند O(n²) لا بأس بها إلا إذا حددت المطالبة إدخالاً كبيراً أو طلبت حلاً فعالاً. قضاء وقت الامتحان لتحويله إلى نهج قائم على المجموعات O(n) عندما لم يتم طلبه هو وقت لن تستعيده.

مع ذلك، بعض الأخطاء ستخسرك نقاطاً دائماً بغض النظر عن معايير التقييم:

  • استخدام == بدلاً من is بشكل غير متسق مما يسبب أخطاء منطقية (نادرة في امتحانات Python لكنها تظهر في أسئلة كثيرة المقارنات)
  • تغيير قائمة أثناء التكرار عليها — for x in lst: lst.remove(x) فخ امتحان كلاسيكي ينتج عنه ناتج خاطئ بصمت
  • نسيان return والطباعة بدلاً منها — العديد من المصححات التلقائية تتحقق من قيم الإرجاع، وليس stdout
  • خطأ الواحد والصفر في range()range(len(nums)) مقابل range(len(nums) - 1) يستحق التحقق المزدوج في كل مرة تكتبها

تتبع كودك يدوياً قبل الإرسال

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

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

أدر الساعة كمورد، وليس كفكرة لاحقة

إذا كان القسم حر الإجابة يستحق 9 نقاط عبر ثلاث أسئلة فرعية، خطط وقتاً تقريباً متساوياً وانتقل إذا تعثرت بعد ذلك الميزانية — جزء نصف مكتوب لكن تقريباً صحيح (b) يستحق نقاطاً أكثر من جزء مثالي (a) وجزء فارغ (c). اكتب دالة عنصر نائب بتوقيع صحيح وpass أو تخمين حتى لو لم تستطع إنهاء المنطق؛ توقيع صحيح وحده يستحق نقطة معايير تقييم أحياناً بمفرده.

للمزيد حول كتابة Python نظيفة وقابلة للاختبار خارج غرفة الامتحان، والهياكل البيانات التي تظهر باستمرار في هذه الأسئلة، راجع أقسام Python وعلوم الحاسوب ذات الصلة على Korra Studio.

تمت كتابة هذا المقال بمساعدة الذكاء الاصطناعي، وراجعه ونشره Michal Pilch (CISSP)، Korra Studio.

هل أنت مستعد للمضي قدماً؟

هذه ملاحظة واحدة من قاعدة معارف Korra Studio — المنصة تجمع كل موضوع مع التوجيه الفردي.

ابدأ بالمجانarrow_forward