Subject · Information security

Algorithms and data structures

İFS-2226yn6 creditsAutumn semesterElective2

About this subject

Credits

6

Workload

135hours

Semester

Autumn

Academic year

2

Description

The subject involves the formation of theoretical knowledge and practical skills in students on algorithmic thinking, systematic problem solving and the development of efficient software solutions. within the subject, the main principles, characteristics and classification of algorithms, as well as the analysis of time and space complexity, are studied. basic data structures such as arrays, lists, stacks, queues, linked lists, trees, and graphs and their interactions with algorithms are reviewed. students are introduced to sorting, search, graph, and shortest path algorithms, as well as basic algorithmic strategies such as divide and conquer, greedy approaches, dynamic programming, and backtracking. the subject is aimed at developing students' abilities to analyze the characteristics of a given problem, choose the appropriate data structure and algorithmic approach, evaluate the effectiveness of algorithms, and develop optimized solutions.

Course learning outcomes

  1. CLO 1: Must acquire fundamental knowledge about the basic concepts of algorithms, features, description methods, concept of complexity and types of data structures.

  2. CLO 2: Must know linear and non-linear data structures (arrays, linked lists, stacks, queues, trees, graphs, hash tables, etc.), distinguish their application areas and have the ability to choose the appropriate structure.

  3. CLO 3: Must know the working principles of basic algorithms such as search, sort, recursion, graph and tree algorithms, analyze and compare their time and memory complexity.

  4. CLO 4: Must acquire skills to design, implement, test and optimize algorithms and data structures in various programming languages.

  5. CLO 5: He should choose the appropriate algorithm and data structure for solving calculation problems, evaluate the efficiency of algorithms and apply them in solving practical problems.

  6. CLO 6: He should apply modern algorithmic approaches in the process of algorithmic thinking, problem solving and software development, and should have the ability to justify the optimal solution by comparing different solution methods.