—- data course —-
Number: 2014
Title: Data Structures and Algorithms
English Title: Data Structures and Algorithms
Level: MicroMaster
Field: Software Engineering
Units: 3
Type: Theoretical
Category: Core
Prerequisite: Objective, General Objective
Image: ds.png
ID: 2014
Priority: 50
Instructor: Education
Term: Summer 2025
Schedule: Thursday 8:30-11:30
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)
Randomized Algorithms (1 session)
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)
Dynamic Programming (2 sessions)
Fibonacci numbers, weighted interval scheduling
Coin change, longest common subsequence
Graph Algorithms (2 sessions)
Assessment
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.