Monday, October 29, 2012

The message I needed


Reaching a wider audience is not worth sacrificing your content.  - Edmund Carpenter 
May be more people will hear you but what you actually want to say will be lost.  - Vi Hart


Saturday, October 27, 2012

Quantum Teleportation

Physicists passed a milestone in the development of a 'quantum internet' by transmitting quantum states between telescopes on La Palma and Tenerife – a record distance of 143km. The visible laser beam was used to stabilise the telescopes sending and receiving the quantum signal. In theory, 'quantum teleportation' will enable the exchange of messages with greater security, and allow calculations to be performed much more efficiently than is currently possible source:

http://www.guardian.co.uk/science/gallery/2012/oct/26/month-space-quantum-teleportation-pictures#/?picture=398163891&index=9

সময় নষ্ট এবং...

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

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

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


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

বাঙালি - হুমায়ূন আজাদ

ছেলেবেলায় ছড়া শুনেছিলাম, বাঙালি মানুষ নয়, জন্তু। শুনে নিজের জাতি সম্পর্কে সন্দেহ জেগেছিলো; তবে বিশ্বাস হারাই নি। মানুষের ওপর বিশ্বাস হারানো নাকি পাপ; আর একটা পুরো জাতির ওপর বিশ্বাস হারানো তো মহাপাপ। ছেলেবেলায় অতো বড়ো পাপের সাহস হয় নি। রবীন্দ্রনাথ লিখেছিলেন, ‘সপ্তকোটি সন্তানেরে হে মুগ্ধ জননী/রেখেছ বাঙালি ক’রে মানুষ করো নি।’ এখানে ‘বাঙালি’ শব্দটির অর্থ কী? অন্নপায়ী বঙ্গবাসী স্তন্যপায়ী জীবদের জ্বালায় কি অত্যন্ত অতিষ্ঠ হয়েছিলেন বাঙালির মহাকবি? শেষ জীবনে কেনো তিনি জানিয়ে গেলেন, বাঙলায় আর নয়? যদি আবার জন্ম নিতে হয়, তাহলে হেথা নয়, হেথা নয়, অন্য কোথা, অন্য কোনোখানে। বাঙলায় নয়। বাঙালির চরিত্র দেখে দেখে ঘেন্না ধ’রে গিয়েছিলো তাঁর মনে। জীবনানন্দ শালিকটালিক হয়ে জন্মাতে চেয়েছিলেন, বাঙালি হিশেবে নয়। বিদ্যাসাগর শেষ জীবনে বাঙালির ওপর বিশ্বাস হারাতে হারাতে মানুষের ওপরেই বিশ্বাস হারিয়ে ফেলেছিলেন। বঙ্কিমচন্দ্র ঈশ্বর গুপ্তকে বলেছিলেন ‘খাঁটি বাঙালি’ কবি। খাঁটি হওয়া খুব ভালো, তবে তিনি এও জানিয়ে দিয়েছিলেন, বাঙলার অবস্থা আবার অধঃপতনের দিকে না গেলে খাঁটি বাঙালি কবি ‘জন্মাবে না, জন্মিয়া কাজ নাই’। দেখতে পাচ্ছি প্রধান বাঙালিরা সবাই বিরূপ বাঙালির ওপর। নিশ্চয়ই বাঙালির কোনো অসামান্য প্রতিভা রয়েছে, যা এমনভাবে হতাশ, বিরূপ, অবিশ্বাসী করে মহৎদের। মিলটনের স্বর্গচ্যুতি মহাকাব্যে স্বর্গ থেকে বহিস্কৃত শয়তান বঙ্গোপসাগর এলাকা দিয়েই নেমেছিলো পৃথিবীতে। ওই প্রথম পতনের সংস্পর্শ কি বাঙালিকে চির অধঃপতিত করে রেখেছে? মালার্মে একটি কবিতায় এমন একটি পাখির কথা বলেছেন, যার বিলুপ্তি আসন্ন। ওই পাখিকে তিনি তুলনা করেছেন বাঙালির সাথে। বাঙালি কি তবে সেই নিয়তিদণ্ডিত জাতি, যার ভাগ্যে রয়েছে শুধু নিন্দা, আর অবলুপ্তি?


পৃথিবীর প্রতিটি জাতিরই কোনো-না-কোনো সদগুণ রয়েছে। স্বাতন্ত্রিক বৈশিষ্ট্য রয়েছে। ওই বৈশিষ্ট্য তাকে পৃথক ক’রে রাখে অন্যান্য জাতি থেকে, ক’রে রাখে বিশিষ্ট। বাঙালির কি অমন কোনো বৈশিষ্ট্য রয়েছে? রয়েছে কোনো সদগুণ? তেমন কোনো বৈশিষ্ট্য সম্ভবত বাঙালির নেই। বাঙালির চরিত্রে গুণের থেকে দোষের পরিমাণ যে অনেক বেশি তাতে সন্দেহ নেই। এ জন্যেই তার প্রধান পুরুষেরা বিরূপ তার ওপর। মধুসূদন কি বাঙালি ছিলেন, বাঙালি ছিলেন বঙ্কিমচন্দ্র, রবীন্দ্রনাথ? বিদ্যাসাগর কি বাঙালি ছিলেন, বাঙালি ছিলেন বাঙলার অন্যান্য মহাপুরুষ? মনে হয় তাঁরা বাঙালি ছিলেন না। বাঙালি জাতির প্রধান পুরুষ বা মনীষী তাঁরাই, যাঁরা পেরিয়ে যেতে পেরেছিলেন বাঙালিত্বকে। তাই প্রধান বাঙালি হ’তে হ’লে হ’তে হবে অবাঙালি। হয়তো চরিত্র অর্জন করতে হবে জর্মনের, বা ইংরেজের, জাপানির বা চীনের, ফরাশির বা মার্কিনের বা রুশির। খাঁটি বাঙালি হয়ে মহৎ বাঙালি হওয়া অসম্ভব। বাঙালি বলতে বোঝায় সামান্যতা, হীনতা, তুচ্ছতা। তার চরিত্রের বদগুণের বীজ কিলবিল করে।


কী কী মুক্তোয় খচিত সোনার বাঙালির সোনার চরিত্রটি? বাঙালির চরিত্রমুকুটের কোহিনূর কোনটি বলা মুশকিল, প্রতিটিই রঙে শোভায় আকারে হারিয়ে দিতে চায় প্রতিটিকে। তাই ঐসব মণিমুক্তোর তালিকা ক্রম রেখে তৈরি করা কঠিন। খুব বড়ো ধরনের গবেষণাপ্রকল্প দরকার। বাঙালি মিথ্যুক। মিথ্যা ব’লে চালিয়ে দিতে পারলে সত্য বলার কষ্টটুকু করবে না। বাঙালি প্রতারক। প্রতারণা করতে পারলে বাঙালি বিশেষ তৃপ্তি পায়। আরেকটি প্রতারককে ঠকাতে পারা কি অসামান্য সুখ আর গৌরবের কথা নয়? ব্যবসায় তো প্রতারণাই ধর্ম। দলবেধে ব্যবসায় নেমে বাঙাল এবং একজন অন্যদের ঠকিয়ে বাড়িগাড়ি করে। দু-দিন আগে মুদি দোকান থেকে বাসায় একটি ঠোঙা আসে। তাতে লেখা একটি চিঠি। পত্রলেখক লিখেছেন, ‘আপনার সঙ্গে আর ব্যবসা করিব না। নামাজ-রোজা করেন দেখিয়া ভাবিয়াছিলাম আপনি সৎ। এখন দেখিলাম আপনি অসৎ। আগামী কাল আমার মালগুলি ফিরত দিবেন। নইলে ভালো হইবে না’। প্রতারণা চলছে দিকে দিকে, প্রতারণা ছাড়া বাঙালির ঘরে আলো জ্বলে না। বাঙালি ভণ্ড। ভণ্ডামোতে একশো নম্বর দিতে হবে তাকে। যা বিশ্বাস করে না, তা অবলীলায় ব’লে যাবে। আমলা কবিদের কবিতা প’ড়ে দেখুন। কী দারুণ বিপ্লবী আর প্রগতিশীল তারা। স্যার, স্যার বলতে বলতে থুতু উপচে পড়ছে; কিন্তু কবিতা লিখতে বসলেই বিদ্রোহী, প্রতিবাদী। জনগণের সাথে একাত্ম। বাঙালি চিন্তা করে, চিৎকার করে। আসুন বিশ্ববিদ্যালয়ের বারান্দায়, দেখবেন ইলশের বাজারকে ছাড়িয়ে গেছে জ্ঞানকেন্দ্রের করিডোর। অফিসে যান, দেখবেন নিজের টেবিলে কেউ নেই; দোস্তের টেবিলে ব’সে গলা ফুলিয়ে চিৎকার ক’রে চলেছে দায়িত্বশীল বাঙ্গালিগণ।


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


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

হুমায়ূন আজাদের এই লেখাটি সংগ্রহ করেছি Anik Andalib-এর ফেসবুক পাতা থেকে।