Course Title: Data Structures & Algorithms II
Course Code: CS 212
Credit Value: 4 Credits
Contact Hours
Lectures: 2 hours/week
Practical / Laboratories: 3 hours/week
Duration: 15 Weeks (One Semester)
Prerequisite: Data Structures & Algorithms I
Implementation Language: Python (with algorithmic pseudocode emphasized)
1. COURSE DESCRIPTION
This course builds upon Data Structures & Algorithms I by introducing advanced data structures and algorithmic techniques used to solve complex computational problems efficiently. Students study trees, heaps, hash tables, graphs, and major algorithm design paradigms including divide-and-conquer, greedy methods, and dynamic programming.
The course emphasizes algorithm analysis, problem-solving, and practical implementation using Python, providing a strong foundation for software engineering, databases, operating systems, artificial intelligence, networking, and cybersecurity.
2. COURSE OBJECTIVES
By the end of this course, students should be able to:
Design and implement advanced data structures.
Apply algorithmic paradigms to solve complex problems.
Analyze algorithm efficiency rigorously.
Compare multiple algorithmic approaches to the same problem.
Select appropriate data structures and algorithms for practical applications.
Develop efficient computational solutions to real-world problems.
3. LEARNING OUTCOMES
Upon successful completion, students will be able to:
Implement and use trees, heaps, hash tables, and graphs.
Apply advanced searching and sorting algorithms.
Analyze algorithms using Big-O, Big-Θ, and Big-Ω notation.
Apply divide-and-conquer, greedy, and dynamic programming techniques.
Implement graph traversal and shortest-path algorithms.
Select optimal data structures and algorithms for given constraints.
Evaluate trade-offs between time and space complexity.