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