0% found this document useful (0 votes)
15 views

DataStruc_MSCS

The course 'Data Structures and Algorithms' taught by Dr. Ryan Soriente Evangelista covers fundamental and advanced concepts in data structures and algorithms, including algorithm analysis, efficient design, and optimization techniques. Students will learn to analyze algorithms, implement advanced data structures, and apply various algorithmic paradigms to solve computational problems. The course includes a comprehensive outline of topics, assessments, and policies, with a focus on both theoretical and practical applications in computer science.

Uploaded by

Jesel Pancho
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

DataStruc_MSCS

The course 'Data Structures and Algorithms' taught by Dr. Ryan Soriente Evangelista covers fundamental and advanced concepts in data structures and algorithms, including algorithm analysis, efficient design, and optimization techniques. Students will learn to analyze algorithms, implement advanced data structures, and apply various algorithmic paradigms to solve computational problems. The course includes a comprehensive outline of topics, assessments, and policies, with a focus on both theoretical and practical applications in computer science.

Uploaded by

Jesel Pancho
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

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

You might also like