Data Structures
Information
Course Overview
This course provides an in-depth exploration of data structures and their implementation using the C++ programming language. Students will learn fundamental data structures, advanced structures, and algorithmic techniques for efficient problem-solving. Practical coding exercises and projects will reinforce the understanding of each data structure.
Course Objectives
Be able to:
Understand the importance of data structures in programming and algorithm design.
Implement basic data structures such as arrays, linked lists, stacks, and queues.
Analyze and compare the time and space complexity of different data structures.
Work with advanced data structures including trees, heaps, and hash tables.
Implement and apply various tree structures,
Apply graph algorithms for solving real-world problems.
Reference Material
Open Data Structure, by Pat Morin
Introduction to Algorithms, 3rd Edition
Problem Solving with Algorithms and Data Structures, by Brad Miller, David Ranum
Algorithmic Thinking, by Daniel Zingaro.
Lecture Note
Data Structures In Depth Using C++ by Mahmmoud Mahdi (Release v6.10) (SolutionManual)
Important Course Notes
Class Sessions
Monday {10:15-11:45 AM}[AI-2nd] @M3.
Monday {12:00-1:30 PM & 1:45-3:15 PM}[General-2nd] @Hall 2.
Tuesday {12:00-1:30 PM}[General-2nd] @Hall 2.
Office Hours
Tuesday {1:45-3:00PM}Â
Grading Criteria
TBD!
Social Group and Announcement
Telegram
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.