আধুনিক জীবনে কম্পিউটারের ভূমিকার কথা আলাদা করে বলার কিছু নেই। মুভি দেখা থেকে শুরু করে গেমস খেলা, গান শোনা, নেট ব্রাউজিং- কী না আমরা কম্পিউটার দিয়ে করি। তো এসএসসি বা এইচএসসি পড়তে পড়তে কারও মাথায় ঢুকে যেতে পারে কম্পিউটার বিজ্ঞান নিয়ে পড়ার ভাবনা। ভাবনা নিঃসন্দেহে অত্যন্ত ভালো। কিন্তু কম্পিউটার বিজ্ঞানে পড়ার ভাবনা মাথায় ঢুকে যাওয়ার আগে একবার হলেও ভেবে নেওয়া দরকার আমি যে এই সাবজেক্ট নিয়ে পড়ব এটায় আসলেই আমার আগ্রহ আছে কি না! কী কী বিষয় এখানে পড়ানো হয়, সেগুলো পড়ে আমি কী করব ইত্যাদি জানা থাকলে হয়ত একটু সুবিধা হয়। আমি মূলত এই লেখায় যারা কম্পিউটার বিজ্ঞান নিয়ে গ্রাজুয়েশন করতে আগ্রহী তাদেরকে কম্পিউটার বিজ্ঞানে কী কী সাবজেক্ট পড়ানো হয় তার একটা হালকা ধারণা দেওয়ার চেষ্টা করব।
IQ তথা Intelligence Quotient পরীক্ষা সবখানেই অনেক সমাদৃত। এখন ১০ মিনিট স্কুলের সাথে ঘরে বসেই পরীক্ষা করে নাও তোমার IQ! পরীক্ষা করে নাও তোমার IQ
প্রোগ্রামিং
কম্পিউটার বিজ্ঞানের নাম উঠলেই সবার আগে চলে আসে প্রোগ্রামিং শব্দটা। প্রোগ্রামিং কে ভাঙলে হয় প্রোগ্রাম করা। যে প্রোগ্রাম করে সে-ই প্রোগ্রামার। যেহেতু কম্পিউটার একটা বোকা যন্ত্র সেহেতু সে নিজে কিছুই করতে পারে না! ধর তুমি একটা গান শুনবে তোমার কম্পিউটারে, কম্পিউটারকে তোমার বলে দিতে হবে যে আমি এই গান শুনব। যেহেতু তোমার ভাষা কম্পিউটার বুঝবে না তাই একটু কষ্ট করে কম্পিউটারের ভাষায়ই তোমাকে বলতে হবে। আর কম্পিউটারের ভাষা হল প্রোগ্রামিং ল্যাংগুয়েজ। এই ল্যাংগুয়েজ দিয়েই বিভিন্ন সফটওয়্যার বানানো হয়। তোমার গান শোনার সফটওয়্যার থেকে যে কোন সফটওয়্যার।
তো প্রোগ্রামিং ল্যাঙ্গুয়েজের একদম বেসিক হল সি। তারপর আস্তে আস্তে লজিক ডেভেলপ করতে করতে অবজেক্ট ওরিয়েন্টেড কোর্সে শিখানো হয় জাভা এবং এন্ড্রয়েড এপ্লিকেশন যা শিখে তোমরা কিন্তু মজার মজার মোবাইল এপ্লিকেশন বা গেমস বানিয়ে ফেলতে পার খুব সহজেই।
এর পর শিখতে হয় অ্যাসেম্বলি ল্যাংগুয়েজ। কম্পিউটার কিভাবে তার মেমোরিতে ডেটার হিসাব রাখে তা এই ল্যাংগুয়েজ পড়লে বোঝা যায়। আবার আমরা এই ল্যাংগুয়েজ দিয়ে ভাইরাসও তৈরি করে ফেলতে পারি।
মূলত সব গুলো প্রোগ্রামিং কোর্স দুই ভাগে বিভক্ত। এক ভাগে শেখানো হয় থিউরি অন্য ভাগে ল্যাবে ব্যবহারিক। অনেক সময় থিউরী ক্লাস বোরিং লাগতে পারে। কিন্তু সমস্যা হল থিউরী ভাল মত না বুঝলে ল্যাবে গিয়ে প্রোগ্রামিং প্রবলেম সলভ করতে প্রবলেম হবে। তাই নো ফাঁকিবাজি!
একটা কথা ভাল করে মনে রাখা দরকার, ভাল প্রোগ্রামার হওয়ার জন্য ভয়ানক ক্রিয়েটিভ হওয়া দরকার নেই। দরকার ধৈর্য আর মাথা খাটানো। একের পর এক লজিক সাজিয়ে একেকটা প্রবলেম সমাধান করা। আমার ব্যক্তিগত ধারণা, কেউ একবার প্রোগ্রামিং এ মজা পেয়ে গেলে আর কিছু লাগবে না। কারণ প্রোগ্রামিং একটা নেশা! হ্যাপি প্রোগ্রামিং।
গণিত
কম্পিউটার সায়েন্সে গণিতের কি দরকার সেটা একদম শুরুতে আমি নিজেও বুঝি নি! কিন্তু না, ধর তোমাকে একটা জটিল প্রবলেম দেওয়া হল সমাধানের জন্য। এখন তুমি লজিক ধরে এগুতে থাকবে। তার আগে তোমাকে ভাবতে হবে কোন লজিকে গেলে সবচেয়ে কম সময়ে কম জটিলতায় তুমি প্রবলেম সলভ করতে পারবে।
গণিতের ভয়কে কর জয়!
কম্পিউটার সায়েন্স শিখতে গেলে প্রতিটি পদক্ষেপে গণিত একটি অবশ্য বিষয়। কিন্তু সঠিকভাবে না শেখার কারণে গণিত অনেকের কাছে হয়ে ওঠে একটি বিভীষিকার মত।
তাই আর দেরি না করে, মজায় মজায় গণিত শিখতে আজই ঘুরে এস ১০ মিনিট স্কুলের এই এক্সক্লুসিভ প্লে-লিস্টটি থেকে!
১০ মিনিট স্কুলের অঙ্ক ভিডিও সিরিজ
এটা ভাবার জন্য যেটা তোমাকে সাহায্য করবে সেটাই হল ম্যাথ! তোমার গণিতের দক্ষতা যতটা বেশি হবে তুমি ততটাই ভাল প্রোগ্রামার হতে পারবে। মূলত প্রোবাবিলিটি, লিনিয়ার এলজেব্রা, জ্যামিতি ইত্যাদি শেখানো হয়।
এলগোরিদম
এক কথায় বলতে গেলে এলগোরিদম হল যে কোন একটি সমস্যা সমাধান করার স্টেপ। ধরা যাক কেউ তোমাকে বলল দুটি সংখ্যা যোগ করে দিতে। তাহলে এখন কি করবে তুমি?
১। তিনটি চলক নিতে হবে। (দুইটি সংখ্যা ইনপুট নেওয়ার জন্য দুইটি চলক, আর আউটপুটের জন্য একটি)
২। ইউজার থেকে দুইটি সংখ্যা ইনপুট
৩। যোগ করবে
৪। আউটপুট দিবে।
মূলত একটা প্রবলেমকে সমাধান করার টেকনিকগুলোই এই কোর্সে শেখানো হয়।
ডেটা স্ট্রাকচার
ধর তোমার বুক শেলফে তুমি অনেক বই এলোমেলো করে রেখেছ। এলোমেলো বইগুলোর মধ্য থেকে তোমার প্রয়োজনীয় বই খুঁজে পাওয়া কঠিন। কিন্তু তুমি যদি নির্দিষ্ট কোন স্ট্রাকচার ফলো করে বইগুলো সাজিয়ে রাখ সেক্ষেত্রে কিন্তু বই খুঁজে পেতে তেমন কোন কষ্ট হবে না। সময়ও কম লাগবে। ডেটা স্ট্রাকচার বলতে মূলত ডেটাকে কম্পিউটারে রাখার নির্দিষ্ট উপায়কে বোঝায় যাতে ডেটা সহজে খুঁজে পাওয়া যায়।
অপারেটিং সিস্টেম
এই কোর্সে মূলত অপারেটিং সিস্টেমগুলোর ভেতরের স্ট্রাকচার শেখানো হয়। উইন্ডোজ কিংবা লিনাক্সের সোর্সকোডও শেখানো হয়।
তাছাড়া একই সাথে কম্পিউটারকে অনেক নির্দেশনা দিলে কোনটা আগে হবে, কোনটা পরে এসবও এই কোর্সে শেখানো হয়।
কম্পাইলার
প্রোগ্রামিং ল্যাংগুয়েজের ইনস্ট্রাকশন গুলো মেশিন কোডে পরিণত না হলে হার্ডওয়্যার সেটা বুঝতে পারে না। যেমন কম্পিউটার ০ এবং ১ ছাড়া কিচ্ছু বোঝে না। এখন তুমি যদি যেকোন কোড এই দুই সংখ্যা ব্যবহার করে লিখতে থাক তাহলে মাথা খারাপ হয়ে যাওয়ার অবস্থা! তারচেয়ে তুমি একটি মাধ্যম ব্যবহার কর যা তোমার লিখা নরমাল প্রোগ্রামিং ল্যাংগুয়েজকে ০ অথবা ১ এ কনভার্ট করে নিবে। কিভাবে প্রোগ্রামিং ল্যাংগুয়েজের ইনস্ট্রাকশন মেশিন কোডে পরিণত হয়ে কাজ করে তা এই কোর্সে তা পড়ানো হয়।
গ্রাফিক্স
গ্রাফিক্স শব্দটার সাথে আমরা সবাই কম বেশী পরিচিত। মুভি দেখতে বা গেইম খেলতে গেলে আমরা প্রায়ই বলি এই মুভির গ্রাফিক্স ফালতু বা গেইমটার গ্রাফিক্স দূর্দান্ত। এই গ্রাফিক্স আসলে অনেক গাণিতিক থিউরির সমষ্টি। আমরা গণিতে যেসব জ্যামিতিক সূত্র শিখেছি তা ব্যবহার করে কিভাবে কত ডিগ্রি কোণে কোন রেখাকে ঘোরালে সঠিক গ্রাফিকাল ল্যাংগুয়েজ হয় তা এই কোর্সে শেখানো হয়|
নেটওয়ার্কিং
ধরা যাক তোমার তিনটা কম্পিউটার আছে এবং তোমার তিন বন্ধু একই সাথে তিনটি কম্পিউটারে বসে এক দল হয়ে একটি গেমস খেলছে। এখন অবশ্যই কোন না কোন ভাবে কম্পিউটার তিনটিকে একটি নেটওয়ার্কের আওতায় থাকতে হবে যাতে তোমরা একই সাথে তিনটি কম্পিউটারকে কানেক্ট করতে পার।
কিভাবে কম্পিউটারগুলো একে অন্যের সাথে কানেক্ট থাকবে, কে ডেটা পাঠালে অন্য কে ডেটা রিসিভ করবে এগুলো এই কোর্সে শেখানো হয়।
networking
একদম মেইন মেইন সাবজেক্ট গুলোর কথাই বলা হল উপরে। যে কোন একটি বিষয়ে থিসিসের পাশাপাশি আরও পড়ানো হয় নিউমেরিক্যাল এনালাইসিস, ডাটা বেস, কম্পিউটার আর্কিটেকচার, ইকোনমিক্স, ইংলিশ ইত্যাদি।
কেন পড়বে কম্পিউটার সায়েন্স?
তোমার যদি প্রোগ্রামিং এ আগ্রহ থাকে, বিভিন্ন সফটওয়্যার বানানোর ইচ্ছা থাকে, কন্টেস্ট করার ইচ্ছে থাকে কিংবা মোবাইল গেমস বানানোর ইচ্ছা থাকে অর্থাৎ ক্রিয়েটিভ কোন কাজ করার ইচ্ছে থাকে তাহলে চোখ বন্ধ করে ভর্তি হয়ে যেতে পার কম্পিউটার বিজ্ঞানে। আর চাকরীর বাজারের কথা না হয় না-ই বললাম। তুমি যদি ভাল প্রোগ্রামার হও তাহলে তোমার চাকরীর খোঁজ না করলেও হবে। চাকরীই তোমাকে খুঁজে নিবে।
একটা কথা না বললেই নয়। অনেকে হয়ত আগে থেকে সব কিছু না জেনে শুনে কম্পিউটার সায়েন্সে ভর্তি হয়ে যায় কিন্তু ভর্তি হওয়ার পর প্রোগ্রামিং আর ভাল লাগে না। সত্যি কথা হল প্রোগ্রামিং একদিনে শিখে ফেলার বিষয় না। প্র্যাকটিস করে করে দক্ষতা বাড়ানোর বিষয়। খুব সাধারণ ভাবে চিন্তা কর। তুমি যদি মনে কর একদিনে দশ পৃষ্ঠা মুখস্ত করে ফেলে পরীক্ষায় সবচেয়ে বেশি নাম্বার পাবে; সেটা তুমি অন্য সাবজেক্টে পেতেই পার। কিন্তু তুমি দশটা প্রোগ্রামিং প্রবলেম মুখস্ত করে গেলে দেখবে হয়ত পরীক্ষায় অন্য একটা প্রবলেম আসছে। সেক্ষেত্রে তো তুমি পারবে না। কিন্তু তুমি যদি লজিক খাটিয়ে খাটিয়ে একটা করে করে প্রবলেম সলভ কর তাহলে দেখতে পাবে প্রোগ্রামিং করার চেয়ে মজার এবং প্রোগ্রামিং এর চেয়ে সহজ আর কিছু নেই।
কম্পিউটার বিজ্ঞান নিয়ে ভুল ধারণা
হয়ত কারও কারও ধারণা হয় মাইক্রোসফট ওয়ার্ড বা পাওয়ার পয়েন্টের কাজ কম্পিউটার সায়েন্সে শিখানো হয়। আবার অনেকে বাসের “ছয় হাজার টাকায় ওয়েবসাইট বানানো হয়” নামক বিজ্ঞাপন দেখে মনে করে থাকেন ওয়েব সাইট বানানো কম্পিউটার সায়েন্সে শিখায়! অনেকে আবার মনে করেন কম্পিউটারের হার্ডওয়ারে কোন সমস্যা সমাধান করাই কম্পিউটার ইঞ্জিনিয়ারের কাজ!!
এমন না যে কম্পিউটার বিজ্ঞান বিভাগের ছাত্ররা এগুলো পারবে না। কিন্তু বিষয় হল আমাদের দেশের কম্পিউটার বিজ্ঞানে একচুয়েলি এগুলো শিখায় না। শিখায় কম্পিউটারের মৌলিক কার্যক্রমের নীতি!
তো যারা যারা কম্পিউটার বিজ্ঞান নিয়ে পড়তে চাচ্ছ তাদের প্রতি একটা উপদেশই থাকবে পড়ার আগে সাবজেক্ট সম্পর্কে খোঁজ নাও। দেখ এগুলো তোমার আসলেই পছন্দের কিনা। তুমি আগ্রহ পাচ্ছ কিনা। যদি আগ্রহ পেয়ে থাক ভর্তি হয়ে যাও মজার এই সাবজেক্টে।