Foundationপ্রথম নীতি থেকে
LEVEL 1

কম্পিউটার তথ্য কীভাবে ধারণ করে

How Computers Represent Information

এই মডিউল যে প্রশ্নের উত্তর দেয়একটা bit pattern দেখে আমি কীভাবে জানব সেটা কী অর্থ বহন করছে?

একটা 32-bit pattern 01000001... — এটা কি সংখ্যা 65? অক্ষর "A"? একটা float? একটা instruction? উত্তর: pattern নিজে কিছু বলে না, interpretation বলে। এই module সেই interpretation-এর নিয়মগুলো শেখায়।

১৪ লেসন৩ প্রজেক্ট~৬০ ঘণ্টাপড়ার সময় ১৪ ঘণ্টা0%

লেসন

  1. 01Bit Pattern কী — অর্থ কোথা থেকে আসেএকটা bit pattern নিজে কিছু বলে না — সংখ্যা, অক্ষর, float না instruction, সবটাই নির্ভর করে কোন convention দিয়ে আপনি সেটা পড়ছেন তার উপর।সহজ৪০ মিনিটEXPERIMENTBUILD
  2. 02Binary, Octal, Hex — ইঞ্জিনিয়ারের ভাষায়Hex আর বাইনারির মধ্যে ৪ bit = ১ digit-এর নিখুঁত সম্পর্কই কেন হেক্স ইঞ্জিনিয়ারের ভাষা, আর হেক্স ডাম্প পড়া কেন প্রথম হাতিয়ার — অক্টালের গল্প ও নিজে একটা হেক্স ডাম্প টুল বানানো সহ।মাঝারি১ ঘণ্টাEXPERIMENTBUILD
  3. 03Bit, Nibble, Byte, Word — সংগঠনের এককBit থেকে nibble, byte, word — কতগুলো bit মিলে 'একটা জিনিস' হয় সেই সিদ্ধান্তই CPU-র register width, memory-র ঠিকানা, pointer-এর আকার, আর struct-এর ভেতরের ফাঁকা জায়গা পর্যন্ত সবকিছু নির্ধারণ করে।মাঝারি৫৫ মিনিটEXPERIMENTBUILD
  4. 04Unsigned Integer — শুধু অ-ঋণাত্মক সংখ্যার জগৎএকটা n-bit unsigned integer আসলে ℤ_(2ⁿ)-এর একটা সদস্য — range, wraparound, carry, আর size_t-এর বিপদ সবকিছুই এই এক লাইনের গণিত থেকে বেরিয়ে আসে।মাঝারি৫৫ মিনিটEXPERIMENTBUILD
  5. 05Signed Integer ও Two's Complement — ঋণাত্মক সংখ্যার তিনটা ইতিহাসএকই n bit দিয়ে ঋণাত্মক সংখ্যা লেখার তিনটা ঐতিহাসিক প্রতিদ্বন্দ্বী স্কিম ছিল — two's complement জিতেছে কারণ এটা আসলে ℤ_(2ⁿ)-এর additive inverse নেওয়া মাত্র, আর সেই একটা সিদ্ধান্তেই hardware সরল হয়ে যায়।কঠিন১ ঘণ্টা ১০ মিনিটEXPERIMENTBUILD
  6. 06Integer Overflow — যখন সত্যিকারের উত্তর জায়গায় আঁটে নাযখন একটা arithmetic operation-এর সত্যিকারের গাণিতিক ফলাফল n bit-এ আঁটে না, তখন কী ঘটে তা representation-ভেদে ভিন্ন — unsigned-এ এটা সংজ্ঞায়িত wraparound, signed-এ C/C++-এ এটা undefined behavior, আর এই ফারাকটাই বাস্তব জগতে সবচেয়ে বিধ্বংসী bug-ক্লাসগুলোর একটার জন্ম দিয়েছে।কঠিন১ ঘণ্টাEXPERIMENTBUILD
  7. 07Fixed-Point বনাম Floating-Point — দশমিক সংখ্যা bit-এ কীভাবে বাঁচেসংখ্যার ভগ্নাংশ আর বিশাল dynamic range ধারণ করতে দুইটা পথ — fixed-point একটা স্থির scale-এর integer, floating-point একটা 'ভাসমান বিন্দুর' scientific notation; দুটোর মধ্যেকার trade-off আর IEEE 754-এর জন্মকথা।কঠিন৫৫ মিনিটEXPERIMENTBUILD
  8. 08IEEE 754 — Floating-Point-এর Bit-বাই-Bit ব্যাকরণএকটা 32-বিট বা 64-বিট pattern-কে sign, biased exponent, আর implicit-leading-1 mantissa-তে ভাগ করে ঠিক কীভাবে সংখ্যায় রূপান্তর করা হয় — আর হাতে-কলমে দেখানো, কেন 0.1 store করলে যা জমা থাকে তা ঠিক 0.1 নয়।অ্যাডভান্সড১ ঘণ্টা ২০ মিনিটEXPERIMENTBUILD
  9. 09Floating-Point Precision — যখন ছোট্ট Error জমে বিপর্যয় হয়IEEE 754-এর rounding error arithmetic-এর মধ্য দিয়ে কীভাবে বাতিল হয়, জমে, বা বিপর্যয়কর হয়ে ওঠে — catastrophic cancellation, machine epsilon, Kahan summation, আর বাস্তব ইতিহাসের কিছু ব্যয়বহুল ভুল।অ্যাডভান্সড১ ঘণ্টা ১০ মিনিটEXPERIMENTBUILD
  10. 10ASCII ও Character Encoding — সংখ্যা কীভাবে অক্ষর হয়একটা byte শুধু একটা সংখ্যা 0-255 — কোন সংখ্যা কোন অক্ষর বোঝায় সেটা কেউ ঠিক করে দেয়, আর ASCII ছিল প্রথম ব্যাপকভাবে গৃহীত সেই চুক্তি, যার সীমাবদ্ধতা থেকেই code page বিশৃঙ্খলা আর mojibake জন্ম নেয়।মাঝারি৪৫ মিনিটEXPERIMENTBUILD
  11. 11Unicode ও UTF-8 — এক Character, বহু ByteUnicode প্রতিটা অক্ষরকে একটা স্থায়ী সংখ্যা (code point) দেয়, আর UTF-8/16/32 হলো সেই সংখ্যাকে byte-এ লেখার তিনটা ভিন্ন নিয়ম — যাদের মধ্যে UTF-8-এর self-synchronizing, ASCII-compatible, ও space-efficient নকশাই আজ ইন্টারনেটের ভিত্তি।কঠিন১ ঘণ্টা ১০ মিনিটEXPERIMENTBUILD
  12. 12বাংলা Text Encoding ও Grapheme Cluster — যখন এক Code Point এক অক্ষর নয়বাংলার মতো Brahmic script-এ একটা code point মানে সবসময় একটা visual 'অক্ষর' নয় — যুক্তাক্ষর আর matra মিলিয়ে একাধিক code point একটা grapheme cluster গঠন করে, আর এই পার্থক্য উপেক্ষা করলেই জন্ম নেয় cursor bug, truncation corruption, আর character-count ভুল।কঠিন১ ঘণ্টা ৫ মিনিটEXPERIMENTBUILD
  13. 13Endianness — বাইট অর্ডারের যুদ্ধএকটা multi-byte value byte-addressable memory-তে কোন ক্রমে বসবে সেটা প্রকৃতির নিয়ম না, একটা convention — big-endian না little-endian — আর সেই কনভেনশন না জানলে network packet আর file format ভুল পড়া হয়।মাঝারি৫০ মিনিটEXPERIMENTBUILD
  14. 14Serialization ও Binary Format — In-memory থেকে Byte পর্যন্তIn-memory object-এর pointer শুধু নিজের process-এর মধ্যেই অর্থবহ, তাই disk বা network-এ পাঠাতে হলে সেটাকে একটা flat, self-contained byte sequence-এ রূপান্তর করতে হয় — আর সেই রূপান্তরের নিয়ম না মানলে padding garbage leak, endianness bug, আর ভাঙা backward compatibility অপেক্ষা করছে।কঠিন১ ঘণ্টা ৫ মিনিটEXPERIMENTBUILD

যা যা থাকছে

  • Binary, decimal, hexadecimal ও base conversion
  • Bits, bytes, words
  • Unsigned integer representation
  • Signed integers — sign-magnitude, one's complement, two's complement
  • Integer overflow ও wraparound
  • Fixed-point vs floating-point
  • IEEE 754 — sign, exponent, mantissa
  • Floating-point error, NaN, Inf, denormals
  • Character encoding — ASCII, Latin-1
  • Unicode, code points, UTF-8/16/32
  • বাংলা text encoding ও grapheme clusters
  • Endianness — little vs big
  • Serialization ও binary formats

প্রজেক্ট

Bit Inspector CLI

●●○○○

যেকোনো value-র raw bytes, binary, hex, IEEE 754 breakdown দেখানো।

Mini UTF-8 Codec

●●●○○

নিজে UTF-8 encoder/decoder লেখা — বাংলা string দিয়ে test করা।

Float Calculator

●●●●○

IEEE 754 addition নিজে implement করে hardware-এর সাথে মেলানো।