İ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.
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
-
3 gün
Alqoritmik Düşüncəyə Giriş
Alqoritm nədir, problem-solving yanaşması Pseudocode yazılması Alqoritmlərin analiz edilməsi zərurəti -
1 həftə
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ə
Ə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ı -
2 həftə
Stack, Queue və Hash Table
Stack (LIFO) və real tətbiqləri Queue (FIFO) və Circular Queue Hash Table, hash funksiyaları və collision handling -
1 həftə
Recursion və Backtracking
Recursion prinsipi və base case Recursion vs iteration Backtracking alqoritmləri (N-Queens, Sudoku tipli məsələlər) -
2 həftə
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ə
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 -
1 həftə
Heap və Priority Queue
Min-Heap və Max-Heap Heap Sort alqoritmi Priority Queue-nun praktiki tətbiqləri -
2 həftə
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ə
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) -
1 həftə
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ə
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ı
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.