Wednesday, October 24, 2012

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

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

১) মানুষের মত কম্পিউটারেরও নানান রকম ভাষা হয়।
২) কিন্তু মানুষের ভাষার সাথে কম্পিউটার ভাষার পার্থক্য হলো, একবার কোনো কম্পিউটার ভাষা শিখে ফেললে, নতুন কোনো ভাষা শেখা স্রেফ কয়েক দিনের প্রচেষ্টার ব্যাপার। এ যেন সাতার শেখার মত। একবার কোনো একটা পুকুরে শিখে ফেললেই হয়। অন্য পুকুরে বা নদীতে অন্য রকম কোনো স্টাইলে সাতার কাটতে শেখা বেশ ট্রিভিয়াল। কিন্তু প্রথমবার ভাসতে শেখাটা আসলে সহজ নয়। ক্রমাগত চেষ্টা করে যেতে হয়। হঠাৎ ক্লিক করে যায়। একেক জনের একেক সময়ে।
৩) এই লেখাটাটাতে তাই নানান রকম প্রোগ্রামিং ভাষার বাহারি সব প্রতিক চিহ্ন কিওয়ার্ড এসব নিয়ে শুরতেই মাথা না ঘামিয়ে। সেই মৌলিক ব্যাপারটা নিয়ে আমরা মাথা ঘামাবো। যাকে বলে "প্রোগ্রামিং"।
৪) কার্ডে লিখে দেওয়ার পরে কেউ একজন আমাকে ভাগ করে উত্তর দেয়। এরকম একটা সেটিং, এ ঐ ওরাকলকে দিয়ে গসাগু বের করিয়ে নিতে আমাদের কী করা লাগবে? এ থেকে আমরা গসাগুর অ্যালগরিদম শিখবো।
৫) এর পর কার্ডগুলোকে ভেরিয়েবলের নাম দিয়ে পরিবর্তন করে দেব। আর কিছু সিউডো ইন্স্ট্রাকশন লিখবো।
৬) মূলত সিউডোকোড লিখতে পারতে শেখাটাই এখানে আসল। এর পরেই সহজ উদাহরণে চলে যেতে হবে। সিদ্ধান্ত নেওয়া (রোদের ছাতা নেওয়া, আর টেস্ট টিউব বেবির, কোন ভ্রুনটাকে ইম্প্লান্ট করা হবে সেটা নির্ধারণ করার উদাহরণ দিতে হবে।)  সিরিজের যোগফল বের করা। ইত্যাদির অ্যালগরদিম দেখবো।
৭) কোনো একটা কোড থেকে ফ্লো চার্ট বানাতে শিখবো।
৮) এরপর কোনো একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ শেখার সময় কি কি জিনিশ খেয়াল করতে হবে সেটা দেখবো।
৯) তারপর পাইথন বা সি তে  একটা প্রোগ্রাম লিখে দেখবো।
১০) প্রোগ্রামিং ল্যাঙ্গুয়েজের হাইরাক্কি নিয়ে বল্তে হতে পারে। শুরুতে কোনো প্রোগ্রামিং ভাষা কম্পিউটার কিভাবে বোঝে। সেই প্রশ্ন অ্যাড্রেস করব এখানে এসে। (চাই কি আগের বাতিল করে দেওয়া টেক্সট এর একাংশ এখানে জুড়ে দিতে পারি!)

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

একটু খানি প্রোগ্রামিং (প্রথম প্রচেষ্টা)

প্রায় হাজার খানেক শব্দ লেখার পরে সিদ্ধান্ত নিলাম এভাবে এগোব না। অতয়েব নিচের আর্টিকেলটা বাতিল করতেই হচ্ছে।

(নিচের লেখায় সিদ্ধান্ত নেওয়ার ব্যাপারটা লেখা জাবে না। বলতে হবে কম্পিউটার যাচাই করতে পারে কোনো সংখ্যা সহজ কোনো  শর্ত পূরণ করছে কি না। )

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

মানুষের ভাষার কথা ভাবুন। আমরা এই ভাষার সাহায্যে রান্নাবান্নার রেসিপি থেকে শুরু করে কোনো গাণিতিক সমস্যা সমাধানের নিয়ম সব কিছুই লিখে দিতে পারি। কিন্তু কম্পিউটার সরাসরি এই ভাষা বোঝে না। আপনি হয়তো শুনে থাকবেন কম্পিউটার আসলে ১ আর ০ ছাড়া বোঝে না কিছুই! তাহলে কম্পিউটারকে কিছু শেখাতে হলে মানুষকেও সেই ১ আর ০ দিয়ে কম্পিউটারের সাথে কথা বলতে জানতে হবে। তাও কি সম্ভব? আসলে দুঃসাধ্য হলেও সম্ভব! কম্পিউটার প্রোসেসর যারা ডিজাইন করেন বা বানান, তারা এই ভাষাও বানান। কিন্তু তারা শুধু কম্পিউটার বানিয়েই থেমে যান না। কম্পিউটার ব্যবহারকারী ও প্রোগ্রামারদের জীবন সহজ করতে তারা বাড়তি কিছু কষ্ট করেন। সেটা হলো সারি সারি, ১ আর ০ দিয়েই তারা কম্পিউটারকে অল্প কিছু কাজ (হয়তো মাত্র গোটা দশেক)  করতে শিখিয়ে দেন। ধরুণ যোগ, বিয়োগ, গুণ, ভাগ বা আগের কোনো কাজ করার পরে প্রাপ্ত ফলাফল ধনাত্বক, ঋণাত্বক বা শূন্য কি না তার উপর নির্ভর করে পরবর্তী কোন কাজ করবে সেই সিদ্ধান্ত নেওয়া (কম্পিউটারের মত একটা জড় বস্তুকে এ ধরণের সিদ্ধান্ত নিতে শেখানো মোটেই সহজ নয়! তবে মানুষ এই অসাধ্য সাধন করেছে।) ইত্যাদি। একবার কম্পিউটার এগুলো শিখে ফেলার পরে প্রোগ্রামারের কাজ একটু সহজ হয়ে যায়। কারণ তখন ঐ "শূন্য-এক" এর ভাষা ছাড়াও একটা দুইটা শব্দ বুঝতে শেখে। এই অল্পকিছু শব্দওয়ালা ভাষাতাকে আমরা বলি অ্যাসেম্ব্লি ল্যাঙ্গুয়েজ।

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

আসুন আমরা একট উদাহরণের মাধ্যমে পুরো ব্যাপারটা বুঝতে চেষ্টা করি।
ধরা যাক অনেক কষ্টে একটা কম্পিউটার বানানো হলো এবং ১ আর ০ ব্যবহার করেই তাকে শিখিয়ে দেওয়া হলো মাত্র চারটা কাজ,
১) যোগ করা,
২) বিয়োগ করা,
৩) আর সিদ্ধান্ত নেওয়া!

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

১) প্রাপ্ত সংখ্যাটি ধনাত্বক হলে আমি ক কাজটি করবো।
২) ঋণাত্বক হলে আমি খ কাজটি করবো।
৩) আর শূন্য হলে আমি গ কাজটি করবো।

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

ধনাত্বক ঋণাত্বক বোঝা সহজ কারণ কোনো সংখ্যার সামনে বিয়োগ চিহ্ন "-" আছে কি নেই, সেটা দেখেই ব্যাপারটা বুঝে ফেলা যায়। আর কোনো সংখ্যা শুন্য হলেও সেটা বোঝা সহজ।

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

সেটা খুবই সহজ। কম্পিউটারকে শিখিয়ে দিতে হবে।

১) ক বিয়োগ খ  (// ধরি ক আর খ হচ্ছে, আমাদের সংখ্যা দুটি। এই লাইনে এদেরকে বিয়োগ করতে বলা হচ্ছে।)
২)  যদি শূন্য হয় উত্তর "না"। (// এখানে একটা সিদ্ধান্ত গ্রহন করছি। বিয়োগফল শূন্য হবার অর্থ সংখ্যাদুটি সমান, প্রথমটা তাই দ্বিতীয়টার বড় হতে পারে না। )
৩) যদি বিয়োগফল ঋণাত্বক হয় উত্তর "না"। (// বিয়োগফল ঋণাতক হবার অর্থ দ্বিতীয় সংখ্যাটি বড়। )
৪) যদি বিয়োগভল ধনাত্বক হয় উত্তর "হ্যা"। (//ক খ -এর চেয়ে বড় হলে বিয়োগ ফল অবশ্যই ধনাত্বক হবে)

বোঝাই যাচ্ছে এই তিনটি কাজ কম্পিউটার করতে পারবে। কারণ এগুলো তাকে বানানোর সময়ই শিখিয়ে দেওয়া হয়েছে।


http://plus.maths.org/content/lagrange-and-interplanetary-superhighway
http://www.bbc.co.uk/news/science-environment-20033940

















মৌলিক গবেষণায় কম্পিউটার (note)

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

এখনো পর্যন্ত, আমাদের জানা সকল ভৌত পর্য্বেক্ষণকে ব্যাখ্যা করার জন্য যে গাণিতিক মডেলের আশ্রয় নেওয়া হয় তাকে বলে "স্টান্ডার্ড মডেল"। এই মডেল হচ্ছে, কিছু সমীকরণের
avi wigderson

Let’s go back to Q1, and to what is perhaps the largest (the budget is several billion dollars) experiment, designed to further our understanding of time, space, energy, mass and more generally the physical laws of nature. We refer to the LHC (Large Hardon Collider) at CERN, Geneva, which should be operational in about one year. The outcomes of its experiments are awaited eagerly by numerous physicists. If these do confirm (or refute) such theories like supersymmetry, or the existence of the elusive Higgs particle (responsible for mass in the current prevailing theory, the standard model), this excitement will be shared with the public at large.
But how would they know? The LHC bombards protons against each other at enormous energies, and detectors of all kinds attempt to record the debris of these collisions. There are billions of collisions per second (and the LHC will operate for several years), so the total data detected is much, much larger than what can be kept. Moreover, only a few of these collisions (less than 1 in a million) provide new information relevant to the searches above (most information was already picked up by previous, less sensitive colliders, and helped build up the current theories). So ultrafast on-line computer decisions have to be made to decide which few information bits to keep! The people who wrote these programs have designed and implemented an efficient recognition device for new knowledge! Needless to say, the programs that would search and analyze the kept data (20-mile high stack of cd’s of it), would have to be designed to efficiently find something new. Ultimately, we would like programs that would analyze the data and suggest new models and theories explaining it directly.
But clearly, such huge investment of resources would never take place if we were not convinced that new phenomena, if observed, could be efficiently recognized. 

Tuesday, October 23, 2012

Hearing the shape of a drum

একেক ধরনের বস্তুতে টোকা দিলে একেক রকম শব্দ হয়। গাণিতিকভাবে দেখলে, শব্দের এই ভিন্নতাটাকে ব্যাখ্যা করা যায় তাদের স্পেক্ট্রাম বা ফুরিয়ার কোইফিশিয়েন্টের পার্থক্য থেকে। (এই ব্যাপারটার কারণেই একেকজনের কন্ঠ একেক রকম হয়, এবং আমরা কন্ঠ শুনেই তাদের পার্থক্য করতে পারি)। তো প্রশ্নটা হলো, কোনো বস্তুর স্রেফ এই শব্দ শুনেই কি বস্তুটির আকার পুরোপুরি অনুমান করা সম্ভব? জ্ঞানের এই শাখাকে বলে "স্পেক্ট্রাল জিওমেট্রি"।

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

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

Thursday, October 18, 2012

একটু খানি কম্পিউটার বিজ্ঞান

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

কম্পিউটার ও কম্পিউটার বিজ্ঞান
এই অধ্যায়টা এমন ভাবে লিখতে হবে যেন কম্পিউটার সম্পর্কে মৃদু কৌতুহল আছে কিন্তু কোনো রকম ব্যাকগ্রাউন্ড নেই তেমন পাঠক এটাকে বুঝতে পারে। এবং কম্পিউটারের জগত সম্পর্কে আগ্রহী ও কৌতূহলি হয়ে ওঠে।
আলোচ্য বিষয়ে থাকতে পারে
১) কম্পিউটার ইঞ্জিনিয়ারিং কি
২) তাত্তবিক কম্পিউটার বিজ্ঞান ও কম্পিউটার ইঞ্জিনিয়ারিং এর পার্থক্য।
৩) কম্পিউটার বিজ্ঞানের নানান শাখা ও বাস্তবজীবনে তাদের অবদান।
৪) এ বিষয়ে গবেষণার সুযোগ। দেশ বিদেশে সুপরিচিত আমাদের দেশের কম্পিউটার গবেষকরা।
৫) ক্যারিয়ার পাথ।

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

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

কম্পিউটারের ভাষা
এখানে প্রসেসরের গঠন। তথ্য কিভাবে এক আর শুন্যের সাহায্যে প্রকাশ করা হয় ইত্যাদি দেখানো হবে। এবং এই কম্পিউটারকে দিয়ে কাজ করানোর জন্য কিভাবে বাইনারি মেশিন ল্যাংগুয়েজ ব্যবহৃত হয়। সেখান থেকে কিভাবে অ্যাসেম্ব্লি ল্যাংগুয়েজ হয়ে হাইলেভেল প্রোগ্রামিং ল্যাংগুয়েজ তৈরি করা হয় সেসব।




Monday, October 15, 2012

ছয় ধাপে অ্যালগরিদম

১
অ্যালগরিদম চারিদিকে,

যোগের অ্যালগরিদম
গুণ, ভাগ, ইন্টিগ্রেশন, ডিফারেন্সিয়েশন ইত্যাদির অ্যালগরিদম।

ছবি এঁকে অ্যালগরিদম। (ফ্লো চার্ট)

কার্ডে লিখে লিখে গসাগু গণনা। যেখানে এক বন্ধুকে লাল কার্ড আর সবুজ কার্ডে সংখ্যা দুটি লিখে দিলে সে ভাগ করে অবশিষ্ট জানিয়ে দেয়।

গুণ করতে পারলে একটা সংখ্যা তালিকা থেকে বলে দেওয়া কিছু সংখ্যা বাদ দিয়ে বাকি সংখ্যাগুলো দ্রুত গুণ করে বলতে পারা।

একাধিক অ্যালগরিদমের মধ্যে কোনটি সেরা। 

Monday, October 1, 2012

এখনই যা করা দরকার


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