পরীক্ষার জন্য প্রোগ্রামিং: Python উত্তর যা স্কোর করে
পরীক্ষায় Python কোড লেখার উপায় যা সম্পূর্ণ নম্বর অর্জন করে — কাঠামো, প্রান্তিক ক্ষেত্র এবং চাপের অধীনে সময় ব্যবস্থাপনা।
পরীক্ষার মূল্যায়নকারী আপনার কোড ডিবাগারের মাধ্যমে বিশ মিনিট চালান না। তারা একবার বা দুইবার এটি পড়ে এবং একটি মূল্যায়ন মানদণ্ডের বিপরীতে পরীক্ষা করে। একটি কাজ করা সমাধান যা মানদণ্ড উপেক্ষা করে তবুও পয়েন্ট হারাতে পারে, যখন একটি সামান্য খসড়া যা প্রতিটি চেকপয়েন্ট পূরণ করে উচ্চতর স্কোর করতে পারে। পরীক্ষার জন্য Python লেখা বাস্তব প্রকল্পের জন্য Python লেখার থেকে একটি আলাদা দক্ষতা, এবং এটি আলাদাভাবে অনুশীলন করার যোগ্য।
সমস্যা দুইবার পড়ার আগে মানদণ্ড পড়ুন
বেশিরভাগ প্রোগ্রামিং পরীক্ষা — AP CS A স্টাইল মুক্ত-প্রতিক্রিয়া প্রশ্ন, বিশ্ববিদ্যালয় মধ্যবর্তী, কোডিং বুটক্যাম্প মূল্যায়ন — আংশিক-ক্রেডিট নিয়ম প্রকাশ করে। একটি সাধারণ মানদণ্ড লাইন এরকম দেখায়: "সঠিক লুপ কাঠামোর জন্য 1 পয়েন্ট, সঠিক রিটার্ন মানের জন্য 1 পয়েন্ট, খালি তালিকার ক্ষেত্র পরিচালনার জন্য 1 পয়েন্ট।" যদি আপনি একটি ঘনীভূত এক-লাইনার লেখেন যা সঠিক উত্তর পায় কিন্তু একটি স্পষ্ট লুপ বাদ দেয়, কিছু মূল্যায়নকারী আপনাকে ছাড় দেবে যদিও আউটপুট সঠিক।
কিছু টাইপ করার আগে, এমন অংশগুলি চিহ্নিত করুন যা একজন মূল্যায়নকারী আলাদাভাবে পরীক্ষা করতে সম্ভব:
- ফাংশন স্বাক্ষর ঠিক যা অনুরোধ করা হয়েছে তার সাথে মেলে (নাম, প্যারামিটারের ক্রম, রিটার্ন টাইপ)
- বেস ক্ষেত্র এবং পুনরাবৃত্তিমূলক ক্ষেত্র, যদি পুনরাবৃত্তি প্রত্যাশিত হয়
- লুপ সীমানা (অফ-বাই-ওয়ান ত্রুটি হল একক সবচেয়ে সাধারণ পয়েন্ট ক্ষতি)
- প্রান্তিক ক্ষেত্র: খালি ইনপুট, একক-উপাদান ইনপুট, নেতিবাচক সংখ্যা, নকল
প্রথম এই মন্তব্য হিসাবে লিখুন। # 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 লেখার বিষয়ে আরও তথ্য এবং ডেটা কাঠামো যা এই প্রশ্নগুলিতে ক্রমাগত দেখা যায়, Korra Studio এ সম্পর্কিত Python এবং Computer Science সেগমেন্টগুলি পরীক্ষা করুন।
AI সহায়তায় লেখা, পর্যালোচনা ও প্রকাশ করেছেন Michal Pilch (CISSP), Korra Studio।
এটি Korra Studio-র নলেজ বেস থেকে একটি নোট — প্ল্যাটফর্মটি প্রতিটি বিষয়কে ১-এর-সাথে-১ মেন্টরিংয়ের সাথে জুড়ে দেয়।
বিনামূল্যে শুরু করুনarrow_forward