Faculty: Dr.
Ryan Soriente Evangelista
Course Title: Data Structures and Algorithms
Program: Master of Science in Computer Science
Credits: 3 Units
Prerequisites: Undergraduate-level Data Structures, Discrete Mathematics, and Programming
Proficiency
Course Description
This course covers fundamental and advanced concepts in data structures and algorithms. It includes
algorithm analysis, efficient data structure design, and optimization techniques. Students will
develop skills in implementing, analyzing, and applying algorithms to solve computational problems.
Course Learning Outcomes
Upon successful completion of this course, students will be able to:
1. Analyze and compare the efficiency of algorithms using asymptotic notation.
2. Design and implement advanced data structures.
3. Solve computational problems using appropriate algorithmic techniques.
4. Apply algorithmic paradigms such as divide and conquer, dynamic programming, and greedy
methods.
5. Implement and evaluate graph algorithms for real-world applications.
6. Explore emerging topics in algorithms, including parallel and distributed computing.
Course Outline
Module 1: Introduction to Algorithm Analysis
• Growth of functions: Big-O, Omega, and Theta notations
• Recurrence relations and the Master Theorem
• Empirical analysis of algorithms
Module 2: Fundamental Data Structures
• Arrays, Linked Lists, Stacks, Queues
• Hash Tables and Hash Functions
• Trees: Binary Trees, AVL Trees, Red-Black Trees
Module 3: Advanced Data Structures
• Heaps: Binary Heaps, Fibonacci Heaps
• B-Trees and Tries
• Disjoint Set Union (Union-Find)
Module 4: Sorting and Searching Algorithms
• Comparison-based sorting: Merge Sort, Quick Sort, Heap Sort
• Non-comparison-based sorting: Counting Sort, Radix Sort, Bucket Sort
• Searching algorithms: Binary Search, Interpolation Search
Module 5: Algorithmic Paradigms
• Divide and Conquer (Merge Sort, Quick Sort, Fast Fourier Transform)
• Dynamic Programming (Knapsack, Longest Common Subsequence, Matrix Chain
Multiplication)
• Greedy Algorithms (Huffman Coding, Kruskal’s and Prim’s Algorithms)
• Backtracking (N-Queens Problem, Subset Sum)
Module 6: Graph Algorithms
• Graph Representations: Adjacency Matrix and List
• Traversal Algorithms: BFS, DFS
• Shortest Path Algorithms: Dijkstra’s, Bellman-Ford, Floyd-Warshall
• Minimum Spanning Trees: Kruskal’s and Prim’s
• Network Flow and Matching Algorithms
Module 7: Computational Complexity and NP-Completeness
• P vs NP, NP-Complete and NP-Hard Problems
• Approximation Algorithms
• Randomized Algorithms
Module 8: Advanced and Emerging Topics
• String Matching Algorithms: KMP, Rabin-Karp, Suffix Trees
• Parallel and Distributed Algorithms
• Machine Learning and AI-Driven Algorithmic Optimization
• Quantum Algorithms (Shor’s Algorithm, Grover’s Algorithm)
Course Assessment and Grading
Component Percentage
Assignments & Labs 20%
Quizzes 10%
Midterm Exam 25%
Final Exam 30%
Project (Algorithm Implementation) 15%
Textbooks and References
Primary Textbooks:
1. Cormen, Leiserson, Rivest, and Stein, Introduction to Algorithms, MIT Press.
2. Sedgewick and Wayne, Algorithms, Addison-Wesley.
Additional References:
• Kleinberg and Tardos, Algorithm Design.
• Tarjan, Data Structures and Network Algorithms.
• Skiena, The Algorithm Design Manual.
Course Policies
• Attendance: Attendance is required for all lectures and lab sessions.
• Collaboration: Discussions are encouraged, but assignments must be completed individually.
• Late Submissions: Late assignments will be penalized unless prior approval is granted.
• Academic Integrity: Any form of plagiarism or cheating will result in disciplinary acti
Course Schedule (Proposed)
Week Topics
1 Introduction to Algorithm Analysis
2 Asymptotic Notation and Recurrence Relations
3 Fundamental Data Structures
4 Advanced Data Structures
5 Sorting Algorithms
6 Searching Algorithms
7 Midterm Exam + Divide & Conquer Algorithms
8 Dynamic Programming Techniques
9 Greedy Algorithms
10 Backtracking Techniques
11 Graph Algorithms (BFS, DFS, MST)
12 Shortest Path Algorithms
13 NP-Completeness & Complexity Theory
14 Approximation and Randomized Algorithms
15 Advanced Topics (AI, Parallel, and Quantum Algorithms)
16 Final Exam & Project Presentations