arrow_backفیلڈ نوٹس پر واپس جائیں
PYTHON شائع شدہ 4 Aug 2026

امتحان کے لیے پروگرامنگ: Python کے جوابات جو نمبر لاتے ہیں

امتحان میں Python کوڈ کیسے لکھیں جو واقعی مکمل نمبر حاصل کرے — ڈھانچہ، کنارے کے معاملات، اور دباؤ میں وقت کی تدبیر۔

امتحان کے نقاد آپ کے کوڈ کو بیس منٹ تک debugger کے ذریعے نہیں چلاتے۔ وہ اسے ایک بار، شاید دو بار پڑھتے ہیں، اور اسے rubric کے خلاف چیک کرتے ہیں۔ ایک کام کرنے والا حل جو rubric کو نظر انداز کرے اب بھی نقاط کھو سکتا ہے، جبکہ ایک تھوڑا سا سخت جو ہر checkpoint کو مارے زیادہ نمبر حاصل کر سکتا ہے۔ امتحان کے لیے Python لکھنا ایک حقیقی منصوبے کے لیے Python لکھنے سے ایک مختلف ہنر ہے، اور اسے الگ سے مشق کرنے کی قابلِ قدر ہے۔

مسئلے کو دو بار پڑھنے سے پہلے rubric کو پڑھیں

زیادہ تر پروگرامنگ امتحان — AP CS A انداز کے free-response سوالات، یونیورسٹی midterms، coding bootcamp کی تشخیص — جزوی کریڈٹ کے اصول شائع کرتے ہیں۔ ایک عام rubric لائن اس طرح لگتی ہے: "صحیح loop ڈھانچے کے لیے 1 نقطہ، صحیح return value کے لیے 1 نقطہ، خالی list کے معاملے کو سنبھالنے کے لیے 1 نقطہ۔" اگر آپ ایک گھنے one-liner لکھتے ہیں جو صحیح جواب دے لیکن واضح loop کو چھوڑ دے، کچھ نقادین آپ کو کاٹ دیں گے اگرچہ آؤٹ پٹ صحیح ہے۔

کچھ بھی ٹائپ کرنے سے پہلے، نقاط کی نشاندہی کریں جو نقادین الگ الگ چیک کرنے کے لیے امکان رکھتے ہیں:

  • Function signature بالکل منطبق ہے جو مانگا گیا تھا (نام، parameter کی ترتیب، return کی قسم)
  • Base case اور recursive case، اگر recursion کی توقع ہے
  • Loop کی حدود (off-by-one کی غلطیاں سب سے عام نقطہ نقصان ہیں)
  • کنارے کے معاملات: خالی input، single-element input، منفی اعداد، duplicates

ان کو پہلے comments کے طور پر لکھیں۔ # handle empty list، # base case: n == 0۔ اس میں دس سیکنڈ لگتے ہیں اور یقینی بناتا ہے کہ آپ وہ معاملہ نہیں بھول جاتے جو نقادین خاص طور پر تلاش کر رہے ہیں۔

کوڈ کو ڈھانچہ بندی کریں تاکہ جزوی کریڈٹ نظر آئے

"ایک function لکھیں جو list میں دوسری سب سے بڑی تعداد دیتا ہے" کے دو جوابات کا موازنہ کریں:

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

پہلا اچھے ڈھانچے والی input کے لیے صحیح ہے لیکن دو سے کم عناصر والی list پر crash ہو جاتا ہے اور duplicates جیسے [5, 5, 3] پر غلط جواب دیتا ہے (5 دیتا ہے، spec کے لحاظ سے شاید غلط)۔ دوسرا لمبا ہے لیکن ہر rubric لائن — کنارے کے معاملات، صحیح منطق، صحیح return — واضح ہے اور نقادین کے چیک کرنے کے لیے اپنی الگ لائن رکھتا ہے۔ وقتی امتحان میں، دوسرا ورژن تقریباً ہر بار زیادہ نمبر دیتا ہے، اگرچہ اسے ٹائپ کرنے میں زیادہ وقت لگتا ہے۔

بروقت بہتری نہ کریں، واضح bugs نہ چھوڑیں

امتحان کے سوالات نایاب طور پر Big-O کا علم کم کرتے ہیں جب تک وہ سیدھا نہ کہیں۔ اگر prompt کہتا ہے "ایک function لکھیں جو duplicates تلاش کرے،" nested loop O(n²) میں ٹھیک ہے جب تک prompt بڑی input کی نشاندہی نہ کرے یا موثر حل نہ مانگے۔ امتحان کے وقت کو جب یہ نہیں مانگا گیا set-based O(n) approach میں تبدیل کرنے میں صرف کرنا وقت ہے جو آپ کو واپس نہیں ملے گا۔

اس کے باوجود، کچھ غلطیاں ہمیشہ آپ کو rubric سے قطع نظر لاگت کریں گی:

  • == کی بجائے is کو غیر مطابقت طریقے سے استعمال کرنا منطق کی غلطیاں پیدا کرتا ہے (Python امتحانوں میں نایاب لیکن موازنہ کے بھاری سوالات میں نمودار ہوتا ہے)
  • List کو iterate کرتے ہوئے mutate کرنا — for x in lst: lst.remove(x) ایک کلاسیکی امتحان کا پھندہ ہے جو خاموشی سے غلط آؤٹ پٹ پیدا کرتا ہے
  • return کو بھول جانا اور بجائے print کرنا — بہت سے autograders stdout کی بجائے return values کو چیک کرتے ہیں
  • range() میں off-by-one — range(len(nums)) بمقابلہ range(len(nums) - 1) ہر بار جب آپ اسے لکھتے ہیں چیک کرنے کے قابلِ قدر ہے

جمع کرنے سے پہلے اپنے کوڈ کو ہاتھ سے trace کریں

کاغذی امتحانوں اور زیادہ تر in-browser coding امتحانوں میں، آپ کو کوڈ چلانے کو نہیں ملتا۔ ایک چھوٹی سی مثال منتخب کریں اور اسے لائن کے لحاظ سے trace کریں، متغیر کی اقدار لکھتے جائیں۔ یہ دو منٹ میں شاید 80 فیصد منطق کی غلطیوں کو پکڑتا ہے، اور یہ بچے ہوئے وقت کے ساتھ کرنے کے لیے سب سے زیادہ قیمتی چیز ہے۔

Recursive functions کے لیے خاص طور پر، کم از کم دو levels گہرا trace کریں اور base case کو واضح طور پر درج کریں جو صحیح طریقے سے ختم ہوتا ہے۔ نقادین اکثر ایک نقطہ صرف یہ ظاہر کرنے کے لیے دیتے ہیں کہ base case صحیح طریقے سے ختم ہو جاتا ہے، recursive case کے صحیح ہونے کے نقطے سے الگ۔

گھڑی کو وسیلہ کی طرح منتظم کریں، نہ کہ ایک بعد میں سوچنے والی چیز

اگر ایک free-response سیکشن تین sub-questions میں 9 نقاط کے قابلِ قدر ہے، تقریباً برابر وقت کا بجٹ بنائیں اور اگر آپ اس بجٹ سے آگے پھنس جائیں تو آگے بڑھیں — ایک نیم لکھا ہوا لیکن تقریباً صحیح حصہ (b) خالی حصہ (c) سے زیادہ خام نقاط کے قابلِ ہے۔ ایک stub function لکھیں صحیح signature کے ساتھ اور ایک pass یا ایک اندازہ یہاں تک کہ اگر آپ منطق تک نہ پہنچ سکیں؛ ایک صحیح signature اکیلے کبھی کبھی اپنے آپ میں rubric نقطہ کے قابلِ ہے۔

امتحان کے کمرے کے باہر صاف اور testable Python لکھنے کے بارے میں مزید، اور ان ڈیٹا structures کے بارے میں جو یہاں مسلسل نمودار ہوتے ہیں، Korra Studio پر متعلقہ Python اور Computer Science حصوں کو دیکھیں۔

AI کی مدد سے لکھا گیا، Michal Pilch (CISSP)، Korra Studio کے ذریعے جائزہ لیا گیا اور شائع کیا گیا۔

آگے بڑھنے کے لیے تیار ہیں؟

یہ Korra Studio کے علم کے ذخیرے کا ایک نوٹ ہے — یہ پلیٹ فارم ہر موضوع کو ایک سے ایک رہنمائی کے ساتھ جوڑتا ہے۔

مفت شروع کریںarrow_forward