Subject · Information security

Algorithms and data structuresTopics

İFS-2226yn6 creditsAutumn semesterElective2

Topic plan

The subject's topics and the learning outcomes attached to each one.

7 topics
  1. 1. Introduction to algorithms and data structures. algorithmically unsolvable problems

    Lecture

    The main characteristics of algorithms and the main types of data structures are studied within the subject. the relationship between algorithms and data structures and the effect of choosing an appropriate data structure on algorithm efficiency are considered. the concept of algorithmic intractable problems and the issue of the impossibility of solving all computational problems by algorithmic methods are explained. the concept of recursion, the working principle of recursive calls and their application in solving various problems are also examined. the logic of their operation is analyzed through the construction of recursive algorithms and suitable solution examples.

  2. 2. Data structures

    Lecture

    The main data structures used for organizing, storing and processing data in memory are studied within the subject. the structure of arrays and lists, the main features of element access, addition, deletion and search operations are considered. the working principles of stack and queue structures, LIFO and FIFO approaches, respectively, and the main application areas are explained. it also examines the structure of linked lists, the concepts of nodes and links, the main characteristics of one-way and two-way linked lists, and their differences from other data structures.

  3. 3. Optimization and parallelization in algorithms

    Lecture

    Within the framework of the topic, the principles of efficiency evaluation, optimization and parallel execution of algorithms are studied. the analysis of the time and space complexity of the algorithms, the assessment of the demand for computing resources depending on the size of the input data are considered. the analysis of the asymptotic behavior of algorithms is explained through big o, omega and theta notation. development of parallel algorithms, partitioning of computations into parallel tasks, and basic parallel processing models are explored. also, the mapreduce approach for distributed processing of large volumes of data and the main features of data structures used in parallel computing environments are reviewed.

  4. 4. Approaches to building algorithms

    Lecture

    Within the framework of the topic, the main approaches used in building algorithms for solving various problems are studied. a divide-and-conquer approach based on breaking down complex problems into smaller sub-problems is considered. at each stage, the working principle and application features of the greedy approach based on making the most suitable choice for the current situation are explained. a dynamic programming approach based on storing and reusing the results of repeated subproblems is investigated. a backtracking approach based on the principle of systematically checking possible solutions and backtracking on unsuitable options is also considered.

  5. 5. Sorting and search algorithms

    Lecture

    The main algorithms used for searching and organizing data in a certain sequence are studied within the subject. the working principles, application conditions and efficiency of linear and binary search algorithms are reviewed. the working logic and characteristics of basic sorting algorithms such as bubble sort, selection sort, insertion sort, merge sort, quick sort and heap sort are explained. the optimization principles used in heapsort and timsort approaches are investigated. various ranking and search algorithms are comparatively analyzed in terms of time and space complexity, stability, data volume and structure. the principles of increasing the efficiency of search trees and optimizing search operations are also considered.

  6. 6. Acgöz alqoritmlər. dinamik proqramlaşdırma

    Lecture

    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.

    Topic learning outcomes

    • • 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. Graph algorithms. algorithms for finding the shortest path

    Lecture

    Within the framework of the subject, the basic concepts of graph theory and the basic algorithms used on graph structures are studied. basic concepts such as vertex, edge, directed and undirected graph, weighted graph, and connectivity are reviewed. traversing graphs using depth-first search (dfs) and breadth-first search (bfs) methods and the application fields of these algorithms are explained. the problem of determining the shortest path on a graph, the working principles and application features of dijkstra and a* search algorithms are investigated. also, the floyd–warshall algorithm for computing the shortest paths between all pairs of vertices is reviewed, as well as the optimal substructure and overlapping subproblems principles of this algorithm related to dynamic programming.