Data Structures and Algorithms
Course Aim:
The course aims to offer a rigorous introduction to the theory and practice of data structures and fundamental algorithms. Students will explore the design, analysis, and implementation of both classical and advanced data structures used in solving computational problems efficiently. Emphasis is placed on algorithmic efficiency, trade-offs between data structures, and the development of reusable software components. Students will study a variety of abstract data types (ADTs) and advanced structures such as binary search trees, dictionaries, self-balancing trees, etc., with their concrete implementations.
Course contents:
Fundamental Data Structures and Basic Design Patterns, Complexity Analysis, Searching Algorithms, Sorting Algorithms, Trees: Concepts and Applications, Balanced Trees, Priority Queues and Heaps, Hashing and Hash Tables, Graphs and Basic Graph Algorithms.