প্রথমেই অভিনন্দন ভর্তি পরীক্ষায় তোমার অসাধারণ ফলাফলের জন্য। সিএসই নাকি আইআইটি – দেশের অন্যতম সেরা দু’টি ডিপার্টমেন্ট (এবং ইন্সটিটিউট)-এর মাঝে বেছে নেওয়ার সুযোগ সবার হয় না। এবং সেই সাথে এই কাজ যথেষ্ঠ দুরূহও বটে! আমি ব্যক্তিগতভাবে এই সিদ্ধান্তহীনতায় ভুগেছিলাম বছর দুয়েক আগে, এবং সে কারণেই আজকের এই লেখাটি। আমি এ লেখায় সিদ্ধান্ত নেওয়ার ক্ষেত্রে যে কয়টি বিষয় আমাকে সাহায্য করেছে, সেগুলো তুলে ধরার চেষ্টা করবো।

প্রথমত, সিএসইডিইউ এবং আইআইটিডিইউ নিয়ে কিছু কথা জেনে নেওয়া যাক। সিএসই ঢাকা বিশ্ববিদ্যালয়ের ইঞ্জিনিয়ারিং ফ্যাকাল্টির একটি ডিপার্টমেন্ট। অন্যদিকে আইআইটি হল ঢাকা বিশ্ববিদ্যালয়ের অন্তর্ভুক্ত একটি ইন্সটিটিউট। আইআইটি নাম শুনেই হয়তো মাথায় আসে এখানে আইটি (ইনফর্মেশন টেকনোলজি) পড়ানো হয়। কিন্তু আসলে তা নয়।  আইআইটিতে বিএসসি ডিগ্রি দেওয়া হয় সফটওয়ার ইঞ্জিনিয়ারিং এর উপর, এবং ডিগ্রির নাম হল BSSE. আবার অনেকেরই প্রশ্ন থাকে ঢাকা বিশ্ববিদ্যালয়ে বিএসসি করে আমি ইঞ্জিনিয়ারিং ডিগ্রি পাবো কি না? এর উত্তর না। ঢাকা বিশ্ববিদ্যালয় ইঞ্জিনিয়ারিং ইন্সটিটিউটের তালিকা ভুক্ত নয়। তার মানে এই না যে, ঢাকা বিশ্ববিদ্যালয়ের পাঠ্যক্রম ইঞ্জিনিয়ারিং মানসম্মত না। ঢাকা বিশ্ববিদ্যালয়ের সিএসই-র নতুন শিক্ষাক্রম অত্যন্ত আধুনিক, এবং তা বিশ্বের যেকোনো দেশের সাথেই প্রতিযোগিতা করার মতো।  বাংলাদেশের কোথাও BEng ডিগ্রি দেওয়া হয় না। ব্র্যাকেটে engineering লেখা যে বিএসসি ডিগ্রি রয়েছে সেটি নাই – তার মানে এই যে, দেশের একটা ইন্সটিটিউটের সাথে ঢাকা বিশ্ববিদ্যালয়ের চুক্তি নাই। এটাতে কী আসে যায়, সে ব্যাপারে সিদ্ধান্ত নিবে তুমি নিজেই!

এবার আসা যাক সিলেবাসে বিষয়ে। এখানে একটা বড় ধরণের পার্থক্য রয়েছে। সিএসই-র সিলেবাস পাবে এখানে। আর আইআইটি এখানে

কম্পিউটার সাইন্স একটা বিস্তৃত ক্ষেত্র নিয়ে কাজ করে, যার অনেক অংশ জুড়ে রয়েছে গণিত। সহজ কথায় কম্পিউটার সাইন্সের ক্ষেত্রগুলো মোটামুটি নিচের মতঃ

  • Discrete math (graph theory, combinatorics, logic)
  • Programming language theory (type theory, compilers, languages)
  • Information theory (crypto, errors, compression)
  • Theory of computation (complexity, crypto, automatons)
  • Algorithms & data structures (can also include complexity via algo analysis)
  • AI (machine learning, robotics, pattern recognition, data mining)
  • Parallel & distributed computing (concurrency, communication/networks, HPC)
  • Architecture and systems (digital logic, OS, networking, systems arch.)
  • Computational fields (scientific computing, numerics, could also include graphics/visualization)
  • Graphics (computer vision in some cases, geometry)
  • Software engineering ( 😉 )

এবার আসা যাক সফটওয়ার ইঞ্জিনিয়ারিং-এর কথায়। সফটওয়ার ইঞ্জিনিয়ারিং-এ যেসব বিষয় নিয়ে কাজ করা হয়, সেগুলো হলঃ

  • Software architecture and design
  • Scalability and maintainability
  • Validation, automation, and testing
  • Quality assurance
  • UI/UX
  • Systems (sometimes)

একটু খাটাখাটুনি করে দেখলেই বুঝতে পারবে যে, দ্বিতীয় লিস্টের অনেক কিছুই করা যাবে না, যদি না তুমি প্রথম লিস্টের বিষয়গুলো সম্পর্কে প্রাথমিক ধারণা রাখো। এ কারণে তোমার এগুলো পড়তে গেলে প্রথম লিস্টের বিষয়গুলো নিয়েও জানতে হবে। ব্যাপারটা অনেকটা পদার্থবিজ্ঞানী এবং মেকানিকাল ইঞ্জিনিয়ারের মতো। মেকানিকাল ইঞ্জিনিয়ার ফিজিক্সের অনেক কিছুই ব্যবহার করে। কিন্তু ফিজিক্সের খুঁটিনাটি জানতে গেলে আশ্রয় নিতে হবে পদার্থবিজ্ঞানীর কাছেই।

কম্পিউটার সাইন্স মূলত কম্পিউটারের খুঁটিনাটি কীভাবে কাজ করে, তা নিয়েই। অপরদিকে সফট্বার ইঞ্জিনিয়ারিং কাজ করে কম্পিউটার সাইন্স থেকে প্রাপ্ত জ্ঞান কীভাবে প্রোজেক্ট বানাতে কাজে লাগানো যায়, তা নিয়ে। সফটওয়ার ইঞ্জিনিয়ারিং-এ এসে তোমাকে জানা লাগবে কীভাবে একটা সফটওয়ার ডিজাইন করতে হয়, বানাতে হয়, এবং মেইন্টেইন করতে হয়। সিলেবাস নিয়ে অনেক কথাই হল। আমাকেও বলা হয়েছিল এইসব। আমার মাথায় কিছু ঢুকছে, বেশীরভাগ মাথার উপর দিয়ে চলে গেছে। আমি যা বুঝছিলাম তা হলঃ

  • কম্পিউটার সাইন্স ডিপার্টমেন্ট মূলত গবেষণার দিকে ফোকাস করতে চায়। তবে তার মানে এই না যে, কম্পিউটার সাইন্সে পড়ে কেউ সফটওয়ার ডেভেলপার হয় না। বরং, এই ডিপার্টমেন্ট থেকেই গুগল, মাইক্রোসফট থেকে শুরু করে বাংলাদেশের টাইগারআইটি, থেরাপ ইত্যাদিতে সাফল্যের সাক্ষর রেখে যাচ্ছেন অনেক এলামনাই। আবার একইসাথে EATL App Contest-এও এই ডিপার্টমেন্টের সাফল্য লক্ষণীয়। অপরদিকে আইআইটির ফোকাস হল সফটওয়ার ডেভেলপার বানানো। দেশের বিভিন্ন সফটওয়ার কম্পিটিশন তার প্রমাণ রাখে।
  • প্রোগ্রামিং কন্টেস্টের কথা চিন্তা করলে সিএসই বিভাগ এইদিকে অনেক এগিয়ে। দেশের বিভিন্ন প্রোগ্রামিং কন্টেস্টে ডিপার্টমেন্টের সাফল্য আছে। তাছাড়া এখানে একাডেমিক কারিকুলামের একটা অংশই প্রোগ্রামিং কন্টেস্টের কথা চিন্তা করে বানানো। আছে ট্রেনিং-এর ব্যবস্থাও। আমার সিএসই বেছে নেওয়ার এটা একটা অন্যতম কারণ ছিল, কারণ আমি কন্টেস্ট করতে চাইতাম।
  • সিএসই-তে ১৪৫ ক্রেডিটের কোর্স। ক্লাস করতে করতে জানটা বের হয়ে যাবে। আইআইটিতে সে তুলনায় একটু কম। তাছাড়া ফোর্থ ইয়ারের একটা সেমিস্টারে থাকে ইন্টার্নশিপের সুযোগও। তবে ক্লাসের প্রেশার খুব একটা যে কম তা না!

জানি না কতদূর সাহায্য করতে পেরেছি। নিজে যা জানি, তা লেখার চেষ্টা করেছি। আমি যেহেতু কম্পিউটার সাইন্স ডিপার্টমেন্টে পড়ি, হয়তো একটু পক্ষপাতও হয়ে গেছে। :p সব শেষে সিদ্ধান্ত নিতে হবে তোমার নিজেরই। সিনিয়রদের সাথে কথা বলো, গুগলে ঘাটাঘাটি করো। কোনো প্রশ্ন থাকলে করতে পারো। উত্তর দেওয়ার যথাসাধ্য চেষ্টা করবো। 🙂

 

____________________________________________________

আমি জানি পুরা ব্যাপারটা অনেক কনফিউজিং। এটা পার্সপেক্টিভের উপরও অনেকটাই নির্ভর করে। এই লেখা পাবলিশ হওয়ার পর আমার ডিপার্টমেন্টের একজন শিক্ষক এ ব্যাপারে মন্তব্য করেন। আমি ঠিক করছি, এ ধরণের মন্তব্যগুলো লেখার শেষে জুড়ে দিবো। অনেকের পার্সপেক্টিভ জানলে হয়তো সিদ্ধান্ত নেওয়া সহজ হবে।

  • ঢাকা বিশ্ববিদ্যালয়ের কম্পিউটার বিজ্ঞান ও প্রকৌশলের সহকারী অধ্যাপক ডঃ আমিন আহসান আলী এ সম্পর্কে বলেনঃ আর্টিকেলটির সাথে একমত হলেও লেখাটি পুরোপুরি পক্ষপাতদোষমুক্ত নয়। নতুন ছাত্রছাত্রীদের প্রতিঃ হ্যাঁ, IIT-র BSSE শেষ দুই সেমিস্টারে সফটওয়ার ইঞ্জিনিয়ারে বেশী ফোকাস করে। অন্যদিকে CSE কারিকুলাম শেষ দুই সেমিস্টারে বিস্তৃত একটি ক্ষেত্র নিয়ে কাজ করে, যার মধ্যে আছে সফটওয়ার ইঞ্জিনিয়ারিংও। এই দুই সেমিস্টার ছাড়া এদের কারিকুলাম অনেকাংশেই একই। তবে আইআইটি ইন্টার্নশিপের সুযোগ দেয়, যেটা সিএসইতে নেই। যে সেমিস্টারটিতে আইআইটির শিক্ষার্থীরা ইন্টার্নশিপ নিয়ে ব্যস্ত থাকে, সেই সেমিস্টারে সিএসই-র শিক্ষার্থীরা আরও উচ্চতর বিষয়গুলো নিয়ে কোর্স করে। তবে উচ্চতর শিক্ষার জন্য কোন বিভাগে পড়াশোনা করেছো, সেটা খুব বেশী প্রভাব ফেলবে না।
Muntasir Wahed

Muntasir Wahed

System Administrator at স্বশিক্ষা.com
Jack of all trades, master of none.
Muntasir Wahed
Muntasir Wahed