Home › Lectures › Foundations

💻 কম্পিউটার বিজ্ঞানের ভিত্তি · Computer Foundations

প্রোগ্রামিং শুরুর আগে কম্পিউটার কীভাবে কাজ করে, অ্যালগরিদম ও লজিক বোঝা জরুরি।

Understand how computers, logic and algorithms work before coding.

📅 ১. ভিত্তি⏳ ~2 সপ্তাহ📘 6 টপিক🧩 18 সাব-টপিক🎬 0 ভিডিও💻 রানযোগ্য কোড

🎯 যা শিখবেন / Outcomes

Explain CPU/memory, use the terminal, reason about algorithm cost

🧰 টুলস / Tools

Terminal, VS Code

🏁 প্রজেক্ট / Capstone

Write a sorting algorithm and compare speeds

📌 পূর্বশর্ত / Prerequisites

কোনো পূর্বশর্ত নেই — এখান থেকেই শুরু!

📅

সাপ্তাহিক পরিকল্পনা · Weekly plan

~২ ঘণ্টা/দিন ধরে
1

How Computers Work

CPU, memory, storage and binary.
Beginner
📘 বাংলা: কম্পিউটার কীভাবে ডেটা প্রসেস করে—CPU, RAM, স্টোরেজ ও বাইনারি সংখ্যার মৌলিক ধারণা।
🌐 English: CPU, memory, storage and binary.

💡 ডেটা সায়েন্সের প্রতিটি কাজ—বড় ডেটা লোড, মডেল ট্রেনিং—শেষ পর্যন্ত CPU, RAM ও স্টোরেজের উপর চলে; এগুলো বুঝলে কেন কোড ধীর বা মেমোরি শেষ হয় তা বুঝবেন।

  1. 1
    ইনপুট → প্রসেসিং → আউটপুট → স্টোরেজ—কম্পিউটারের চার ধাপের চক্র বুঝুন
  2. 2
    CPU নির্দেশ (instruction) একটার পর একটা চালায়; কোর বেশি হলে একসাথে একাধিক কাজ হয়
  3. 3
    প্রোগ্রাম চলার সময় ডেটা RAM-এ থাকে; RAM-এর চেয়ে বড় ডেটা হলে ধীর বা ক্র্যাশ হয়
  4. 4
    সব তথ্য শেষ পর্যন্ত বিট (0/1) ও বাইট (8 বিট) হিসেবে সংরক্ষিত; 1 GB ≈ 10⁹ বাইট
CPUনির্দেশ সম্পাদনকারী মস্তিষ্ক, ক্লক স্পিড ও কোর
RAM বনাম স্টোরেজদ্রুত অস্থায়ী মেমোরি বনাম স্থায়ী SSD/HDD
বাইনারিসব ডেটা 0 ও 1-এর বিট ও বাইটে সংরক্ষিত
2

Logic & Set Theory

Sets and logical operators.
Beginner
📘 বাংলা: সেট, ইউনিয়ন, ইন্টারসেকশন ও লজিক্যাল অপারেটর।
🌐 English: Sets and logical operators.

💡 ডেটা ফিল্টার করা, SQL-এর WHERE, pandas-এর শর্ত, JOIN—সবই সেট ও লজিকের উপর দাঁড়িয়ে।

  1. 1
    সেট = অনন্য উপাদানের সংগ্রহ; A∪B (যেকোনোটিতে), A∩B (দুটোতেই), A−B (শুধু A-তে)
  2. 2
    লজিক্যাল অপারেটর: AND উভয় সত্য হলে সত্য, OR যেকোনো একটি, NOT উল্টে দেয়
  3. 3
    truth table লিখে জটিল শর্ত যাচাই করুন
  4. 4
    ডি মরগান সূত্র দিয়ে শর্ত সরল করুন: NOT(A OR B) = NOT A AND NOT B
সেট অপারেশনUnion, Intersection, Difference (pandas merge-এর ভিত্তি)
লজিক্যাল অপারেটরAND, OR, NOT, truth table
ডি মরগান সূত্রNOT(A AND B) = NOT A OR NOT B
3

Big-O Notation

Measuring algorithm time and memory.
Intermediate
📘 বাংলা: অ্যালগরিদমের গতি ও মেমোরি ব্যবহার মাপার পদ্ধতি।
🌐 English: Measuring algorithm time and memory.

💡 ১০০ সারিতে যে কোড চলে, ১ কোটি সারিতে সেটাই ঘণ্টা নিতে পারে—Big-O আগেই বলে দেয় কোন পদ্ধতি স্কেল করবে।

  1. 1
    ইনপুট n বাড়লে ধাপের সংখ্যা কীভাবে বাড়ে সেটিই জটিলতা
  2. 2
    O(1) ডিকশনারি লুকআপ, O(log n) বাইনারি সার্চ, O(n) একবার লুপ, O(n log n) ভালো সর্টিং, O(n²) নেস্টেড লুপ
  3. 3
    কোডে লুপ গুনুন: একটি লুপের ভেতরে আরেকটি = সাধারণত O(n²)
  4. 4
    সময়ের পাশাপাশি মেমোরি (space complexity) হিসাব করুন
O(1), O(log n), O(n)কনস্ট্যান্ট, লগারিদমিক ও লিনিয়ার সময়
O(n²)নেস্টেড লুপ কেন ধীর
স্পেস জটিলতামেমোরি ব্যবহারের হিসাব
4

Number Systems

Binary, decimal and hex.
Intermediate
📘 বাংলা: বাইনারি, দশমিক, হেক্সাডেসিমাল রূপান্তর।
🌐 English: Binary, decimal and hex.

💡 ডেটা টাইপ, রং কোড, ফ্লোটিং পয়েন্ট ত্রুটি বুঝতে সংখ্যা পদ্ধতি জানা দরকার।

  1. 1
    দশমিক (base 10) → বাইনারি (base 2): বারবার ২ দিয়ে ভাগ করে ভাগশেষ উল্টো পড়ুন
  2. 2
    বাইনারি → দশমিক: প্রতিটি অঙ্ক × 2^অবস্থান যোগ করুন (1011 = 8+0+2+1 = 11)
  3. 3
    হেক্সাডেসিমাল (base 16): 0–9, A–F; এক হেক্স অঙ্ক = ৪ বিট
  4. 4
    কম্পিউটারে দশমিক ভগ্নাংশ ঠিকভাবে রাখা যায় না, তাই 0.1+0.2 = 0.30000000000000004
বাইনারি ↔ দশমিক1011₂ = 11
হেক্সাডেসিমালরং কোড #FF5733
ফ্লোটিং পয়েন্ট0.1+0.2≠0.3 কেন
5

Command Line Basics

Navigate files and folders from the terminal.
Advanced
📘 বাংলা: টার্মিনাল/কমান্ড লাইনে ফাইল ও ফোল্ডার পরিচালনা।
🌐 English: Navigate files and folders from the terminal.

💡 সার্ভার, ক্লাউড, Git, ডেটা পাইপলাইন—সব জায়গায় কমান্ড লাইন লাগে; GUI ছাড়াই দ্রুত কাজ করা যায়।

  1. 1
    টার্মিনাল খুলুন (Windows: PowerShell, Mac/Linux: Terminal)
  2. 2
    অবস্থান জানুন ও ঘুরুন: pwd, ls (dir), cd folder, cd ..
  3. 3
    ফাইল ব্যবস্থাপনা: mkdir, cp/copy, mv/move, rm/del—মুছলে ফেরত আসে না, সতর্ক থাকুন
  4. 4
    পাইপ (|) ও রিডাইরেক্ট (>) দিয়ে কমান্ড জুড়ুন, যেমন python script.py > output.txt
নেভিগেশনpwd, ls/dir, cd
ফাইল কাজmkdir, cp, mv, rm
পাইপ ও রিডাইরেক্ট| ও > দিয়ে কমান্ড জোড়া
6

Data Structures & Algorithms

Arrays, stacks, queues, trees, searching and sorting.
Advanced
📘 বাংলা: অ্যারে, স্ট্যাক, কিউ, ট্রি, সার্চ ও সর্টিং।
🌐 English: Arrays, stacks, queues, trees, searching and sorting.

💡 সঠিক ডেটা স্ট্রাকচার বেছে নিলে কোড সহজ ও দ্রুত হয়; ইন্টারভিউতেও DSA প্রায় সবসময় আসে।

  1. 1
    Array/List: ক্রমানুসারে উপাদান, ইনডেক্স দিয়ে দ্রুত অ্যাক্সেস
  2. 2
    Stack (শেষে ঢোকে আগে বের হয়—undo), Queue (আগে ঢোকে আগে বের হয়—টাস্ক লাইন)
  3. 3
    Tree ও Graph: হায়ারার্কি ও নেটওয়ার্ক; BFS স্তর ধরে, DFS গভীরে খোঁজে
  4. 4
    সার্চ ও সর্ট: সাজানো ডেটায় Binary Search O(log n), Merge Sort O(n log n)
লিনিয়ার স্ট্রাকচারArray, Stack (LIFO), Queue (FIFO)
ট্রি ও গ্রাফBinary Search Tree, BFS/DFS
সার্চ ও সর্টBinary Search O(log n), Merge Sort O(n log n)
💻

হাতে-কলমে কোড · Hands-on code

Run চাপুন — পাইথন আপনার ব্রাউজারেই চলবে (Ctrl+Enter)
# Big-O in action: linear vs binary search
import time, bisect
data=list(range(1_000_000)); target=987_654
t=time.time(); i=data.index(target); lin=time.time()-t
t=time.time(); j=bisect.bisect_left(data,target); bi=time.time()-t
print(f"Linear O(n): {lin*1000:.2f} ms | Binary O(log n): {bi*1000:.4f} ms")
print(bin(42), hex(255), 0.1+0.2)
📝

অনুশীলন · Practice tasks

  1. একটি লিস্টে সর্বোচ্চ মান খোঁজার অ্যালগরিদম লিখুন ও Big-O বলুন
  2. ৫টি দশমিক সংখ্যাকে বাইনারিতে রূপান্তর করুন
  3. টার্মিনালে একটি প্রজেক্ট ফোল্ডার কাঠামো তৈরি করুন
  4. ক্যাপস্টোন: Write a sorting algorithm and compare speeds
❓

কুইজ · Quick quiz

1. Binary search-এর সময় জটিলতা কত?

2. Stack কোন নীতিতে চলে?

🎬

ভিডিও লাইব্রেরি · Videos

সাইটের ভেতরে ফ্লোটিং প্লেয়ারে চলবে
এই শাখার ভিডিও এখনো সংরক্ষিত হয়নি। যেকোনো টপিক পেজ খুললে ভিডিও স্বয়ংক্রিয়ভাবে খুঁজে MySQL-এ সংরক্ষিত হবে (API key থাকলে)।

📺 Reference channels

🔗

সংযুক্ত বিষয় · Connected

পরের শাখা →📐 Mathematics for AI
🎬 Video