WORLD GATEWAY EDUCATION AGENCY WORLD GATEWAY EDUCATION AGENCY
Axborot texnologiyalari va menejment universiteti

Kiberxavfsizlik injiniringi

Bakalavr Kunduzgi 4 yil

Dastur haqida

I. Fanning mazmuni

Fanni o’qitishdan maqsad – talabalarga dasturlashda qo‘llaniladigan ma’lumotlar tuzilmalari, ularning spetsifikatsiyasi va amalga oshirilishi bo’yicha bilimlarning nazariy asoslarini, ma’lumotlarni qayta ishlash algoritmlari va bu algoritmlarni tahlil qilish, algoritmlar va ma’lumotlar strukturalarining o‘zaro bog‘liqligini o’rgatish hamda ularni amaliyotda tadbiq etish ko’nikmasini hosil qilishdan iborat.

Fanning vazifasi – algoritmlar va ma'lumotlar tuzilmalarini ishlab chiqish, abstrakt ma'lumotlar modeli yordamida murakkab ma'lumotlar tuzilmalarini qurish va ulardan foydalanish jarayonlariga uslubiy yondoshuv hamda ilmiy dunyoqarashni shakllantirish, algoritmlarning asosiy sinflari, ularda qo'llaniladigan ma'lumotlar tuzilmalari va ular asosidagi masalalarni yechishning umumiy metodlari va ularning mazmun-mohiyatini, algoritmlar va dasturlarning murakkabligini tahlil qilishning o’rni va ahamiyatini ochib berish.

II. Asosiy nazariy qism (maʼruza mashgʻulotlari)

Fan tarkibiga quyidagi mavzular kiradi:

1-mavzu. Ma’lumotlar turlari va algoritmlari. Ma’lumotlarning abstrakt tuzilmalari. Algoritmlarni ishlab chiqish va tahlil qilish. Ma’lumotlar va ularni ifodalash bosqichlari. Ma’lumotlar tuzilmasining klassifikatsiyasi. Ma'lumotlarning sozlangan turlari: massivlar, vectorlar, yozuvlar , to‘plamlar va ko‘rsatkichli turlar.

2-mavzu. Rekursiya va uni dasturlashda qo’llash. Ma’lumotlarni qidirish algoritmlari. Rekursiv algoritmlar, ularning tahlili. Rekursiyaga doir misollar. Qidiruv tushunchasi va uning vazifasi. Chiziqli qidiruv. Binar qidiruv. Qidirish usullari samaradorligi va optimallashtirish.

3-mavzu. Ma’lumotlarni xeshlash algoritmlari. Ma'lumotlarni saralash algoritmlari. Xesh jadval va xesh funksiyalari. Saralash tushunchasi va uning vazifasi. Saralashning qat’iy usullari.

4-mavzu. Ma'lumotlarni saralash algoritmlari. Chiziqli ma’lumotlar tuzilmalari. Saralashning yaxshilangan usullari. Statik va dinamik massivlar. Chiziqli konteynerlar.  Iteratorlar va ularning turlari.

5-mavzu. Chiziqli bog‘langan ro‘yxatlar. Bog‘langan ro‘yxatlar haqida tushunchalar. Chiziqli bog‘langan ro‘yhatlarni mantiqiy tasvirlash. Ikki bog‘lamli ro‘yxatlar.

6-mavzu. Stek, navbat va deklar. Stek, navbat va deklarni massiv yordamida tasvirlash. Stek, navbat va deklarni chiziqli bog‘langan ro‘yhat yordamida tasvirlash. Ustivor navbatlar. Lug‘atlar va ularni amalga oshirish.

7-mavzu. Daraxtsimon maʻlumotlar tuzilmalari. Binar qidiruv daraxti.  Daraxtsimon ma’lumot tuzilmalari taʻriflari va xususiyatlari. Daraxtlar klassifikatsiyasi.  Daraxt ko‘ruvi. Binar qidiruv daraxtiga element qo‘shish, element o‘chirish va qidiruv algoritmlari. Muvozanatlangan binar daraxtlar. Muvozanatlash algoritmlari: muvozanatlashning umumiy va hususiy algoritmlari. AVL daraxti.

8-mavzu. Heap tree ko‘rinishidagi binar daraxtlar. Heap tree tuzilmasi tavsifi. Heap tree ustida amal bajarish algoritmlari. Heap treeni tashkil etish usullari va samaradorligi.

9-mavzu. Graflar bilan ishlash algoritmlari. Graflarni tasvirlash usullari: qo’shma matritsa va munosabat matritsasi. Qo‘shnilik ro‘yxati va yoylar ro‘yxati.

III. Amaliy mashg’ulotlar bo‘yicha ko‘rsatma va tavsiyalar:

Amaliy mashgulotlar uchun quyidagi mavzular tavsiya etiladi:

1. Ma’lumotlarning har xil turlarini qayta ishlash dasturlarini tuzish. Algoritmlarning turlari.

2. Umumiy ko’rinishdagi ma’lumotlar tuzilmalarini hosil qilish.

3. Rekursiv misollarni tahlil qilish. Rekursiv algoritmlarni dasturini ishlab chiqish.

4. Ma’lumotlarni qidirish  algoritmlar va dasturlarini ishlab chiqish.

5. Ma’lumot tuzilmalarini xeshlash algoritmlari yordamida hosil qilish.

6. Ma’lumotlarni saralash algoritmlar va dasturlarini ishlab chiqish.

7. Chiziqli ma’lumotlar tuzilmalarini qayta ishlash va dasturlarini tuzish.

8. Chiziqli bog‘langan ro‘yxatlar bilan ishlash algoritmlari va dasturlarini tuzish.

9. Stek, navbat va dek bilan ishlash algoritmlari va dasturlarini tuzish.

10. Daraxtsimon ma’lumotlar tuzilmalarini qayta ishlash va dasturlarini tuzish.

11. Binar daraxtlar bilan ishlash algoritmlari.

12. Heap tree ko’rinishidagi binar daraxtlar bilan ishlash algoritmlari.

13. Graflarni ko’ruv algoritmlarini ishlab chiqish.

14. Berilgan grafni mantiqiy tasvirlash usullari.

15. Graflarda eng qisqa yo’lni aniqlash algoritmlari va dasturlarini tuzish.

IV. Mustaqil ta'lim va mustaqil ishlar

Talaba mustaqil ishining asosiy maqsadi o'qituvchining rahbarligi va nazoratida muayyan o'quv ishlarini mustaqil ravishda bajarish uchun bilim va ko'nikmalarini shakllantirish va rivojlantirishdir

Talabalar bo'yicha axborot referatlar:

• turi bilimlarni amalda qo'llash;

• maket, model vannalar yaratish ilmiy maqola.

 

Mustaqil ta’lim uchun tavsiya etiladigan mavzular:

1. Ma’lumotlar, algoritmlar va ma’lumotlar tuzilmasi tushunchalari.

2. Ma’lumotlarni ifodalash bosqichlari. Ma’lumotlar toifalari.

3. Ma'lumotlarning sozlangan turlari: massivlar, vectorlar, yozuvlar , to‘plamlar va ko‘rsatkichli turlar.

4. Ma’lumotlarni qidirish usullari, algoritmlari va ularning samaradorligi. Qidiruv tushunchasi va uning vazifasi.

5. Ma'lumotlarni saralash algoritmlari. Saralash tushunchasi va uning vazifasi.

6. Bog‘langan ro‘yxatlar klassifikatsiyasi, Chiziqli bog‘langan ro‘yhatlarni mantiqiy tasvirlash.

7. Stek. Stekni massiv yordamida tasvirlash va ular ustida amal bajarish algoritmlari.

8. Navbat. Navbatni massiv yordamida tasvirlash va ular ustida amal bajarish algoritmlari.

9. Dek. Dekni massiv yordamida tasvirlash va ular ustida amal bajarish algoritmlari.

10. Stek, navbat va dek. Stek, navbat va deklarni chiziqli bog‘langan ro‘yhat yordamida tasvirlash va ular ustida amal bajarish algoritmlari.

11. Muvozanatlash algoritmlari: muvozanatlashning umumiy va hususiy algoritmlari.

12. Graflarda eng qisqa yo‘lni aniqlash masalalari. Graflarda eng qisqa yo‘lni aniqlash algoritmlar tahlili.

13. Graflarda eng qisqa yo‘lni aniqlashning Ford – Belmann.

14. Graflarda eng qisqa yo‘lni aniqlashning Deykstra algoritmlari.

V. Fan o'qitilishining natijalari (shakllanadigan kompetensiyalar).

  • ma’lumotlar tuzilmasi va algoritmlar, ma’lumotlar tuzilmasini tashkil etish bosqichlari, algoritmlarning samaradorligi, klasslar va shablonlar yordamida yangi tuzilmalar yaratish, dasturlashning turli muhitlarida ishlash, murakkab dasturiy ta’minotlarni yaratish to’g’risida tasavvurga ega bo’lish; (bilim)
  • ma’lumot turli, ma’lumotlarni qidirish, saralash, xeshlashtirish algoritm va usullarini, ma’lumotlar tuzilmalari va ular ustida amal bajarishda dasturiy amalga oshirish bilishi va ulardan foydalana olishi; (ko’nikma)
  • masalaning qo’yilishiga qarab yangi ma’lumotlar tuzilmasini ishlab chiqish hamda o’quv va ishlab chiqarish jarayoniga tadbiq etish ko’nikmalariga ega bo’lishi kerak. (malaka)

VI. Ta'lim texnologiyalari va metodlari:

• ma’ruzalar

• intefaol keys-stadionlar:

• amaliy (mantiqiy fikrlash, tezkor savol-javoblar)

• kichik guruhlarda ishlash

• taqdimotlarni qilish

• individual loyihalar

• jamoa bo'lib ishlash va himoya qilish uchun loyihalar tayyorlash aqliy hujum va boshqalar

VII. Kreditlarni olish uchun talablar:

Fanga oid nazariy va uslubiy tushunchalarni to‘la o‘zlashtirish, tahlil natijalarini to‘g‘ri aks ettira olish, o‘rganilayotgan jarayonlar haqida mustaqil mushohada yuritish va joriy, oraliq nazorat shakllarida berilgan vazifa va topshiriqlarni bajarish, yakuniy nazorat ishini topshirish.

Asosiy adabiyotlar

  1. B. A. Turg‘unov, X. X. Uzoqov - "Ma’lumotlar tuzilmalari va dasturlash" (2017).
  1. Sh. F. G‘ulomov - "Algoritmlar va dasturlash texnologiyalari" (2015).

Qo‘shimcha adabiyotlar

  1. X. A. Raximov, I. I. Xasanov - "Ma’lumotlar tuzilmalari va algoritmlar" (2018)
  1. A. X. Xolmirzaev, Sh. S. Qayumov - "Dasturlash va algoritmlar asoslari" (2016)
  1. A. Sh. Mamadiev - "Dasturlash va ma’lumotlar tuzilmalari" (2020)
  1. M. T. Qayumov - "Algoritmlar va ularni dasturda qo‘llash" (2014)
  1. Adam Drozdek - "Data Structures and Algorithms in C++" (Fourth Edition, 2013)
  1. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein - "Introduction to Algorithms" (Third Edition, 2009)
  1. Robert Sedgewick, Kevin Wayne - "Algorithms" (Fourth Edition, 2011)
  1. Mark Allen Weiss - "Data Structures and Algorithm Analysis in C++" (Fourth Edition, 2013)
  1. Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser - "Data Structures and Algorithms in Java" (Sixth Edition, 2014)
  1. Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman - "Data Structures and Algorithms" (1983)

Internet manbaalari

1.https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256

2.https://leetcode.com/

3.https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/

5.https://www.coursera.org/courses?query=data%20structures%20and%20algorithms

6. https://www.khanacademy.org/computing/computer-science/algorithm

O'xshash dasturlar