Tuesday, May 30, 2017

সি শার্প (ওভার ভিউ)


সি শার্প  একটি আধুনিক , অবজেক্ট ওরিয়েন্টেড ল্যাঙ্গুয়েজ।যেটি ডেভেলপ করে  মাইক্রোসফট।  মুলত এন্ডার হেজেল বারগ ডট নেট ফ্রেম  ওয়ার্ক নিয়ে কাজ করার সময় সি শার্প ডেভেলপ  করেন।

সি শার্প কেন?
 ১.  এতি আধুনিক এবং জেনারেল পারপাস প্রগ্রামিং ল্যাঙ্গুয়েজ
২.   এটি অবজেক্ট ওরিয়েন্টেড
৩.   এটি কম্পোনেন্ট ওরিয়েন্টেড
৪.   শেখা সহজ
৫.   স্ট্যারকাচারড ল্যাঙ্গুয়েজ
৬.  এফিসিয়েন্ট প্রগ্রাম প্রদিউজ করে
৭.  বিভিন্ন ধরনের প্লাট ফ্রমে একে ক্মপাইল করা যায়
৮.  এটি ডট নেট ফ্রেম ওয়ার্কের একটি অংশ
  
সি শার্পের গুরুত্বপূর্ণ ফিচারগুলোঃ
১। বুলিয়ান কন্ডিশান
২। অটোম্যাটিক গারবেজ কালেকশান
৩। স্ট্যান্ডার্ড লাইব্রেরি
৪। এসেম্বলি ভারসান
৫। প্রপারটীস এন্ড ইভেন্টস
৬। ডেলিগেটস এন্ড ইভেন্ট ম্যানেজমেন্ট
৭। ইজি টু ইউজ যে ন রি
৮। ইন্ডেক্সার
    

সি শার্পের ৫ টি গুরুত্বপূর্ণ ফিচার কি কি ?
১। আধুনিক
২। টাইপ সেফ
৩। ভারসানএবল
৪। অবজেক্ট ওরিয়েন্টেড
৫। কম্পিটিবল

সি প্লাস প্লাসের ৫ টি অসুবিধা
১। জটিল
২। ওয়েরবের উপযোগী নয়
৩। পুওর টাইপ সেফ
৪। ভারসানিং করা যায় না
৫। পুরোপুরি অবজেক্ট ওরিয়েন্টেড নয়


কিভাবে সি শার্প জাভা থেকে ভাল?
১। ভারসানিং সাপোর্ট
২। অনেক প্রিমিটিভ ডাটা টাইপ

জাভার কোণ ফিচারগুলো সি শার্পে নেয়া হয়েছে?
১। গ্রুপিং অব ক্লাসেস
২। ইটারফেসেস ও ইমপ্লিমেন্টেশন
৩। রেফারেন্স ব্যবহার করে  অবজেক্ট

আজকের ইন্টেরনেটের সীমাবদ্ধতা কি কি ?
১। একবারে শুধু একটি সাইট দেখা যায়
২। সাইট ভিজিটে হার্ডওয়ার নিদ্রিস্ট মানের হতে হয়
৩। তথ্যগুলো শুধু মাত্র রিড অনলি ধরনের হয়
৪। ভিন্ন সাইটে থাকা একই  রকমের তথ্য  তুলনা করা যায় না

মাইক্রোসফট সি শার্প নির্মাণের প্রথমিক উৎসাহ কি?
উত্তরঃ ইন্টারনেটের সীমাবদ্ধতা দূর করা, এবং যেকোন তথ্য যেকোন জায়গা থেকে পাওয়া 

সি শার্প আধুনিক ল্যাঙ্গুয়েজ কেন?
১। অটো গারবেজ কালেকশান
২। ডেসিমাল ডাটা টাইপ
৩। বিশাল সিকিউরিটি মডেল




Thursday, May 25, 2017

বিগ ডাটা লেসন - ৪ ( অর্ডার এবং রং )

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

রং করাঃ
সেপ রং করতে হলে fill(); ফাংশন ব্যবহার করতে হবে। প্রসেসিং এ 0-255 পর্যন্ত অঙ্ক গুলো ব্যবহার করে সেপ এর রং কি হবে ঠিক করে দেয়া হয়। এখানে 0 মানে হচ্ছে কালো এবং 255 মানে হচ্ছে সাদা। (সবচেয়ে বড় অংক ২৫৫ হবার কারন হচ্ছে কম্পিউটারের ১ বাইট মেমরির সবোচ্চ জায়গা পরিমাণ হচ্ছে এটি)


কালো চতুর্ভুজের উপর সাদা বৃত্ত এবং তার নিচে রংবিহীন ত্রিভুজঃ

 
কোডঃ
size(200,200);
fill(0);
rect(40,40,60,50);
fill();
ellipse(40,40,50,50);
noFill();
triangle (40,100,70,140,100,100);

বিগ ডাটা লেসন -৩ (একাধিক সেপ আঁকতে এলগোরিদম )

আমরা ইতি মধ্যে শিখেছি কিভাবে  নানা রকমের বেসিক সেপ যেমন- লাইন, চতুর্ভুজ, বৃত্ত ইত্যাদি আঁকতে হয়। এখন আমরা আমাদের কনসেপ্টকে আরো একটু  এগিয়ে নিয়ে যাবো। আমরা কিভাবে একটি ক্যানভাসে একাধিক সেপ আকা যায়, কিভাবে সেপগুলোতে রঙ্গয়ের ব্যবহার করা যায়। তাছাড়া শিখবো প্রসেসিং এ নির্দেশনার গুরুত্ব এবং এলগোরিদম ব্যবহার করে কিভাবে আমদের কাজ গুলোকে সংগঠিত করা যায়।

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


অথবা আপনার প্রিয় খাবার আম ষত্ব বানানোর রেসিপি। উয়ভ ক্ষেত্রেই একাধিক কাজ ধারাবাহিকভাবে করে যেতে হয় উদেশ্য সাধনের জন্য। 

আম ষত্ব রেসিপিঃ

ধাপঃ ১) আম চটকে নেয়া
( মিষ্টি আমসত্ত্ব খেতে চাইলে পাকা আম আঁটি ফেলে চটকে নেবেন। আর টক মিষ্টি খেতে চাইলে কাঁচা ও পাকা আম মিলিয়ে নেবেন। সেক্ষেত্রে কাঁচা আম সিদ্ধ করে আঁটি ফেলে চটকে নিতে হবে)

ধাপঃ ২) চিনি (যতখানি আম তার সম পরিমাণ চিনি। এক কাপ আম হলে ১ কাপ চিনি। তবে নিজের স্বাদ অনুযায়ী দেয়া যাবে)

ধাপঃ ৩) সরিষার তেল প্রয়োজনমত

এখন আমরা একটি ক্যানভাসে দুটি আয়তক্ষেত্র আকবো:
size(150,150);
rect(10,10,30,10);
rect(100,100,30,10);

 

Wednesday, May 24, 2017

বিগ ডাটা লেসন -২ (Coordinate সিস্টেম এবং আকৃতিঃ)

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

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

 কোন রেখা অংকনের জন্য line ফাংশন ব্যবহারয়।
 line(1,0,4,5);

 প্রসেসিং এ যেসব আকার আকৃতি ব্যবহার করা হবে সেগুলোর মধ্যে সবচেয়ে বেশি ব্যবহার নিচের গুলোঃ

 point()ঃ
 কোন সেপ বা আকার শুরুর জায়গা ঠিক করা হয় এই ফাংশন দিয়ে 
 line()ঃ
কোন সরল রেখা আকার জন্য এই ফাংশন ব্যবহার করা হয়

 rect()ঃ
 চতুর্ভুজ আকার জন্য এই ফাংশন ব্যবহার করা হয়


 ellipse()ঃ
 উপবৃত্ত বা বৃত্ত আকার জন্য এই ফাংশন ব্যবহার করা হয়
   
size():
ক্যানভাসের আকার ঠিক করার জন্য

এখন আমরা একটি  রিয়েলস্টিক গ্রাফ দেখবোঃ
এর কোড গুলো হবে নিচের মতঃ
size(200,200);
rectMode(CENTER);
rect(100,100,20,100);
ellipse(100,70,60,60);
ellipse(81,70,16,32); 
ellipse(119,70,16,32); 
line(90,150,80,160);
line(110,150,120,160);

আরো বিস্তারিত জানতে ঃhttps://www.processing.org/tutorials/drawing/



Tuesday, May 23, 2017

বিগ ডাটা লেসন -১

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

১। কোড টাইপ করার সাথে সাথে ইমেজ চেক করে দেখা যাবে
২। ফ্রি এবং ওপেন সোরছ তার মানে হচ্ছে কোর্স শেষ করার পরে কোন পয়সা খরচ ছাড়াই কোডিং করা যাবে

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

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

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

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

Monday, May 22, 2017

একটু খানি বিগ ডাটা

  • কিভাবে কম্পিউটার চিন্তা করে?
  • কোন সমস্যা সমাধানে কিভাবে কম্পিউটার ব্যবহার করা যায়?
  • কিভাবে কম্পিউটার প্রগ্রাম কাজ করে?

এসব প্রশ্নের উত্ত্র জানতে হলে প্রথমেই ফান্ডামেন্টাল কম্পিউটেশনাল থিঙ্কিং কনসেপ্ট বুজতে হবে। তারপর ডাটা সাইন্সের জন্য প্রগ্রামিং থেকে জানা হাবে প্রশ্ন গুলোর উত্তর। কোর্সের ১০ টি সেকসানে এ সংক্রান্ত বিভিন্ন বিষয় নিয়ে আলোচনা করা হবে।

কোর্স শেষেঃ
১। কিভাবে কম্পিউটার চিন্তা করে এবং ডাটা সাইন্সের সাথে এর কি সম্পর্ক
২। ডাটা ভিজুয়ালাইজ করার জন্য সিম্পল প্রগ্রাম বানানোর সমক্ষতা অর্জন
৩। সবশেষে কম্পিউটার সাইন্সের এডভান্স টপিক গুলোর শেখার বিষয়ে আত্তবিশবাস এবং দক্ষতা অর্জিত হবে

 সেকসান ১-ক্রিয়েটিভ কোড- কম্পিউটেশনাল থিঙ্কিং
 সেকসান ২-বিল্ডিং ব্লকস-
 সেকসান ৩-রিপিটেশান-ক্রিয়েটিং এন্ড রিকোগনাইজিং প্যাট্রান
 সেকসান ৪-চয়েজ-কোন পথ অনুসরণ করা হবে
 সেকসান ৫- রিপিটেশান-সামনে এগিয়ে যাওয়া
সেকসান ৬- টেস্টিং এন্ড ডিবাগিং
সেকসান ৭-ডাটা এড়েঞ্জিং
সেকসান ৮- ফাংশান- রিইউ জেব ল কোড
সেকসান -৯- ডাটা সাইন্স ইন প্র্যাকটিস
সেকসান -১০-তার পর কি?

 সেকসান ১-ক্রিয়েটিভ কোড- কম্পিউটেশনাল থিঙ্কিং
--------------------------
 লার্নিং অবজেক্টিভস:

 * প্রসেসিং যে এস  () দিতে কি করা যায় জানা
 * একগোরিদম কিভাবে কাজ করে বুজতে পারা
 * বেসিক প্রসেসিং যে এস ()  আপ্লাই করা এবং কালার দিয়ে কোডিং শুরু করা

এ কোর্সে বিগ ডাটার যে সব বিষয় গুলো নিয়ে আলোচনা করা হবে সেগুলো হচ্চেঃ
১। ফান্ডামেন্টাল কনসেপ্ট
২। এলগোরিদম
৩। সিলেকশান
৪। ইলেরেশান
৫। ফাংশান
৬। ডাটা স্ত্যরাকচার

প্রথমে জানা যাক কোন কোন প্রশ্নের উত্ত্র পাওয়া যাবে এই লেখা থেকেঃ
১। প্রসেসিং ()  দিয়ে কি করা যায় ?
২। এলগোরিদম কিভাবে কাজ করে?
৩। বেসিক প্রসেসিং কি এবং কালার ব্যবহার করে কোডিং করে কিভাবে কোডিং করা যায় ?

প্রসেসিং এমন একটি ল্যাংগুয়েজ যা মুলত ডাটা কে ভিজুয়ালাইজ করতে ব্যবহার করা হয়। এটি ডাটা ভিজুয়ালাইজেশ ন, গ্রাফিক্স,

বিগ ডাটা

বিগ ডাটাকে এক ধরণের বাজওয়ার্ড বলা যায়। কেউ যখন একসাথে অনেক বেশি পরিমাণ নিয়ে কাজ করে তখনি তাকে বিগ ডেটা বলে। এই বিগ ডেটা সাধারণত আনস্ট্রাকচার্ড ডেটার ক্ষেত্রে ব্যবহার হয়।

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

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

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

এক গবেষণায় দেখা গেছে বড় বড় কোম্পানি গুলোতে ডাটা এক্সেস ১০% বারানো হলে সেটা ৬৫ মিলিয়ন ডলার মুনাফা বারিয়ে দেয়! ২০২০ সালে একজন মানুষ প্রতি সেকেন্ডে ১.৭ মেগাবাইট ত থ্য ইয়তপাদন করবে। কি বিশাল পরিমাণ   ত থ্য! তাই খুব স্বাভাবিক ভাবেই আজকের দুনিয়ায়  জেকোন বিষয়ে সঠিক সিদ্দনাতের জন্য এসব বিশাল আকারের  ত থ্য বিশ্তেস্ন করা জরুরী। আর এই প্রয়োজন থেকেই বিগ ডাটার আবির্ভাব। বিগ ডাটা নাম থেকেই বোজা যাচ্ছে এটি আসলে কি।  আমেরিকার হোয়াইট হাউস বিট ডাটা প্রজেক্টে  জন্য ২০০ মিলিয়ন ডলার বিনিয়োগের করেছে।

বিগ ডাটার তিনটি গুরুত্বপূর্ণ বিষয় হচ্ছেঃ
১। ভলিউম
২। ভেলোসিটি
৩। ভেরাইটি

Monday, May 15, 2017

ওয়েব কনসেপ্ট-১

ইন্টারনেট কি?
এমন একটি ব্যবস্থা যার মাধ্যমে অসংখ্য কম্পিউটার, ল্যাপটপ ,মোবাইল ফোন বা অন্যান্য ডিভাইজ পরস্পরের সাথে যুক্ত থাকে। এর সূচনা হয় ১৯৫০ সালে যা সেসময় সামরিক কাজে ব্যবহার করা হত।

ওয়েব কি?
ইন্টার নেত ব্যবহার করে এক কম্পিউটার থেকে অন্য কম্পিউটার বা এক ডিভাইজ থেকে অন্য ডিভাইজে তথ্য আদান প্রদান করতে যে সিস্টেম ব্যবহার করা হয় তাকে ওয়েব বলে। টিম বারনারস লি ১৯৮৯ সালে ইয়েবের ধারনা প্রদান করেন। তিমনি সে সময় CERN labe প্রকোশ লী হিসেবে কর্মরত ছিলেন। পরে তিনি w3C তে ডিরেক্টর হিসেবে কাজ করেন। পরে www Foundation প্রতিষ্ঠা করেন। যেমনঃ বাসায় বসে যদি কেউ অফিসের কাজ দেখতে চায়।

সারভারঃ যে কম্পিউটার থেকে তথ্য নেয়া হয়।
ক্লায়েন্টঃ যে কম্পিউটার তথ্য নেয়।

সার্ভারের কাজঃ
  ১। ওয়েব সাইট হোস্ত করা
  ২। রিকোয়েস্ট হ্যান্ডেল করা
  ৩। একটি নিদ্রিস্ট ফরম্যাটে ডকুমেন্ট সারভ করা
 
আইপি এড্রেস ( Internet Protocol Address)

প্রতেক যন্ত্রের ঠিকানা থাকে যে ঠিকানা ব্যবহার করে তাকে খুজে পাওয়া যায় এই ঠিকানা কে আইপি এড্রেস বলে।

আইপি এড্রেসের ৪ টি অংশ থাকে

উদাহরণঃ 192.168.66.1

প্রতিটি অংশে ০ থেকে ২৫৫ টি ক্যারেক্টার থাকতে পারে
এখন যে আইপি আমরা ব্যবহার করছি সেটা ipv4 যা ৩২ বিটের
সামনে ১২৮ বিটের Ipv6 এর প্রস্তাব করা হয়েছে।

ডোমেইন নেম সার্ভারঃ

সবার আইপি এড্রেস মনে রাখা সম্ভব না , তাই শডোমেইন নেম ব্যবহার করা হয়।
ক্লায়েন্ট প্রথমে DNS Serverএ আইপি নাম্বার জানার জন্য রিকুয়েন্ট পাঠায় তারপর সে আইপি নাম্বার এর কাছে কোন ডক বা ডাটার জন্য রিকুয়েস্ট পাঠায়।
DNS Server সব ওয়েব সাইটের আইপি সংরক্ষণ করে রাখে।
আইপি জানার জন্য start > cmd> ping www.exaple.com  লিখতে হবে

URL Uniform Resource Locator ইউআরএল

http এর মানে Hyper Text Transfer Protocol. Hyper Text মানে কোন ডকুমেন্ট  এবং Protocolমানে আইন কানুন বা নীতিমালা।

বিভিন্ন ধরনের Protocol আছেঃ
১। https-Hyper Text Transfer Protocol Secure
2. FTP- File Transfer Protocol
3. SMTP- Simple Mail Transfer Protocol
4.SSM- Secure Cell

Top Level Domain (TLD)

.com, .net .org

http://www.exapmle.com/index.html

www- হোস্ত নেম
exapmle.com- ডোমেইন নেম
index.html- ডক নেম

www এর বদলে দেয়া যেতে পারেঃ
static.exaple.com
web.dimik.com
en.wikipedia.org
bn.wikipedia.org

নোএসকিউএল কি?

নোএসকিউএল (যার মানে হচ্ছে "নন এসকিউএল", "নন  রিলেশনাল" অথবা "নট অনলি এসকিউএল") ডাটাবেস ডাটা স্টোর এবং উদ্ধারের এমন একটি ম্যাকানিজম দেয় যা গতানুগতিক ট্যাবুলার বা রিলেশনাল ডাটাবেসে মত নয়।

সুবিধা সমূহঃ
১। বিশাল আকারের দ্রুত পরিবর্তনশীল স্ট্রাকচারড , সেমিস্ট্রাকচারড, এবং আন স্ট্রাকচারড ডাটা , এজাইল স্প্রিন্টস, এবং পুনপুন কোড পরিবর্তনের উপযোগী।
২। অবজেক্ট ওরিয়েন্টেড প্রগ্রামিং যা ব্যবহার করা সহজ ও সুবিধাজনক
৩। দামী, বড় ব্লকের আর্কিটেক্টচার এর বদলে গ্রাফিকালি ডিস্ট্রিবিউটেড স্কেল- আউট আর্কিটেক্টচার এর ব্যবহার

নাল মানে কি ?

ডাটাবেস এবং প্রগ্রমিং ল্যাংগুয়েজে নালের মানে আলাদা আলাদাঃ
প্রগ্রামিং ল্যাঙ্গুয়জে নালের হচ্ছে একটি ভ্যালু কিন্তু ডাটাবেস নাল কোন ভ্যালু নয়। রিলেশ নাল নালের মানে কোন রেকর্ডের ফিল্ডে ভ্যালুর অনুপুস্থিতি আর প্রগ্রামিং ল্যাংগুয়েজে নাল মানে কোন ভেরিয়েব লের সম্ভাব্য কোন মান (http://www.ccs.neu.edu/home/kenb/MeaningOfNull.html)


নাল (এস কিউ এল)ঃ এটি দিয়ে বিশেষ মার্কার বা কিওয়ারড বোজানো হয় যেগুলোর কোন ভ্যালু বা মান নেই।

নাল ক্যারেক্টারঃ জিরো ভ্যালু ASCII ক্যারেক্টার।

Saturday, May 13, 2017

কোডিং এ ভুল এড়ানোর উপায়

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

২। মনোযোগ যেন অন্যকোণ দিকে না যায় সে ব্যবস্থা করে নিতে হবে।

unexpected identifier অথবা SyntaxError: Unexpected identifier মানে কি?

কোডে এমন কোন একটি নাম ব্যবহার করা হয়েছে যেটি ঠিক হয়নি মানে যেটি প্রত্যাশিত নয়। প্রত্যাশিত নয় এমন কি আসতে পারে।

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

যেমনঃ

        getPrice(name){
            var isAvailable=this.isItemsAvailabe(name);
            if(isAvailable == true){
                var itemPrice= this.prices[name];
                result itemPrice;
            }

return itemPrice না লিখে লেখা হয়েছে result itemPrice ফলে  itemPrice নামক ভেরিয়েবল টিকে এখানে চিনতে পারবে না এবং এরর মেসেজ দিবে


আবার যদি এমনভাবে কোড ব্যবহার করা হয় যে কোটেশন মার্ক কমা চিহ্ন খেয়ে ফেলেছে তাহলেও উপরের বার্তা আসবে। যেমনঃ
("username," visitorName);

হওয়া উচিত ছিল নিচের মতঃ

("username", visitorName);

Friday, May 12, 2017

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং- ডাটাবেজ রিভিশন


প্রোগ্রামিংয়ে অবজেক্ট

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

অবজেক্টের প্রপার্টি
সাধারণত অবজেক্টের একাধিক বশিস্ট থাকে। যাদের কে ইংরেজীতে বলে property. যেমনঃ চেয়ার একটি অবজেক্ট। এই অবজেক্টের একাধিক বশিস্ট আছে। যেমন চেয়ারের ৪ টি পা, আছে, ২ টি হাতল, আবার বসার জন্য গদিও আছে। এগুলোকে চেয়ার অবজেক্টের property বলে।

অবজেক্ট কিভাবে ডিক্লেয়ার করে
অবজেক্ট যেহেতু একটি ভেরিয়েব ল তাই প্রথমে var লিখে একটি নাম দিতে হবে যেমনঃ
var chair ={
}

কিভাবে অবজেক্টের প্রপার্টি যোগ করা হয়?
var chair ={
legs:4,
hand:2,
hasFoam:true
}
console.log(chair);

শুধু একটি বেশিস্ট আউটপুট দেখতেঃ
console.log(chair.legs);
result:4

কোন অবজেক্টের বশিস্ট চেঞ্জ করতেঃ
chair.legs=3;
console.log(chair.legs);
result:3

প্রপার্টির মান ভেরিয়েবলে রেখে সেটা আউটপুট হিসেবে দেখা:
একটি ভেরিয়েবল নিতে হবে যার সমান লিখতে হবে অবজেক্ট ডট প্রপার্টির নাম উদাহরণ স্বরূপ নিচের মত-
var chairLegs =chair.legs;

প্রোগ্রামিংয়ে ক্লাস
একিই টাইপের বা গোত্রের জিনিস গুলোকে একসাথে একই শ্রেনীর বা ক্লাসের জিনিস বলে। যেমনঃ সপ্তম শ্রেনীর সব ছাত্রদের একসাথে ক্লাস সেভেনের স্টুডেন্ট বলে।

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

ক্লাস থেকে অবজেক্ট বানানোঃ

class Vapa{};
var myPitha = new Vapa()
console.log(myPitha); 

ক্লাসের মধ্যে মেথড বা ফাংশন দিয়ে কি করা হয়?
অবজেক্টের প্রপার্টি থাকে। আর অবজেক্ট ক্লাস থেকে বানানো হয় তাই প্রপার্টি গুলো ক্লাসে সেট করা হয়। ক্লাসে প্রপার্টি সেট করতে constructor নামের একটি ফাংশন ব্যবহার করা হয়। এটি ফাংশন কিন্তু ক্লাসের ভিতরে তাই এর আগে function লিখতে হয় না। ক্লাসের মধ্যে থাকা ফাংশন কে ম্যাথড বলে।

var Vapaa{
constructor(gur,narkel){
this.gur=gur;
this.narkel=narkel;
}
}

var myPitha= new Vapaa(20,10);
console.log(myPitha);

অবজেক্ট ওরিয়েন্টেড প্রগ্রামিং
অবজেক্ট ঘিরে বা প্রচুর অবজেক্ট নিয়ে যে প্রগ্রামিং করা হয় তাকে অবজেক্ট ওরিয়েন্টেড প্রগ্রামিং বলে।

class Bus{
constructor(driver,wheels,seats){
this.driver = driver;
this.wheels = wheels;
this.seats = seats;
}
}

class Truck{
constructor(driver,wheels,capacity){
this.driver = driver;
this.wheels = wheels;
this.capacity= capacity;
}
}

Bus
Truck এর কমন প্রপার্টি নিয়ে Vehicle নামের ক্লাস বানানোঃ

class Vehicle{
constructor(driver,wheels){
this.driver=driver;
this.wheels=wheels;
}
}

এখন Vehicle ক্লাস থেকে Bus class বানাতে হবেঃ
class Bus extends Vehicle{
constructor(driver,wheels,seats){
super(driver,wheels);
this.seats = seats;
}
}

ব্যাখ্যাঃ Vehicle ক্লাসের সাথে একটা প্রপার্টি যোগ করে Bus class বানানো হয়েছে। যেহেতু Vehicle ক্লাস উপরে আর Bus class ক্লাস নিচে তাই Vehicle ক্লাস super class. 

এবার বাস ক্লাস থেকে হানিফ বাস নামে একটি অবজেক্ট ডিক্লেয়ার করা যাকঃ

var hanifBus = new Bus("hanif",4,45);
console.log(hanifBus);

ফলাফলঃ
Bus {driver: "hanif", wheels: 4, seats: 45}

কোন একটি একগোরিদম বা প্রগ্রাম যে সমস্যা সমাধানে বানানো হয়েছে সেটা করতে যে সময় নেয় তাই টাইম ক্মপ্লেক্সিটি। টাইম কমপ্লেক্সিটি কোণ প্রগারম রান করতে কত সময় নিবে তার সঠিক ধারনা দিতে পারে না শুধু কত সময় লাগতে পারে তার ধারনা দিতে পারে.

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

কিভাবে টেবিলে ডাটা রাখা হয়?
ডাটাবেস এ ডাটা ফিল্ড ও টেবিল অনুসারে রাখা হয়।

ডাটাবেইজ টেবিল কি জিনিস?
দাতাবেস টেবিল একটি stracture বা গঠন যেখানে যেখানে ডাটাগুলো ফিল্ডস, রেকর্ড অনুসারে রাখা হয়।

ডাটাবেইজ টেবিলে রেকর্ড এবং কলামে কি রাখা হয়?
ডাটাবেস টেবিলের রেকর্ডে ডাটা বা উপাত্ত আর কলামে রাখা হয় সেসব ডাটা বা উপাত্তের গঠন বা বৈশিষ্ট্য ।

MySQL 
এটি একটি ওপেন সোরচ রিলেশনাল ডাটাবেস সিস্টেম। এর My নামটি এসছে সহ প্রতিষ্ঠাতা Michael Widenius এর মেয়ের নাম অনুসারে এবং এস কিউ এল হচ্ছে Structured Query Language এর সংক্ষেপ রুপ। আগে এর মালিক কোম্পানির নাম ছিল MySQL AB, তবে এখন Oracle Corporation এটিকে কিন নিয়েছে।

টেবিল থেকে সব ডাটা একসাথে দেখাণোর কোডঃ
SELECT * FROM table_name


সোর্স কন্ট্রোল কি জিনিস?
কোন প্রজেক্ট বা অ্যাপে পরিবর্তন আনার দরকার হতে পারে আবার ভুল বশত কোন পরিবর্তন বা কোড পরিবর্তন হয়ে গেলে বড় ক্ষতি হয়ে যেতে পারে। তাই কোন প্রজেক্ট বা অ্যাপের সব পরিবর্তন ট্রাক রাখা জরুরী যাকে source control বলে। এতে কাজের যতগুলো পরিবর্তন করা হয় তাদের সবগুলোর কপি থাকে যেন দরকারে সেগুলো ব্যবহার করা যায়।

সোর্স কন্ট্রোল (source control) থাকার দরকার কি?
এর সুবিধা অনেক যেমনঃ
কোন অ্যাপ বা প্রজেক্টের সব পরিবর্তন ট্র্যাক করা যায়
টিম ওয়ারকের জন্য গুরুত্তপূর্ণ কারণ এটি যেকেউ আপডেট করতে পারে
অনলাইনে সংরক্ষণ করা হয় বলে যেকোন সময় যেকোন জায়গা থেকে এক্সেস করা যায়।

সোর্স কন্ট্রোল

সোর্স কন্ট্রোল কি জিনিস?
 কোন প্রজেক্ট বা অ্যাপে পরিবর্তন আনার দরকার হতে পারে আবার ভুল বশত কোন পরিবর্তন বা কোড পরিবর্তন হয়ে গেলে বড় ক্ষতি হয়ে  যেতে পারে। তাই কোন প্রজেক্ট বা অ্যাপের সব পরিবর্তন ট্রাক রাখা জরুরী যাকে source control বলে। এতে কাজের যতগুলো পরিবর্তন করা হয় তাদের সবগুলোর কপি থাকে যেন দরকারে সেগুলো ব্যবহার করা যায়।

 সোর্স কন্ট্রোল (source control) থাকার দরকার কি?
  এর সুবিধা অনেক যেমনঃ
  ১। কোন অ্যাপ বা প্রজেক্টের সব পরিবর্তন ট্র্যাক করা যায়
  ২। টিম ওয়ারকের জন্য গুরুত্তপূর্ণ কারণ এটি যেকেউ আপডেট করতে পারে
  ৩। অনলাইনে সংরক্ষণ করা হয় বলে যেকোন সময় যেকোন জায়গা থেকে এক্সেস করা যায়।

ডাটাবেইজ বেসিক

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

 কিভাবে টেবিলে ডাটা রাখা হয়?
 ডাটাবেস এ ডাটা ফিল্ড ও টেবিল অনুসারে রাখা হয়।

 ডাটাবেইজ টেবিল কি জিনিস?
 দাতাবেস টেবিল একটি stracture বা গঠন যেখানে যেখানে ডাটাগুলো ফিল্ডস, রেকর্ড অনুসারে রাখা হয়।

 ডাটাবেইজ টেবিলে রেকর্ড এবং কলামে কি রাখা হয়?
 ডাটাবেস টেবিলের রেকর্ডে ডাটা বা উপাত্ত আর কলামে রাখা হয় সেসব ডাটা বা উপাত্তের গঠন বা বৈশিষ্ট্য ।
 
 MySQL 

 এটি একটি ওপেন সোরচ রিলেশনাল ডাটাবেস সিস্টেম। এর My নামটি এসছে সহ প্রতিষ্ঠাতা Michael Widenius এর মেয়ের নাম অনুসারে এবং এস কিউ এল হচ্ছে Structured Query Language এর সংক্ষেপ রুপ। আগে এর মালিক কোম্পানির নাম ছিল MySQL AB, তবে এখন Oracle Corporation এটিকে কিন নিয়েছে।

 টেবিল থেকে সব ডাটা এক সাথে দেখাণোর কোডঃ
 SELECT * FROM table_name

Thursday, May 11, 2017

হাবিজাবি জিনিসপত্র প্রাকটিস

টাইম কমপ্লেক্সিটি কি জিনিস?
কোন একটি একগোরিদ ম বা প্রগ্রাম যে সমস্যা সমাধানে বানানো হয়েছে সেটা করতে যে সময় নেয় তাই টাইম ক্মপ্লেক্সিটি। টাইম কমপ্লেক্সিটি কোণ প্রগারম রান করতে কত সময় নিবে তার সঠিক ধারনা দিতে পারে না শুধু কত সময় লাগতে পারে তার ধারনা দিতে পারে।

রিকারসন ফাংশন কি জিনিস?
যে ফাংশনে নিজেকেই কল করার সিস্টেম থাকে তাকে রিকারসন ফাংশন বলে। যেমনঃ ফিবনাক্কি সিরিজের ফাংশন। এরকম ফাংশন আজীবন চলতে থাকে, একে থামাতে হলে  if-else ব্যবহার করতে হইয়।

প্রোগ্রামিং ল্যাঙ্গুয়েজের সিস্টেম অনুসারে একটা কমেন্ট?
সিঙ্গেল লাইন
// here is a comment
মাল্টিপল লাইন
/*here is multiple
line
comment*/

 What is software bug ?
 প্রগ্রামিং এ কোন ভুল থাকলে সেটাকে বাগ বলে। 

ক্লাস প্রাকটিস

প্রোগ্রামিংয়ে ক্লাস কি জিনিস?
একিই টাইপের বা গোত্রের জিনিস গুলোকে একসাথে একই শ্রেনীর বা ক্লাসের জিনিস বলে। যেমনঃ সপ্তম শ্রেনীর সব ছাত্রদের একসাথে ক্লাস সেভেনের স্টুডেন্ট বলে।

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

ক্লাস থেকে অবজেক্ট বানানোঃ

class Vapa{};
var myPitha = new Vapa()
console.log(myPitha);

ক্লাসের মধ্যে মেথড বা ফাংশন দিয়ে কি করা হয়?
অবজেক্টের প্রপার্টি থাকে। আর অবজেক্ট ক্লাস থেকে বানানো হয় তাই প্রপার্টি গুলো ক্লাসে সেট করা হয়। ক্লাসে প্রপার্টি সেট করতে constructor নামের একটি ফাংশন ব্যবহার করা হয়। এটি ফাংশন কিন্তু ক্লাসের ভিতরে তাই এর আগে function লিখতে হয় না। ক্লাসের মধ্যে থাকা ফাংশন কে ম্যাথড বলে।

var Vapaa{
constructor(gur,narkel){
this.gur=gur;
this.narkel=narkel;
}
}

var myPitha= new Vapaa(20,10);
console.log(myPitha);

result:
Vapaa {gur: 20, narkel: 10}

Note:
Uncaught SyntaxError: Unexpected token {
class জায়গায় লিখে var কোড রান করাতে গেলে এই এরর মেসেজ আসে।

class code practice:
class Bird{

}

var JanPakhi = new Bird();

class student{
constructor(rollNumber,name,result){
this.rollNumber=rollNumber;
this.name=name;
this.result=result;
}
}

var anower= new student(07,"anower",900);
console.log(anower);

var rana= new student(09,"rana",899);
console.log(rana);

class student{
constructor(rollNumber,name,result){
this.rollNumber=rollNumber;
this.name=name;
this.result=result;
}
getResult(){
console.log(result);
}

}