You are not allowed to perform this action
Data Structures and Algorithms
Instructor: Mohammad Ali Abam | Certificate: Official (bilingual) |
Term: Summer 2025 | Prerequisite: Python Programming, Discrete Structures |
Schedule: Thursday 8:30-11:30 | Online Class: Online Class |
General Objective
This course introduces students to algorithm analysis techniques, fundamental data structures, and basic algorithms. The course emphasizes algorithm analysis and correctness proofs. Students should be familiar with at least one programming language beforehand. The algorithms are presented independently of any specific programming language.
Topics
- Algorithm Analysis (2 sessions)
- Algorithms and their time complexity: Fibonacci sequence and maximum subarray problem
- Function growth: O, Ω, and Θ notations
- Divide and Conquer Algorithms (2 sessions)
- Merge sort, multiplication of n-bit numbers
- Master theorem
- Randomized Algorithms (1 session)
- Las Vegas and Monte Carlo algorithms: approximate median problem
- Random permutation and applications: hiring problem
- Order Statistics and Sorting (3 sessions)
- Selection of k-th element (randomized and deterministic)
- Comparison-based sorting: quicksort (randomized analysis)
- Lower bounds for comparison-based sorting, non-comparison sorts: counting sort, radix sort
- Data Structures (5 sessions)
- Lists, queues, and stacks
- Binary search trees
- Priority queues (min/max heaps), heapsort
- Hashing and hash functions
- Greedy Algorithms (1 session)
- Coin change, scheduling problems
- Dynamic Programming (2 sessions)
- Fibonacci numbers, weighted interval scheduling
- Coin change, longest common subsequence
- Graph Algorithms (2 sessions)
- Graph representation and traversal
- Shortest path algorithms: Dijkstra's algorithm
Assessment
- Practical Assignments: 3 points
- Theoretical Assignments: 3 points
- Final Exam: 14 points
References
- Mohammad Ghodsi. Data Structures and Algorithm Fundamentals. 10th Edition, Fatemi Publications, 2023.
- T. Cormen, C. Leiserson, R. Riverst, and C. Stein. Introduction to Algorithms. 4th Edition, MIT Press, 2022.