کمپیوٹر سائنس مر رہی ہے
اس مضمون کا عنوان پڑھ کر یقین آپ حیران ہورہے ہونگے۔ کیا واقعی یہ درست ہے کہ کمپیوٹر سائنس مر رہی ہے ؟ کہیں آپ اسے ہماری حس ظرافت کی کارروائی تو نہیں سمجھ رہے؟ یقینا آپ ایسا ہی سمجھ رہے ہونگے۔
دنیا بھر اور پاکستان میں خاص طور پر گلی گلی میں کمپیوٹر انسٹی ٹیوٹ کھلے ہوئے ہیں۔ تقریباً ہر ہی محلے میں ’’کمپیوٹر سائنس‘‘پڑھانے والے ایک دو ادارے موجود ہیں۔ شاید ہی کوئی ایسا کاروبار ہو جس میں اب کمپیوٹر کا عمل دخل موجود نہ ہو۔
دنیا بھر میں کمپیوٹر کی تعلیم اتنی عام ہوچکی ہے کہ آرٹ کے لئے مخصوص کالجز اور انسٹی ٹیوٹ بھی اب کمپیوٹر سائنس اور انفارمیشن ٹیکنالوجی میں ڈگریاں ایوارڈ کررہے ہیں۔ اگر پاکستان کی بات کی جائے تو یہاں اسلامی تعلیمات کے لئے مخصوص اعلیٰ تعلیمی ادارے بھی انفارمیشن ٹیکنالوجی میں بیچلرز اور ماسٹرز پروگرام کرواتے نظر آتے ہیں۔ ہمارے علم میں ملک کی کوئی ایسی جامعہ نہیں جہاں آپ کمپیوٹر سائنس کی ڈگری حاصل نہ کرسکیں۔حالانکہ انہی جامعات میں سے شاید درجن بھر ہی ریاضی میں اعلیٰ تعلیم دینے کی اہل ہیں۔ تو کیا اس کے باوجود …کمپیوٹر سائنس مر رہی ہے؟
جی ہاں، اس کے باوجود ہم یہی کہیں گے کہ شاید کمپیوٹر سائنس مر رہی ہے۔کیوں، اس بات کا جائزہ لینے سے پہلے آئیے جانتے ہیں کہ درحقیقت کمپیوٹر سائنس ہے کیا؟
کمپیوٹر سائنس کی تعریف
وکی پیڈیا کے مطابق کمپیوٹر سائنس کی تعریف کچھ یوں ہے:
’’انفارمیشن اور کمپیوٹیشن کی بنیادوں کا نظریاتی مطالعہ اور کمپیوٹر سسٹمز میں ان کا اطلاق کمپیوٹر سائنس یا کمپیوٹنگ سائنس ہے۔ ‘‘
جبکہ انسائیکلوپیڈیا آف برٹانیکا آن لائن کے مطابق کمپیوٹر سائنس کا مطلب یہ ہے:
’’کمپیوٹرز کا مطالعہ، ان کے ڈیزائن ، کمپیوٹیشن کے لئے ان کے استعمال، ڈیٹا پروسیسنگ اور سسٹم کنٹرول بشمول کمپیوٹر ہارڈ ویئر ، سافٹ ویئر اور پروگرامنگ کے ڈیزائن اور ترقی ‘‘
ان تعریفوں کو اگر ذہن میں رکھتے ہوئے، اپنے ارد گرد موجود کمپیوٹر سائنس گریجویٹس کے بارے میں سوچیں تو آپ کے علم میں دو باتیں آئیں گی۔ اول، اکثر طالب علم کمپیوٹر سائنس میں تعلیم حاصل کرنے کے خواہش مند اس لئے ہوتے ہیں کہ وہ کمپیوٹر کا استعمال سیکھنا چاہتے ہیں۔ دوم ، ان میں سے بیشتر کی نظر میں کمپیوٹر سائنس کا مطلب پروگرامنگ لینگویجز سیکھنا اور کمپیوٹر جوڑنے سے زیادہ کچھ نہیں۔ لیکن کیا واقعی کمپیوٹر سائنس یہی ہے؟
ڈاٹ کام ببل
1990ء جسے پہلے ڈاٹ کام ببل کا زمانہ کہا جاتا ہے، میں کمپیوٹر سائنس کے بارے میں یہ مشہور ہوگیا تھا کہ یہ پیسے کمانے کا تیز ترین او رجائز دستیاب طریقہ ہے۔ یہ بات درست بھی تھی کیوں کہ اس وقت کمپیوٹرز کے حوالے سے تمام کاروبار اور انٹرنیٹ بہت تیزی سے ترقی کررہے تھے اور اس ترقی کو برقرار رکھنے کے لئے بڑے پیمانے پر افرادی قوت کی ضرورت تھی۔ یہی وجہ ہے کہ یہ تصور کرلیا گیا کہ یونی ورسٹی سے فارغ التحصیل ہر وہ طالب علم جس کے پاس کمپیوٹر سائنس کی ڈگری ہے، فوراً ہی شاندار نوکری حاصل کرلے گا۔ یہ سلسلہ چلتا رہا حتیٰ کہ کمپیوٹرز کے حوالے سے کاروبار سیر شدہ ہوگئے اور مزید آئی ٹی پروفیشنلز کے لئے جگہ باقی نہ رہی۔
ان آئی ٹی پروفیشنلز میں بیشتر وہ تھے جو اس فیلڈ میں صرف پیسہ کمانے کی غرض سے آئے تھے۔ اس ڈاٹ کام ببل کے پھٹنے پر ہم نے دیکھا کہ ہر سال جامعات میں کمپیوٹر سائنس پڑھنے کے لئے آنے والے طالب علموں کی تعداد میں بتدریج کمی آنا شروع ہوگئی۔ اس کا نتیجہ یہ نکلا ہے کہ یورپی ممالک خصوصاً امریکہ اور برطانیہ کے تعلیمی اداروں نے مقامی طالب علموں کی کم تعداد کے پیش نظر، غیر ملکی طالب علموں کے لئے اپنے دروازے کھول دیئے۔جنوبی ایشیاء جہاں آج بھی کمپیوٹر سائنس کی ڈگری کو پیسہ کمانے کی چھڑی سمجھا جاتا ہے، کے طالب علموں نے اس موقع سے بھرپور فائدہ اٹھایا۔
لیکن پھر کیا ہوا؟ ان طالب علموں نے جو کمپیوٹر سائنس کو صرف پیسہ کمانے کا ذریعہ سمجھ کر اسے پڑھا تھا، کمپیوٹر سائنس کا ادھورا علم رکھتے ہوئے مارکیٹ میں آئے اور مارکیٹ نہ صرف نا اہل لوگوں سے بھر گئی بلکہ سنجیدہ آئی ٹی پروفیشنلز کے لئے بھی بقاء مسائل پیدا کردیئے۔ مگر ایسا کیوں ہوا؟
اس مسئلے کی ایک اہم وجہ کمپیوٹر سائنس کے اصل مطلب اور مقصد سے نا واقفیت ہے۔ بیچلرز حتیٰ کہ ماسٹر پروگرام کے لئے منتخب کئے گئے طالب علموں کمپیوٹر سائنس کے چند شعبوں کو مکمل کمپیوٹر سائنس سمجھتے ہیں۔ حتیٰ کہ آئی ٹی کی فیلڈ میں کام کرنے والے کا بھی یہ خیال دیکھا گیا ہے کہ کمپیوٹر سائنس بنیادی طو رپر کمپیوٹر کورسز کرنے کا نام ہے جس میں کمپیوٹر چلانے اور زیادہ سے زیادہ پروگرامنگ لینگویجز سیکھائی جاتی ہیں۔
جنوری 2007 ء میں برٹش کمپیوٹر سوسائٹی نے ڈی مونٹفورٹ یونی ورسٹی کے ڈاکٹر نیل میک برائیڈ کا ایک مضمون شائع کیا۔ اس مضمون کا عنوان ’’ The Death of Computing‘‘ تھا۔ یہ مضمون ایک اوسط درجے کا لکھا گیا مضمون تھا جس میں ڈاکٹر صاحب نے خود کئی فاش غلطیاں کر ڈالیں۔ ڈاکٹر صاحب نے ایک جگہ لکھا کہ ’’اور جو چیز تبدیل ہوئی ہے وہ ہے کہ لولیول پروگرامنگ یا کسی بھی پروگرامنگ کو سیکھنے کی ضرورت۔ C کی ضرورت کسے ہیں جب روبی آن ریلز (Ruby on Rails) موجود ہے؟‘‘۔
کیا واقعی سی کی ضرورت کسی کو نہیں؟ یقینا ہے، لیکن ان لوگوں کو جو یہ جاننا چاہتے ہیں کہ جب روبی آن ریلز میں لکھا گیا پروگرام چلایا جاتا ہے تو کون سے عوامل پیش آتے ہیں۔ یہاں یہ واضح کرنا مقصد ہے کہ ایک جامعہ کی ڈگری کسی چیز کی ’’سمجھ‘‘سکھاتی ہے جب کہ کسی انسٹی ٹیوٹ سے کیا گیا کورس ’’ہنر‘‘ پیدا کرتا ہے۔
کمپیوٹر سائنس کی تعریف کرتے ہوئے Edsger Dijkstra لکھتے ہیں کہ ’’کمپیوٹر سائنس اب صرف کمپیوٹرز کے بارے میں نہیں رہی ، جیسے فلکیات اب صرف دوربینوں تک محدود نہیں رہی۔‘‘
مجھے یہ قول بے حد پسند ہے۔ لیکن اکثر وہ لوگ جو کبھی کسی فلکیات دان سے نہیں ملے، اس قول کا غلط مطلب لیتے ہیں۔ میں بچپن میں فلکیات سے کافی دلچسپی رکھتا تھا اور اپنے وقت ایک قابل ذکر حصہ رصدگاہوں میں اور سائنسی کتب پڑھنے میں گزرا کرتا تھا۔ اس عرصے کے دوران میں نے بصریات کے بارے میں اتنا کچھ سیکھ لیا جو میں نے کبھی اسکول میں فزکس کا کورس پڑھتے ہوئے نہیں سیکھا۔ میں نے کبھی اپنے دوربین نہیں بنائی۔ لیکن بہت سے فلکیات دان ایسے گزرے ہیں جنھوں نے دوربینیں بنائی ہیں اور ان کی بدلوت بصریات کے بارے میں ہماری معلومات میں اضافہ ہوا۔
دوربین بنانے والے اور فلکیات دان میں ایک بنیادی فرق ہے۔ دوربین بنانے والے کے لئے Stellar Bodies کی خلاء میں حرکت کے بارے میں جاننے سے زیادہ اہم یہ ہے کہ دوربین کیسے تیار کی جاتی ہے۔ لیکن فلکیات دان اور دوربین بنانے والے دونوں ہی اس بارے میں ٹھوس علم رکھتے ہونگے کہ روشنی عدسوں میں کیسے سفر کرتی ہے اور کیسے آئنے سے ٹکرا کر پلٹی ہے۔ یہ جانے بغیر فلکیات دانی بے حد مشکل ہے۔
یہی اصول کمپیوٹر سائنس کے لئے بھی صادق ہے۔ ایک کمپیوٹر سائنٹسٹ کے لئے ضروری نہیں کہ وہ خود انٹیگریٹڈ سرکٹس تیار کرے ، اپنا کمپائلر خود لکھے یا اپنے لئے خود آپریٹنگ سسٹم بنائے۔ جدید دور میں یہ سب چیزیں اتنی پیچیدہ ہوچکی ہیں کہ انہیں بنانا ایک بندے کے بس سے باہر کی بات ہوچکی ہے۔ لیکن کمپیوٹر سائنٹسٹ کے لئے ضروری ہے کہ وہ جانتا ہو کہ جب وہ کوئی پروگرام لکھ کر کمپائل اور پھر رن کرتا ہے تو کمپائلر، آپریٹنگ سسٹم اور سی پی یو میں کیا ہورہا ہوتا ہے۔
دوربین فلکیات دان کے لئے ایک اہم ٹول ہے اسی طرح کمپیوٹر ایک کمپیوٹر سائنٹسٹ کے لئے اہم ٹول ہے۔ لیکن یاد رہے دونوں کے لئے دوربین اور کمپیوٹر صرف ایک ٹول ہے نہ کہ مطالعے کا محور۔ فلکیات دان دوربین کے ذریعے خلاء میں موجود مختلف اجسام کا مشاہدہ کرتا ہے جبکہ کمپیوٹر سائنٹسٹ کمپیوٹر کے ذریعے الگورتھمز وغیرہ کا تجزیہ کرتا ہے۔
عام طور پر سافٹ ویئر اور ہارڈویئر کو دو مختلف چیزیں تصور کیا جاتا ہے۔ بظاہر یہ دونوں الگ الگ محسوس ہوتے ہیں۔ لیکن حقیقت یہ نہیں ہے۔ دنیا کے کمپیوٹر میں کوئی سافٹ ویئر موجود نہیں تھا اور مختلف کاموں کو سرانجام دینے کے لئے اس کی تاروں کو ادھر سے ادھر کرنا پڑتا تھا۔ جدید ہارڈویئر فرم ویئر جو ہارڈویئر کے بہت ہی قریب رہتے ہوئے اہم امور سرانجام دیتا ہے، کے ساتھ فراہم کئے جاتے ہیں۔ کوئی کام ہارڈویئر میں سرانجام پایاہے یا سافٹ ویئر میں، یہ معلومات کمپیوٹر سائنٹسٹ کے لئے قدرے اہم ہوسکتی ہیں۔ بہرحال، ہارڈویئر اور سافٹ ویئر کو الگ الگ ترازوں میں تولنا ٹھیک نہیں۔ یہ ایک ہی سکے کے دو رخ ہیں۔
کمپیوٹر سائنٹسٹ پروگرام نہیں لکھ سکتے
یہ بات شاید حیرت سے پڑھی جائے کہ کمپیوٹر سائنٹسٹ کا بنیادی کام سافٹ ویئر لکھنا نہیں ہوتا۔ انڈسٹری میں عام طور پر دیکھا گیا ہے کہ جب لوگ کسی کمپیوٹر سائنٹسٹ کو نوکری پر رکھتے ہیں تو ان کے ذہن میں یہ بات ہوتی ہے کہ انہیں ایک ایسا بندہ مل گیا ہے جو چار یا پانچ سالوں پر محیط کمپیوٹر پروگرامنگ کا کوئی کورس کررہا تھا۔ یہی حال ان طالب علموں کا جو کمپیوٹر سائنس کی ڈگری حاصل کرنے کے لئے یونی ورسٹی جاتے ہیں۔ ان طالب علموں کے ذہن میں بھی یہی بات بڑھا دی گئی ہے کہ وہ یونی ورسٹی میں چار یا چھ سال پروگرامنگ سیکھنے میں گزاریں گے۔
کچھ کمپیوٹر سائنٹسٹ ، حتیٰ کہ کمپیوٹر سائنس پڑھانے والے پروفیسر حقیقتاً پروگرامنگ نہیں کرسکتے۔ بہت سے پروفیسرز ایسے بھی ہوتے ہیں جو پی ایچ ڈی کے طالب علموں کو پروگرامنگ کے تصورات سکھا رہے ہوتے ہیں، لیکن کوئی طالب علم یہ دعویٰ نہیں کرسکتا ہے کہ پروفیسر صاحب پروگرامنگ نہیں کرسکتے۔ جبکہ حقیقت اس کے برعکس ہے۔ یہ عین ممکن ہے کہ پروفیسر صاحب طالب علم کی طرح شاید ڈاٹ نیٹ میں جاوا میں پروگرامنگ نہ کرسکتے ہوں۔
کمپیوٹر سائنس کے کسی طالب علم سے یہ امید رکھنا کہ وہ یونی ورسٹی سے فارغ ہوتے ہی ایک اچھا پروگرامر ثابت ہوگا، ایک غلط امید ہے۔ ایسا کوئی طالب علم آدھا درجن سے بھی زیادہ پروگرامنگ لینگویجز سے واقف ضرور ہوسکتا ہے لیکن ان پروگرامنگ لینگویجز کے ذریعے پیچیدہ پروگرامنگ ابھی تک اس نے نہیں کی ہوگی۔ تاہم اگر پھر بھی وہ پیچیدہ یا دوسرے الفاظ میں ایک کمرشل پروجیکٹ بنانے میں کامیاب ہوجاتا ہے تو یہ بات خاصے یقین سے کئی جاسکتی ہے کہ اس نے یہ کام یونی ورسٹی میں نہیں سیکھا ہوگا۔
یہ بات بے حد اہم ہے کہ ایک کمپیوٹر سائنٹسٹ اور ایک سافٹ ویئر انجینئر کے درمیان فرق کو سمجھا جائے۔ یہ دونوں الگ الگ میدان ہیں۔ سافٹ ویئر انجینئرنگ کی تعلیم مکمل طور پر پروگرامنگ پر محیط ہوتی ہے۔ اس میں طالب علم کو سافٹ ویئر کی ڈیزائن سے لیکر پروگرامنگ لینگویجز تک پڑھائی جاتی ہیں۔ کمپیوٹر سائنس کے کورس میں بھی یہ تمام موضوعات شامل ضرور ہوتے ہیں لیکن اس کا مقصد ان موضوعات سے صرف آگاہی ہوتی ہے۔ لہٰذا ایک کمپیوٹر سائنس کا طالب علم ضروری نہیں کہ سافٹ ویئر انجینئرنگ بھی جانتا ہو۔
کمپیوٹر سائنس ریاضی ہے
کمپیوٹر سائنس درحقیقت اطلاقی ریاضی کی ایک شاخ ہے۔ لیکن اگر کمپیوٹر سائنس کا نصاب اٹھا کر دیکھا جائے تو اس میں ریاضی کا حصہ بہت ہی کم نظر آتا ہے۔ حتیٰ کہ اکثر طالب علم اس بات سے لاعلم ہوتے ہیں کہ جو ریاضی انہیں پڑھائی جارہی ہے وہ بوجھ نہیں بلکہ کمپیوٹر سائنس کی بنیاد ہے۔ ایک حقیقت تو یہ بھی ہے ہمارے یہاں ریاضی جس انداز سے طالب علموں کو پڑھائی جاتی ہے وہ اسے بوجھ ہی سمجھتے ہیں۔ عملی مثالوں سے عاری خشک کتب کو آخر اور کیا سمجھا جائے۔
کمپیوٹر سائنس کا ایک اہم جز الگورتھم ڈیزائن ہے۔ ایک مسئلے کو حل کرنے کئی طریقے ہوسکتے ہیں۔ لیکن تیز ترین اور سود مندر راستہ تلاش کرنا ہی الگورتھم ڈیزائن ہے۔ کسی کمپیوٹر سائنٹسٹ کے لئے الگورتھم ڈیزائن کے بارے میں جاننا اتنا ہی ضروری ہے جتنا ایک سافٹ ویئر انجینئر کے لئے پروگرامنگ جاننا۔ الگورتھم بنانے کے لئے نہ ڈاٹ نیٹ کام میں آتا ہے اور نہ ہی سی یا جاوا۔ الگورتھم ڈیزائن صرف ریاضی کی مدد سے ہی کیا جاسکتا ہے اور اس الگورتھم کو کمپیوٹر پر ڈھالنا سافٹ ویئر انجینئر کا کام ہوتا ہے۔
ان تمام باتوں کو مد نظر رکھتے ہوئے آپ خود فیصلہ کریں، کیا ہمارے طالب علم کمپیوٹر سائنس ہی پڑھ رہے ہیں یا ہم انہیں کمپیوٹر سائنس کے نام پر دھوکہ دیئے جارہے ہیں؟
ماشاء اللہ بہت معلوماتی مضمون ہے برائے مہربانی اس کو جاری رکھے تاکہ ہماری درست رہنمائی ہو۔ جزاک اللہ خیرا
جزاک اللہ۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔
you are right … these institutions are robbing peoples here …
I’m picking up your point “Computer scientist program nahi likh sakta”. Computer scientist program bilkul likh sakta hai lekin usay likhnay ki zaroorat hi nahi parti. Computer Scientist programmer ko guide karta hai, just like ek mazdoor Architect banaye hue design ko dekh kar building banata hai. Ap mujhey btaiye ek building ko bana ne main mazdoor ki ziyada ehmiyat hoti hai ya Architect ki?
Haroof-e-Akhir: Computer scientist bhi Architect ki tarha hota hai, mazdoor ki tarha nahi.
Bilkul shi farmaya Farhan haider apne mjhe lagta hei ap DHA SUFFA kei talib e ilm hein….kyun kei is waqt sirf us uni kei hi students CS mein agey hein
sir gee yeh jo aap urdu type kartey hian ham ic ko save kaisay kar saktey hian ? plz tell me my e.mail
[email protected]
ap ki bat 100% correct hai. CS or SE main bohat faraq hai. pr Pakistan mein CS , IT and SE ka course same hai.
ap ki bat 100% correct hai. CS or SE main bohat faraq hai. pr Pakistan mein CS , IT and SE ka course same hai.