প্রোগ্রামিঙে জীবনপাঠ | Programming-e Jibonpaath

OriginalTransliterationTranslation
Titleপ্রোগ্রামিঙে জীবনপাঠProgramming-e JibonpaathStudy of Life Through Programming
Subtitle
  • Language: Bengali
  • Pages: 176
  • Binding: Hardcover
  • Type of work: Simulation / Project
  • Subject matter: Computational biology
  • Contributions of Saumitra Chakravarty: Author, Cover-designer, Illustrator
  • First publication: January 2024
  • Publisher: Anupam Prokashani, 38/4 Banglabazar, Dhaka-1100, Bangladesh
  • International distributors:
    • USA
      • Muktodhara (মুক্তধারা): 39-25 65 Street, 2E Woodside, New York 11377, Phone # +1-718-458-3616
      • Abosar (অবসর): Jackson Heights, New York 11372, Phone # +1-718-397-8173
    • UK
      • Ruposhi Bangla (রূপসী বাংলা): 220 Tooting High Street, London SW17 OSG, Phone # 020-181-672-7843
      • Sangeeta Ltd. (সঙ্গীতা লিমিটেড): 22 Brick Lane, London
    • India
      • Naya Udyog (নয়া উদ্যোগ): 206 Bidhan Sarani, Kolkata 700006, Phone # +91-33-2241-3540, Mobile # +91-943-345-7210, Email – nayaudyog@yahoo.in
      • Abhijan (অভিযান): 10/2-A Ramanath Mazumdar Street, Kolkata 700009, Mobile # +91-801-709-0655
      • Sonar Bangla Prakashani (সোনার বাংলা প্রকাশনী): 45 Ratu Sarkar Lane, Kolkata 700073, Mobile # +91-990-325-2109; +91-990-348-2741
  • Online shopping (within Bangladesh): Rokomari.com
  • Synopsis: The book serves as a tutorial of Python 3.0 simulations through an exploration into how life began and evolved.
লেখকের কথা… [click/tap to expand/collapse]

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

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

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

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

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

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

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

প্রথম অধ্যায় (খসড়া)

Python 3.0 workspace
If the following code snippet is stuck or not running properly, please do the following:
  1. Copy the entire code from a box.
  2. Delete everything in the left hand side code box of the new page.
  3. Paste your code (that you copied) there and run.

Coding with Google Colaboratory

Visit Google Colaboratory (Google/Gmail account login required)

Download all the python codes of the book in a single file


Supporting materials for chapter 1

Section 1.5: Monty-Hall problem

Section 1.5: Synopsis on Python


Supporting materials for chapter 2


Supporting materials for chapter 3

Section 3.5: RNA world hypothesis


Supporting materials for chapter 4


Supporting materials for chapter 5