|BLOG

Data Structure and Algorithm Course in Bangladesh (Batch-2)

Startup Stock Photo

গল্পের পটভূমিঃ

অনেক দিনের পুরোনো ক্লায়েন্ট বল্টুকে নক দিল। তিনি জানেন বল্টু বেশ ভাল মাপের একজন প্রোগ্রামার/ওয়েব ডেভেলপার। ক্লায়েন্ট বল্টুর ডেভেলপ করে দেয়া তার ট্রাভেলস বিজনেস সাইটে নতুন একটা ফিচার ইমপ্লিমেন্ট করে দেয়ার অফার করলেন। কাজটা খুবই সিম্পল।

আগে কাস্টমাররা সাইটে এসে দেখত কোন কোন স্পটে যাওয়া যায় আর খরচ কত পড়বে। সমস্যা হচ্ছে কোন স্পটেই একবারে যাওয়ার ব্যবস্থা নাই। ভেঙ্গে ভেঙ্গে যেতে হয়। আর কোথা থেকে কোথায় গিয়ে গন্তব্যে পৌঁছাতে হবে সেটা কাস্টমারকেই সিদ্ধান্ত নিতে হয়। কিন্তু এটা হিসাব করা কাস্টমারের জন্য ভালই কঠিন যে এত এত স্পটের মধ্যে কোনটা দিয়ে সে কোথায় যাবে?

ক্লায়েন্ট বল্টুকে এমন একটা ফিচার তাদের সাইটে এড করতে বললেন যেটা হিসাব করে কাস্টমারকে বলে দিবে কোন কোন স্পট ঘুরে তার গন্তব্যে পৌঁছলে সময় আর খরচ সর্বনিম্ন হবে।

বল্টু চিন্তা করে দেখল এ আর এমন কি? কাজ নিয়ে নেয়ার পর সে বুঝল আসলে “কত মুরগিতে কত গ্রিল”? এই টাইপের সোজা জিনিসটা ইমপ্লিমেন্ট করার মত তেমন কোন প্লাগিন বা লাইব্রেরী পাওয়া যাচ্ছে না। কাজটা সে কিভাবে করবে?

এই কাজটা করা বল্টুর জন্য খুবই সোজা হবে যখন সে Breadth First Search এলগরিদম বা BFS জানবে। যার সাহায্যে খুব সহজেই যে কোন গ্রাফের minimum shortest path বের করা যায়। গুগল ম্যাপের ডিরেকশন বের করার সময় যেভাবে আমাদেরকে সব থেকে কম দূরত্বের পথটা suggest করা হয়।

 

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

এছাড়াও যারা Competitive Programming বা প্রোগ্রামিং কনটেস্ট করতে আগ্রহী তাদের এই বিষয় সম্পর্কে জানার কোন বিকল্প নাই।

 

মূল গল্পঃ

যারা কোন একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ ভাল ভাবে জানেন। অর্থাৎ আপনি কোনো একটা সমস্যার সমাধান বের করতে পারলে সেটা মোটামুটি কোডে কনভার্ট করতে পারেন।  তাদের জন্য Megaminds Web & IT Solutions শুরু করতে যাচ্ছে চার মাস ব্যাপী Data Structure & Algorithm Course. আপনি Programming Contest করতে চাইলে বা সফটওয়্যার ডেভেলপমেন্টে ক্যারিয়ার গড়তে চাইলে এই কোর্সটি আপনার পথ চলাকে করতে পারে আরো মসৃণ।

 

 

কোর্সের সময় সূচীঃ

  • চার মাসে ৩২ টি ক্লাস
  • প্রতি ক্লাসের দৈর্ঘ্য ২ ঘন্টা ঘন্টা
  •  শুক্র ও শনিবার সন্ধ্যা ৬টা থেকে রাত ৮টা পর্যন্ত
  • ক্লাস শুরুর সম্ভাব্য তারিখঃ ১৫ জুলাই ২০১৬

 

স্থানঃ পান্থপথ, ঢাকা।

প্রশিক্ষকঃ

 

কোর্স আউটলাইনঃ

Data Structure:

  • Array (Insertion, Deletion, Multidimensional Array, Pointer Array, Record Structure )
  • Linked List ( Singly Linked List, Doubly Linked List, Basic Operations on Linked List (Insertion, Deletion, Traverse) )
  • Stack ( Basic Stack Operations (Push, Pop), Infix, Postfix and Prefix Notation of Arithmetic Expressions, Conversions and Evaluations of Arithmetic Expressions Using Stack )
  • Queue ( Basic Queue Operations (Insertion and Deletion), Circular Queue and Double-ended Queue )
  • Searching ( Sequential Searching, Binary Searching )
  • Sorting ( Quick Sort, Merge Sort, Selection Sort, Insertion Sort, Counting Sort )
  • Tree ( Binary tree, Binary Indexed Tree, Segment Tree, Binary Search Tree )
  • Heap ( Max and Min Heap, Operations on Heap(Insertion and Deletion), Heapsort )

Algorithms:

  • Complexity Analysis ( Time and Space Complexity Analysis )
  • Divide and Conquer ( Basic Idea, Properties, Applications of Divide and Conquer)
  • Dynamic Programming (Basic Idea, Coin Change, LIS, LCS, 0/1 Knapsack, MCM etc)
  • Greedy Method ( Basic Idea, Comparison with Dynamic Programming and Divide and Conquer. Applications ( Job Scheduling, Fractional Knapsack ))
  • Graph Algorithms (BFS, DFS, Dijkstra, Floyd-Warshall, Bellman-Ford, Topological Sorting, SCC, Articulation Point & Bridge, Euler Path, MST, BPM)
  • Backtracking (Basic Idea, Application (Permutation and Combination Generation, N-queens Problem ) )
  • Network Flow (Max flow(Ford-Fulkerson, Edmond-Karp), Max Flow-Min cut Theorem)
  • Number Theory ( Extended Euclid, Inclusion-Exclusion )
  • String Algorithms (KMP, Manacher)
  • Hashing
  • Trie
  • Computational Geometry (Vector, Line-Segment Intersection, Segment-Segment Intersection, Convex Hull)

Class Schedule দেখতে পারেন এখান থেকে। 

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

 

কোর্স করার জন্য যা যা লাগবেঃ

  • যে কোন একটা প্রোগ্রামিং ল্যাঙ্গুয়েজের ব্যাসিক ভালভাবে জানা
  • আপনার পছন্দ মত যে কোন ল্যাঙ্গুয়েজের উপর আমাদের নেয়া একটা অনলাইন প্রোগ্রামিং কনটেস্টে (ACM format) উত্তীর্ণ হওয়া। Contest হতে পারে LightOJ/SPOJ বা এরকম যে কোন সাইটে।
  • নিজের কম্পিউটার ও ইন্টারনেট সংযোগ
  • প্রতিদিন বাসায় কয়েক ঘন্টা প্র্যাক্টিসের সুযোগ
  • ধৈর্য্য ও পরিশ্রম করার মানসিকতা
  • চিন্তা করা ও সমস্যা সমাধানে আনন্দ পাওয়া 
  • UVa/LightOJ/SPOJ/CodeForces/others – online Judge এ অন্তত ১৫০-২০০ টি প্রবলেম সলভের অভিজ্ঞতা

 

কোর্স ফিঃ

চার মাস ব্যাপী এই কোর্সের ফি মাত্র ১২,০০০ টাকা। যার পুরোটাই কোর্সের শুরুতে পরিশোধ করতে হবে।

 

রেজিস্ট্রেশনঃ

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

[কোর্সটি আপনার পক্ষে করা সম্ভব না হলে বা কোর্সটির জন্য qualified না হলে রেজিস্ট্রেশন না করার অনুরোধ রইল।]

 

যোগাযোগঃ

কোর্স সম্পর্কে কিছু জানার থাকলে বা কোন পরামর্শ থাকলে ফোন করুন নিঃসংকোচে।

01521101145 (Hasan Abdullah), 01521101234 (Ahmed Shamim Hasan Shaon)

Mail: megamindscobd@gmail.com

Megaminds এর ফেসবুক পেজেও যোগাযোগ করতে পারেন।

কমেন্ট করতে পারেন এই পোস্টের নিচেও।

Share this story
2 Comments
  • চট্টগ্রামে কি এই কোর্স আপনারা করান অথবা খুব দ্রুত করানোর পরিকল্পনা আছে?

    • আপাতত আমাদের সেই সুযোগ নেই। শুধুমাত্রই ঢাকাতে হবে।
      আপনার আগ্রহের জন্য ধন্যবাদ। :)

Leave a Comment