İT və Proqramlaşdırma

Alqoritma və Data Strukturları təlimi

Big O analizindən sıralama/axtarış alqoritmlərinə, ağac və qraf strukturlarından dinamik proqramlaşdırmaya qədər texniki müsahibəyə hazırlıq məqsədli praktiki alqoritma təlimi.

Həm əyani, həm onlayn — Bakı Orta 4 ay Azərbaycan dili 90 dəq/dərs Həftədə 3 dəfə

Big O, sıralama/axtarış alqoritmləri, ağaclar, qraflar və dinamik proqramlaşdırmanı əhatə edən texniki müsahibəyə hazırlıq kursu. Bakıda və onlayn. Alqoritma və Data Strukturları təlimi SmartEdu tərəfindən Bakıda əyani və onlayn formada keçirilən 4 aylıq, orta səviyyəli kursdur. Dərslər həftədə 3 dəfə, hər dəfə 90 dəqiqə keçirilir. İlk 2 dərs pulsuz sınaq dərsidir. Proqram 12 modulu və 39 mövzunu əhatə edir.

Kurs haqqında

Alqoritma və Data Strukturları təlimi, istənilən proqramlaşdırma istiqamətində (backend, frontend, data science və s.) texniki müsahibələrdə uğur qazanmaq üçün lazım olan bütün əsas bilik və bacarıqları əhatə edən tam praktiki bir proqramdır. Kurs alqoritmik düşüncə və Big O notasiyasından başlayaraq əsas data strukturlarını (array, linked list, stack, queue, hash table), recursion və backtracking-i, sıralama və axtarış alqoritmlərini, ağac strukturlarını (BST, AVL/Red-Black icmalı), heap/priority queue-nu, qraf alqoritmlərini (BFS/DFS, Dijkstra, MST), həmçinin dinamik proqramlaşdırma və greedy alqoritmləri ardıcıl şəkildə əhatə edir. Hər mövzu nəzəri izahla yanaşı, real kodlaşdırma məsələləri üzərində praktiki tapşırıqlarla möhkəmləndirilir. Nümunələr Python dilində göstərilir, lakin konsepsiyalar universal olduğu üçün istənilən dildə (Java, C++ və s.) tətbiq edilə bilər. Kurs xüsusilə LeetCode/HackerRank tipli məsələlərin həlli texnikasına və böyük texnologiya şirkətlərinin texniki müsahibə formatına hazırlığa fokuslanır. Kursun sonunda tələbələr real alqoritmik məsələlər üzərində kompleks həllər hazırlayır, vaxt/yaddaş mürəkkəbliyini qiymətləndirir və kodlarını optimallaşdırırlar. Bu yanaşma, kursu bitirən tələbələrin texniki müsahibələrdə və real iş mühitində mürəkkəb problemləri effektiv şəkildə həll etməsini təmin edir.

Nələri öyrənəcəksiniz

  • Alqoritmlərin zaman/yaddaş mürəkkəbliyini Big O notasiyası ilə qiymətləndirmək
  • Array, Linked List, Stack, Queue və Hash Table strukturlarını tətbiq etmək
  • Recursion və backtracking ilə mürəkkəb məsələləri həll etmək
  • Əsas sıralama alqoritmlərini (Merge/Quick Sort) tətbiq edib müqayisə etmək
  • Binary Search və Binary Search Tree əməliyyatlarını həyata keçirmək
  • Heap/Priority Queue strukturlarından istifadə etmək
  • BFS/DFS və Dijkstra kimi qraf alqoritmlərini tətbiq etmək
  • Dinamik proqramlaşdırma ilə optimallaşdırma məsələlərini həll etmək
  • Greedy alqoritmlərin nə vaxt tətbiq oluna biləcəyini müəyyənləşdirmək
  • LeetCode/HackerRank tipli alqoritmik məsələləri effektiv həll etmək
  • Texniki müsahibələr üçün alqoritmik problem-solving bacarıqlarını nümayiş etdirmək
  • Real alqoritmik məsələlər üzərində optimal həllər dizayn etmək

Tələblər

  • Ən azı bir proqramlaşdırma dilinin əsaslarını bilmək (Python, Java, C++ və ya oxşar) — dəyişən, dövr, funksiya səviyyəsində
  • Riyaziyyata qarşı ümumi maraq və məntiqi düşünmə bacarığı
  • Windows, macOS və ya Linux əməliyyat sistemi olan kompüter/noutbuk
  • Kursa həftədə minimum 8-10 saat vaxt ayıra bilmək (praktika tələb edən bir kursdur)
  • Problem həllində səbir və sistemli yanaşma
  • Texniki müsahibəyə hazırlaşmaq motivasiyası (kursun əsas məqsədlərindən biridir)

Kurikulum

  1. Alqoritmik Düşüncəyə Giriş

    Alqoritm nədir, problem-solving yanaşması Pseudocode yazılması Alqoritmlərin analiz edilməsi zərurəti
    3 gün
  2. Mürəkkəblik Analizi: Big O Notasiyası

    Zaman və yaddaş mürəkkəbliyi Big O, Big Theta, Big Omega Ən çox rast gəlinən mürəkkəblik sinifləri (O(1), O(log n), O(n), O(n log n), O(n²))
    1 həftə
  3. Əsas Data Strukturları: Array və Linked List

    Array-lərin yaddaşda təşkili Singly və Doubly Linked List Array vs Linked List seçim meyarları
    1 həftə
  4. Stack, Queue və Hash Table

    Stack (LIFO) və real tətbiqləri Queue (FIFO) və Circular Queue Hash Table, hash funksiyaları və collision handling
    2 həftə
  5. Recursion və Backtracking

    Recursion prinsipi və base case Recursion vs iteration Backtracking alqoritmləri (N-Queens, Sudoku tipli məsələlər)
    1 həftə
  6. Sıralama Alqoritmləri

    Bubble, Selection və Insertion Sort Merge Sort və Quick Sort (divide and conquer) Sıralama alqoritmlərinin mürəkkəblik müqayisəsi
    2 həftə
  7. Axtarış Alqoritmləri və Ağac Strukturları

    Linear və Binary Search Binary Search Tree (BST) əməliyyatları Ağacın gəzilməsi (traversal): in-order, pre-order, post-order Balanslaşdırılmış ağaclara (AVL, Red-Black) icmal
    2 həftə
  8. Heap və Priority Queue

    Min-Heap və Max-Heap Heap Sort alqoritmi Priority Queue-nun praktiki tətbiqləri
    1 həftə
  9. Qraflar və Qraf Alqoritmləri

    Qraf təsviri (adjacency list/matrix) BFS (Breadth-First Search) və DFS (Depth-First Search) Dijkstra alqoritmi (ən qısa yol) Minimum Spanning Tree (Kruskal/Prim)
    2 həftə
  10. Dinamik Proqramlaşdırma (Dynamic Programming)

    Overlapping subproblems və optimal substructure Memoization və tabulation yanaşmaları Klassik DP məsələləri (Knapsack, Fibonacci, Longest Common Subsequence)
    2 həftə
  11. Greedy Alqoritmlər və Problem-Solving Praktikası

    Greedy yanaşmanın prinsipləri və tətbiq sahələri LeetCode/HackerRank tipli məsələlərin həlli texnikası Texniki müsahibə formatına hazırlıq
    1 həftə
  12. Yekun Layihə

    Real alqoritmik məsələlər üzərində kompleks həllər Vaxt/yaddaş mürəkkəbliyinin qiymətləndirilməsi Kod icmalı və optimallaşdırma Nəticələrin təqdimatı
    1 həftə

Tez-tez verilən suallar

Kursda nümunələr Python dilində göstərilir, lakin konsepsiyalar universal olduğu üçün Java, C++ və ya digər dillərdə də tətbiq edə bilərsiniz. Əsas tələb, dəyişən, dövr və funksiya səviyyəsində proqramlaşdırma bilgisidir.

Bəli, kurs məhz bu məqsədlə dizayn olunub — böyük texnologiya şirkətlərinin texniki müsahibələrində soruşulan alqoritm və data struktur mövzularını əhatə edir.

Data strukturları verilənlərin necə təşkil olunduğunu (array, ağac, qraf və s.), alqoritmlər isə həmin strukturlar üzərində məsələləri necə həll etdiyimizi öyrədir. Kurs hər ikisini bir yerdə, əlaqəli şəkildə tədris edir.

Bu kurs müstəqil bir vəzifə deyil, əksinə istənilən proqramlaşdırma sahəsində (backend, frontend, data science və s.) texniki müsahibələrdə uğur qazanmaq üçün əlavə bir bacarıq dəstidir.

Kurs hibrid formatdadır — istəyinizə görə Bakıdakı ofisimizdə əyani, yaxud onlayn iştirak edə bilərsiniz.

Kursun sonunda tələbələr real alqoritmik məsələlər üzərində kompleks həllər hazırlayıb, mürəkkəblik analizi ilə birlikdə təqdim edirlər.