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.