ডাটা স্ট্রাকচার ও অ্যালগরিদমের ১৫টি সেরা কোর্স

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

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

১. Scaler Academy’s Data Structure and Algorithm Course

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

এই কোর্সে রয়েছে:

  • প্রোগ্রামিং এর বেসিক
  • টাইম কমপ্লেক্সিটি
  • অ্যারে (Arrays)
  • স্ট্রিং (Strings)
  • বাইনারি সার্চ (Binary Search)
  • টু পয়েন্টার ও রিকার্শন (2 Pointers, Recursion)
  • হ্যাশিং (Hashing)
  • সর্টিং (Sorting)
  • বিট ম্যানিপুলেশন (Bit manipulation)
  • স্ট্যাক (Stack)
  • কিউ (Queues)
  • লিংকড লিস্ট (Linked Lists)
  • ট্রি (Trees)
  • হিপ (Heap)
  • গ্রিডি অ্যালগরিদম (Greedy Algorithms)
  • DP বা ডায়নামিক প্রোগ্রামিং
  • গ্রাফ Graphs
  • ডাটাবেজ কনসেপ্ট
  • ওএস (OS), এবং 
  • কম্পিউটার নেটওয়ার্কস

সময়কাল: ৪৪ সপ্তাহ

যোগ্যতা: ২০২২ এ গ্র্যাজুয়েট করেছে এমন যে কেউ

মূল্য: ২.৫ লাখ ইন্ডিয়ান রুপি, তবে স্কলারশিপ ও ইএমআই (EMI) অনুযায়ী আপনার মাসিক পেমেন্ট সর্বনিম্ন ৭২০০ ইন্ডিয়ান রুপি থেকে শুরু হতে পারে।

২. Algorithms & Data structures-Part 1 and 2 (Coursera)

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

প্রথম অংশে যা আলোচনা করা হয়েছে:

  • ইউনিয়ন-ফাইন্ড (Union-find)
  • অ্যালগরিদমের অ্যানালিসিস (Analysis of algorithms)
  • স্ট্যাক ও কিউ (Stacks and queues)
  • এলেমেন্টারি সর্ট (Elementary sorts)
  • মার্জ সর্ট (Merge sort)
  • কুইক সর্ট (Quicksort)
  • প্রায়োরিটি কিউ (Priority queues)
  • এলেমেন্টারি সিম্বল টেবিল (Elementary symbol tables)
  • ব্যালেন্সড সার্চ ট্রি (Balanced search trees)
  • বিএসটি’র জ্যামিতিক প্রয়োগ (Geometric applications of BSTs)
  • হ্যাশটেবেল (Hash Tables)
  • সিম্বল টেবিল অ্যাপ্লিকেশন (Symbol table application)

সময়কাল: ৫৩ ঘণ্টা (প্রায়)। আপনি আপনার সময়সূচী অনুযায়ী ডেডলাইন সেট করে নিতে পারেন।

লেভেল: ইন্টারমিডিয়েট

মূল্য: ফ্রি এনরোল

৩. Data Structures-University of California San Diego

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

আলোচিত টপিক: 

  • বেসিক ডাটা স্ট্রাকচার (arrays, linked list, stacks, queues)
  • ডায়নামিক অ্যারে (Dynamic arrays) ও অ্যামোরটাইজড অ্যানাল
  • এমোরটাইজড এনালাইসিস (amortized analysis)
  • প্রায়োরিটি কিউ (Priority queues) ও বিচ্ছিন্ন সেট (disjoint sets)
  • হ্যাশটেবেল (Hash tables)
  • বাইনারি সার্চ ট্রি

সময়কাল: ২৫ ঘণ্টা (প্রায়)। আপনার সময়সূচি অনুযায়ী ডেডলাইন সেট করে নিতে পারবেন

লেভেল: ইন্টারমিডিয়েট

মূল্য: ফ্রি এনরোল

৪. Data Structures- NPTEL

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

আলোচিত টপিক:

  • List এর মূল আলোচনা 
  • অ্যারে (Array) ও লিংকড লিস্ট(Linked List)
  • অ্যারে ও লিংকড লিস্ট দিয়ে স্ট্যাট (Stack) ইমপ্লেমেন্টেশন– Applications of Stack
  • কিউ (Queue) ইমপ্লেমেন্টেশন– Application of Queues
  • ট্রি (Trees) ও টার্মিনোলজি– Tree Traversals
  • In order Traversal-Binary Search Tree– সার্চ অ্যালগরিদমের ইমপ্লেমেন্টেশন 
  • AVL Tree Insertion, Deletion
  • Graph representation, Shortest Path Algorithm
  • Sorting, Heap Techniques, Hashing
  • Sorting Algorithms, Divide ও Conquer algorithms
  • Selection Sort, Brute force sort, Bubble Sort
  • Insertion Sort, Quicksort applications
  • Prim’s Algorithm, Kruskal’s Algorithm
  • Bucket Sorting, Radix Sort, Merge Sort
  • Directories ও Contiguous allocation, File maintenance
  • External Sorting, Cascade Merge Sort
  • B + Tree মেইন্টেইনেন্স ও এফিশিয়েন্সি, B-tree এর কন্সট্রাকশন, B+tree insertion and deletion

সময়কাল: ১২ সপ্তাহ

লেভেল: আন্ডারগ্র‍্যাজুয়েট/পোস্টগ্র‍্যাজুয়েট

৫. CS50 এর Introduction to Computer Science

CS50x একটি হার্ভার্ড বিশ্ববিদ্যালয় কোর্স, যাতে মেজর ও নন-মেজর একইভাবে নিয়ে আসা হয়েছে, প্রোগ্রামিং এর অভিজ্ঞতা থাকুক বা না থাকুক; কোর্সটি করা যাবে এবং এতে প্রোগ্রামিং এর অ্যাকাডেমিক সাধনা ও প্রোগ্রামিংএর আর্ট চেনা যাবে। ডেভিড জে. ম্যালানের নিয়ে আসা এই ইন্ট্রোডাক্টরি কম্পিউটার সায়েন্স কোর্সে শিক্ষার্থীদের যা শেখানো হয়:

  • How to think algorithmically and solve problems quickly (কীভাবে অ্যালগোরিদমিক্যাল চিন্তা করে দ্রুত সমস্যা সমাধান করতে হয়)
  • Abstraction
  • Algorithms
  • Data structures
  • Encapsulation
  • Resource management
  • Security
  • Software engineering এবং
  • Web development 

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

সময়কাল: ১২ সপ্তাহ

লেভেল: ইন্ট্রোডাক্টরি

পূর্বশর্ত: নেই

৬. Introduction to Algorithms

এমআইটি’র এই ওপেন কোর্সে রয়েছে কম্পিউটেশনাল প্রব্লেম এবং ম্যাথমেটিকাল মডেলিংএর ইন্ট্রোডাকশন। এতে আলোচনা করা হয়েছে সবচেয়ে প্রচলিত অ্যালগরিদম, অ্যালগরিদমিক প্যারাডাইম, এবং এসব ইস্যু সলভ করার জন্য ডাটা স্ট্রাকচার। এই কোর্স মূলত ফোকাস করে অ্যালগরিদম ও প্রোগ্রামিংএর ইন্টার‍্যাকশনের উপরে এবং এসব ইস্যুর জন্য বেসিক পারফরমেন্স পরিমাপ ও অ্যানালাইসিস।

এখানে আপনি যা শিখবেন:

  • ম্যাথমেটিকাল মডেলিং ও কম্পিউটেশনাল সমস্যার প্রারম্ভিক আলোচনা (Introduction to mathematical modeling of computational problems) 
  • Common algorithm
  • Algorithm paradigms
  • Data structures
  • অ্যালগরিদম ও প্রোগ্রামিংএর সম্পর্ক (Relationship between algorithms and programming)
  • এসব প্রব্লেমের জন্য বেসিক পারফরমেন্স মেসার্স ও অ্যানালাইসিস টেকনিক (Basic performance measures and analysis techniques)

সময়কাল: পাওয়া যায়নি

লেভেল: আন্ডারগ্র্যাজুয়েট

পূর্বশর্ত: পাইথনের বেসিক ধারণা এবং ডিসক্রিট ম্যাথমেটিক্সে ভালো ব্যাকগ্রাউন্ড।

৭. Data Structures and Algorithms Specialization Program (Coursera)

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

এই প্রোগ্রাম ছয়টি কোর্সে বিভক্ত, প্রথম দুইটি অংশ অ্যাডভান্সড অ্যালগরিদম ও কমপ্লেক্সিটিতে যাওয়ার আগে থিওরি ও বেসিক অ্যালগরিদমিক টেকনিক নিয়ে আলোচনা করে। এতে রয়েছে নিম্নোক্ত টপিক:

  • ডাটা স্ট্রাকচার দিয়ে একাধিক ধরণের সমস্যা সমাধান
  • Graph data structure
  • Graph-based algorithms
  • Algorithms on strings
  • অ্যাডভান্সড অ্যালগরিদমিক কনসেপ্ট যেমন নেটওয়ার্ক ফ্লো (Network flows), লিনেয়ার প্রোগ্রামিং (linear programming), এবং এনপি-কমপ্লিট সমস্যা (NP-complete problems)

সময়কাল: ৮ মাস

লেভেল: ইন্টারমিডিয়েট-লেভেল কোর্স

পূর্বশর্ত: সি, সি++, জাভা, পাইথন জাভাস্ক্রিপ্ট অথবা কটলিনের মত একটি ভাষাতে বেসিক ধারণা

৮. Algorithms Specialization by Stanford University

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

আলোচিত টপিক:

  • অ্যাসিম্পটোটিক (Asymptotic) (“Big-oh”) নোটেশন
  • সর্টিং ও সার্চিং অ্যালগরিদম
  • অ্যালগরিদম অ্যানালাইজ করার জন্য মাস্টার মেথড
  • কুইকসর্ট (Quicksort) অ্যালগরিদম ও এর অ্যানালাইসিস
  • ডাটা স্ট্রাকচার-হিপস (heaps), ব্যালেন্সড সার্চ ট্রি (balanced search trees), হ্যাশ টেবিল (hash tables), ব্লুম ফিল্টার (bloom filters)
  • Dijkstra’র শর্টেস্ট-প্যাথ (shortest-path) অ্যালগরিদম Breadth-first and depth-first search এবং এর অ্যাপ্লিকেশন
  • গ্রিডি অ্যালগরিদম (scheduling, minimum spanning trees, clustering, Huffman codes)
  • ডায়নামিক প্রোগ্রামিং (knapsack, sequence alignment, optimal search trees)
  • শর্টেস্ট প্যাথ অ্যালগরিদম (Bellman-Ford, Floyd-Warshall, Johnson)
  • NP-কমপ্লিট প্রব্লেম এবং তাদের জন্য এক্স্যাক্ট ও অ্যাপ্রক্সিমেশন অ্যালগরিদম
  • NP-কমপ্লিট প্রব্লেমের জন্য লোকাল সার্চ অ্যালগরিদম

সময়কাল: ৪ মাস

লেভেল: ইন্টারমিডিয়েট-লেভেল শিক্ষার্থীদের জন্য

পূর্বশর্ত: নেই

৯. Free Algorithms Course by IIT Bombay (edX)

এই edX অ্যালগরিদম কোর্সটি ডিজাইন করেছে স্বনামধন্য আইআইটি বোম্বে’র কম্পিউটার সায়েন্স অ্যান্ড ইঞ্জিনিয়ারিং ডিপার্টমেন্টের এক্সপার্ট অ্যাকাডেমিক মেম্বাররা। এটি আইআইটি বোম্বের ফান্ডামেন্টালস অফ কম্পিউটার সায়েন্স XSeries প্রোগ্রামের একটি অংশ, এবং এটি শিক্ষার্থীদের শেখায় কীভাবে অ্যালগরিদম বানিয়ে বাস্তব-জগতের সমস্যার সমাধান করতে হয়। এই কম্পিউটার সায়েন্স কোর্সে শিক্ষার্থীরা শেখে কীভাবে অ্যালগরিদম নিয়ে চিন্তা করতে হয় এবং তাদেরকে সেরা টেকনিক দিয়ে প্রয়োগ করতে হয়। এই কোর্সে রয়েছে:

  • সর্টিং অ্যালগরিদম যেমন কুইক সর্ট ও মার্জ (merge) সর্ট
  • সার্চিং অ্যালগরিদম
  • মিডিয়ান (Median) ফাইন্ডিং
  • অর্ডার স্ট্যাটিসটিকস (Order statistics)
  • জিওমেট্রিক অ্যালগরিদম  যেমন পলিনমিয়াল মাল্টিপ্লিকেশন (Polynomial Multiplication)
  • স্ট্রিং অ্যালগরিদম (String algorithms)
  • নিউমেরিক্যাল অ্যালগরিদম (Numerical algorithms)
  • মেইট্রিক্স অপারেশন (Matrix Operations), GCD, প্যাটার্ন ম্যাচিং (Pattern Matching), সাবসিকুয়েন্স (Subsequences), সুইপ (Sweep), এবং কনভেক্স হাল (Convex Hull)
  • গ্রাফ অ্যালগরিদম যেমন শর্টেস্ট প্যাথ ( shortest path) ও স্প্যানিং ট্রি (spanning tree)

সময়কাল: ৬ সপ্তাহ

লেভেল: ইন্টারমিডিয়েট-লেভেল কোর্স

পূর্বশর্ত: ডাটা স্ট্রাকচার এবং এদের ইমপ্লেমেন্টেশনের বেসিক ধারণা

১০. Data Science Foundations: Data Structures and Algorithms Specialization

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

যেসকল স্কিল আপনি শিখবেন:

  • অ্যালগরিদম
  • ডায়নামিক প্রোগ্রামিং
  • গ্রিডি অ্যালগরিদম
  • Divide and Conquer algorithm
  • র‍্যান্ডমাইজড অ্যালগরিদম
  • সর্টিং অ্যালগরিদম 
  • গ্রাফ
  • ডাটা স্ট্রাকচার
  • হ্যাশ টেবিল
  • স্প্যানিং ট্রি
  • NP- কমপ্লিটনেস

সময়কাল: প্রায় তিন মাস

লেভেল: ইন্টারমিডিয়েট

পূর্বশর্ত: ক্যালকুলাস, প্রবাবিলিটি থিওরি এবং পাইথনে কিছু প্রোগ্রামিং অভিজ্ঞতার জ্ঞান থাকতে হবে

মূল্য: ফ্রি এনরোল

১১. Advanced-Data Structures-MIT Open courseware

এটি এমআইটি ওপেন কোর্সওয়্যারের একটি গ্র্যাজুয়েট-লেভেল কোর্স। যেসকল বিষয় আলোচনা করা হয়েছে:

  • টাইম ট্রাভেল
  • জিওমেট্রি
  • ডায়নামিক অপটিমালিটি (Dynamic optimality)
  • মেমোরি হায়ারারকি (Memory hierarchy)
  • হ্যাশিং
  • ইন্টিজারস
  • ডায়নামিক গ্রাফ
  • স্ট্রিং
  • সাকসিংট (Succinct)

সময়কাল: নেই

লেভেল: গ্র্যাজুয়েট লেভেল

পূর্বশর্ত: এই কোর্সের পূর্বশর্ত হল অ্যালগরিদমের ডিজাইন এবং অ্যানালাইসিস এবং ডাটা স্ট্রাকচারের প্রাথমিক জ্ঞান সম্পর্কে আন্ডারগ্র্যাজুয়েট-লেভেল জ্ঞান।

১২. Programming Foundations: Algorithms

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

  • কমন ডাটা স্ট্রাকচার (Arrays, Linked List, Stacks, Queues, Hash Tables)
  • রিকার্শন (Recursion)
  • সর্টিং
  • সার্চিং
  • অন্যান্য অ্যালগরিদম (হ্যাশটেবিল দিয়ে ইউনিক ফিল্টারিং, রিকার্সিভভাবে ম্যাক্স ভ্যালু বের করা)

১৩. Python Data Structures

মিশিগান ইউনিভার্সিটির পাইথন ফর এভরিওয়ান, স্পেশালাইজেশন কোর্সেরার অংশ কোর্সেরার এই পাইথন ডাটা স্ট্রাকচার কোর্স। এটি পাইথন প্রোগ্রামিং ভাষার বেসিক ডাটা স্ট্রাকচারের একটি ওভারভিউ দেয়। এটি ৪.৯ রেটিং সহ সবচেয়ে জনপ্রিয় কোর্সগুলির মধ্যে একটি, এবং প্রায় অর্ধ মিলিয়ন ছাত্র ইতিমধ্যে এটি সম্পন্ন করেছে। সম্পন্নকারী শিক্ষার্থীদের ১২% এখন ভালো চাকরিতে আছেন। এখানে আলোচিত হয়েছে:

  • স্ট্রিং
  • পাইথন ইন্সটল করা
  • লিস্ট
  • ডিকশনারি
  • টাপল (Tuples)

১৯ ঘণ্টার এই কোর্সে রয়েছে আর্থিক সহযোগিতাও। এই কোর্সের একটি ভালো দিক হচ্ছে এটি বিগেনার-ফ্রেন্ডলি।

১৪.  Master the Coding Interview: Data Structures + Algorithms

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

টেকনিক্যাল:

  • Big O notation
  • Data structures:
    • Arrays
    • Hash Tables
    • Singly Linked Lists
    • Doubly Linked Lists
    • Queues
    • Stacks
    • Trees (BST, AVL Trees, Red-Black Trees, Binary Heaps)
    • Tries
    • Graphs
  • Algorithms:
    • Recursion
    • Sorting
    • Searching
    • Tree Traversal
    • Breadth-First Search
    • Depth First Search
    • Dynamic Programming

নন-টেকনিক্যাল:

  • কীভাবে বেশি বেশি ইন্টারভিউ পাবেন
  • ইন্টারভিউয়ের সময়ে কী করতে হয়
  • ইন্টারভিউয়ের শেষে কী করতে হয়
  • ইন্টারভিউ প্রশ্ন কীভাবে উত্তর দিতে হয়
  • অফার কীভাবে সামলাতে হয়
  • বেতন নেগোশিয়েট কীভাবে করতে হয়
  • বেতনে উঠতি কীভাবে পেতে হয়

কোর্সটির মূল্য ৩৪৯৯ ইন্ডিয়ান রুপী। কোর্সটির জন্য আপনার যেকোনো প্রোগ্রামিং ভাষা সম্পর্কে প্রাথমিক ধারণা থাকতে হবে। কোর্সটিতে ২৬১টি ২০ ঘন্টার লেকচার রয়েছে।

১৫. Accelerated Computer Science Fundamentals Specialization by University of Illinois

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

  • C++ এ অবজেক্ট-ওরিয়েন্টেড প্রোগ্রাম ডিজাইন এবং ইমপ্লেমেন্টেশন।
  • একটি অ্যালগরিদমের জন্য প্রয়োজনীয় টাইম অ্যান্ড স্পেস কমপ্লেক্সিটি কীভাবে অ্যানালাইজ করতে হয়
  • কম্পিউটেশনাল প্রব্লেম সমাধানের জন্য রিসোর্সের সর্বোত্তম ব্যবহার করে এমন সেরা ডাটা স্ট্রাকচার নির্বাচন এবং বাস্তবায়ন করা।
  • অবজেক্ট ডাটা স্ট্রাকচারের উপর দৃঢ় জ্ঞান পাওয়ার পর পরিশীলিত লাইব্রেরি ফাংশন ইমপ্লেমেন্ট এবং কল করা।

কোর্সটি ফ্লেক্সিবল, এবং শিক্ষার্থীকে যেকোনো প্রোগ্রামিং ভাষায় বেসিক প্রোগ্রাম লিখতে ও পারতে হবে। কোর্সের মেয়াদ ৩ মাস।

সময়কাল: ৩ মাস ফ্লেক্সিবল সময়সূচি অনুসারে

লেভেল: ইন্টারমিডিয়েট লেভেল

পূর্বশর্ত: নেই


শেষ কথা

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