Skip to content

1-dars: Computer Science nima va algoritm tushunchasi

Dars haqida

Davomiyligi: 90 daqiqa Maqsad: Talaba Computer Science ning umumiy tushunchasini, algoritmik fikrlashni va dasturlash mantig'ini tushunishi kerak. Bu — Foundation 2-bosqichining poydevoridir.

1. Computer Science nima?

Computer Science (CS) — kompyuter va hisoblash haqidagi fan.

Diqqat: CS ≠ dasturlash. Dasturlash — CS'ning bir qismi. CS bu — quyidagilarni o'rganadi:

CS bu nima emas

  • CS bu — faqat dasturlash emas
  • CS bu — kompyuterni ta'mirlash emas
  • CS bu — Microsoft Office'ni o'rgatish emas

CS bu — muammolarni yechishga sistematik yondashuv, dasturlash uning vositasi.

2. CS asosida nima yotadi?

Asosiy savol: Muammoni qanday yechish mumkin?

CS uchun 3 ta narsa muhim:

Misol 1: Kalkulyator

  • Input: 2 + 3
  • Algorithm: qo'shish amali
  • Output: 5

Misol 2: Spam filter

  • Input: email matni
  • Algorithm: spam belgilarini qidirish
  • Output: SPAM yoki INBOX

Misol 3: Yo'l ko'rsatkich (Yandex Maps)

  • Input: hozirgi joy, manzil
  • Algorithm: eng qisqa yo'lni topish
  • Output: yo'l ko'rsatkichi

3. Algoritm nima?

Algoritm — muammoni yechish uchun aniq, ketma-ket qadamlar to'plami.

Algoritm — hayotda

Siz har kuni algoritmlarni ishlatasiz, lekin payqamasdan.

  • Choy tayyorlash — algoritm
  • Mashinaga kirib qo'zg'atish — algoritm
  • Maktabga borish yo'li — algoritm
  • Ovqat pishirish (retsept) — algoritm

4. Algoritm misoli: Choy tayyorlash

Algoritm: "Choy tayyorlash"

Qadam 1: Choynakka suv quy
Qadam 2: Choynakni gazga qo'y
Qadam 3: Gazni yoq
Qadam 4: Suv qaynashini kuzat
Qadam 5: Agar suv qaynagan bo'lsa:
            - Gazni o'chir
            - Choynakka quruq choy sol
            - Ustidan qaynoq suv quy
Qadam 6: 3-4 daqiqa kut
Qadam 7: Piyolaga quy
Qadam 8: Tayyor!

5. Algoritmning xususiyatlari

XususiyatTushuntirish
Aniq qadamlarHar qadam — bir narsa
Tugashi kafolatAlgoritm cheksiz aylanmasin
Cheklangan vaqtYechim ma'qul vaqtda topiladi
Kiruvchi/chiquvchiNima qabul qiladi, nima beradi
SamaradorlikIloji boricha tez
QaytariluvchiHar safar bir xil natija

6. Algoritmlar — kundalik misollar

Misol 1: Eng kichik raqamni topish

Algoritm: 10 ta raqamdan eng kichigini topish

Qadam 1: Birinchi raqamni "eng kichik" deb belgila
Qadam 2: Keyingi raqamni ol
Qadam 3: Agar yangi raqam "eng kichik"dan kichikroq bo'lsa,
         yangi raqamni "eng kichik" qil
Qadam 4: Hamma raqamlar tekshirilmaguncha 2-3 qadamni qaytar
Qadam 5: "Eng kichik"ni javob sifatida ber

Misol 2: Telefon kitobida ism qidirish

Eski usul (sekin):

1. Birinchi sahifadan boshla
2. Har bir ismni o'qib chiq
3. Mos kelsa — to'xta

Yangi usul (tez — binary search):

1. Kitobning o'rtasini och
2. Agar qidirilayotgan ism shu sahifada bo'lsa — topdik
3. Agar alifboda oldin bo'lsa — kitobning chap yarmiga o'tib qayta
4. Agar alifboda keyin bo'lsa — o'ng yarmiga o'tib qayta

Eski usul 1000 ismda 500 sahifa o'qish. Yangi usul — atigi 10 sahifa.

Algoritm tezligi muhim — keyingi darslarda batafsil.

7. Pseudocode

Pseudocode — algoritmni odam tushunadigan tilda yozish (lekin tuzilma — dasturlash kabi).

Misol: Eng katta raqamni topish

O'zbek tilida:

"10 ta raqamdan eng kattasini topamiz.
Birinchisini eng katta deb belgilaymiz.
Qolganlarini birma-bir tekshiramiz.
Agar yangi raqam katta bo'lsa, uni eng katta qilamiz.
Oxirda eng kattaning qiymatini chiqaramiz."

Pseudocode shaklida:

SET max = numbers[0]
FOR each number in numbers:
    IF number > max:
        SET max = number
PRINT max

Pseudocode foydasi

  • Dastur tilini bilmasdan ham yozish mumkin
  • Mantiqiy fikrlashni rivojlantiradi
  • Keyinroq real kodga osongina aylantirish mumkin
  • Boshqalar bilan muhokama qilish uchun qulay

8. Algoritmik fikrlash

Algoritmik fikrlash — har muammoni quyidagicha ko'rish:

  1. Decomposition — Katta muammoni kichik qismlarga bo'lish
  2. Pattern recognition — O'xshashliklarni topish
  3. Abstraction — Kerakli ma'lumotni ajratish
  4. Algorithm design — Qadamlar yaratish

9. Misol: Algoritmni yaxshilash

Vazifa: 100 ta talaba ichidan eng yuqori ballini topish.

Algoritm 1 (sekin):

Har talaba ballini boshqa hammasi bilan taqqoslang.
Eng yuqori bo'lganini ayting.

Amaliyot soni: 100 × 100 = 10,000

Algoritm 2 (tezroq):

Birinchi talabaning ballini eng yuqori deb belgila.
Qolgan 99 ta bilan taqqoslang.
Agar yuqori chiqsa — yangilang.

Amaliyot soni: 99

100x tezroq! Algoritm muhim.

10. Algoritm samaradorligi (Big O — kirish)

Algoritmlar uchun vaqt o'lchovi.

BelgiNomiMisol
O(1)ConstantMassiv'ning birinchi elementini olish
O(log n)LogarithmicBinary search
O(n)LinearLinear search
O(n log n)LinearithmicMerge sort
O(n²)QuadraticBubble sort
O(2^n)ExponentialBrute force

Hozircha

Bu mavzu 5-oyda batafsil. Hozir — faqat tushuncha. Yaxshi algoritm — tez algoritm.

11. Dasturlash tushunchasi

Dasturlash — algoritmni kompyuter tushunadigan tilda yozish.

Dasturlash tillari (qisqacha)

TilFoydalanish
PythonBoshlovchi, AI, ma'lumot tahlili
JavaScriptWeb sayt
C / C++Tizim, o'yin, samaradorlik
JavaKorxona, Android
C#Microsoft, o'yin (Unity)
GoServer, parallel dasturlash
RustTizim, xavfsizlik
SwiftiOS
KotlinAndroid

Foundation'da: Scratch (vizual)CPython.

12. Nima uchun Scratch?

Scratch — vizual dasturlash. MIT Media Lab yaratgan.

Foydalari:

  • Sintaksis xatosi yo'q (bloklar)
  • Vizual va qiziqarli
  • Algoritmik fikrlashga e'tibor
  • 8 yoshli boladan kattalargacha — hamma ishlata oladi

CS50'da ham birinchi hafta — Scratch. Keyin C.

13. CS o'rganish reja (6 oy)

Hozir: algoritmik fikrlash + Scratch + Git/GitHub. Keyingi: real kod (C tilida).

Darsdagi topshiriqlar

Topshiriq 1 — Hayotiy algoritmlar

5 ta kundalik vazifa uchun algoritm yozing (qadamma-qadam):

  1. Tish yuvish
  2. Maktabga / ishga borish
  3. Sendvich tayyorlash
  4. Mashinaga kirib qo'zg'atish
  5. Telefon zaryadlash

Har biri kamida 5–7 qadam. Aniq va tushunarli.

Topshiriq 2 — Eng katta raqam

Quyidagi vazifa uchun pseudocode yozing:

"Sinfdagi 30 ta talabaning ballari berilgan. Ulardan eng katta ball va eng kichik ball ni toping."

Pseudocode shaklida:

SET max = ?
SET min = ?
FOR each ball in ballar:
    IF ball > max:
        ...
    IF ball < min:
        ...
PRINT max
PRINT min

Pseudocode'ni daftarga yozing.

Topshiriq 3 — Ovqat algoritmi

Sevimli ovqatingiz retseptini algoritm shaklida yozing:

  • Kamida 10 qadam
  • Har qadam aniq
  • "Agar..." (shartlar) ham ishlating
  • "X marta takrorlang" (sikllar) ham ishlating

Misol:

Qadam 1: Qozonga suv quy (1 litr)
Qadam 2: Suv qaynaguncha kut
Qadam 3: Tuz qo'sh
Qadam 4: Makaron sol
Qadam 5: 10 daqiqa qaynat
Qadam 6: Agar makaron yumshoq bo'lsa - keyingi qadamga
         Aks holda - 2 daqiqa kut
Qadam 7: Suvini to'k
Qadam 8: Sous quy
...

Topshiriq 4 — Qidiruv algoritmi

1000 sahifali telefon kitobida "Toshpulatov" familiyasini qidirish uchun 2 ta algoritm yozing:

  1. Linear search (sahifa-sahifa)
  2. Binary search (yarim-yarim)

Har biri uchun:

  • Pseudocode
  • Qancha sahifa ochish kerak (taxminan)
  • Qaysi tezroq?

Topshiriq 5 — Decomposition

"Online o'quv markazi sayti yaratish" vazifasini 5–7 ta kichik qismga ajrating.

Har qism — alohida vazifa. Misol:

  • Talabalar ro'yxati
  • O'qituvchilar
  • Darslar
  • ...

Har birini batafsil yozib chiqing (3–4 jumla).

Topshiriq 6 — Algoritmik fikrlash

Hayotiy muammo tanlang va 4 qadam algoritmik fikrlash bilan ishlang:

Muammo misollari:

  • "Vaqtim yetmaydi" — kunlik vazifalarni boshqarish
  • "Pul tejash" — oyiga ma'lum summa tejash
  • "Sport bilan shug'ullanish" — har kuni 30 daqiqa

Tahlil:

  1. Decomposition: Muammoni kichik qismlarga
  2. Pattern recognition: Boshqalar qanday yechgan?
  3. Abstraction: Eng zarur qismlar
  4. Algorithm design: Aniq qadamlar

Asosiy tushunchalar (lug'at)

TerminQisqacha izoh
Computer Science (CS)Kompyuter va hisoblash fani
AlgorithmMuammoni yechish qadamlari
PseudocodeOdam tilida yozilgan dastur tarkibi
InputKiruvchi ma'lumot
OutputChiquvchi ma'lumot
DecompositionBo'laklash
Pattern recognitionO'xshashliklarni topish
AbstractionEng zaruri ajratish
Linear searchKetma-ket qidiruv
Binary searchYarim-yarimga qidiruv
Big OAlgoritm samaradorligi o'lchovi
ProgrammingAlgoritmni kompyuter tilida yozish
ScratchVizual dasturlash dasturi

Keyingi dars

2-dars: Binary sanoq va ma'lumot vakili →

Master IT o'quv markazi — o'qitish rejasi