Fənn · İnformasiya təhlükəsizliyi

Alqoritmlər və verilənlər strukturlarıSillabus

İFS-2226yn6 kreditPayız semestriSeçmə2

Sillabus

Fənnin rəsmi proqramı: ümumi məlumat, təlim nəticələri, mövzu planı, ədəbiyyat və qiymətləndirmə.

Ümumi məlumat

Fənn kodu
İFS-2226yn
Kredit
6
Tələbənin iş yükü
135
Semestr
Payız semestri
Akademik il
2
Fənnin tipi
Seçmə
Təhsil forması
Əyani
Tədris dili
Azərbaycan
Auditoriyadaxili saatlar
a) 15 saat - mühazirə b) 15 saat - seminar c) 15 saat - laboratoriya
Auditoriyadan kənar saatlar
a) 60 saat – sərbəst iş b) 75 saat- layihə işi və ya məsləhət saatı

Fənn haqqında

Fənn tələbələrdə alqoritmik düşüncə, problemlərin sistemli həlli və səmərəli proqram həllərinin hazırlanması üzrə nəzəri bilik və praktiki bacarıqların formalaşdırılmasını nəzərdə tutur. Fənn çərçivəsində alqoritmlərin əsas prinsipləri, xüsusiyyətləri və təsnifatı, eləcə də zaman və məkan mürəkkəbliyinin təhlili öyrənilir. Massivlər, siyahılar, yığınlar, növbələr, bağlı siyahılar, ağaclar və qraflar kimi əsas verilənlər strukturları və onların alqoritmlərlə qarşılıqlı əlaqəsi nəzərdən keçirilir. Tələbələr sıralama, axtarış, qraf və ən qısa yol alqoritmləri ilə, həmçinin böl və idarə et, acgöz yanaşma, dinamik proqramlaşdırma və geriyə qayıtma kimi əsas alqoritmik strategiyalarla tanış olurlar. Fənn tələbələrdə verilmiş problemin xüsusiyyətlərini təhlil etmək, uyğun verilənlər strukturunu və alqoritmik yanaşmanı seçmək, alqoritmlərin effektivliyini qiymətləndirmək və optimallaşdırılmış həllər hazırlamaq bacarıqlarının inkişaf etdirilməsinə yönəlmişdir.

Tədris metodları

  • mühazirə
  • laboratoriya işi
  • seminar
  • təqdimatlar
  • problem-based learning
  • interaktiv müzakirə
  • case study
  • komanda işi
  • layihə əsaslı öyrənmə

Fənn təlim nəticələri (CLO)

  1. CLO 1: Alqoritmlərin əsas anlayışları, xüsusiyyətləri, təsvir üsulları, mürəkkəblik anlayışı və verilənlərin strukturlarının növləri barədə fundamental biliklərə yiyələnməlidir.

  2. CLO 2: Xətti və qeyri-xətti verilənlər strukturlarını (massivlər, əlaqəli siyahılar, yığınlar, növbələr, ağaclar, qraflar, hash cədvəlləri və s.) bilməli, onların tətbiq sahələrini fərqləndirməli və uyğun strukturu seçmək bacarığına malik olmalıdır.

  3. CLO 3: Axtarış, sıralama, rekursiya, qraf və ağac alqoritmləri kimi əsas alqoritmlərin iş prinsiplərini bilməli, onların vaxt və yaddaş mürəkkəbliyini təhlil etməli və müqayisə etməlidir.

  4. CLO 4: Müxtəlif proqramlaşdırma dillərində alqoritmləri və verilənlər strukturlarını layihələndirmək, reallaşdırmaq, test etmək və optimallaşdırmaq bacarıqlarını əldə etməlidir.

  5. CLO 5: Hesablama məsələlərinin həlli üçün uyğun alqoritm və verilənlər strukturunu seçməli, alqoritmlərin səmərəliliyini qiymətləndirməli və praktik problemlərin həllində tətbiq etməlidir.

  6. CLO 6: Alqoritmik düşünmə, problem həll etmə və proqram təminatının hazırlanması prosesində müasir alqoritmik yanaşmaları tətbiq etməli, müxtəlif həll üsullarını müqayisə edərək optimal həlli əsaslandırmaq bacarığına malik olmalıdır.

Mövzu planı

  1. 1.
    Alqoritmlərə və verilənlər strukturlarına giriş. Alqoritmik həll olunmayan məsələlərMühazirə

    Mövzu çərçivəsində alqoritmlərin əsas xüsusiyyətləri və verilənlər strukturlarının əsas növləri öyrənilir. Alqoritmlərlə verilənlər strukturları arasındakı əlaqə və uyğun verilənlər strukturunun seçilməsinin alqoritmin səmərəliliyinə təsiri nəzərdən keçirilir. Alqoritmik həll olunmayan məsələlər anlayışı və bütün hesablama problemlərinin alqoritmik üsullarla həll edilməsinin mümkün olmaması məsələsi izah edilir. Həmçinin rekursiya anlayışı, rekursiv çağırışların iş prinsipi və müxtəlif problemlərin həllində tətbiqi araşdırılır. Rekursiv alqoritmlərin qurulması və uyğun həll nümunələri vasitəsilə onların işləmə məntiqi təhlil edilir.

  2. 2.
    Verilənlər strukturlarıMühazirə

    Mövzu çərçivəsində verilənlərin yaddaşda təşkili, saxlanılması və emalı üçün istifadə olunan əsas verilənlər strukturları öyrənilir. Massivlərin və siyahıların quruluşu, elementlərə müraciət, əlavə etmə, silmə və axtarış əməliyyatlarının əsas xüsusiyyətləri nəzərdən keçirilir. Stack və növbə strukturlarının işləmə prinsipləri, müvafiq olaraq LIFO və FIFO yanaşmaları və əsas tətbiq sahələri izah edilir. Həmçinin əlaqəli siyahıların quruluşu, düyün və əlaqə anlayışları, birtərəfli və ikitərəfli əlaqəli siyahıların əsas xüsusiyyətləri və digər verilənlər strukturlarından fərqləri araşdırılır.

  3. 3.
    Alqoritmlərdə optimallaşdırma və paralelləşdirməMühazirə

    Mövzu çərçivəsində alqoritmlərin səmərəliliyinin qiymətləndirilməsi, optimallaşdırılması və paralel icrası prinsipləri öyrənilir. Alqoritmlərin zaman və məkan mürəkkəbliyinin təhlili, giriş verilənlərinin ölçüsündən asılı olaraq hesablama resurslarına tələbatın qiymətləndirilməsi məsələləri nəzərdən keçirilir. Big O, Omega və Theta işarələmələri vasitəsilə alqoritmlərin asimptotik davranışının təhlili izah edilir. Paralel alqoritmlərin hazırlanması, hesablamaların paralel tapşırıqlara bölünməsi və əsas paralel işləmə modelləri araşdırılır. Həmçinin böyük həcmli verilənlərin paylanmış şəkildə emalı üçün MapReduce yanaşması və paralel hesablama mühitlərində istifadə olunan verilənlər strukturlarının əsas xüsusiyyətləri nəzərdən keçirilir.

  4. 4.
    Alqoritmlərin qurulmasına yanaşmalarMühazirə

    Mövzu çərçivəsində müxtəlif problemlərin həlli üçün alqoritmlərin qurulmasında istifadə olunan əsas yanaşmalar öyrənilir. Mürəkkəb məsələlərin daha kiçik alt məsələlərə bölünərək həll edilməsinə əsaslanan böl və idarə et yanaşması nəzərdən keçirilir. Hər mərhələdə cari vəziyyət üçün ən uyğun seçimin edilməsinə əsaslanan acgöz yanaşmanın iş prinsipi və tətbiq xüsusiyyətləri izah edilir. Təkrarlanan alt məsələlərin nəticələrinin saxlanılması və yenidən istifadə edilməsinə əsaslanan dinamik proqramlaşdırma yanaşması araşdırılır. Həmçinin mümkün həll variantlarının sistemli şəkildə yoxlanılması və uyğun olmayan seçimlərdən geri qayıdılması prinsipinə əsaslanan geriyə qayıtma yanaşması nəzərdən keçirilir.

  5. 5.
    Sıralama və axtarış alqoritmləriMühazirə

    Mövzu çərçivəsində verilənlərin axtarılması və müəyyən ardıcıllıqla təşkil edilməsi üçün istifadə olunan əsas alqoritmlər öyrənilir. Xətti və binar axtarış alqoritmlərinin işləmə prinsipləri, tətbiq şərtləri və səmərəliliyi nəzərdən keçirilir. Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort və Heap Sort kimi əsas sıralama alqoritmlərinin iş məntiqi və xüsusiyyətləri izah edilir. Heapsort və TimSort yanaşmalarında istifadə olunan optimallaşdırma prinsipləri araşdırılır. Müxtəlif sıralama və axtarış alqoritmləri zaman və məkan mürəkkəbliyi, sabitlik, verilənlərin həcmi və strukturu baxımından müqayisəli şəkildə təhlil edilir. Həmçinin axtarış ağaclarının səmərəliliyinin artırılması və axtarış əməliyyatlarının optimallaşdırılması prinsipləri nəzərdən keçirilir.

  6. 6.
    Acgöz alqoritmlər. Dinamik proqramlaşdırmaMühazirə

    Acgöz (Greedy) alqoritmlərin əsas prinsipləri, lokal optimal seçimin edilməsi və bu seçimin qlobal optimal həllə gətirib çıxarması şərtləri araşdırılır. Minimum örtü, interval seçimi, kəsrli bel çantası və digər optimallaşdırma məsələlərinin həllində acgöz yanaşmanın tətbiqi öyrənilir.Dinamik proqramlaşdırmanın əsas prinsipləri, alt məsələlərə bölmə, təkrarlanan alt məsələlərin müəyyənləşdirilməsi və optimal altstruktur xüsusiyyəti araşdırılır. Memoizasiya və cədvəlləşdirmə (tabulation) yanaşmaları və onların optimallaşdırma məsələlərində tətbiqi öyrənilir.

    • • CLO1: Explains the key characteristics of the main periods of Azerbaijani history.
    • • CLO3: Develops an objective position on relevant historical issues.
    • • CLO2: Clarifies selected controversial issues in Azerbaijani history.
    • • CLO4: Demonstrates the required basic knowledge and formulates independent views on course topics.
    • • CLO5:Relates Azerbaijan's ancient history to the modern era.
  7. 7.
    Qraf alqoritmləri. Ən qısa yolun tapılması alqoritmləriMühazirə

    Mövzu çərçivəsində qraf nəzəriyyəsinin əsas anlayışları və qraf strukturları üzərində istifadə olunan əsas alqoritmlər öyrənilir. Təpə, kənar, istiqamətlənmiş və istiqamətlənməmiş qraf, çəkili qraf və əlaqəlilik kimi əsas anlayışlar nəzərdən keçirilir. Qrafların dərinliyə axtarış (DFS) və eninə axtarış (BFS) üsulları ilə keçilməsi və bu alqoritmlərin tətbiq sahələri izah edilir. Qraf üzərində ən qısa yolun müəyyən edilməsi problemi, Deykstra və A* axtarış alqoritmlərinin işləmə prinsipləri və tətbiq xüsusiyyətləri araşdırılır. Həmçinin bütün təpə cütləri arasında ən qısa yolların hesablanması üçün Floyd–Warshall alqoritmi, eləcə də bu alqoritmin dinamik proqramlaşdırma ilə əlaqəli optimal altstruktur və üst-üstə düşən altməsələlər prinsipləri nəzərdən keçirilir.

Ədəbiyyat

  1. Steven S. Skiena – The Algorithm Design Manual (Springer, 3rd Edition, 2020)
  2. Robert Sedgewick, Kevin Wayne – Algorithms (Addison-Wesley, 4th Edition, 2011)
  3. GeeksforGeeks(yeni pəncərədə açılır)
  4. Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to algorithms (3rd ed.). MIT Press.
  5. Skiena, S. S. (2020). The algorithm design manual (3rd ed.). Springer.
  6. Sedgewick, R., & Wayne, K. (2011). Algorithms (4th ed.). Addison-Wesley Professional.
  7. Miller, B. N., & Ranum, D. L. (2014). Problem solving with algorithms and data structures using Python. Franklin, Beedle & Associates.
  8. Courses / Resources(yeni pəncərədə açılır)
  9. https://leetcode.com/(yeni pəncərədə açılır)
  10. https://www.geeksforgeeks.org/%20-%20DSA%20Tutorial%20/%20Quizzes%20/(yeni pəncərədə açılır)
  11. Https://visualgo.net/en
  12. https://visualgo.net/en(yeni pəncərədə açılır)

Qiymətləndirmə

Qiymətləndirmə formasıAçıqlamaBalUyğun FTN
Cari qiymətləndirməCari qiymətləndirmə - fənn üzrə tələbənin semestr müddətində fəaliyyətinin qiymətləndirilməsi olmaqla, mühazirə və məşğələ (laboratoriya) dərs materiallarının mənimsənilmə səviyyəsini qiymətləndirilir.30 balFTN 1-7
DavamiyyətTələbə fənn üzrə dərslərin 25%-dən çoxunda iştirak etmədiyi halda imtahana buraxılmır.10 bal-
Tələbənin sərbəst işiTələbəyə fənn üzrə semestr ərzində 1 sərbəst işin (zəruri hallarda sərbəst işlərin sayı artırıla bilər) yerinə yetirilməsi tapşırığı verilir.10 balFTN--
İmtahanİmtahan şifahi, yazılı, yazılı-elektron, test üsulu ilə keçirilir50 balFTN 1-7