CS101 – Lecture 45

لیچکر نمبر 45

السلام و علیکم

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

اور ہم نے یہ بھی کہا تھا کہ ریڈی ایبلٹی کی وجہ سے اگر پروگرام کی ایفی شنسی تھوڑی سی کم ہوتی ہے تو اٹس فائن۔ دیٹس آ ریزن ایبل ٹریڈ آف ۔ سو آ پروگرام بکم آ مور ریڈ ایبل بکاز آف سم تھنگ یو ڈو اور اس کی وجہ سے اس کی ایفی شنسی تھوڑی سی کم ہو جاتی ہے ، کوئی بات نہیں ڈو اٹ۔

تو ریڈ ایبل پروگرام اور اچھے پروگرام لکھنے کے لئے ہم نے آپ کو جو گائیڈ لائن بتائی تھی اس میں سے پہلی بات تو یہ تھی کہ جب بھی ڈیزائن کریں پروگرام کو چھوٹے چھوٹے پارٹس یا حصوں میں اس کو تقسیم کر دیں اور یہ بھی کہ گلوبل ویری ایبلز کو کوشش کریں کم سے کم  استعمال کریں بلکہ اس کی بجائے اپنے لوکل ویری ایبلز کو استعمال کریں۔ جہاں تک کوڈنگ کا تعلق ہے ہم نے کہا تھا انڈنشن ، سیمی کولنز استتعمال کریں ، آئیڈینٹفائیرز ایسے ہوں جو ڈسکرپشن بتاتے ہیں جو یہ بتاتے ہوں کہ اس ویری ایبل میں کیا ہے یا اس فنکشن نے کیا کرنا ہے ۔ آئیڈینٹی فائر کا اور اصل ویری ایبل کے اندر جو ہے وہ ایک تعلق ہو نا چاہئے۔ آئی ڈنٹی فائر کا اور جو فنکشن کا جو اصل میں کرنا کیا ہے اس کا آپس میں کوئی تعلق ہونا چاہئے۔ ہم نے یہ بھی کہا تھا کہ کمنٹس کی مدد سے آپ پروگرام کی ریڈ ایبلٹی کو بڑھا سکتے ہیں۔ ان کو سیلف ایکسپلینٹوری آپ بنا سکتے ہیں۔ ہم نے چھوٹے پروگرام ڈیویلپ کرنے کی جو گائیڈ لائن آپ کو بتائی تھی اس کے نو سٹیپس آپ کو بتائے تھے جن میں پہلا یہ تھا کہ جو پرابلم آپ کو ملی ہے اس کو پڑھیں اس کو انڈرسٹینڈ کریں اور دیکھیں کچھ مسنگ ہے تو پوچھیں۔ اس کے بعد ڈیزائن کریں اس کے بعد ٹیسٹ کیسز بنائیں اس کے بعد آپ پروگرام لکھنا شروع کریں اور پروگرام ڈائریکٹلی کمپیوٹر کے اندر نہ لکھنا شروع کریں بلکہ ہاتھ سے کاغذ پر لکھیں اس کو ہیںڈ چیک کریں پھر اس کے بعد اس کو ٹائپ کریں۔

اور اس کے بعد اسے رن کریں چیک کریں ٹیسٹ کیسز چلائیں دیکھیں کام کرتا ہے یا نہیں کرتا۔ ایررز جو ہیں انہیں فکس کریں تب آپ کہیں گے کہ میں نے مناست طریقے سے اس پروگرام کو ڈیویلپ کیا اور پروگرام کی کوالٹی کو امپروو کرنے کے لئے پروگرامز میں پرابلمز کو کم کرنے کے لئے ایک بڑی اچھی چیز جو اپنے ساتھ آپ کر سکتے ہیں وہ یہ کہ آپ ریویو کروائیں۔ اپنے پیئیر اپنے ساتھ کے جو لوگ ہیں ان کو وہ پروگرام ، اس کا ڈیزائن، اس کی پربلم سٹیٹمٹ وغیرہ دکھائیں ان کے کمنٹس لیں اس پر، بعض ایسی چیزیں جو بطور ڈیویلپر آپ کو نظر نہیں آ رہی ہوں گی وہ ان کو پوائنٹ آؤٹ کر دیں گے ۔ اس کے علاوہ یہ بھی وہ لوگ جو ہیں ہو سکتا ہے ان کی نالج ان چیزوں کے بارے میں ہو سکتا ہے آپ سے زیادہ ہو تو وہ آپ کو اس بارے میں کوئی بہتر ٹپ بھی دے دیں۔ تو نہ صرف وہ ڈیفیکٹس تلاش کرنے میں آپ کی مدد کر سکتے ہیں بلکہ بہتر سٹریٹجی تلاش کرنے میں بھی آپ کی مدد کر دیں ۔

ہم نے ٹیسٹنگ کی بات کی تھی کہ ٹیسٹنگ وہ ایکٹیویٹی ہے جس کے ذریعے سے ہم پروگرام  کے اندر اس پرابلم کی وجہ کو معلوم کرتے ہیں کہ یہ ایرر یا پرابلم کیوں اور کہاں ہوئی ہے اور کس وجہ سے ہوئی ہے اور پھر ہم اس کو فکس کرتے ہیں اور یہ جو پرابلمز ہیں ، یہ جو ایررز ہیں یہ جو بگز ہیں ان کو ہم نے کہا تھا کہ ان کو ہم تین کیٹیگریز میں کلاسیفائی کرتے ہیں ، ایک سینٹکسٹ ایررز، ایک سائمنٹک ایررز اور تیسرے رن ٹائم ایررز

تو جناب پچھلی دفعہ کا ٹاپک تھا پروگرامنگ میتھاڈالوجی وہ کون سی ٹیکنیکس اور گائیڈ لائنس ہیں جن کو فالو کر کے آپ اچھے پروگرام لکھ سکتے ہیں کم وقت اور تھوڑی لاگت میں ۔

آج ہم بات کریں گے ان سب چیزوں کے بارے میں جو ہم نے پچھلے چوالیس لیکچرز میں ڈسکس کیں ۔ آج ہم بات کریں گے سم آف دوز انٹرسٹنگ ایریاز جس کو ہم نے اس سمسٹر کے دوران آپ کے ساتھ ڈسکس کیا۔ لیکن یہ چیز ذہن میں رکھئے کہ گا کہ یہ ایک کمپریہینسو اوور ویو نہیں ہے ہم ہر چیز کو آج ڈسکس نہیں کریں گے ، ان میں سے بعض انٹرسٹنگ چیزیں ہیں ان کو سیمپل کرنے کی کوشش کریں گے۔ تو جناب آج کا کوئی ٹاپک نہیں ہے آج ہم ریویو کریں گے ان چیزوں کو جو ہم نے اس سمسٹر میں آج تک ڈسکس کی ہیں ۔ سب سے پہلا سوال جو اس سمسٹر کے آغاز میں ہم نے اپنے آپ سے کیا تھا وہ یہ تھا کہ ہم اس کورس کے زریعے کیا کرنا چاہتے ہیں تو ہم نے ڈیسائیڈ یہ کیا تھا کہ ہم تین چیزیں اچیو کرنا چاہتے ہیں پہلی تو یہ کہ کمپیوٹنگ کے بنیادی نظریات یا کنسیپٹس ہیں ان کے بارے میں ایک اپریسی ایشن ڈیویلپ کرنا چاہتے ہیں اپنے آپ میں یعنی ہم یہ نہیں چاہتے تھے کہ آپ کو ان کی ڈیٹیلز پتہ لگ جائیں ہم یہ چاہتے تھے کہ آپ کو پتہ چلل جائے کہ کمپیوٹر سائنس اور کمپیوٹر ٹیکنالوجی میں کیا کیا چیزیں ڈسکس کی جاتی ہیں ۔ دوسری یہ کہ ہم ویب پیج ڈیویلپمنٹ میں بگینرز پروفیشنسی کچھ آپ میں ڈیویلپ کرنا چاہتے تھے۔ اگین بیگینرز پروفیشنسی ۔کہ آپ کو کچھ پتہ لگ جائے کہ ویب پیجز میں جو کام ہوتے ہیں وہ کس کس طرح کے ہوتے ہیں اور تھوڑی سی آپ کو پریکٹس بھی مل جائے۔

اور آخری چیز یہ کہ یہ جو بعض پروڈکٹیویٹی سافٹ وئیرز جو ہیں ان پہ آپ کو تھوڑی سی فیمیلیرٹی آ جائے یہ نہیں کہ آپ کو ان ڈیپتھ ان کے بارے میں نالج آجائے آپ کو وہ چلانے اور ان میں کچھ بنیادی ٹاسک کرنے آجائیں۔

تو آئیے آض پم ان تینوں ایریاز میں ریویو کرتے ہیں  کہ ہم نے کن کن چیزوں کو دیکھا کون کون سے انٹرسٹنگ کانسپیٹس کو ہم نے دیکھا

پہلے لیکچر میں جو سب سے انٹرسٹنگ چیز کو ہم نے دیکھا وہ یہ کہ یہ جو کمپیوٹرز ہیں یہ آخر کرتے ہیں ، کون سی ایسی چیزیں ہیں ہمارے لئے کرتے ہیں جس سے ہمیں بہت زیادہ فائدہ ہوتا ہے تو ہم نے تین چیزوں کے بارے میں خاص طور پر ڈسکشن کی تھی کہ کمپیوٹر کی سپیڈ بہت تیز ہوتی ہے ، یہ بعض اپریشنز ایک سیکنڈ میں بلینز آف ٹائمز کر سکتے ہیں۔ اور یہ ایک بہت بڑا ایڈوانٹیج ہے ۔ دوسری چیز ہم نے یہ کہی تھی کہ ان کی سٹوریج کیپیسٹی بہت زیادہ ہے ، کچھ عرصہ پہلے جیسے ہم نے بات کی تھی ایسے ڈیٹا بیسز بن رہے ہیں کہ جس میں ایکسا بائٹس کا ڈیٹا ہو گا یعنی ٹین ٹو دا پاور ایٹینتھ ، اتنی اس میں کپیسٹی ہو گی بائٹس موجود ہوں گی۔ سو کمپیوٹرز ایک اور چیز جو بہت یوز فل ہے ان کے بارے میں وہ یہ کہ یہ بہت سارے ڈیٹا کو ہینڈل کر سکتے ہیں۔ ہیومن مائیںڈ شاید اتنی سپیڈ سے ڈیٹا ہینڈل نہیں کر سکتا ہیومن مائینڈ شاید اتنی سپیڈ پر کام نہیں کر سکتا اور ایک پرابلم جو ہیومن مائنڈ کے ساتھ ہے وہ یہ ہے کہ ہیومن جو ہیں وہ کچھ عرصے کے بعد ایک ہی چیز کو ریپیڈلی کریں تو وہ بور ہو جاتے ہیں تو میرے خیال میں کمپیوٹرز کے بارے میں سب سے انٹرسٹنگ چیز یہ تھی کہ یہ بور نہیں ہوتے کہ اگر ایک ہی چیز ان کو بار بار کرنے کو کہیں خوشی سے کرتے چلے جاتے ہیں ۔ لیکن یہ ضرور ہے کہ کمپیوٹر ان کی کپیسٹی بہت زیادہ ہے ، ان کی سپیڈ بہت زیادہ ہے اور یہ بور نہیں ہوتے لیکن یہ ہر چیز نہیں کر سکتے ۔مثلاً یہ کری ایٹیو ٹاسک نہیں کر سکتے ، یہ کری ایٹیو ٹاسکس میں ہماری اسسٹنس ضرور کر سکتے ہیں لیکن یہ خود سے کری ایٹیو ٹاسک نہیں کر سکتے ۔ نہ یہ نئے آئیڈیا لا سکتے ہیں ۔ پرانے آئیڈیاز پر کام کر سکتے ہیں ہم انہیں جو بتاتے ہیں اس پر کام کر سکتے ہیں لیکن کوئی نیا آئیڈیا جو حیران کر دے وہ ابھی تک کمپیوٹرز انوینٹ نہیں کر سکتے ۔ نہ صرف یہ بلکہ بعض ایسے کام ہیں جس میں ہیومنز بہت اچھے ہیں کمپیوٹرز ابھی بہت اچھے نہیں ہیں۔ اور اس میں سے ایک جو بڑا امپارٹنٹ کام ہے وہ ویژن کا ہے ہم چیزوں کو دیکھ کر بڑی آسانی سے ریکگنائیز کر لیتے ہیں لیکن کمپیوٹر ابھی تک یہ نہیں کر پائے۔ تو یہ کہ کمپیوٹر تیز ہے ، سٹوریج کپیسٹی بہت زیادہ ہے بور نہیں ہوتے لیکن ہر چیز اب بھی نہیں کر سکتے جہاں تک کمپیوٹرز کو امپلیمںٹ کرنے کی جو ٹیکنالوجیز ہیں ان کی بات ہے تو شروع میں جو کمپیوٹرز تھے وہ مکینکل تھے اس کے بعد الیکٹرو مکینکل آئے اس کے بعد الیکٹرانک کمپیوٹرز کا دور آیا اس میں پہلے تو ویکیومز کا دور آیا پھر آج کل ٹرانسسٹرز کا فیز چل رہا ہے ۔ آج کل کے جتنے بھی کمپیوٹر نظر آتے ہیں وہ سب کے سب ٹرانسسٹر ٹیکنالوجی پر بیسڈ ہیں ہم نے یہ بھی کہا کہ فیوچز میں شاید آج سے دس سال کے بعد ایسے کمپیوٹر بھی نظر آنا شروع ہو جائیں گے جو ان میں سے کسی بھی ٹیکنالوجی پر بیسڈ نہیں ہوں گے بلکہ کوئی برانڈ نیو ٹیکنالوجی کے ہوں گے ۔ کوانٹم کمپیوٹرز جو فیوچر کے ہوں گے وہ ملینز آف ٹائمز فاسٹر اور پروڈکٹیو ہوں گے آج کل کے کمپیوٹرز کے مقابلے میں یہ کوانٹم لاز جو ہیں کوانٹم فزکس کے ان پر بیس کر کے کام کریں گے ۔ ان کے بارے میں سب سے انٹرسٹنگ بات یہ ہو گی کہ کوانٹم مکینکل لاز ول لٹ دم آل پاسیبل آنسرز ٹو آ کوئیسچن سائملٹینئسلی، آج کل کے جو کمپیوٹرز ہیں وہ باری باری کر کے مختلف آنسرز کو ایگزیمن کرتے ہیں لیکن کوانٹم مکینکل لاز الاؤ ٹو انالائز آل دا پاسیبلز آنسرز سائمنٹینئسلی ۔ اس لئے ان کی سپیڈ بہت زیادہ تیز ہو گی۔

ورلڈ وائڈ ویب کا ہم نے تذکرہ کیا ، اٹس آ  ہیوج سورس آف انفارمیشن۔ اس کے بارے ایک انٹرسٹنگ چیز یہ ہے کہ لاجکلی یہ یونیفائیڈ ہے لیکن فزیکلی یہ ڈسٹریبیوٹڈ ہے ، فرام دا یوزرزپوائنٹ آف ویو لگتا ہے کہ ایک ہی بڑا زبردست سا پوائنٹ آف انفارمیشن ہے لیکن درحقیقت فزیکلی یہ بے دنیا بھر میں پھیلے ہوئے بے شمار کمپیوٹرز پتہ نہیں کہاں کہاں پڑے ہوئے ہیں فزیکیلی وہ انفارمیشن پتہ نہیں کہاں کہاں پڑی ہوئی ہے لیکن لاجیکلی فرام یوزرز پوائنٹ آف ویو وہ ایک طرح کی ہی آرگنائز سی پڑی نظر آتی ہے ہمیں یو آر ایل پتہ ہو ہم کہیں بھی جا سکتے ہیں اور یہ بہت دلچسپ پے ۔

اور یہ بھی کہ یہ جو ریسورس ہے انفارمیشن کا یہ نہیں کہ ایسا کبھی انسان نے اس سے پہلے کبھی نہیں کیا کیونکہ یہ شئیرڈ ری سورس ہے ۔ اس سیارے پر تقریباً ہر شخص کو تقریباً ہر چیز تک رسائی حاصل ہے جو کہ ویب پر ہے تو اویل ایبل ٹو آل، شئیرڈ بائی آل اینڈ فار آل داورلڈ آج تک ایسی انونشن انسان نے کبھی نہیں کی۔

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

تو ان پرابلمز کو سالو کرنے کے لئے ایک جو بہت دلچسپ سروس ہمارے سامنے آئی ہے وہ انسٹنٹ میسجنگ کی ہے ۔ آئی سی کیو یہ جو ایم ایس این یا جو اے او ایل پر ہم انسٹنٹ میسجنگ کرتے ہیں یہ ای میل کی جو بھی پرابلم میں نے بتائی ہے اس کو اوور کم کرتی ہے ۔ ہم نے ہارڈ وئیر باتیں کی تھیں ۔ خاص طور پر مائیکرو پروسیسر کی بات کی تھی۔ مائیکرو پروسیسرز کے بارے میں ہم نے ایک سوال پوچھا تھا کہ آج کل کے جو بڑے بڑے سپر کمپیوٹرز ہیں ان میں جو بڑا سا موٹا سا پاورفل مائیکرو پروسیسر کیوں لگاہوتا ہے ۔ کیونکہ آج کل جو ہو رہا ہے وہ یہ کہ جو آج کل کے سپر کمپیوٹرز ہیں ان میں بے شمار چھوٹے چھوٹے پروسیسرز بھرے ہوتے ہیں ۔ وائے ناٹ جسٹ میک ون بگ ون ؟

اس کا جواب بڑا سادہ سا ہے ۔ وہ یہ کہ اگر ایک بگ ون بنائیں گے تو اس کو بنانے میں کاسٹ کافی زیادہ ہوگی اور کہاں استعمال ہو گا؟ وہ ایک نہیں تو چار یا چالیس سپر کمپیوٹرز میں استعمال ہو جائے گا؟

تو اتنی آپ نے محنت کر کے ہزاروں لاکھوں بلکہ اربوں خرچ کر کے آپ نے ایک مائیکرو پروسیسر بنایا ہے اور وہ یوز چار جگہوں پر ہو رہا ہے زیادہ سے زیادہ ہزار جگہوں پر ہو رہا ہے۔ اس کے مقابلے میں یہ جو مائیکرو پروسیسر ہے جو آج کل چھوٹے موٹے ہمارے پی سی میں بھی پائے جاتے ہیں اور سپر کمپیوٹرز میں بھی پائے جاتے ہیں ان کے بارے میں تو ایسا نہیں  ہے ان کا ایک دفعہ ان کو ڈیزائن کرتے ہیں ایک دفعہ ہی ان کو ڈیزائن کرنے پر جو خرچہ کرتے ہیں اور محنت کرتے ہیں اور کے بعد آپ اس کو ملینز کی تعداد میں بیچتے ہیں ۔ تو آپ کی انوسٹمنٹ آپ کو واپس مل سکتی ہے۔تو اس کی یہ یعنی کاسٹ ایشو بہت زیادہ پاور فل مائیکرو پروسیسرز نہیں بنائے جاتے ۔ بہت زیادہ پاور فل مائیکرو پروسیسر جو سپر کمپیوٹر کے لئے کافی ہوں وہ نہیں بنائے جاتے اور دوسرا ایک اور بات بھی ہے کہ اچھی خاصی کچھ پرابلمز بھی ہیں کہ جو یہ پیرالل کمپیوٹر بنے ہوئے جس میں بے شمار چھوٹے چھوٹے مائیکرو پروسیسرز لگے ہوتے ہیں ان میں اگر کوئی پرابلم آتی ہے تو ان کو زیادہ آسانی سے حل کیا جا سکتا ہے بجائے اس کے ایک بڑے مائیکرو پروسیسر ہو اگر ہزاروں چھوٹے چھوٹے ہوں وہ پرابلمز ان کے لئے زیادہ آسان ہیں ان پیرلل سپر کمپیوٹر کے مائیکرو پروسیسرز کے لئے زیادہ آسان ہے ان کو حل کرنا اس لئے بہت زیادہ بڑے پروسیسرز نہیں بنائے جاتے ۔

آج کل کے ماڈرن سپر کمپیوٹرز میں جو ایک بڑا دلچسپ سا فیچرہے اس کا پروسیسنگ سے شاید کوئی تعلق نہیں وہ ہے ان کی آن چپ کیش میموری ہے یعنی بہت تھوڑی سی کیش میموری ہےوہ اسی چپ پر رکھی دی جاتی ہے کہ جس پر مائیکرو پروسیسر ہو اس کا فائدہ کیا ہوتا ہے ؟ اس کا فائدہ یہ ہوتا ہے کہ وہ جو فریکوئنٹلی یوزڈ ڈیٹا یا انسٹرکشنز مائیکرو پروسیسر کو چاہئیے ہوتی ہیں وہ اسی کے اندر سیو ہو جاتی ہیں ۔ تو انکو تلاش کرنے کے لئے وہ جو فریکوینٹی یوزڈ ڈیٹا آئٹم یا انسٹرکشنز ہیں تواس کے لئے مائیکرو پروسیسر کو اپنے سے باہر نہیں جانا پڑتا کیوں کہ باہر جانا سلو پراسیس ہےلہذا اسے باہر نہیں جانا پڑتا بلکہ اس کے اندر ہی انفارمیشن موجود ہے وہ انفارمیشن کیش کے اندر موجود ہے ہاں اگر اس کو وہ انفارمیشن وہاں سے نہیں ملتی تو پھر وہ باہر جاتا ہے اور جو مین میموری ہے اس سے وہ ڈیٹا لے کر آتا ہے ۔ لیکن آج کل کے جو الگوریدھم ہیں وہ کیش اینڈ کیش سے بنائے گئے ہیں کمپائلرز اور پروگرامز ایسے لکھے گئے ہیں جو اس بات کو یقینی بناتےہیں کہ جو بار بار استعمال ہونے والا ڈیٹا یا احکامات ہیں وہ کیش میں ہی سٹور ہو جائیں اور وہ پروسیسر کو وہیں سے اویل ایبل بھی ہو جائیں۔ آن چپ کیش میموری کا فائدہ یہ ہوتا ہے کہ جو ڈیٹا کے ایکسس کا ٹائم فریم ہوتا ہے وہ بہت کم ہو جاتا ہے اس اور کی وجہ سے پروسیسر کی اوورآل پرفارمنس بڑھ جاتی ہے اور وہ زیادہ تیزی سے اپنا کام کر سکتا ہے ۔

ایک اور چیز کا ہم نے ذکر کیا تھا کہ آج کل کے مائیکرو پروسیسرز وقت کے ساتھ ساتھ بہتر سے بہتر ہو جارہے ہیں عموماً جب ہم کسی مائیکرو پروسیسر کے بہتر ہونے کی بات کرتے ہیں اس مطلب یہ ہوتا ہے کہ ہم اس کی کلاک فریکیونسی کے بڑھنے کی بات کر رہے ہیں کہ کل اگر وہ دو گیگا ہرٹس کا تھا آج وہ ٹو پوائنٹ ٹو گیگا ہرٹز کا ہو گیا لیکن اس کے علاوہ اور بھی کچھ طریقے ہیں ، جس میں ایک یہ ہے کہ جو ورڈ وڈتھ ہے یہ جتنے بڑے ورڈ جتنی بگ ورڈ کو مائیکرو پروسیسر ہینڈل کرتا ہے اس کو بڑھا دیا جائے آج کل کے جو پاپولر مائیکرو پروسیسر ہیں وہ بتیس بٹ کے ہیں لیکن نئے پروسیسرز مثلاً آئٹینئیم جو ہے وہ چونسٹھ بٹ کا پروسیسر ہے سو بعض آئیڈیل سچوایشنز میں وہ جو مائیکرو پروسیسر جو ہے ان موجودہ پروسیسرز سے دگنی ہو گی ۔

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

ہارڈ وئیر کے اوپر سافٹ وئیر چلتی ہے ۔ اور سافٹ وئیر کے بارے میں ہم نے کہا تھا کہ وہ دو طرح کی ہوتی ہے ایک سسٹم سافٹ وئیر اور دوسری ایپلیکیشن سافٹ وئیر۔ ہارڈ وئیر کے ڈائریکٹلی عموماً سسٹم سافٹ وئیر انٹر ایکٹ کرتی ہے اور پھر ایپلی کیشن سافٹ وئیر جو ہے وہ سسٹم سافٹ وئیر سے انٹرا یکٹ کرتی ہے۔ تو ہارڈ وئیر ، سسٹم سافٹ وئیر ، اپیلیکیشن سافٹ وئیر۔

جہاں تک سسٹم سافٹ وئیر کا تعلق ہے اس میں سب سے ضروری کردار آپریٹنگ سسٹم کا ہے ،آپریٹنگ سسٹم کسی بھی کمپیوٹر کے ہارڈ وئیر اور سافٹ وئیر ری سورسز کا خیال رکھتا ہے اور ان کو مینیج کرتا ہے اور بیک گراؤنڈ میں ہو کر مینیج کر رہا ہوتا ہے یوزر کو نہیں پتہ ہوتا کہ یہ مینجمنٹ ہو رہی ہے۔ مینجمنٹ سے مراد پروسیسر ، میموری سٹوریج ڈیوائسز وغیرہ کی مینیجمنٹ ہوتا ہے ۔یہ سارے کے سارے کام آُپریٹنگ سسٹم کرتا ہے ۔

آپریٹینگ سسٹم کا ایک اور کام ہوتا ہے اور وہ یہ کہ ایپلیکیشن سافٹ وئیر کو ایک کامن انٹرفیس فراہم کیا جائے جس کے ذریعے وہ ہارڈ وئیر سے بات سکے یعنی یہ ضروری نہیں ہے کہ اپیلیکشن سافٹ وئیر کو ہارڈ وئیر کی ایگزیکٹ ڈیٹیلز معلوم ہوں وہ آپریٹنگ سسٹم سے بات کرتا ہے آپریٹنگ سسٹم پھر ان ٹرم ہارڈ وئیر سے بات کرتا ہے ۔ دیکھیں میں نے ایپلیکیشن سافٹ وئیر لکھی تو مجھے یہ جاننا ضروری نہیں کہ کمپیوٹر کے اندر کتنے میگا بائیٹس کی ریم ہو گی مجھے یہ جاننا ضروری نہیں کہ کمپیوٹر کے اندر کتنی کیش ہو گی ۔ یہ ساری چیزیں اپلیکیشن سافٹ وئیر کے لئے ایک لحاظ سے ان ویژیبل ہوتی ہیں، آپریٹنگ سسٹم جو ہے وہ سب چیزوں کا خیال رکھتاہے۔ لہذا اپلیکیشن سافٹ وئیرزجو ہیں وہ سسٹم سافٹ وئیر سے بات کرتا ہے اور سسٹم سافٹ وئیر ہارڈ وئیر سے۔

سافٹ وئیر کے بارے میں ایک بڑا ضروری پوائنٹ ہے کہ سافٹ وئیر میں لکھتا ہوں اور میں اس کو بیچتا ہوں؟ کیا واقعی میں اس کو بیچتا ہوں؟ نہیں جناب عموماً ایسا نہیں ہوتا ، بلکہ جب کوئی کمپنی کوئی سافٹ وئیر بناتی ہے تو جب وہ سافٹ وئیر خریدتے ہیں تو سافٹ وئیر نہیں خریدتے بلکہ آپ اس کا یک لائسنس خریدتے ہیں ۔ یعنی آل یہ کر رہے ہیں کہ آپ خرید رہے ہیں ایک لائسنس آپ کو اجازت مل جاتی ہے کہ جی فلانے فلانے کام کے لئے آپ ہمارے سافٹ وئیر کو استعمال کر سکتے ہیں لیکن اونر شپ جو ہے وہ پھر بھی کمپنی جو سافٹ کے بنانے والی ہے اسی کے پاس رہتی ہے  لہذا ہم حقیقتاً کبھی اس سافٹ وئیر کے مالک نہیں ہوتے جس کےبارے میں ہم یہ سمجھتے ہیں کہ ہم اس کےمالک ہیں کیونکہ  ہم نے اس سافٹ وئیر کو خریدا ہوا ہے،

ان کا ہمارے پاس صرف یوزیج لائسنس ہوتا ہے اونر شپ نہیں ہوتا۔

سافٹ وئیر مختلف لینگوئیجز میں ڈیویلپ ہوتا ہے ، اس کی ہم نے آپ کو چار مختلف کلاسز بتائی تھیں

مشین لینگوئیج

اسمبلی لینگوئیج

ہائی لیول لیوئیج

اور فورتھ جنریشین لینگوئیج

مشین لینگوئیج مائیکرو پروسیسر کی لینگوئیج ہے لیکن انسان کے لئے مشین لینگوئیج میں پروگرام لکھنا ذرا مشکل ہے۔ تو پہلے تو کوشش کرتے تھے لکھ دیتے تھے جب ذرا یہ کمپلیکس ہوئی تو ہم نے ایک نئی لینگوئیج انونٹ کی جسے ہم اسمبلی لینگوئیج کہتے ہیں اس میں ہم پروگرام کو لکھ کر اسے مشین لینگوئیج میں کنورٹ کرتے تھے اور اس کے بعد وہ مائیکرو پروسیسر پر چلتا تھا۔

اسمبلی لینگوئیج بھی کوئی اتنی زیادہ آسان نہیں تھی تو اس کے بعد ہم نے ہائی لیول لینگوئیج کو ڈیویلپ کیا جو کہ انسانوں کے بات چیت کرنے کے انداز کے قریب قریب ہے ۔ اس میں ہم لکھتے ہیں پھر اس کو اسمبلی اور اسمبلی سے مشین میں کنورٹ کرتے ہیں اور پھر یہ کام کرتا ہے ۔ اس کے بعد یعنی ہائی لیول لینگوئیج کے بعد اس میں اور بھی بہتری آئی اور فورتھ جنریشن لینگوئیج آ گئیں۔ فورتھ جنریشن لینگوئیج انسانی انداز گفتگو کے مزید قریب ترین ہیں ۔ میشن لینگوئیج ، اسمبلی لینگوئیج ، ہائی لیول لینگوئیج اور فورتھ جنریشن لینگوئیج لیکن مائیکرو  پروسیسر پر ہمیشہ مشین لینگوئیج ہی چلتی ہے ۔ تو یہ کوئی زیادہ میٹر نہیں کرتا کہ آپ نے کیسے اس کو لکھا ہے کیونکہ آخر میں آپ کو اس پروگرام کو مشین لینگوئیج میں کنورٹ کرنا ہی پڑے گا۔ اس کے لئے بھی دو طرح کے پروگرام استعمال ہوتے ہیں ایک تو انٹر پریٹرز ہیں دوسرے کمپائلرز ہیں ۔ انٹر پریٹرز جو ہیں وہ فوری رسپانس دیتے ہیں لیکن یہ جو کوڈ ایکزیکیوٹ کراتے ہیں وہ تیزی سے نہیں چلتا ۔

کمپائلرز جو ہیں وہ پروگرام کو کمپائل کرنے میں یعنی اس کو مشین لینگوئیج میں کنورٹ کرنے میں ذرا وقت لگتا ہے لیکن جب وہ ایک دفعہ کمپائل ہو جائے تو پھر اس کی سپیڈ بہت تیز ہوتی ہے یعنی آپ کی سپیڈ سپر فاسٹ ہو جاتی ہے ۔ تو فوری رسپانس کے لئے انٹر پریٹر استعمال کیے جاتے ہیں جبکہ آپ کو بہت تیز ایگزیکیوشن چاہیے تو پہلے کمپائل کر لیں۔

ایک سوال جو ہم نے پوچھا تھا جب ہم لینگوئیجز کی بات کر رہے تھے کہ کین وی آہیو آ لینگوئیج جس میں ساری کی ساری جو لینگوئیجز ہیں ان کے تمام اچھے فیچرز ہوں ۔ ایک ایسی سپر سی لینگئوئیج بنائی جا سکتی ہے ؟ اس کا جواب ہم نے یہ دیا تھا کہ بد قسمتی سے ایسا نہیں ہو سکتا۔

عموماً ہوتایہ ہے کہ کسی لینگوئیج کو ایک طرف آپ آپٹمائز کرتے ہیں دوسری طرف کچھ گڑ بڑ ہوجاتی ہے دوسری جانب کوئی گڑبڑ ہو جاتی ہے توجب بھی آپ کوئی لینگوئیج بناتے ہیں تو اس  میں کچھ لے دے رہے ہوتے ہیں۔ لہذا ایک پرفیکٹ لینگوئیج بنانا شاید فی الحال مشکل ہے ۔ اس سے ایک اور اپرچونٹی پیدا ہوتی ہے کہ مختلف لینگوئیجز ہیں مختلف ٹاسکس ہیں جو اچھے پروگرامرز ہیں وہ مختلف ٹاسکس کے لئے مختلف لینگوئیجز سلیکٹ کرتے ہیں۔ لہذا اچھے پروگرامرز کسی بھی ٹاسک کے لئے جوبہترین لینگوئیج ہوتی ہے اس کا انتخاب کرتے ہیں اور پھر پروگرام لکھتے ہیں ۔

ہمارے جیسے جو لوگ ہیں جنہیں لینگوئیجز کا اتنا نہیں پتہ اور جنہیں ایک ہی لینگوئیج آتی ہے وہ اس میں ہی ہر چیز کر پاتے ہیں لیکن جوں جوں آپ کا تجربہ بڑھتا ہے ہو سکتا ہے آپ میں یہ مہارت پیدا ہو جائے کہ آپ مختلف ٹاسکس کے لئے مختلف لینگوئیجز استعمال کریں۔ لیذا ٹاسک کودیکھیں ۔لینگوئیج کا انتخاب کریں اور پھر اس کے مطابق پروگرام کو یا ٹاسک کو پورا کریں۔ جب ہم نے ان پروگرامز کی بات کی تھی مختلف لینگوئیج میں جب ہم پروگرام لکھتے ہیں تو اس کے بارے میں ہم نے یہ کہا تھا کہ عموماً جب ہم یہ پروگرام لکھتے ہیں ان ایک لائف سائیکل ہوتا ہے یہ لائف سائکل فزیبلٹی سے شروع ہوتا ہے اور پھر ڈیویولپمنٹ والی چیزیں اور آخر میں آپ اس کی ریٹائرمنٹ کے بارے میں بھی سوچتے ہیں ۔ جب بھی آپ کوئی سافٹ وئیر بنائیں تو یہ سوچ کر بنائیں کہ ایک دن اس نے ریٹائرڈ بھی ہونا ہے یعنی اس کو ہم نے فیز آؤٹ بھی کرنا ہے ۔ سو جو اچھی سافٹ وئیر آرگنائزیشنز ہیں وہ ریٹائرمنٹ کے بارے میں سوچ کر بناتی ہیں لہذا جب ریٹائرمنٹ کا وقت آتا ہے تو یوزر کو زیادہ کام نہیں کرنا پڑتا اس سافٹ وئیر کو فیز آؤٹ کرنے کے لئے تو کانسیپٹ سے لے کر ریٹائرمنٹ تک جتنے بھی سٹیپس ہیں ان کو ہم ایک لائف سائکل کہتے ہیں جب ہم اس لائف سائکل کوفالو کر رہے ہوتے ہیں تو اس ہر سٹیپ پر ایک ٹیسٹنگ کا چھوٹا سا سٹیپ بھی ہوتا ہے ۔اگر ہم یوزر ریکوائرمنٹس لکھتے ہیں اس کا ایک ٹیسٹ ہوتا ہے ۔سپیسفیکیشن لکھتے ہیں اس کو ٹیسٹ کرتے ہیں ۔ پلاننگ کرتے ہیں اس کو ٹیسٹ کرتے ہیں، ڈیزائن کو ٹیسٹ کرتے ہیں کوڈ کو ٹیسٹ کرتے ہیں اور آخر میں جب ہم ڈیلیور کرتے ہیں تو کلائنٹ اس کی ایکسیپٹنس ٹیسٹنگ بھی کرتا ہے۔ تو جو پروگرام ہم لکھتے ہیں ان کو امپلمنٹ کرنے سے پہلے ہم سوچتے ہیں ڈیزائن کے بارے میں ۔ ہم سوچتے ہیں کہ اس صورتحال میں کون سا الگوردھم استعمال کرتے ہیں مثال کے طور پر اگر ہم نے سارٹنگ کرنی ہے تو ہم سوچتے ہیں کہ یہاں کون سی سارٹنگ ٹیکنیک بہتر رہی گے  سو جب ہم ان ٹیکنیکس کے بارے میں بات کرتے ہیں تو ہم الگوردھمز کے بارے میں بات کر رہے ہوتے ہیں۔ الگوردھم ایک سیکوینس آف سٹیپس ہوتا ہے جو ایک مسئلے کو حل کرنے لئے کئے جاتے ہیں ، اس کی مزید وضاحت کرنے کے لئے ہم کہہ سکتے ہیں کہ الگوردھم ایک ایسی سیکیونس آف سٹیپس ہوتی ہے جس کے سارے کے سارے سٹیپس ہوتے ہیں وہ ان امیگیوئیس اور ایگزیکیوٹ ایبل ہوتے ہیں ۔ یعنی کوئی بھی ایسا سٹیپ نہیں ہوتا جو ایگزیکیوٹ ایبل نہ ہو یا جو ممکن ہی نہ ہو اور یہ بھی کہ الگوردھم جب ختم ہوتا ہے وہ ہمیشہ ایک حل کی شکل میں ختم ہوتا ہے یعنی الگوردھم ہمیشہ ہمیں حل مہیا کرتا ہے جب بھی یہ ختم ہوتا ہے اس میں ایک گارنٹی موجود ہوتی ہے ۔ الگوردھم کو کوڈ کرنے سے پہلے اس کو ہم سوڈو کوڈ یا فلو چارٹ کی صورت میں لکھتے ہیں ۔ میرے خیال میں سوڈ کوڈ زیادہ بہتر رہتا ہے ، سوڈو کوڈ فلو چارٹس کی نسبت زیادہ سوٹ ایبل رہتا ہے سافٹ وئیر ڈیویلپمنٹ کے حوالے سے بھی کیونکہ یہ تقریباً کوڈ ہی طرح نظر آتا ہے اور اچھے پروگرامرز ایسا ہی کرتے ہیں کہ وہ سب سے پہلے سوڈو کوڈ لکھتے ہیں اور پھر اس میں اصل کوڈ بھر دیتے ہیں۔ الگوردھمز کی جب ہم نے بات کی تھی تو اس کے ساتھ ہم نے ہیوریسٹکس کا تذکرہ بھی کیا تھا اور اس کے بعد ہم نے ایک فل لیکچر بھی لیا تھا ہیورسٹکس پر۔  ان کے بارے میں ہم نے یہ کہا تھا کہ یہ ذہانت ، وزڈم یا کامن سینس ہوتی ہے ، یہ وہ ذہانت یا کامن سینس ہوتی ہے جو تجربے سے سیکھی جاتی ہے ہم نے یہ بھی کہا تھا کہ الگوردھم کی طرح یہ ہمیشہ ایک سلوشن میں ختم نہیں ہوتی ، عموماً ایسا نہیں ہوتا عموماً یہ ہمیں مسئلے کا ایک سادہ سا ورک ایبل حل دے دیتے ہیں لیکن کوئی گارنٹی نہیں ہے اس بات کا ہمیں خیال کررکھنا چاہئے اور ایک بڑا دلچسپ ہیورسٹک جس کا ہم نے تذکرہ کیا تھا اور جو آج کل کے ماحول میں خاصا اہم ہے وہ یہ ہے کہ صرف ڈی فیکٹ کو ختم نہ کریں بلکہ وہ وجہ بھی ختم کریں جس کی وجہ سے یہ ڈیفیکٹ پیدا ہوا ہے ۔ اس کی سافٹ وئیر ڈیویلپمنٹ میں تو بہت ساری اپلیکیشنز ہیں لیکن آج کل تو بہت زیادہ ٹیررازم وغیرہ کی بات ہوتی ہے شاید اس میں بھی اس ہیورسٹک کو استعمال کیا جائے تو حالات خاصے بہتر ہو جائیں یعنی فکس دا ریزن ناٹ اونلی دا سمپٹمز

ایک سوال جو ہم نے آپ سے ہوچھا تھا کہ یہ جو ہیورسٹکس ہوتی ہیں کیا یہ الگوریدھم ہوتے ہیں ؟اس کا جواب ہم نے تھوڑی دیر پہلے آپ کو دے دیا کہ نہیں ، ایلگوریدھم میں گارنٹی ہوتی ہے کہ حل دیا جائے گا جب کہ ہیورسٹکس میں یہ گارنٹی نہیں ہوتی ۔ ہم نے ویب ڈیزائن کی بات کی تھی ہیورسٹکس کی اس کے بارے میں ہم نے اپنا جو گول مقرر کیا تھا وہ بہت سادہ تھا کہ وہ یہ تھا کہ جب بھی ہم کوئی ویب سائٹ بنائیں تو وہ بہت سادہ ہو ، بہت آبئیس ہو اور انڈرسٹینڈ ایبل ہو یعنی اس میں چیزوں کو تلاش نہ کرنا پڑے جو انفارمیشن ہمیں چاہیے ہو سامنے موجود ہو۔ تو اگر ہم ایسا ویب پیج بنائیں گے جس میں انفارمیشن سامنے موجود ہو اور کلئیر ہو اسے ہم اے یوز ایبل ویب پیج ۔

عموماً ہم ایک پرفیکٹ ویب پیج تو نہیں بنا سکتے لیکن ہم یوز ایبیلٹی کو بہتر کرنے ٓکی بات ضرور کر سکتے ہیں ۔ یعنی ہم کسی پیج کی یوز ایبیلٹی کوبڑھانے کے لئے یا بہتر کرنے کے لیے کیا کیا چیزیں کر سکتے ہیں۔ ہم نے بہت ساری چیزیں کہی تھیں ، ایک بہت سادہ سی بات ہم نے یہ کہی تھی بہت چھوٹی سی ٹیکسٹ استعمال نہ کریں۔ یوزر کے پوائنٹ آف ویو سے اگر وہ پڑھ نہیں سکتا تو وہ اس ویب پیچ میں سے سمجھ کیا پائے گا ؟ ایک اور چیز  میں نے کہی تھی کہ جو آپ بلا وجہ کے گرافکس اپنے پیج پر ڈال دیتے ہیں یوزر اس سے بھی انوائے ہوتا ہے کیونکہ اسے تو انفارمیشن چاہئے ہوتی ہے اگر آپ نے گرافکس ڈال دیئے تو اس کی وجہ اس کا ڈاؤن لوڈ ٹائم پانچ منٹ کا ہو جاتا ہے۔وہ تو بیچارہ بہت انوائے ہو گا اس چیز سے اس لئے اس طرح کی غیر ضروری گرافکس کو ویب پیج کو دور رکھنے کی کوشش کریں ۔

ہم نے انٹیلی جنس سسٹمز کی بات کی ہم نے آرٹیفیشل انٹیلی جنس سسٹمز کی بات کی یعنی یہ وہ سافٹ وئیر یا ہارڈ وئیر یا ان دونوں کا کمبینیشن ہوتے ہیں وہ کمپلیکس ٹاسکس کو کرنے کے لئے ڈیزائن کئے جاتے ہیں اور جو سٹریٹجی وہ استعمال کرتے ہیں ان مسائل کو حل کرنے کے لئے وہ ہمارے طریقے سے استعمال کرتے ہیں یعنی ہمارے تھنکنگ پیٹرز کو استعمال کر کے، لہذا انٹیلی جنس سسٹمز کیا ہوتے ہیں ؟ یہ وہ ہوتے ہیں جو سم ہیومن پارٹس کے ساتھ کمپلیکس مسائل کو حل کریں۔ اس کے بعد ہم نے یہ کہا تھا کہ اگر آپ نے کچھ پرابلم سالو کرنی ہے اور یہ سوچھ رہے ہیں اسے انٹیلی جنس سسٹم کے ذریعے سے حل کروایا جائے تو اس سے پہلے آپ چند چیزوں کو ضرور دیکھ لیں ، مثلاً سب سے پہلے دیکھیں کہ نیچر آف کمپیٹینشز کیسا ہے ؟یعنی کیا ہمیں یہ ویل انڈر سٹوڈ ہے ہمیں پتہ ہے کہ یہ کیسے کرتی ہیں ؟ اور اگر ہمیں یہ پتہ  ہیے تو پھر انٹیلی جنس سسٹم آپ کو اس کا کوئی بہتر جواب نہیں دے گا بلکہ اس کے لئے آپ ریگولر کمپیوٹر استعمال کریں۔ آپ یہ چیک کریں کہ جو سسٹم ہے اس میں بہت ساری ایسکپشنز تو نہیں ؟ اگر ایسا ہے توٹھیک ہے انٹیلی جنس سسٹم ہو سکتا ہے آپ کو ریزن ایبل حل دے دے۔ اکثر آیسا ہوتا ہےکہ اگر کوئی کام ہم دیکھتے ہیں تو ہمیں پتا ہوتا ہے کہ ایگیزکلٹی کس طرح وہ کام ہو رہا ہے لیکن پریکٹیکلی جو کام ہو رہا ہوتا ہے وہ بہت کمپلیکس ہوتا ہے اس صورت مہں کہ اگر وہ عام کمپیوٹر سے کروایا جائے تو اچھا خاصا وقت لگ جائے اس لیے ایسے مواقع پر انٹیلی جنس سسٹم کی جانب رجوع کر سکتے ہیں اور ہو سکتا ہے کہ وہ ایک ایکسیپٹیبل فارم آپ کو دے دیں۔

تو یہ  تین چیزیں ہیں جو ہم چیک کرتے ہیں لیکن اگرکوئی پرابلم ان تینوں یا ان میں سے ایک کو سیٹسفائی کرتی ہے تو اس کا یہ مطلب نہیں ہے کہ یہ انٹیلیجنس سسٹم آپ کو ضرور اس کا حل دے دے گا تو پاسیبلٹی سٹل اگزسٹ۔ کہ اس سے ہو سکتا ہے کہ ریگولر کمپٹیشن کے مقابلے میں کچھ بہتر حل آپ کو مل جائے ۔

ہم نے ڈیٹا بیس کا آپ سے تذکرہ کیا، ڈیٹا بیس کیا ہوتے ہیں ؟ ڈیٹا بیس کلیکشن آف ڈیٹا کو کہا جاتا ہے ، جس میں ڈیٹا کو ایک خاص طریقے آرگنائز کیا جاتا ہے اور وہ طریقہ ایسا ہوتا ہے کہ اس میں سے اگر کوئی چیز تلاش کرنا ہو تو وہ آسانی سے مل جائے تو ایسی کلیکشن آف ڈیٹا کو ہم ڈیٹا بیس کہتے ہیں ۔

اور عموماً ایک ڈیٹا بیس میں جتنا بھی ڈیٹا ہوتا ہے ایک دوسرے سے انٹر کنکٹڈ اور ایک دوسرے ملتا جلتا ہوتا ہے ۔

ہم نے خاص طور پر ریلیشنل ڈیٹا بیس کی بات کی تھی ریلیشنل ڈیٹا بیس میں ڈیٹا ٹیبلز کی فارم میں سٹور کیا جاتا ہے اور ان میں سے بعض ٹیبلز یا کم از کم دو ٹیبلز ایسے ضرورت ہوتے ہیں جو آپس میں انٹر ریلٹیڈ ہوتے ہیں ۔ ان کا آپس میں کوئی تعلق ہوتا ہے جو ہم نے آپ کو بتایا تھا لیکن بنیادی بات یہی ہے کہ ایسے جو ڈیٹا بیسز ہوتے ہیں ان کا سارے کا سارا جو ڈیٹا ہوتا ہے وہ ٹیبلز کی فارم میں ہوتا ہے۔ سارے کے سارے جو آپریشن جو ہیں وہ انہیں ٹیبلز پر ہوتے ہیں اور ان آپریشنز سے مزید ٹیبلز بھی بعض اوقات جنریٹ ہوتے ہیں ۔ ہم نے فیوچر ٹرینڈز کا بھی کچھ تذکرہ کیا تھا ۔ ان میں سے دو چیزوں کا تذکرہ یہاں  پر کرنا چاہوں گا ایک تو تھا کہ جیسے بجلی آج کل گھروں میں آتی ہے ایسے ہی کمپیوٹنگ پاور سپلائی گھروں میں آیا کرے گی ۔

ایک آلموسٹ انینیٹ یا لا متناہی قسم کی کمپیوٹنگ پاور آپ کو مل جائے گی جس میں آپ کو ریلائی ایبل اور مینٹیننس فری کمپیوٹنگ پاور ملا کرے گی جیسے بجلی ، پانی ٹیلی فون وغیرہ کی سپلائی ہوتی ہے اور مزے کی بات اس میں یہ ہو گی اگر آپ کی ضرورت بڑھ جائے گی تو آپ کو پھر سے خرچ نہیں کرنا پڑے گا نیا کمپیوٹر نہیں لینا پڑے گا بلکہ اس کی بجائے آپ کا کمپیوٹنگ کا بل تھوڑا سا بڑھ جائے گا اور وہ بھی آپ کے استعمال کے مطابق کہ جتنا آپ استعمال کریں گے ۔ اور ہم نے یہ بھی کہا تھا کہ سٹوریج کے ساتھ بھی یہی ہونے والا ہے کہ آپ کو نئی سٹوریج کی ضرورت پڑے گی تو آپ کو نئی ہارڈ ڈسک نہیں خریدنا پڑے گی بلکہ آپ کا سٹوریج کا ماہانہ بل تھوڑا سا بڑھ جائے گا۔

ہم نے ایمورٹل مائینڈز کی بات کی تھی کہ ہو سکتا ہے مستقبل میں یہ بھی ہو کہ بعض اصحاب ایسے ہیں جنہوں نے بہت اچھی باتیں کی ہوئی ہیں تو ان صاحب کا ہم سارا ڈیٹا ، باتیں یعنی لیکچرز کتابیں، اٹرویوز وغیرہ لے لیں گے اور وہ اس ایمورٹل مائینڈ والے پروگرام کو دے دیں گے تو یہ پروگرام اس کو اینالائز ڈائی سائیڈ کر کے ان صاحب کا ایک انٹرنل ماڈل سا بنا لیں گے یہ ماڈل جب بن جائے گا تو یوزر اس ماڈل سے بات کر سکے گا بالکل ویسے ہی جیسے ان صاحب سے حقیقت میں بات کیا کرتا تھا ۔ اس سلسلے میں ، میں یہ سمجھتا ہوں کہ یہ تھری ڈی سیمیولٹڈ ریالٹی ہو گی جہاں میں تو خود بیٹھ کر بات کر رہا ہوں گا لیکن جو صاحب جن سے میں بات کرنا چاہ رہا ہوں گا ان کا تھری ڈی سیمولیٹڈ ماڈل اس ایمورٹل مائیند پروگرام کی مدد سے ان صاحب کی کہی ہوئی باتوں اور خیالات کو مدنظر رکھ کر انٹیلی جنٹ آنسرز دے گا۔ ان کا سارے کا سارا ڈیٹا اصل میں مجھ سے بات کر رہا ہو گا ان کے آئیڈیاز وہی ہوں گے اور وہ لہجہ وہی  ہو گا جو ان صاحب کا ہو گا۔

لہذا ایک وقت ایسا آئے گا کہ اس طرح کے لوگ ایمورٹل مائینڈز کی صورت میں ہمارے پاس زندہ رہ جائیں گے ۔

جیسے جیسے ترقی  ہو رہی ہے ہمارے لئے بہت سے مسائل بڑھ بھی رہے ہیں اور بہت سے مسائل کم بھی ہو رہے ہیں ۔ ایک مسئلہ جو حل ہو رہا ہے کہ لوگوں کے مابین جو دوری ہے وہ اب زیادہ معنی خیز نہیں رہی بلکہ انٹرنیٹ کی مدد سے خاص طور پر لوگ اب بے انتہا دوری سے بھی انتہائی سستے داموں میں ایک دوسرے سے بات چیت کر سکتے ہیں ۔ لہذا اس کی وجہ سے فاصلے کم ہو گئے ہیں لیکن اس کی وجہ سے فاصلے بڑھ بھی گئے ہیں کہ ایک ہی جگہ پر بیٹھے ہوئے لوگ آپس میں ایک دوسرے سے دور ہو گئے ہیں ۔ ایک اور بات ہم نے کی تھی کہ ہو سکتا ہے ایک زمانہ آئے کہ کمپیوٹر بہت ہی زیادہ پاور فل ہو جائیں اور آج کل جو ہمارے نوکر ہیں یہ رول کہیں الٹا نہ ہو جائے تو لہذا ہمیں یہ سوچنا چاہئے کہ جو ہم ان کو سیلف ہیلنگ اور سیلف انٹیلی جنٹ بنا رہے ہیں کیا ایسا کرنا ٹھیک ہے ؟

تو یہ تو وہ پوائنٹس تھے جو ہمارے پہلے مقصد کو حاصل کرنے کے لئے یعنی کمپیوٹنگ کے جو بنیادی آئیڈیاز ہیں ان کے بارے میں جو ہم اپنے آپ کو تھوڑی سی انفارمیشن دینا چاہتے تھے تو اس کے لئے ہم نے ان ٹاپکس اور ان کے ساتھ کچھ اور ٹاپکس کو ڈسکس کیا تھا۔

دوسرا جو ہمارا مقصد تھا کہ ہم ویب پیج ڈیویلپمنٹ میں کچھ مہارت حاصل کرنا چاہتے تھے اس سلسلے میں سب سے پہلے ہم نے ایچ ٹی ایم ایل کے بارے میں سوچا اور اس کی مدد سے ہم نے کچھ سٹیٹک ویب پیجز ڈیویلپ کیے وہ اتنے زیادہ انٹر ایکٹیو نہیں تھے اور نہ ہی زیادہ متاثر کن تھے ان میں ہائپر لنکس اور زیادہ تر انٹر ایکٹیویٹی فارمز کی صورت میں ہی تھی ۔ اور اس کے بعد ہم نے جاوا سکرپٹ کے بارے میں سوچنا شروع کر دیا جاوا سکرپٹ کی مدد سے ہمارے پروگرام زیادہ انٹرا یکٹیو ہو گئے ۔ ایچ ٹی ایم ایل سے صرف  سٹیٹک پیجز بنتے ہیں جاوا سکرپٹ کی مدد سے ہم ان پیچز میں کچھ انٹر ایکٹویٹی اور کچھ دلچسپ فیچرز ایڈ کر سکتے ہیںَ ہم نے یہ کہا کہ جاوا سکرپٹ ایک بہت اچھی چیز ہے اس کی مدد سے ہم بہت دلچسپ اور اہم کام کر سکتے ہیں لیکن اس میں کچھ خامیاں بھی ہیں ۔ کچھ چیزیں ہیں جو جاوا سکرپٹ وہ کام نہیں کر سکتے اور ان میں سے ایک تو یہی تھی کہ فائلز ووالے آپریشن جاوا سکرپٹ نہیں کر سکتی نہ یہ فائلز بنا سکتی نہ ریڈ کر سکتی اور نہ ہی ایڈیٹ کر سکتی ہے اس کے علاوہ جاوا سکرپٹ میں گرافکس کے لئے بھی کوئی خاص فیسلٹی نہیں ہے اس میں گرافک بنا نہیں سکتے اگر کوئی گرافگ موجود ہے تو اسے ادھر ادھر پلیس ضرور کر سکتے ہیں مگر نئی نہیں بنا سکتے۔ مثلاً ایک سکیوئیر اگر میں بنانا چاہوں تو نہیں بنا سکتے ۔ لے آؤٹ بڑا زبردست ہم اس کی مدد سے بنا سکتے ہیں۔ گرافکس کوادھر سے اادھر کر سکتے ہیں مگر نئی بنا سکتے ۔

اس کے عام لینگوئیجز میں نیٹ ورک پروگرامنگ کی کچھ سہولیات ہوتی ہیں جو کہ جاوا سکرپٹ میں نہیں ہیں ۔ بس ایک چھوٹی سی ہے کہ کسی بھی یو آر ایل کے ذریعے آپ کسی بھی چیز جو کو اس کے نیٹ ورک پر ایکسس کر سکتے ہیں اگر آپ کو یو آر ایل معلوم ہے آپ اس کو پکڑ سکتے ہیں وہاں سے بس یہی نیٹ ورکنگ پروگرامنگ ہے جاوا سکرپٹنگ میں ۔

اس کے بعد ہم نے کلائنٹ سائٹ سکرپٹنگ شروع کر دی۔ اس سے پہلے ہم نے بات کی تھی سرور سائیٹ کی  لیکن اس کے بعد ہم نے کلائینٹ سائیڈ سکرپٹنگ شروع کر دی اور اس کا فائدہ ہم نے یہ بتایا تھا کہ اس کی مدد سے جو پراسیسنگ ہے اس اس کا اچھا خاص حصہ جو یوزر ہے اس کے پاس موجود کمیپیوٹر ہر جاتی ہے ، سرور سائیڈ سکرپٹنگ میں سارے کا سار کام بیک اینڈ پر موجود سرور پر ہی ہوتا ہے اس سے سرور پر لوڈ بہت زیادہ بڑھ جاتا ہے تو ایک سرور ہو سکتا ہے پانچ سات ہزار آدمیوں سے زیادہ کا لوڈ نہ اٹھا سکے۔ لیکن کلائینٹ سائیڈ سکرپٹنگ کی مدد سے ہم ویب پیج میں جو آپریشنز ہو رہے ہوتے ہیں وہ کلائنٹ کے کمپیوٹر میں کروا دیتے ہیں جس سے سرور پر لوڈ کم ہو جاتا ہے ۔ اس کے علاوہ اس کی مدد سے ہم جو نیٹ ورک پر ٹریفک ہوتی ہے اس کو بھی کسی حد تک کم کر سکتے ہیں اس کی بعض مثالیں بھی ہم نے آپ کو دی تھیں ۔

جاوا سکرپٹ کے بارے میں ہم نے آپ کو بتایا تھا کہ یہ آبجیکٹ بیسڈ لینگوئیج ہے ۔ آبجیکٹ کیا ہے ؟ آبجیکٹ کے بارے میں ہم نے آپ کو بتایا تھا کہ اٹس جسٹ آ نیمڈ کلیکشن آف پراپرٹیز اینڈ میتھڈز ، پراپرٹیز سے مراد ہے ڈیٹا یا سٹیٹس، اور میتھڈز سے مراد ہے انسٹرکشن یا بیہیورز ۔ بعد میں ہم نے اس ڈیفینیشن کا تھوڑا سادہ کر دیا تھا ہم نے کہا تھا آبجیکٹ از آ نیمڈ کلیکشن آف پراپرٹیز۔ کیوںکہ جاوا سکرپٹ میں جو میتھڈز ہوتے ہیں وہ پراپرٹیز کے طور پر ہی سٹور ہوتے ہیں میتھڈز فنکشنز ہوتے ہیں جو آبجیکٹس کی پراپرٹیز کے طور پر سٹورڈ ہوتے ہیں۔ تو اسی لئے جو آبجیکٹ کے لئے ہماری سادہ تعریف یہ ہے کہ نیمڈ کلیکشن آف پراپرٹیز۔

جاوا سکرپٹ میں ایک دلچسپ کانسپٹ جو ہم نے استعمال کیا اور جو اور بھی تقریباً تمام لینگوئیجز میں اویل ہے وہ ہے فنکشنز کا کنسٹرکٹ ۔ فنکشن کے ذریعے آپ یہ کرتے ہیں کہ آپ سٹیٹمنٹس کا ایک گروپ تیار کرتے ہیں اور ان کے ایک نام دے دیتے ہیں لہذا فنکشن ایک نیمڈ گروپ آف سٹیٹمنٹس ہے ۔ اور اس کے بعد ایسا کرتے ہیں کہ جب بھی آپ نے جب ان گروپ آف سٹیٹمنٹس کو لکھنا ہو تو آپ ان سب کو نہیں لکھتے بلکہ اس فنکشن کا نام لکھ دیتے ہیں ۔

یعنی ان سٹیٹمنٹس کو بجائے فزیکلی لکھنے کے وہا ں پر بائے ریفرنس ایکسس کرتے ہیں اس سے آپ کے پروگرام کی ریڈ ایبلٹی بڑھ جاتی ہے ان کو ایکسس کرنا آسان ہو جاتا ہے ان کو انڈرسٹینڈ کرنا اور استعمال کرنا بھی آسان ہو جاتا ہے ۔ اس طرح پروگرام کا سائز بھی کم ہو جاتا ہے۔ لیکن ان کے سائز کا کم ہونے سے کہیں بہتر فائدے اس پروگرام کی ریڈ ایبلٹی اور فیچرز کا بڑھنا ہیں  جو فنکشنزکی وجہ سے ہمیں میسر آتے ہیں  ۔ فنکشنز کا جب ہم نے تذکرہ کیا تھا تو ہم نے لوکل اور گلوبل ویری ایبلز کا بھی ذکر کیا تھا ہم نے یہ کہا تھا کہ لوکل ویری ایبلز کو گلوبل ویری ایبلز کے اوپر فوقیت دینی چاہیئے یعنی جب بھی آپ کے پاس موقع ہو اور سہولت موجود ہو تو لوکل ویری ایبلز کو استعمال کریں گلوبل ویری ایبلز کو استعمال نہ کریں ۔ لوکل ویری ایبلز افیکٹیو ہوتے ہیں صرف اس فنکشن میں جس میں ان کو ڈکلئیر کیا جائے جبکہ گلوبل ویری ایبلز ہر جگہ پر اویل ایبل بھی ہوتے ہیں اور افکیٹیو بھی ۔ تو اس کی ہم نے بعض نقصانات اور لوکل کے کچھ فائدے بتائے تھے جس کی وجہ میں یہ آپ سے پھر کہہ رہا ہوں کہ گلوبل ویری ایبلز کی بجائے لوکل ویری ایبلز کو زیادہ سے زیادہ استعمال کریں ۔

جاوا سکرپٹ میں جو سب دلچسپ ٹرک ہم نے سیکھا تھا وہ شید امیج پری لوڈنگ کا تھا ۔ جس کی مدد سے آپ بیک گراؤنڈ میں بغیر دکھائے ہوئے امیجز کو لوڈ کر سکتے ہیں یعنی ان کو اپنے ہاس لا سکتے ہیں کہیں سے اور اپنے کیش میں رکھ سکتے ہیں اور جوں ہی ضرورت پڑتی ہے تو اس کو ڈسپلے کر سکتے ہیں اس سے ایک بڑا اچھا امیج یوزر پر جاتا ہے کہ اس کے سامنے چیز ایک دم سے فوراً آ جاتی ہے ۔ عموماً تو ایسا ہوتا ہے کہ امیج آہستہ آہستہ لوڈ ہو رہا ہوتا ہے تو پری لوڈن کے ذریعے یہ آہستہ آہستہ والا کام ہم بیک گراؤنڈ میں کر لیتے ہیں اور یوزر کو ایک دم سے ہی سامنے آجاتا ہے ۔

جب وہ سارے کے سارے امیجز آ جاتے ہیں تو ہم ان پری لوڈڈ امیجز کی مدد سے بڑے افیکٹیو انیمیشنز استعمال کر کے انہیں یوزر کو دکھا سکتے ہیں اور اس سے آپ کے ویب پیجز زیادہ انٹرسٹنگ اور زیادہ انفارمیٹیو بن سکتے ہیں ۔

یہ تو تھا ہمارا دوسرا آبجیکٹیو اس کے بعد ہم آتے ہیں اپنے تیسرے آبجیکٹیو کی جانب ، ہمارا تیسرا آبجیکٹو یہ تھا کہ کچھ سافٹ وئیر پیکجز ایسے ہیں جنہیں پرو ایکٹیویٹی سافٹ وئیر پیکجز کہتے ہیں اس تیسرے آبجیکٹیو کے ذریعے ہم ان سے روشناس ہونا چاہتے تھے تو اس سلسلے میں ہم نے چار لیکچرز کئے اور چار اسائنمنٹس بھی کیں اور ان کا مطلب اور مقصد صرف یہ تھا کہ آپ کو ان سے فیمیلیرٹی مل جائے  اور بس ۔ آپ کو ان سے بریف انٹرو ڈکشن ہو جائے اور اس سے یہ ہوا تھا کہ اب آپ ان اپلیکشن کو کھول سکتے تھے اور ان میں تھوڑا بہت کام کر سکتے ہیں ۔ ہوگا یہ کہ وقت کے ساتھ ساتھ آپ کو ان کاموں کے کرنے کی ضرورت پڑے گی آپ کو ان پہ مزید ایکسپیریئنس ہو گا اور اس سے آپ کی پروفیشنسی ان پیکجز میں مزید بڑھتی جائے گی اور یہ چار سال جو آپ کے پاس ہیں ان میں آپ کی مہارت اتنی بڑھے گی کہ جب آپ اپنے ایکچوئیل کیرئیر میں جائیں گے تو وہاں پر اس مہارت بہت فائدہ ہو گا ۔ تو جناب ہمارا آپ کو ان پیکجز سے متعارف کروانا تھا ان میں آپ کو ایکسپرٹ بنانا ہر گز نہیں تھا ۔

ہمارے تین آآبجیکٹیوز تھے ۔

To build an appreciation for fundamental concepts in computing.

To acheive a beginners proficiency in web page development.

To become familiar with popular PC productivity software packages.

کیا خیال ہے آپ کا ہم نے یہ آبجیکٹیوز اچیو کئے اس عرصے میں اور کس حد تک کئے ۔ اس سلسلے میں اپنی آراء دیجیے اور میسج بوٹ پر ہمیں لکھئے آپ کی آراء کو استعمال کیا جائے گا اگر آپ کو لگتا ہے ہم ایسا نہیں کر سکتے تو بھی ہمیں ضرور بتائیے کہ کیا وہ چیزیں ہیں جن کی مدد سے ہم ان کو مزید بہتر بنا سکتے ہیں اور آپ کی آراء کی مدد سے ہم اس کو مزید بہتر بنائیں گے اپنے فیوچر کورسز میں ۔ میں آپ کا بہت شکر گراز رہوں میں نے یہ کورس کرتے ہوئے بہت انجوائے کیا اور امید ہے آپ نے بھی بہت انجوائے کیا ہو گا میں بہت شکرگزار ہوں آپ کی اٹینشن کا اور خاص طورپر آپ نے جو ای میل میسجز بھیجے اور جو میسج بوٹ پر جا کر آپ نے جو میسجز پوسٹ کئے ان میں بہت میں بہت سی اچھی چیزیں تھی اور بہت سی نئی چیزوں کے بارے میں پتہ چلا اس لئے میں بہت بہت زیادہ شکر گزار ہوں ۔

تو جناب انٹل دی نیکسٹ ٹائم وی میٹ، اپنا خیال رکھئے گا اپنوں کا خیال رکھئے گا ، خدا حافظ۔

Leave a Comment