Data Structures
Information
Course Overview
This course offers a comprehensive study of data structures and their implementation using the C++ programming language. Students will explore both fundamental and advanced data structures, algorithmic problem-solving strategies, and performance optimization techniques. Practical coding exercises, case studies, and projects will ensure a solid grasp of concepts and their real-world applications. The course emphasizes the importance of efficient data structure selection and algorithm design for solving computational problems.
Course Objectives
By the end of the course, students will be able to:
Understand the significance of data structures in programming and algorithm design.
Implement basic data structures, including arrays, linked lists, stacks, and queues.
Analyze and compare the time and space complexities of different data structures.
Work with advanced data structures such as binary trees, heaps, AVL trees, and hash tables.
Utilize heap structures for implementing priority queues.
Design and implement hash functions and collision resolution techniques.
Implement graph algorithms to solve real-world problems, including depth-first search (DFS) and breadth-first search (BFS).
Solve complex computational problems using specialized data structures such as skip lists and space-efficient linked lists.
Important Course Notes
Class Sessions
Wednesday {12:00-1:30 PM} [AI-2nd] @Al-Khwarizmi.
Office Hours
Thursday {11:30-12:00PM}Â
Grading Criteria
Attendance: 12.5%
Midterm Exam: 37.5%
Assignments: 2 x 25% + 1 x 25% Bouns
Late Assignments and Make-Up: Assignments submitted after the due date will not be accepted.
Social Group and Announcement
Course Schedule
Note: This is just a expected curriculum, and the specific content and objectives may change. Additionally, some topics may need to be covered in more depth, while others may need to be covered more briefly, based on the needs and skills of students.