প্রোগ্রামিং শেখার দ্বিতীয় সপ্তাহ

The shortest path for ফাঁকিবাজ

স্টাডি প্ল্যানের মূল পাতা

প্রথম সাত দিনের বিস্তারিত প্ল্যান:এইখানে

তৃতীয় সপ্তাহের স্টাডিপ্ল্যান:এইখানে

শুরু করার আগে:

প্রোগ্রামিং বুঝার চাইতেও বেশি ইম্পরট্যান্ট হচ্ছে- প্রোগ্রামিং এর সাথে লেগে থাকা। বুঝে, না-বুঝে, হালকা আইডিয়া নিয়ে যে ঠেলতে থাকবে সে প্রোগ্রামার হয়ে যাবেই যাবে।

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

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


স্ট্যাক ডাটা স্ট্রাকচার: মার্চ ৮ (বুধবার)

সময় দিবা: ২ ঘন্টা

স্ট্যাক ডাটা স্ট্রাকচার: যে জিনিসগুলো শিখতে হবে

  1. প্রোগ্রামিং করার সময় কিভাবে একসাথে একাধিক জিনিস রাখা যায়
  2. স্ট্যাক (Stack) ডাটা স্ট্রাকচার কি জিনিস
  3. কিভাবে স্ট্যাক ডাটা স্ট্রাকচার ডিক্লেয়ার করা যায়
  4. কিভাবে স্ট্যাকে নতুন উপাদান যোগ করা যায়
  5. কিভাবে স্ট্যাক উপাদান বের করা যায়

শেখা শেষ হলে নিচের প্রশ্নগুলো দিয়ে প্রাকটিস করবে (এগুলা প্রতিযোগিতার প্রশ্ন না, প্রাকটিসের প্রশ্ন)

  1. মোটর সাইকেলে একাধিক যাত্রী উঠার সময়। যে পরে উঠে সে আগে নামে। তাহলে বলতো, মোটর সাইকেলের যাত্রী উঠা কোন ডাটা স্ট্রাকচার ফলো করে।
  2. প্রেমের বাইক (loveBike) নামে একটা স্ট্যাক ডিক্লেয়ার কর।
  3. তোর loveBike নামক স্ট্যাকে প্রথমেই তোর নাম দিয়ে একটা উপাদান যোগ কর।
  4. তোর loveBike নামক স্ট্যাকে। তোর জান্টুসের নাম দিয়ে একটা উপাদান যোগ কর। তারপর তোর জান্টুসের ফ্রেন্ড এর নাম দিয়ে আরেকটা উপাদান হিসেবে যোগ কর।
  5. এখন স্ট্যাক ডাটা স্ট্রাকচারের সিস্টেম অনুসারে, তোর loveBike স্ট্যাকের সর্বশেষ উপাদানটাকে বের কর।
  6. অনেকগুলা প্লেট ধোয়ার সময়: নতুন একটা প্লেট ধুয়ে আগের ধোয়া প্লেটগুলোর উপরে রাখে। আবার খাবারের টেবিলে বসা লোকজনের সামনে, উপরের প্লেটটা আগে দেয়া হয়। তারপর তার নিচেরটা দেয়া হয়। তাহলে, এই প্লেট ধোয়া আর প্লেট দেয়ার সিস্টেমটা কোন ডাটা স্ট্রাকচার ফলো করে?
এইখানে গিয়ে উপরের প্রশ্নগুলার উত্তর লিখতে পারো বা অন্যদের উত্তর দেখতে পারো।

কিউ ডাটা স্ট্রাকচার: মার্চ ৯ (বৃহস্পতিবার)

সময় দিবা: ২ ঘন্টা

কিউ ডাটা স্ট্রাকচার: যে জিনিসগুলো শিখতে হবে

  1. প্রোগ্রামিংয়ে কিউ(Queue) ডাটা স্ট্রাকচার কি জিনিস
  2. কিউ ডাটা স্ট্রাকচার ডিক্লেয়ার করা যায়
  3. কিভাবে কিউ ডাটা স্ট্রাকচারে নতুন উপাদান যোগ করা যায়
  4. কিভাবে কিউ ডাটা স্ট্রাকচার থেকে উপাদান বের করা যায়
  5. স্ট্যাক এবং কিউ ডাটা স্ট্রাকচারের মধ্যে প্রার্থক্য

শেখা শেষ হলে নিচের প্রশ্নগুলো দিয়ে প্রাকটিস করবে

  1. ফ্রি ফ্রি শিন্নি ( চাল আর চিনি দিয়ে বানানো পায়েশ) খাওয়ার জন্য কয়েকজন মিলে লাইনে দাঁড়ায় গেছস। এই লাইনের সিস্টেম হচ্ছে যে আগে কলা পাতা হাতে নিয়ে দাঁড়াবে তাকে আগে শিন্নি দেয়া হবে। এই যে- 'আগে আসলে আগে পাবে' এইটা কোন ডাটা স্ট্রাকচারের সিস্টেম?
  2. শিন্নি কিউ (shinnirLine) নামে একটা কিউ(Queue) ডাটা স্ট্রাকচার ডিক্লেয়ার কর
  3. শিন্নি কিউতে তোর সব কিপটা ফ্রেন্ডের নাম যোগ কর
  4. শিন্নি কিউ থেকে, কিউ ডাটা স্ট্রাকচারের সিস্টেম অনুসারে তোর লাইনের প্রথম যে আছে তাকে বের করে দে
  5. এক সাথে পাঁচজনের বাথরুম চাপছে। কিন্তু সমস্যা হলো-বাথরুম একটা। তাই যে যার আগে দৌড়ে গিয়ে বাথরুমের সামনে গিয়ে সিরিয়াল দিছে। এই যে বাথরুমের সিরিয়াল বা বাথরুমের লাইন। এইটা কোন ডাটা স্ট্রাকচার ফলো করবে?
  6. দুই লাইনে বল- কিউ এবং স্ট্যাক ডাটা স্ট্রাকচারের মধ্যে প্রার্থক্য কি
এইখানে গিয়ে উপরের প্রশ্নগুলার উত্তর লিখতে পারো বা অন্যদের উত্তর দেখতে পারো।

Key-value ডাটা স্ট্রাকচার ও রিভিশন: মার্চ ১০ (শুক্রবার)

সময় দিবা: ৫ ঘন্টা

শুক্রবার ছুটির দিন তাই একটু বেশি সময় দিবা। কোন ডেটিং-ফেটিং রাখবি না। সলিড ৩ ঘন্টা নতুন জিনিস প্রোগ্রামিং শিখবি আর ২ ঘন্টা আগের দুইদিনের জিনিস রিভাইজ দিবা।

Key-value: যে জিনিসগুলো শিখতে হবে

  1. প্রোগ্রামিং করার সময় একটা জিনিসের সাথে আরেকটা জিনিসের সম্পর্ক কিভাবে বুঝানো হয়। যেমন কারো নামের সাথে তার মোবাইল নাম্বারের সম্পর্ক। অথবা কোন ক্লাসের রোল নম্বরের সাথে নামের সম্পর্ক। এমনকি প্রেম করার সময় একজনের নামের সাথে আরেকজনের নামের সম্পর্ক।
  2. key-value জিনিসটা কি
  3. ডিকশনারি ডাটা স্ট্রাকচার কনসেপ্টটা কি জিনিস। (যে প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখতেছো, সেটাতে সহজ উপায় না থাকলেও, জিনিসটা কি সেই সম্পর্কে হালকা ধারণা নিয়ে রাখতে হবে)
  4. হ্যাশ টেবিল কি জিনিস। সংজ্ঞাটা জানলেও চলবে।
  5. হ্যাশটেবিল বা ডিকশনারি কিভাবে লেখা যায় সে জিনিসটা সম্পর্কে ধারণা নিতে হবে।

শেখা শেষ হলে নিচের প্রশ্নগুলো দিয়ে প্রাকটিস করবে

  1. বাংলাদেশের ন্যাশনাল আইডি কার্ডের নাম্বার বললে কারো নাম ঠিকানা বের করে ফেলা যায়। এই যে ন্যাশনাল আইডি কার্ডের নাম্বারের সাথে নাম, ঠিকানার সম্পর্ক। এইটা কোন ডাটা স্ট্রাকচার এর সাথে তুলনা করা যায়।
  2. key-value জিনিসটা কি
  3. ডিকশনারি ডাটা স্ট্রাকচার কি জিনিস
  4. হ্যাশ টেবিল ডাটা স্ট্রাকচার কি জিনিস
  5. হ্যাশ ফাংশন (hash function) লিখে গুগলে সার্চ দিলে কি পাওয়া যায়।
এইখানে গিয়ে উপরের প্রশ্নগুলার উত্তর লিখতে পারো বা অন্যদের উত্তর দেখতে পারো।

রিভাইজ: রিভাইজ দেয়া কঠিন কিছু না। জাস্ট, স্ট্যাক, কিউ, ডিকশনারি, হ্যাশ টেবিল এর প্রশ্নগুলো আরেকবার নিজে নিজে প্রাকটিস করবা। অন্যরা কি কি উত্তর দিছে সেগুলা দেখবি। রিভিশন না দিলে কিন্তু দুই -দিনেই সব নাই হয়ে যাবে।

রিভাইজ দেয়ার সময়, নিচের কাজগুলি করবা

  1. যা যা শিখছস সব গুছিয়ে ছোট করে লিখে ফেল। লেখাটা ইম্পর্টান্ট (লিখতে গেলে এখন একটু বেশি সময় লাগলেও, জিনিসগুলা আরো অনেক অনেক বেশি ক্লিয়ার হবে। আরো বেশিদিন মনে থাকবে।)
  2. স্ট্যাক কি জিনিস কিভাবে ডিক্লেয়ার করতে হয়। উদাহরণসহ ১০ থেকে ২০ লাইনের মধ্যে লিখে ফেল
  3. কিউ কিভাবে লেখা হয়। কয়েকটা উদাহরণসহ ১০ থেকে ১৫ লাইনের মধ্যে লিখে ফেল
  4. ডিকশনারি, হ্যাশ টেবিল সম্পর্কে কি কি জানলি সেগুলা ১৫ থেকে ২০ লাইনের মধ্যে লিখে ফেলবি

সার্চ অ্যালগরিদম: মার্চ ১১ (শনিবার)

সময় দিবা: ২ ঘন্টা

সার্চ অ্যালগরিদম:যে জিনিসগুলো শিখতে হবে

  1. অ্যালগরিদম জিনিসটা কি। এইটা দিয়ে কি করে।
  2. সার্চ অ্যালগরিদম (search algorithm) জিনিসটা কি কাজে লাগে
  3. একটা for লুপ দিয়ে কিভাবে কোন একটা array এর মধ্যে কোন একটা নিদৃস্ট উপাদান আছে কিনা সেটা সার্চ করা যায়।
  4. indexOf জিনিসটা কি। এইটা দিয়ে কিভাবে কোন একটা array এর মধ্যে উপাদান আছে কিনা নাই বুঝা যায়।
  5. বাইনারি সার্চ অ্যালগরিদম এর কনসেপ্টটা এইটা কিভাবে কাজ করে। এইটার কোডিং জানলে ভালো। আপাততঃ না জানলেও চলবে।

শেখা শেষ হলে নিচের প্রশ্নগুলো দিয়ে প্রাকটিস করবে

  1. বুকস (books) নামে একটা array ডিক্লেয়ার কর। যেখানে ৫টা বিভিন্ন নামের বই থাকবে।
  2. এখন একটা for লুপ দিয়ে তোর books নামক array এর মধ্যে ICT নামক বইটা আছে কিনা সেটা খুঁজে বের করার জন্য একটা প্রোগ্রাম লিখ।
  3. indexOf ব্যবহার করে তোর books নামক array এর মধ্যে ICT নামক বইটা আছে কিনা সেটা খুঁজে বের করার জন্য একটা প্রোগ্রাম লিখ।
এইখানে গিয়ে উপরের প্রশ্নগুলার উত্তর লিখতে পারো বা অন্যদের উত্তর দেখতে পারো।

সর্টিং অ্যালগরিদম: মার্চ ১২ (রবিবার)

সময় দিবা: ২ ঘন্টা

সর্টিং অ্যালগরিদম:যে জিনিসগুলো শিখতে হবে

  1. সর্টিং (sorting) জিনিসটা কি। এইটা দিয়ে কি করা হয়।
  2. সিলেকশন সর্ট কনসেপ্টটা কি
  3. সিলেকশন সর্ট কিভাবে কাজ করে
  4. কোন একটা array এর মধ্যে ৫টা সংখ্যা আছে। সিলেকশন সর্ট অ্যালগরিদম দিয়ে কিভাবে সেই সংখ্যাগুলোকে ছোট থেকে বড় সিরিয়াল অনুসারে সাজানো যাবে।

শেখা শেষ হলে নিচের প্রশ্নগুলো দিয়ে প্রাকটিস করবে

  1. চার লাইনে লিখ। সিলেকশন sort কিভাবে কাজ করে
  2. রেজাল্ট (result) নামে একটা array ডিক্লেয়ার কর। সেখানে তোর পাঁচ সাবজেক্টের নাম্বার লিখ
  3. সিলেকশন sort ব্যবহার করে। তোর রেজাল্ট নামক array এর সংখ্যাগুলোকে শর্ট কর।
এইখানে গিয়ে উপরের প্রশ্নগুলার উত্তর লিখতে পারো বা অন্যদের উত্তর দেখতে পারো।

Insertion Sort: মার্চ ১৩ (সোমবার)

সময় দিবা: ২ ঘন্টা

Insertion Sort: যে জিনিসগুলো শিখতে হবে

  1. Insertion sort কনসেপ্টটা কি
  2. Insertion sort কিভাবে কাজ করে
  3. কোন একটা array এর মধ্যে ৫টা সংখ্যা আছে। Insertion sort অ্যালগরিদম দিয়ে কিভাবে সেই সংখ্যাগুলোকে ছোট থেকে বড় সিরিয়াল অনুসারে সাজানো যাবে।

শেখা শেষ হলে নিচের প্রশ্নগুলো দিয়ে প্রাকটিস করবে

  1. চার লাইনে লিখ। Insertion sort কিভাবে কাজ করে
  2. কার্ডস (cards) নামে একটা array ডিক্লেয়ার কর। সেখানে 5, 2, 4, 10, 7 লেখা কার্ড থাকবে
  3. Insertion sort ব্যবহার করে। তোর কার্ডস নামক array এর কার্ডগুলোকে শর্ট কর।
এইখানে গিয়ে উপরের প্রশ্নগুলার উত্তর লিখতে পারো বা অন্যদের উত্তর দেখতে পারো।

রিভিশন দেয়ার দিন: মার্চ ১৪ (মঙ্গলবার)

সময় দিবা: ৪ ঘন্টা

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

এখন গত ছয়দিন যা যা শিখছস সেগুলা রিভিশন দিয়ে নে। রিভিশন দেয়ার সময় নিচের কাজগুলা করবা

  1. শুক্রবারে স্ট্যাক, কিউ, ডিকশনারি এর সামারি লিখছিলি। সেগুলো আবার পড়ে দেখ।
  2. রিভিশন দেয়ার সময় যে কোডিং প্রাকটিস করছিলি, সেগুলো প্রাকটিস কর
  3. সার্চ অ্যালগরিদম বলতে কি শিখছস। সেটার দুইটা উদারহণসহ একটা ছোট সামারি লিখে ফেল।
  4. এখন সর্ট অ্যালগরিদম এ কি কি শিখছস সেটাও লিখে ফেল।
  5. তোর সবগুলা সামারি একসাথ করে তোর নিজের জন্য একটা পিডিএফ বানিয়ে রাখ
  6. এই যে সামারিগুলা লিখছস। এইগুলা তোর অর্জন। এইগুলা তোর সম্পত্তি। প্রথম কয়েক সপ্তাহ এইগুলা রিভিশন দিলে, জীবনেও প্রোগ্রামিংয়ের বেসিক জিনিসগুলা ভুলবি না।
এইখানে গিয়ে উপরের সামারিগুলা লিখতে পারো বা অন্যদের সামারি দেখতে পারো।

FB post




Question or Feedback:

যদি লোকসম্মুখে প্রশ্ন জিগ্গেস করতে বা উপদেশ, বকাঝকা, গালাগালি, হুমকি দিতে সংকোচ লাগে তাইলে ইমেইল করে দেন [email protected]