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

Algorithms and Data StructuresMövzu planı

IFS-2226yn-EN6 kreditPayız semestriSeçmə2

Mövzu planı

Fənn üzrə mövzular və hər mövzunun təlim nəticələri.

7 mövzu
  1. 1. Introduction to Algorithms and Data Structures. Undecidable Problems

    Mühazirə

    This topic introduces the fundamental characteristics of algorithms and the main types of data structures. The relationship between algorithms and data structures and the impact of selecting an appropriate data structure on algorithm efficiency are examined. The concept of algorithmically undecidable problems and the impossibility of solving all computational problems using algorithmic methods are explained. The concept of recursion, the operating principles of recursive calls, and their applications in solving various problems are also examined. The logic of recursive algorithms is analyzed through the construction of recursive solutions and relevant examples.

  2. 2. Data Structures

    Mühazirə

    This topic covers the fundamental data structures used for organizing, storing, and processing data in memory. The structure of arrays and lists, as well as the fundamental characteristics of accessing, inserting, deleting, and searching for elements, are examined. The operating principles of stack and queue structures, the LIFO and FIFO approaches, respectively, and their main areas of application are explained. The structure of linked lists, the concepts of nodes and links, and the fundamental characteristics of singly and doubly linked lists are also examined and compared with other data structures.

  3. 3. Optimization and Parallelization in Algorithms

    Mühazirə

    This topic covers the principles of evaluating, optimizing, and executing algorithms in parallel. The analysis of time and space complexity and the assessment of computational resource requirements depending on the size of input data are examined. The asymptotic behavior of algorithms is analyzed using Big O, Omega, and Theta notations. The development of parallel algorithms, the division of computations into parallel tasks, and fundamental parallel processing models are examined. The MapReduce approach for distributed processing of large-scale data and the fundamental characteristics of data structures used in parallel computing environments are also discussed.

  4. 4. Approaches to Algorithm Design

    Mühazirə

    This topic covers the fundamental approaches used to design algorithms for solving various problems. The divide-and-conquer approach, which solves complex problems by dividing them into smaller subproblems, is examined. The operating principles and application characteristics of the greedy approach, which selects the most appropriate option at each stage, are explained. Dynamic programming, which is based on storing and reusing the results of overlapping subproblems, is examined. The backtracking approach, which systematically explores possible solutions and returns from unsuitable choices, is also discussed.

  5. 5. Sorting and Searching Algorithms

    Mühazirə

    This topic covers the fundamental algorithms used for searching and organizing data in a specific order. The operating principles, application conditions, and efficiency of linear and binary search algorithms are examined. The logic and characteristics of major sorting algorithms, including Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, and Heap Sort, are explained. Optimization principles used in Heapsort and TimSort are examined. Different sorting and searching algorithms are comparatively analyzed in terms of time and space complexity, stability, data size, and data structure. The principles of improving the efficiency of search trees and optimizing search operations are also examined.

  6. 6. Greedy Algorithms. Dynamic Programming

    Mühazirə

    The fundamental principles of greedy algorithms, local optimal selection, and the conditions under which such a selection leads to a globally optimal solution are examined. The application of greedy approaches to optimization problems such as minimum spanning trees, interval scheduling, the fractional knapsack problem, and other related problems is studied.The fundamental principles of dynamic programming, decomposition into subproblems, identification of overlapping subproblems, and the optimal substructure property are examined. Memoization and tabulation approaches and their applications to optimization problems are studied.

  7. 7. Graph Algorithms. Shortest Path Algorithms

    Mühazirə

    This topic covers the fundamental concepts of graph theory and the main algorithms used for operating on graph structures. Basic concepts such as vertices, edges, directed and undirected graphs, weighted graphs, and connectivity are examined. Graph traversal using Depth-First Search (DFS) and Breadth-First Search (BFS), as well as the application areas of these algorithms, are explained. The shortest-path problem, the operating principles and application characteristics of Dijkstra's and A* search algorithms are explored. In addition, the Floyd–Warshall algorithm for calculating shortest paths between all pairs of vertices is examined, along with its relationship to dynamic programming and the principles of optimal substructure and overlapping subproblems.