فائدہ:
- پہچاننے اور تصدیق کرنے کی اہلیت کہ AI جعلی APIs، غیر محفوظ کوڈ، اور کاپی رائٹ شدہ مواد تیار کر سکتا ہے۔
- ماخذ کوڈ کی رازداری، ذاتی ڈیٹا اور کارپوریٹ پالیسی کی حدود میں AI کے استعمال کا انتظام کرنے کی اہلیت
- یہ سمجھنا کہ لائسنس کی تعمیل، سیکورٹی اور اخلاقیات کی حتمی ذمہ داری انجینئر کے پاس ہے۔
ماڈیول امتحان
1. ایک کمپیوٹر انجینئر کے طور پر، جب AI کوڈ جنریشن ٹول کے ساتھ کام کرتے ہیں، تو درج ذیل میں سے کس کی حتمی ذمہ داری ہمیشہ انسان کے پاس رہنی چاہیے؟
- A) پروڈکشن میں ڈالے گئے کوڈ کی درستگی، حفاظت، اور جائزہ اور جانچ کی حتمی منظوری ✔
- ب) فنکشن کے لیے پہلا کوڈ سکیلٹن بنانا
- C) متغیر ناموں کے لیے تجاویز کی فہرست تیار کرنا
- D) کوڈ کے تبصروں کے لیے متن کا مسودہ تیار کرنا
تفصیل: AI؛ یہ کوڈ سکیلیٹن، ٹیسٹ ڈرافٹ اور دستاویزات جیسے کاموں کو تیز کر سکتا ہے۔ تاہم، یہ انجینئر کی ذمہ داری ہے کہ وہ تیار کردہ کوڈ کا جائزہ لے، جانچ کرے اور اسے منظور کرے تاکہ یہ یقینی بنایا جا سکے کہ یہ درست، محفوظ اور تقاضوں کے مطابق ہے، اور اسے پیداوار میں لگانا؛ یہ آزادانہ تصدیق کے بغیر AI کو نہیں سونپا جا سکتا۔
2. AI نے آپ کے لیے ایک فنکشن تیار کیا ہے اور ایسا لگتا ہے کہ یہ خوشی کی راہ میں کام کر رہا ہے۔ پیداوار میں ڈالنے سے پہلے بہترین قدم کیا ہے؟
- A) چونکہ فنکشن کام کرنے لگتا ہے، اسے براہ راست پروڈکشن میں ڈالیں۔
- ب) چھوٹے یونٹ ٹیسٹ لکھ کر اور چلا کر رویے کی تصدیق کریں جن میں ایج کیسز شامل ہیں ✔
- ج) صرف فنکشن کی لائنوں کی تعداد کو دیکھ کر
- D) فنکشن کے نام کو مزید وضاحتی بنانا
تشریح: کام پر ظاہر ہونے کا مطلب صحیح ہونا نہیں ہے۔ چھوٹے یونٹ ٹیسٹ لکھنا اور چلانا جن میں ایج کیسز جیسے خالی ان پٹ، صفر، منفی، بہت بڑی ویلیو، اور بے مماثلت کا احاطہ کرتے ہیں فنکشن کو لائیو ماحول میں منتقل کیے بغیر اس کے اصل رویے کی تصدیق کرتے ہیں۔
3. AI نے 'array.sortStable()' نامی ایک طریقہ تجویز کیا جو آپ کی زبان میں موجود نہیں ہے اور اسے واضح انداز میں بیان کیا ہے۔ پہلا صحیح اقدام کیا ہے؟
- A) طریقہ کو براہ راست استعمال کرنا کیونکہ AI پراعتماد لگتا ہے۔
- ب) طریقہ کی خود وضاحت کریں اور اس کا نام بالکل استعمال کریں۔
- C) زبان/لائبریری کی سرکاری دستاویزات سے طریقہ کے وجود کی تصدیق کرنا ✔
- D) کمپائلر وارننگ کو بند کریں اور جاری رکھیں
وضاحت: زبان کے ماڈل ممکنہ طور پر لائبریری، پیکج، یا طریقہ کار کے نام بنا سکتے ہیں جو حقیقت میں موجود نہیں ہیں (ہلوسینیٹ)۔ ہر مجوزہ API کی زبان یا لائبریری کی سرکاری اور موجودہ دستاویزات کے خلاف لفظ بہ لفظ تصدیق کی جانی چاہیے۔ اگر یہ دستاویز میں شامل نہیں ہے، تو اسے استعمال نہیں کیا جانا چاہئے.
4. آپ اپنی کمپنی کے خفیہ سورس کوڈ اور ایک ایمبیڈڈ API کلید کو عوامی AI ٹول میں پیسٹ کرنا چاہتے ہیں اور مدد طلب کرنا چاہتے ہیں۔ سب سے صحیح طریقہ کون سا ہے؟
- A) کوڈ کو پیسٹ کرنا جیسا کہ رفتار کے لیے API کلید کے ساتھ ہے۔
- ب) صرف کمپنی کا نام حذف کرنا اور باقی سب کچھ شیئر کرنا کافی ہے۔
- C) کوڈ کا اشتراک کرنا اور پھر AI سے اسے حذف کرنے کے لیے کہنا
- D) رازوں اور پوشیدہ منطق کو ہٹانا اور مسئلہ کو نمائندہ مثال کے طور پر کم کرنا یا ادارہ جاتی ٹول کا استعمال کرنا ✔
تفصیل: خفیہ سورس کوڈ اور اسناد (API کلید، پاس ورڈ، کنکشن سٹرنگ)؛ کمپنی کے راز اور سیکورٹی کے لحاظ سے یہ خطرناک ہے۔ رازوں اور پوشیدہ کاروباری منطق کو ختم کرنا اور مسئلہ کو گمنام/نمائندہ مثال تک کم کرنا یا انٹرپرائز/غیر ڈیٹا شیئرنگ ٹول استعمال کرنا ضروری ہے۔
5. AI نے کہا کہ اس نے جو سرچ فنکشن لکھا ہے اس کی پیچیدگی O(n) تھی۔ لیکن کوڈ میں دو نیسٹڈ لوپس ہیں۔ انجینئرنگ کا صحیح رویہ کیا ہے؟
- A) کوڈ کا دستی طور پر تجزیہ کریں اور پیچیدگی کو خود نکالیں اور اگر ضروری ہو تو اس کی پیمائش کریں ✔
- B) O(n) کو قبول کریں اور جاری رکھیں کیونکہ AI نے کہا
- C) سائیکلوں کی تعداد کو فرض کرنے کا کارکردگی سے کوئی تعلق نہیں ہے۔
- D) صرف فنکشن کا نام تبدیل کریں۔
وضاحت: وقت کی پیچیدگی (Big-O) ظاہر کرتی ہے کہ ان پٹ کے بڑھنے کے ساتھ ہی کارروائیوں کی تعداد کیسے بڑھتی ہے۔ دو نیسٹڈ لوپس کا مطلب عام طور پر O(n^2) ہوتا ہے۔ AI کے پیچیدگی کے دعوے کی تصدیق دستی طور پر کوڈ کا تجزیہ کرکے اور اگر ضروری ہو تو بڑھتی ہوئی ان پٹ کے ساتھ پیمائش کی جانی چاہیے۔ دعوے پر انحصار کارکردگی کے بارے میں غلط مفروضہ پیدا کرتا ہے۔
6. AI تیار کردہ کوڈ جو متن کو مربوط کرکے ایس کیو ایل استفسار میں صارف کے ان پٹ کو براہ راست داخل کرتا ہے۔ یہاں اصل مسئلہ اور صحیح حل کیا ہے؟
- A) کوئی مسئلہ نہیں؛ متن کا انضمام تیز ترین طریقہ ہے۔
- ب) ایس کیو ایل انجیکشن کا خطرہ ہے۔ ایک پیرامیٹرائزڈ استفسار (تیار بیان) جو ان پٹ کو الگ کرتا ہے ✔ استعمال کیا جانا چاہئے۔
- C) صرف استفسار کو بڑے حروف میں تبدیل کرنا کافی ہے۔
- D) سوال کو چھوٹا لکھنے سے مسئلہ حل ہو جائے گا۔
تفصیل: استفسار کے متن میں صارف کے ان پٹ کو براہ راست شامل کرنے سے ایس کیو ایل انجیکشن کی کمزوری پیدا ہوتی ہے۔ حملہ آور ان پٹ کے ساتھ استفسار میں ترمیم کر سکتا ہے۔ درست حل یہ ہے کہ پیرامیٹرائزڈ استفسار (تیار شدہ بیان) کا استعمال کیا جائے جو ان پٹ کو استفسار کے متن سے الگ کرے۔ یہ AI کوڈ میں سب سے زیادہ یاد ہونے والی سیکیورٹی غلطیوں میں سے ایک ہے۔
7. AI کی طرف سے تیار کردہ کوڈ کے ٹکڑے کا جائزہ لیتے وقت آپ کے پاس محدود وقت ہوتا ہے۔ کون سے مسائل کو ترجیح دینا بہتر ہے؟
- A) صرف فارمیٹ کی تفصیلات جیسے انڈینٹیشن اور اسپیسنگ
- ب) صرف متغیر ناموں کی لمبائی
- C) منطقی درستگی، کمزوریاں اور ایج کیس کا رویہ ✔
- D) فائل کی صرف لائنوں کی کل تعداد
تفصیل: کوڈ کے جائزے میں سب سے زیادہ خطرہ؛ یہ ایسے مسائل ہیں جو سنگین نقصان کا باعث بنتے ہیں، جیسے منطقی غلطیاں، حفاظتی خطرات اور خفیہ معلومات کا لیک ہونا۔ فارمیٹ اور اسٹائل کے مسائل خودکار ٹولز کے ساتھ طے کیے جاتے ہیں۔ بنیادی انسانی توجہ درستگی، حفاظت اور برتری کے معاملے کے رویے پر مرکوز ہونی چاہیے۔
8. آپ AI سے ایک بگ حل کروانا چاہتے ہیں۔ کون سا ان پٹ AI کو بنیادی وجہ تلاش کرنے میں بہترین مدد کرے گا؟
- A) صرف یہ کہنا کہ 'کوڈ کام نہیں کرتا، اسے ٹھیک کریں'
- ب) صرف فائل کا نام دیں۔
- ج) غلطی کے متن کے بغیر صرف متوقع نتیجہ کہنا
- D) مکمل ایرر میسج، اسٹیک ٹریس، متعلقہ کوڈ اور کم از کم ری پروڈکشن مثال فراہم کریں ✔
وضاحت: مؤثر ڈیبگنگ کے لیے، یہ ضروری ہے کہ AI کو مکمل ایرر میسج، اسٹیک ٹریس، متعلقہ کوڈ کا ٹکڑا، اور سب سے چھوٹا دوبارہ پیدا کرنے والا نمونہ دیا جائے جو خرابی پیدا کرتا ہے۔ مبہم بیان 'کام نہیں کرتا' AI کو اندازہ لگانے اور کمبل سفارشات کرنے پر مجبور کرتا ہے۔
9. AI کے ذریعہ تیار کردہ تمام یونٹ ٹیسٹ پہلی بار پاس ہو جاتے ہیں۔ اس صورت حال میں کس خطرے کو نظر انداز نہیں کرنا چاہیے؟
- A) ٹیسٹ کوڈ کی موجودہ حالت کی تصدیق کر سکتے ہیں لیکن اصل/متوقع رویے کی نہیں ✔
- ب) کوڈ بالکل غلطی سے پاک ہے کیونکہ تمام ٹیسٹ پاس ہو چکے ہیں۔
- C) معیار کی ضمانت دی جاتی ہے اگر ٹیسٹوں کی تعداد زیادہ ہو۔
- D) ٹیسٹ پاس کرنا ثابت کرتا ہے کہ کوریج مکمل ہے۔
وضاحت: ٹیسٹ کوڈ کے موجودہ (شاید چھوٹی چھوٹی) رویے کی توثیق کر رہے ہیں، نہ کہ اس کے مطلوبہ رویے کی؛ یا اس میں کوئی معنی خیز دعویٰ نہیں ہوسکتا ہے اور ہمیشہ منظور کیا جاتا ہے۔ یہ دیکھنے کے لیے کہ ٹیسٹ حقیقی توقعات کی جانچ کر رہے ہیں، ضروری ہے کہ شعوری طور پر کوڈ کو توڑا جائے اور تصدیق کی جائے کہ ٹیسٹ سرخ ہو گیا ہے۔
10. AI نے آپ کو کسی مسئلے کے لیے کوڈ کا ایک ریڈی میڈ بلاک تیار کیا ہے۔ آپ کو شبہ ہے کہ کوڈ کو کسی اوپن سورس پروجیکٹ سے لفظی طور پر کاپی کیا گیا ہے۔ صحیح نقطہ نظر کون سا ہے؟
- A) بغیر سوچے سمجھے لائسنس کا استعمال کرنا کیونکہ کوڈ کام کرتا ہے۔
- ب) کوڈ کے ماخذ/لائسنس کی جانچ کرنا، اگر ضروری ہو تو دوبارہ لکھنا اور کارپوریٹ پالیسی کی تعمیل کرنا ✔
- ج) صرف متغیر ناموں کو تبدیل کریں اور مسئلہ حل ہونے پر غور کریں۔
- D) یہ فرض کرتے ہوئے کہ لائسنس دینے سے صرف بڑی کمپنیوں کا تعلق ہے۔
تفصیل: AI کاپی رائٹ/لائسنس یافتہ کوڈ کو تربیتی ڈیٹا میں لفظی طور پر دوبارہ پیش کر سکتا ہے۔ تجارتی مصنوعات میں لائسنس کی خلاف ورزی سنگین قانونی خطرات پیدا کرتی ہے۔ کوڈ کے ماخذ اور لائسنس کی جانچ کرنا ضروری ہے، اگر ضروری ہو تو اسے اپنے الفاظ میں دوبارہ لکھیں، اور ادارے کی لائسنسنگ پالیسی کی تعمیل کریں۔
11. AI نے مشورہ دیا کہ آپ اپنے پروجیکٹ کے لیے فوری طور پر مائیکرو سروسز آرکیٹیکچر پر جائیں۔ اس تجویز کا جائزہ لیتے وقت انجینئرنگ کا سب سے مناسب طریقہ کیا ہے؟
- A) فوری طور پر پورے نظام کو مائیکرو سروسز میں تقسیم کریں کیونکہ AI تجویز کرتا ہے۔
- ب) فرض کریں کہ مائیکرو سروس ہمیشہ بہترین انتخاب ہے۔
- ج) اصل ضرورت، بوجھ، ٹیم کی ساخت اور پلس مائنس بیلنس کے مطابق تجویز کا جائزہ لیں ✔
- D) فن تعمیر کی مقبولیت کی بنیاد پر فیصلہ کرنا
وضاحت: تعمیراتی فیصلے سیاق و سباق پر منحصر ہوتے ہیں۔ مائیکرو سروسز اسکیل اور ٹیم کی علیحدگی جیسی ضروریات میں قدر بڑھاتی ہیں، لیکن لاگت کے ساتھ آتی ہیں جیسے آپریشنل پیچیدگی، تقسیم شدہ ڈیبگنگ اور لاگت۔ اصل ضرورت، بوجھ، ٹیم کی ساخت اور فوائد اور نقصانات کے توازن کے مطابق تجویز کا جائزہ لیں؛ عام مشورے پر آنکھیں بند کرکے عمل نہیں کرنا چاہیے۔
12. AI نے آپ کے کوڈ کے لیے ایک ہموار README اور API دستاویزات تیار کیں۔ لیکن کچھ اینڈ پوائنٹس اور پیرامیٹرز کوڈ میں مماثل نہیں ہیں۔ صحیح طرز عمل کیا ہے؟
- A) دستاویز کو جیسا کہ شائع کرنا ہے کیونکہ متن روانی ہے۔
- ب) صرف عنوان کو درست کریں اور باقی کو جیسا کہ ہے چھوڑ دیں۔
- ج) دستاویز کو پڑھے بغیر گودام میں شامل کرنا
- D) ہر ایک اختتامی نقطہ اور پیرامیٹر کا اصل کوڈ سے موازنہ کریں اور کوئی بھی درست کریں جو مماثل نہیں ہے ✔
تفصیل: دستاویزات اصل کوڈ کی درست عکاسی ہونی چاہئیں۔ غلط دستاویز ڈویلپرز کو دھکیل دیتی ہے جو اسے پڑھتے ہیں اسے غلط طریقے سے استعمال کرنے کے لیے۔ ہر اختتامی نقطہ، پیرامیٹر، اور واپسی کی قدر کی اصل کوڈ کے خلاف توثیق کی جانی چاہیے، اور کسی بھی مماثلت کو درست کیا جانا چاہیے۔
13. AI سے کوڈ کی درخواست کرتے وقت اعلی ترین معیار کے آؤٹ پٹ کے لیے کون سا ان پٹ اپروچ درست ہے؟
- A) واضح طور پر زبان/ورژن، ان پٹ آؤٹ پٹ معاہدہ، رکاوٹیں اور خرابی کی صورتحال فراہم کرنا ✔
- ب) صرف یہ کہنا کہ 'مجھے کچھ ورکنگ کوڈ لکھیں'
- ج) کوئی سیاق و سباق بتائے بغیر مختصر ترین درخواست لکھیں۔
- D) صرف یہ بتانا کہ کوڈ کی کتنی لائنیں ہوں گی۔
تفصیل: طاقتور فوری؛ اس میں استعمال کی گئی زبان اور ورژن، ان پٹ آؤٹ پٹ معاہدہ، کارکردگی اور طرز کی رکاوٹیں، خرابی کی شرائط، اور 'صرف درخواست کردہ دائرہ کار میں رہنے' کی ہدایات شامل ہیں۔ سیاق و سباق کے بغیر 'مجھے ایک فنکشن لکھیں' کی درخواست عام ہے اور اکثر نامناسب کوڈ تیار کرتی ہے۔
14. AI نے آپ کی CI/CD (مسلسل انضمام/تعیناتی) پائپ لائن کے لیے ایک کنفیگریشن تیار کی اور اس میں ڈیٹا بیس کے پاس ورڈ کو سادہ متن میں سرایت کر دیا۔ کون سا درست حل ہے؟
- A) پاس ورڈ کو سادہ متن کے طور پر چھوڑنا کیونکہ یہ کام کرتا ہے۔
- ب) ماحول کے متغیر یا خفیہ انتظامی ٹول کے ذریعے راز کو باہر منتقل کرنا، ذخیرہ میں سادہ متن نہ ڈالنا ✔
- C) پاس ورڈ کو صرف کمنٹ لائن میں منتقل کریں۔
- D) فائل کا نام تبدیل کرنے سے مسئلہ حل ہوجاتا ہے۔
وضاحت: کنفیگریشن فائل میں سادہ متن میں پاس ورڈ اور کیز جیسے راز لکھنا ورژن کنٹرول اور غیر مجاز رسائی کے لیک ہونے کا خطرہ لاحق ہے۔ راز; اسے ماحولیاتی متغیرات یا کسی خاص راز کے مینیجر کے ذریعہ باہر رکھا جانا چاہئے، اور اسے کبھی بھی سادہ متن میں ذخیرہ میں داخل نہیں ہونا چاہئے۔